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("<BR><B>Show:</B> ");
+
+safef(varName, sizeof(varName), "%s.show.noncoding", tdb->track);
+boolean option = cartUsualBoolean(cart, varName, TRUE);
+cgiMakeCheckBox(varName, option);
+printf(" %s&nbsp;&nbsp;&nbsp;", "non-coding genes");
+
+safef(varName, sizeof(varName), "%s.show.spliceVariants", tdb->track);
+option = cartUsualBoolean(cart, varName, TRUE);
+cgiMakeCheckBox(varName, option);
+printf(" %s&nbsp;&nbsp;&nbsp;", "splice variants");
+
+safef(varName, sizeof(varName), "%s.show.pseudo", tdb->track);
+option = cartUsualBoolean(cart, varName, FALSE);
+cgiMakeCheckBox(varName, option);
+printf(" %s&nbsp;&nbsp;&nbsp;", "pseudogenes");
+
+printf("<BR><B>Tagged Sets:</B> ");
+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&nbsp;&nbsp;&nbsp;", "MANE only");
+cgiMakeRadioButton(varName, "basic", sameString(setString, "basic"));
+printf(" %s&nbsp;&nbsp;&nbsp;", "BASIC only");
+cgiMakeRadioButton(varName, "all", sameString(setString, "all"));
+printf(" %s&nbsp;&nbsp;&nbsp;", "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("<p><b>Gene Class: </b>");
     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("<B>Label:</B> ");
     safef(varName, sizeof(varName), "%s.label", name);
     cgiMakeRadioButton(varName, "gene", sameString("gene", geneLabel));
     printf("%s ", "gene");
     cgiMakeRadioButton(varName, "accession", sameString("accession", geneLabel));