66330ff4742dfc3b8f924017caf1c6419907bbbf braney Sat Jul 25 11:16:24 2020 -0700 make merged Gencode filters much more similar to old style diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 764e130..ec954b3 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -6988,47 +6988,84 @@ {NULL, NULL} }; int i; for (i = 0; labelsNames[i][0] != NULL; i++) { char varName[64], varSuffix[64]; safef(varSuffix, sizeof(varSuffix), "label.%s", labelsNames[i][1]); safef(varName, sizeof(varName), "%s.%s", name, varSuffix); char *value = cartUsualStringClosestToHome(cart, tdb, parentLevel, varSuffix, NULL); boolean checked = (value != NULL) && !sameString(value, "0"); printf("%s%s: ", (i > 0) ? "  " : "", labelsNames[i][0]); cgiMakeCheckBoxMore(varName, checked, NULL); } } +static void newGencodeShowOptions(struct cart *cart, struct trackDb *tdb) +/* Put up line of controls that describe what parts to show. */ +{ +char varName[64]; + +printf("
Show: "); + +safef(varName, sizeof(varName), "%s.show.noncoding", tdb->track); +boolean option = cartUsualBoolean(cart, varName, TRUE); +cgiMakeCheckBox(varName, option); +printf(" %s   ", "non-coding genes"); + +safef(varName, sizeof(varName), "%s.show.spliceVariants", tdb->track); +option = cartUsualBoolean(cart, varName, TRUE); +cgiMakeCheckBox(varName, option); +printf(" %s   ", "splice variants"); + +safef(varName, sizeof(varName), "%s.show.pseudo", tdb->track); +option = cartUsualBoolean(cart, varName, FALSE); +cgiMakeCheckBox(varName, option); +printf(" %s   ", "pseudogenes"); + +printf("
Tagged Sets: "); +safef(varName, sizeof(varName), "%s.show.set", tdb->track); +char *setString = cartUsualString(cart, varName, "basic"); +cgiMakeRadioButton(varName, "MANE_Select", sameString(setString, "MANE_Select")); +printf(" %s   ", "MANE only"); +cgiMakeRadioButton(varName, "basic", sameString(setString, "basic")); +printf(" %s   ", "BASIC only"); +cgiMakeRadioButton(varName, "all", sameString(setString, "all")); +printf(" %s   ", "All"); +} + void genePredCfgUi(char *db, struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed) /* Put up genePred-specific controls */ { char varName[64]; boolean parentLevel = isNameAtParentLevel(tdb,name); char *geneLabel = cartUsualStringClosestToHome(cart, tdb,parentLevel, "label", "gene"); boxed = cfgBeginBoxAndTitle(tdb, boxed, title); labelCfgUi(db, cart, tdb, name); if (sameString(name, "acembly")) { char *acemblyClass = cartUsualStringClosestToHome(cart,tdb,parentLevel,"type", acemblyEnumToString(0)); printf("

Gene Class: "); acemblyDropDown("acembly.type", acemblyClass); printf(" "); } +else if (startsWith("gencodeV", name)) + { + newGencodeShowOptions(cart, tdb); + } else if (startsWith("wgEncodeGencode", name)) { // new GENCODEs gencodeLabelControls(db, cart, tdb, name, title, boxed, parentLevel); } else if (sameString("wgEncodeSangerGencode", name) || (startsWith("encodeGencode", name) && !sameString("encodeGencodeRaceFrags", name))) { // GENCODE pilot (see hgTracks/gencodeTracks.c:registerPilotTrackHandlers() // and hgTracks/simpleTracks.c:genePredAssignConfiguredName() printf("Label: "); safef(varName, sizeof(varName), "%s.label", name); cgiMakeRadioButton(varName, "gene", sameString("gene", geneLabel)); printf("%s ", "gene"); cgiMakeRadioButton(varName, "accession", sameString("accession", geneLabel));