5e84c54c00824bb9ddacfd439db694906328fc61 Merge parents 5e5b469 f42dec5 kate Tue Nov 24 09:55:57 2015 -0800 Fix merge conflict diff --cc src/hg/lib/gtexUi.c index 2f89c4d,24b46ee..a050fa0 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@@ -1,214 -1,70 +1,212 @@@ /* 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 "gtexUi.h" + +static char *makeTissueLabel(struct gtexTissue *tis) +{ +char buf[256]; +safef(buf, sizeof(buf), "
",boxed?" width='100%'":"");
-char cartVarName[1024];
+char cartVar[1024];
char *selected = NULL;
/* Sample selection */
printf("Samples: ");
-safef(cartVarName, sizeof(cartVarName), "%s.%s", name, GTEX_SAMPLES);
-selected = cartCgiUsualString(cart, cartVarName, GTEX_SAMPLES_DEFAULT);
+safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_SAMPLES);
+selected = cartCgiUsualString(cart, cartVar, GTEX_SAMPLES_DEFAULT);
boolean isAllSamples = sameString(selected, GTEX_SAMPLES_ALL);
-cgiMakeRadioButton(cartVarName, GTEX_SAMPLES_ALL, isAllSamples);
+cgiMakeRadioButton(cartVar, GTEX_SAMPLES_ALL, isAllSamples);
printf("All\n");
-cgiMakeRadioButton(cartVarName, GTEX_SAMPLES_COMPARE_SEX, !isAllSamples);
+cgiMakeRadioButton(cartVar, GTEX_SAMPLES_COMPARE_SEX, !isAllSamples);
printf("Compare by gender\n");
printf("");
/* Comparison type */
printf(" Comparison display:\n"); -safef(cartVarName, sizeof(cartVarName), "%s.%s", name, GTEX_COMPARISON_DISPLAY); -selected = cartCgiUsualString(cart, cartVarName, GTEX_COMPARISON_DEFAULT); +safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_COMPARISON_DISPLAY); +selected = cartCgiUsualString(cart, cartVar, GTEX_COMPARISON_DEFAULT); boolean isMirror = sameString(selected, GTEX_COMPARISON_MIRROR); -cgiMakeRadioButton(cartVarName, GTEX_COMPARISON_DIFF, !isMirror); +cgiMakeRadioButton(cartVar, GTEX_COMPARISON_DIFF, !isMirror); printf("Difference graph\n"); -cgiMakeRadioButton(cartVarName, GTEX_COMPARISON_MIRROR, isMirror); +cgiMakeRadioButton(cartVar, GTEX_COMPARISON_MIRROR, isMirror); printf("Two graphs\n"); printf(" "); /* Data transform */ -printf("Log10 transform:\n"); -safef(cartVarName, sizeof(cartVarName), "%s.%s", name, GTEX_LOG_TRANSFORM); -boolean isLogTransform = cartCgiUsualBoolean(cart, cartVarName, GTEX_LOG_TRANSFORM_DEFAULT); -cgiMakeCheckBox(cartVarName, isLogTransform); +printf(" Log10 transform:\n");
+safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_LOG_TRANSFORM);
+boolean isLogTransform = cartCgiUsualBoolean(cart, cartVar, GTEX_LOG_TRANSFORM_DEFAULT);
+cgiMakeCheckBox(cartVar, isLogTransform);
/* Viewing limits max */
printf(" View limits maximum:\n");
-safef(cartVarName, sizeof(cartVarName), "%s.%s", name, GTEX_MAX_LIMIT);
+safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_MAX_LIMIT);
// TODO: set max and initial limits from gtexInfo table
-int viewMax = cartCgiUsualInt(cart, cartVarName, GTEX_MAX_LIMIT_DEFAULT);
-cgiMakeIntVar(cartVarName, viewMax, 4);
+int viewMax = cartCgiUsualInt(cart, cartVar, GTEX_MAX_LIMIT_DEFAULT);
+cgiMakeIntVar(cartVar, viewMax, 4);
printf(" RPKM (range 10-180000) Tissue colors:\n"); -safef(cartVarName, sizeof(cartVarName), "%s.%s", name, GTEX_COLORS); -selected = cartCgiUsualString(cart, cartVarName, GTEX_COLORS_DEFAULT); +safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_COLORS); +selected = cartCgiUsualString(cart, cartVar, GTEX_COLORS_DEFAULT); boolean isGtexColors = sameString(selected, GTEX_COLORS_GTEX); -cgiMakeRadioButton(cartVarName, GTEX_COLORS_GTEX, isGtexColors); +cgiMakeRadioButton(cartVar, GTEX_COLORS_GTEX, isGtexColors); printf("GTEx\n"); -cgiMakeRadioButton(cartVarName, GTEX_COLORS_RAINBOW, !isGtexColors); +cgiMakeRadioButton(cartVar, GTEX_COLORS_RAINBOW, !isGtexColors); printf("Rainbow\n"); printf(" "); +/* Tissue filter */ +printf("Tissue selection:\n"); +safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_TISSUE_SELECT); +jsMakeCheckboxGroupSetClearButton(cartVar, TRUE); +puts(" "); +jsMakeCheckboxGroupSetClearButton(cartVar, FALSE); - struct gtexTissue *tis = NULL, *tissues = gtexGetTissues(); - int i; - int count = slCount(tissues); ++struct gtexTissue *tissues = gtexGetTissues(); +struct slName *selectedValues = NULL; +if (cartListVarExistsAnyLevel(cart, tdb, FALSE, GTEX_TISSUE_SELECT)) + selectedValues = cartOptionalSlNameListClosestToHome(cart, tdb, FALSE, GTEX_TISSUE_SELECT); +if (sameString(cgiUsualString("tis", "group"), "group")) + makeGroupedTissueCheckboxes(cartVar, tissues, selectedValues); +else + makeAllTissueCheckboxes(cartVar, tissues, selectedValues); + cfgEndBox(boxed); } |