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("<b>Log10(x+1) transform:</b>\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("<span class='%s'><b>View limits maximum:</b></span>\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("<span class='%s'> %s (range 0-%d)</span>\n", buf, unit, round(barChartUiMaxMedianScore())); +printf("<span class='%s'> %s (range 0-%d)</span>\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 */ {