fbe150e763738e5715612695e315f6341f604e84 kate Tue Mar 29 17:53:46 2016 -0700 Added option to suppres display of gene model (instead just show a line covering gene extent). Kind of works, but theres a layout problem that causes bottom-most gene to be cut off diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c index ce8f782..d11b04f 100644 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@ -276,83 +276,92 @@ safef(buf, sizeof(buf), "%s%s", cgiMultListShadowPrefix(), name); cgiMakeHiddenVar(buf, "0"); } void gtexGeneUi(struct cart *cart, struct trackDb *tdb, char *track, char *title, boolean boxed) /* GTEx (Genotype Tissue Expression) per gene data */ { if (cartVarExists(cart, "ajax")) isPopup = TRUE; boxed = cfgBeginBoxAndTitle(tdb, boxed, title); printf("\n<table id=gtexGeneControls style='font-size:%d%%' %s>\n<tr><td>", isPopup ? 75 : 100, boxed ?" width='100%'":""); char cartVar[1024]; -char *selected = NULL; char buf[512]; +/* Filter on coding genes */ + +printf("<div>"); +printf("<b>Limit to protein coding genes:</b>\n"); +safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_CODING_GENE_FILTER); +boolean isCodingOnly = cartCgiUsualBoolean(cart, cartVar, GTEX_CODING_GENE_FILTER_DEFAULT); +cgiMakeCheckBox(cartVar, isCodingOnly); + +/* Show exons in gene model */ +printf(" <b>Show GTEx gene model</b>\n"); +safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_SHOW_EXONS); +boolean showExons = cartCgiUsualBoolean(cart, cartVar, GTEX_SHOW_EXONS_DEFAULT); +cgiMakeCheckBox(cartVar, showExons); +printf("</div>"); + /* Data transform. When selected, the next control (view limits max) is disabled */ printf("<div><b>Log10 transform:</b>\n"); safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_LOG_TRANSFORM); boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, GTEX_LOG_TRANSFORM_DEFAULT); safef(buf, sizeof buf, "onchange='gtexTransformChanged(\"%s\")'", track); cgiMakeCheckBoxJS(cartVar, isLogTransform, buf); /* Viewing limits max. This control is disabled if log transform is selected */ // construct class so JS can toggle 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, GTEX_MAX_LIMIT); int viewMax = cartCgiUsualInt(cart, cartVar, GTEX_MAX_LIMIT_DEFAULT); cgiMakeIntVarWithExtra(cartVar, viewMax, 4, isLogTransform ? "disabled" : ""); char *version = gtexVersion(tdb->table); printf("<span class='%s'> RPKM (range 0-%d)</span>\n", buf, round(gtexMaxMedianScore(version))); printf("</div>"); -/* Filter on coding genes */ -printf("<div><b>Limit to protein coding genes:</b>\n"); -safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_CODING_GENE_FILTER); -boolean isCodingOnly = cartCgiUsualBoolean(cart, cartVar, GTEX_CODING_GENE_FILTER_DEFAULT); -cgiMakeCheckBox(cartVar, isCodingOnly); -printf("</div>"); - +#ifdef COMPARISON /* Sample selection */ printf("<div><b>Samples:</b> "); safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_SAMPLES); -selected = cartCgiUsualString(cart, cartVar, GTEX_SAMPLES_DEFAULT); +char *selected = cartCgiUsualString(cart, cartVar, GTEX_SAMPLES_DEFAULT); boolean isAllSamples = sameString(selected, GTEX_SAMPLES_ALL); safef(buf, sizeof buf, "onchange='gtexSamplesChanged(\"%s\")'", track); char *command = buf; cgiMakeOnClickRadioButton(cartVar, GTEX_SAMPLES_ALL, isAllSamples, command); printf("All\n"); cgiMakeOnClickRadioButton(cartVar, GTEX_SAMPLES_COMPARE_SEX, !isAllSamples, command); printf("Compare by gender\n"); printf("</div>"); /* Comparison type. Disabled if All samples selected. */ safef(buf, sizeof buf, "%sComparisonLabel %s", track, isAllSamples ? "disabled" : ""); printf("<div><b><span class='%s'>Comparison display:</b></span>", buf); safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_COMPARISON_DISPLAY); selected = cartCgiUsualString(cart, cartVar, GTEX_COMPARISON_DEFAULT); boolean isMirror = sameString(selected, GTEX_COMPARISON_MIRROR); cgiMakeRadioButton(cartVar, GTEX_COMPARISON_DIFF, !isMirror); printf("<span class='%s'>Difference graph</span>", buf); cgiMakeRadioButton(cartVar, GTEX_COMPARISON_MIRROR, isMirror); printf("<span class='%s'>Two graphs</span>\n", buf); printf("</div>"); +#endif /* Color scheme */ // We don't need the rainbow color scheme, but may want another (e.g. different // colors for brain tissues), so leaving code in for now. #ifdef COLOR_SCHEME printf("<p><b>Tissue colors:</b>\n"); safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_COLORS); selected = cartCgiUsualString(cart, cartVar, GTEX_COLORS_DEFAULT); boolean isGtexColors = sameString(selected, GTEX_COLORS_GTEX); cgiMakeRadioButton(cartVar, GTEX_COLORS_GTEX, isGtexColors); printf("GTEx\n"); cgiMakeRadioButton(cartVar, GTEX_COLORS_RAINBOW, !isGtexColors); printf("Rainbow\n"); printf("</p>"); #endif