1888f6dd81f220f2ccd0e49c9b8a9a817ae0618c kate Thu Nov 10 15:59:18 2016 -0800 Cleanup C code. refs #17369 diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c index fba09a2..8833fa3 100644 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@ -1,418 +1,463 @@ /* GTEx (Genotype Tissue Expression) track controls */ /* Copyright (C) 2015 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "cheapcgi.h" #include "cart.h" #include "hui.h" #include "trackDb.h" #include "jsHelper.h" #include "gtexTissue.h" #include "gtexInfo.h" #include "gtexUi.h" #define SYSTEM_BRAIN "Brain" #define SYSTEM_REPRODUCTIVE "Reproductive" #define SYSTEM_GASTRO "Digestive" #define SYSTEM_ENDOCRINE "Endocrine" #define SYSTEM_CARDIO "Cardiovascular" #define SYSTEM_OTHER "Other" /* Restrict features on right-click (popup) version */ static boolean isPopup = FALSE; /* Convenience functions for tissue filter controls */ static char *makeTissueColorPatch(struct gtexTissue *tis) /* Display a box colored by defined tissue color */ { char buf[256]; safef(buf, sizeof(buf), "
\n", orderVar, sortOrder); puts(" | "); printf(" | Tissue | ", sortableClass, onClick); printf("Samples | ", sortableClass, onClick); printf("Organ | ", sortableClass, onClick); printf("System | ", sortableClass, onClick); puts("\n
---|---|---|---|---|---|
", name, tis->name, isChecked ? "checked" : "", isPopup ? "disabled" : ""); // color patch printf("\n%s", makeTissueColorPatch(tis)); // tissue name printf("\n | %s | ", tis->description); // sample count int samples = hashIntValDefault(tscHash, tis->name, 0); printf("\n%d | ", samples, samples); // organ printf("\n%s | ", tis->organ); // system printf("\n%s | ", getSystem(tis)); puts("\n
",
- isPopup ? 75 : 100, boxed ?" width='100%'":"");
+/* Convenience functions shared by hgTrackUi and hgGtexTrackSettings. hgTrackUi is for now still
+ * available from right-click */
+void gtexGeneUiGeneLabel(struct cart *cart, char *track, struct trackDb *tdb)
+/* Radio buttons to select format of gene label */
+{
char cartVar[1024];
-char buf[512];
-
-/* Gene labels */
-printf(" ");
char *geneLabel = cartUsualStringClosestToHome(cart, tdb, isNameAtParentLevel(tdb, track),
GTEX_LABEL, GTEX_LABEL_DEFAULT);
printf("Label: ");
safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_LABEL);
cgiMakeRadioButton(cartVar, GTEX_LABEL_SYMBOL , sameString(GTEX_LABEL_SYMBOL, geneLabel));
printf("%s ", "gene symbol");
cgiMakeRadioButton(cartVar, GTEX_LABEL_ACCESSION, sameString(GTEX_LABEL_ACCESSION, geneLabel));
printf("%s ", "accession");
cgiMakeRadioButton(cartVar, GTEX_LABEL_BOTH, sameString(GTEX_LABEL_BOTH, geneLabel));
printf("%s ", "both");
-printf(" \n");
+}
-/* Filter on coding genes */
-printf("");
-printf("Limit to protein coding genes:\n");
+void gtexGeneUiCodingFilter(struct cart *cart, char *track, struct trackDb *tdb)
+/* Checkbox to restrict display to protein coding genes */
+{
+char cartVar[1024];
+puts("Limit to protein coding genes:\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(" Show GTEx gene model\n");
+void gtexGeneUiGeneModel(struct cart *cart, char *track, struct trackDb *tdb)
+/* Checkbox to enable display of GTEx gene model */
+{
+char cartVar[1024];
+puts(" Show GTEx gene model\n");
safef(cartVar, sizeof(cartVar), "%s.%s", track, GTEX_SHOW_EXONS);
boolean showExons = cartCgiUsualBoolean(cart, cartVar, GTEX_SHOW_EXONS_DEFAULT);
cgiMakeCheckBox(cartVar, showExons);
-printf(" ");
+}
-/* Data transform. When selected, the next control (view limits max) is disabled */
-printf("Log10 transform:\n");
+void gtexGeneUiLogTransform(struct cart *cart, char *track, struct trackDb *tdb)
+/* Checkbox to select log-transformed RPKM values */
+{
+char cartVar[1024];
+char buf[512];
+puts("Log10 transform:\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
+void gtexGeneUiViewLimits(struct cart *cart, char *track, struct trackDb *tdb)
+/* Set viewing limits if log transform not checked */
+{
+char cartVar[1024];
+char buf[512];
+boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, GTEX_LOG_TRANSFORM_DEFAULT);
safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, isLogTransform ? "disabled" : "");
-printf(" View limits maximum:\n", buf);
+printf("View limits maximum:\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(" RPKM (range 0-%d)\n", buf, round(gtexMaxMedianScore(version)));
-printf(" ");
+}
+
+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
|