e302bb6915d4003f97dacfa9637e78dc0fb98303
kent
Tue Jan 12 18:44:00 2021 -0800
Fixing logic error I recently introduced. The checkbox by the log-transform on barCharts should behave better now.
diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c
index 09fcee6..6e9e885 100644
--- src/hg/lib/barChartUi.c
+++ src/hg/lib/barChartUi.c
@@ -108,32 +108,34 @@
slReverse(&all);
makeGroupCheckboxes(name, NULL, all);
puts("");
char buf[512];
safef(buf, sizeof(buf), "%s%s", cgiMultListShadowPrefix(), name);
cgiMakeHiddenVar(buf, "0");
}
/* Convenience functions for hgTrackUi */
boolean barChartIsLogTransformed(struct cart *cart, char *track, struct trackDb *tdb)
/* Return TRUE if bar chart needs to be log transformed */
{
char cartVar[1024];
safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_LOG_TRANSFORM);
+boolean isLog = TRUE;
char *trans = trackDbSetting(tdb, "transformFunc");
-boolean isLog = sameWordOk(trans, "LOG");
+if (trans != NULL)
+ isLog = sameWord(trans, "LOG");
return cartCgiUsualBoolean(cart, cartVar, isLog);
}
void barChartUiLogTransform(struct cart *cart, char *track, struct trackDb *tdb)
/* Checkbox to select log-transformed RPKM values */
/* NOTE: this code from gtexUi.c. Consider sharing. */
{
char cartVar[1024];
safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_LOG_TRANSFORM);
puts("Log10(x+1) transform:\n");
boolean isLogTransform = barChartIsLogTransformed(cart, track, tdb);
cgiMakeCheckBoxWithId(cartVar, isLogTransform, cartVar);
jsOnEventByIdF("change", cartVar, "barChartUiTransformChanged('%s');", track);
}
@@ -153,36 +155,37 @@
double barChartCurViewMax(struct cart *cart, char *trackName, struct trackDb *tdb)
/* Look up max value to scale for this bar chart - consults both cart and trackDb defaults. */
{
char cartVar[1024];
safef(cartVar, sizeof(cartVar), "%s.%s", trackName, BAR_CHART_MAX_VIEW_LIMIT);
char *limitString = trackDbSettingOrDefault(tdb, BAR_CHART_LIMIT, "50");
double limit = atof(limitString);
if (limit <= 0) limit = 0.001;
return cartCgiUsualDouble(cart, cartVar, limit);
}
void barChartUiViewLimits(struct cart *cart, char *track, struct trackDb *tdb)
/* Set viewing limits if log transform not checked */
/* NOTE: this code from gtexUi.c. Consider sharing. */
{
-char cartVar[1024];
char buf[512];
boolean isLogTransform = barChartIsLogTransformed(cart, track, tdb);
safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, isLogTransform ? "disabled" : "");
printf("View limits maximum:\n", buf);
double viewMax = barChartCurViewMax(cart, track, tdb);
+char cartVar[1024];
+safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_MAX_VIEW_LIMIT);
cgiMakeDoubleVarWithExtra(cartVar, viewMax, 4, isLogTransform ? "disabled" : "");
char *unit = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, "");
printf(" %s (range 0-%d)\n", buf, unit,
round(barChartUiMaxMedianScore(tdb)));
}
// TODO: libify
static boolean isUrl(char *url)
{
return startsWith("http://", url)
|| startsWith("https://", url)
|| startsWith("ftp://", url);
}
static void getCategsFromSettings(char *track, char *labelSetting, char *colorSetting,