244bcc8165458cea7030fbe22f7a8974ba1f78ce kate Wed Jan 13 16:51:51 2016 -0800 First cut sortable table to select tissues. refs #15645 diff --git src/hg/lib/gtexUi.c src/hg/lib/gtexUi.c index 588f91c..c770950 100644 --- src/hg/lib/gtexUi.c +++ src/hg/lib/gtexUi.c @@ -1,38 +1,76 @@ /* 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" +#define SYSTEM_BRAIN "Brain" +#define SYSTEM_REPRODUCTIVE "Reproductive" +#define SYSTEM_GASTRO "Digestive" + +#define SYSTEM_ENDOCRINE "Endocrine" +#define SYSTEM_CARDIO "Cardiovascular" +#define SYSTEM_OTHER "Other" + + +static char *makeTissueColorPatch(struct gtexTissue *tis) +{ +char buf[256]; +safef(buf, sizeof(buf), "
\n", + "gtexGene.sortOrder", "tissue=+ samples=+ organ=+ system=+"); +puts(" | "); + +printf(" | Tissue | ", onClick); + +printf("Samples | ", onClick); + +printf("Organ | ", onClick); + +printf("System | ", onClick); +puts("\n
---|---|---|---|---|---|
", + name, tis->name, isChecked ? "CHECKED" : ""); + // 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
",boxed?" width='100%'":"");
char cartVar[1024];
char *selected = NULL;
/* Sample selection */
printf("Samples: ");
safef(cartVar, sizeof(cartVar), "%s.%s", name, GTEX_SAMPLES);
selected = cartCgiUsualString(cart, cartVar, GTEX_SAMPLES_DEFAULT);
boolean isAllSamples = sameString(selected, GTEX_SAMPLES_ALL);
cgiMakeRadioButton(cartVar, GTEX_SAMPLES_ALL, isAllSamples);
printf("All\n");
cgiMakeRadioButton(cartVar, GTEX_SAMPLES_COMPARE_SEX, !isAllSamples);
printf("Compare by gender\n");
@@ -197,22 +309,25 @@
printf("GTEx\n");
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 *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")) +char *selectType = cgiUsualString("tis", "table"); +if (sameString(selectType, "group")) makeGroupedTissueCheckboxes(cartVar, tissues, selectedValues); +else if (sameString(selectType, "table")) + makeTableTissueCheckboxes(cartVar, tissues, selectedValues, isPopup); else makeAllTissueCheckboxes(cartVar, tissues, selectedValues); cfgEndBox(boxed); } |