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));