2b41f66277f1191800c203f0dbda57f1c2bbdd30
kate
Wed Apr 19 10:00:28 2017 -0700
Add support for maxLimit trackDb setting. refs #18736
diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c
index 6da00e2..f9eea8f 100644
--- src/hg/lib/barChartUi.c
+++ src/hg/lib/barChartUi.c
@@ -113,51 +113,59 @@
/* Convenience functions for hgTrackUi */
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];
puts("Log10(x+1) transform:\n");
safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_LOG_TRANSFORM);
boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_LOG_TRANSFORM_DEFAULT);
cgiMakeCheckBoxWithId(cartVar, isLogTransform, cartVar);
jsOnEventByIdF("change", cartVar, "barChartUiTransformChanged('%s');", track);
}
-double barChartUiMaxMedianScore()
+double barChartUiMaxMedianScore(struct trackDb *tdb)
/* Max median score, for scaling */
{
-return 10000;
+char *setting = trackDbSettingClosestToHome(tdb, BAR_CHART_MAX_LIMIT);
+if (setting != NULL)
+ {
+ double max = sqlDouble(setting);
+ if (max > 0.0)
+ return max;
+ }
+return BAR_CHART_MAX_LIMIT_DEFAULT;
}
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];
safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_LOG_TRANSFORM);
boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_LOG_TRANSFORM_DEFAULT);
safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, isLogTransform ? "disabled" : "");
printf("View limits maximum:\n", buf);
-safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_MAX_LIMIT);
-int viewMax = cartCgiUsualInt(cart, cartVar, BAR_CHART_MAX_LIMIT_DEFAULT);
+safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_MAX_VIEW_LIMIT);
+int viewMax = cartCgiUsualInt(cart, cartVar, BAR_CHART_MAX_VIEW_LIMIT_DEFAULT);
cgiMakeIntVarWithExtra(cartVar, viewMax, 4, isLogTransform ? "disabled" : "");
char *unit = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, "");
-printf(" %s (range 0-%d)\n", buf, unit, round(barChartUiMaxMedianScore()));
+printf(" %s (range 0-%d)\n", buf, unit,
+ round(barChartUiMaxMedianScore(tdb)));
}
char *barChartUiGetLabel(char *database, struct trackDb *tdb)
/* Get label for category list */
{
return trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_CATEGORY_LABEL,
BAR_CHART_CATEGORY_LABEL_DEFAULT);
}
struct barChartCategory *barChartUiGetCategories(char *database, struct trackDb *tdb)
/* Get category colors and descriptions. Use barChartColors setting if present.
If not, if there is a barChartBars setting, assign rainbow colors.
* O/w look for a table naed track+Category, and use labels and colors there
*/
{