7bc24686024ec14d351ab208b5179ab251d7c463
tdreszer
  Fri Oct 14 16:34:15 2011 -0700
Major work on bedFilt, psl and wigMaf to make them properly composite ready.
diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index e8b51ea..6c6d0d2 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -1670,59 +1670,30 @@
 
 for (i=0; i < nonCodingTypeLabelsSize; i++)
     {
     nonCodingTypeIncludeCart[i] = cartUsualBoolean(cart, nonCodingTypeIncludeStrings[i], nonCodingTypeIncludeDefault[i]);
     cgiMakeCheckBox(nonCodingTypeIncludeStrings[i], nonCodingTypeIncludeCart[i]);
     printf(" %s", nonCodingTypeLabels[i]);
     }
 }
 
 void ensemblNonCodingUI(struct trackDb *tdb)
 /* Put up Ensembl Non-Coding genes-specific controls */
 {
 ensemblNonCodingTypeConfig(tdb);
 }
 
-void mrnaUi(struct trackDb *tdb, boolean isXeno)
-/* Put up UI for an mRNA (or EST) track. */
-{
-struct mrnaUiData *mud = newMrnaUiData(tdb->track, isXeno);
-struct mrnaFilter *fil;
-struct controlGrid *cg = NULL;
-char *filterTypeVar = mud->filterTypeVar;
-char *filterTypeVal = cartUsualString(cart, filterTypeVar, "red");
-char *logicTypeVar = mud->logicTypeVar;
-char *logicTypeVal = cartUsualString(cart, logicTypeVar, "and");
-
-/* Define type of filter. */
-filterButtons(filterTypeVar, filterTypeVal, FALSE);
-printf("  <B>Combination Logic:</B> ");
-radioButton(logicTypeVar, logicTypeVal, "and");
-radioButton(logicTypeVar, logicTypeVal, "or");
-printf("<BR>\n");
-
-/* List various fields you can filter on. */
-printf("<table border=0 cellspacing=1 cellpadding=1 width=%d>\n", CONTROL_TABLE_WIDTH);
-cg = startControlGrid(4, NULL);
-for (fil = mud->filterList; fil != NULL; fil = fil->next)
-    oneMrnaFilterUi(cg, fil->label, fil->key, cart);
-endControlGrid(&cg);
-baseColorDrawOptDropDown(cart, tdb);
-indelShowOptions(cart, tdb);
-}
-
-
 void transRegCodeUi(struct trackDb *tdb)
 /* Put up UI for transcriptional regulatory code - not
  * much more than score UI. */
 {
 printf("%s",
 	"<P>The scoring ranges from 0 to 1000 and is based on the number of lines "
 	"of evidence that support the motif being active.  Each of the two "
 	"<I>sensu stricto</I> species in which the motif was conserved counts "
 	"as a line of evidence.  If the ChIP-chip data showed good (P &le; 0.001) "
 	"evidence of binding to the transcription factor associated with the "
 	"motif, that counts as two lines of evidence.  If the ChIP-chip data "
 	"showed weaker (P &le; 0.005) evidence of binding, that counts as just one line "
 	"of evidence.  The following table shows the relationship between lines "
 	"of evidence and score:");
 printf("<P>");
@@ -2411,30 +2382,31 @@
         // TODO: use hTrackUiName()
         printf("<p><b>NOTE</b>: Early access to additional track data may be available on the <a target=_blank href='http://%s/cgi-bin/hgTrackUi?db=%s&g=%s'>Preview Browser</A>.",
             "genome-preview.ucsc.edu", db, tdb->track);
         }
     }
 }
 
 void specificUi(struct trackDb *tdb, struct trackDb *tdbList, struct customTrack *ct, boolean ajax)
 /* Draw track specific parts of UI. */
 {
 char *track = tdb->track;
 // Ideally check cfgTypeFromTdb()/cfgByCfgType() first, but with all these special cases already in
 //    place, lets be cautious at this time.
 // NOTE: Developer, please try to use cfgTypeFromTdb()/cfgByCfgType().
 
+boolean boxed = trackDbSettingClosestToHomeOn(tdb, "boxedCfg");
 // UI precedence:
 // 1) supers to get them out of the way: they have no controls
 // 2) special cases based upon track name (developer please avoid)
 // 3) cfgTypeFromTdb()/cfgByCfgType() <== prefered method
 // 4) special cases falling through the cracks but based upon type
 if (tdbIsSuperTrack(tdb))
     superTrackUi(tdb, tdbList);
 else if (sameString(track, "stsMap"))
     stsMapUi(tdb);
 else if (sameString(track, "affyTxnPhase2"))
     affyTxnPhase2Ui(tdb);
 else if (sameString(track, "cgapSage"))
     cgapSageUi(tdb);
 else if (sameString(track, "stsMapMouseNew"))
     stsMapMouseUi(tdb);
@@ -2474,41 +2446,30 @@
 else if (sameString(track, "omimLocation"))
     omimLocationUI(tdb);
 else if (sameString(track, "omimGene2"))
     omimGene2UI(tdb);
 else if (sameString(track, "omimGene"))
     omimGeneUI(tdb);
 else if (sameString(track, "hg17Kg"))
     hg17KgUI(tdb);
 else if (startsWith("ucscRetro", track)
      ||  startsWith("retroMrnaInfo", track))
     retroGeneUI(tdb);
 else if (sameString(track, "ensGeneNonCoding"))
     ensemblNonCodingUI(tdb);
 else if (sameString(track, "vegaGeneComposite"))
     vegaGeneUI(tdb);
-else if (sameString(track, "all_mrna")
-     ||  sameString(track, "mrna")
-     ||  sameString(track, "all_est")
-     ||  sameString(track, "est")
-     ||  sameString(track, "tightMrna")
-     ||  sameString(track, "tightEst")
-     ||  sameString(track, "intronEst"))
-    mrnaUi(tdb, FALSE);
-else if (sameString(track, "xenoMrna")
-     ||  sameString(track, "xenoEst"))
-    mrnaUi(tdb, TRUE);
 else if (sameString(track, "rosetta"))
     rosettaUi(tdb);
 else if (startsWith("blastDm", track))
     blastFBUi(tdb);
 else if (sameString(track, "blastSacCer1SG"))
     blastSGUi(tdb);
 else if (sameString(track, "blastHg17KG")
      ||  sameString(track, "blastHg16KG")
      ||  sameString(track, "blastCe3WB")
      ||  sameString(track, "blastHg18KG")
      ||  sameString(track, "blatzHg17KG")
      ||  startsWith("mrnaMap", track)
      ||  startsWith("mrnaXeno", track))
     blastUi(tdb);
 else if (sameString(track, "hgPcrResult"))
@@ -2554,37 +2515,46 @@
 else if (sameString(track, "oreganno"))
     oregannoUi(tdb);
 else if (startsWith("retroposons", track))
     retroposonsUi(tdb);
 else if (sameString(track, "tfbsConsSites"))
     tfbsConsSitesUi(tdb);
 else if (sameString(track, "CGHBreastCancerUCSF"))
     ucsfdemoUi(tdb);
 else if (startsWith("hapmapSnps", track))
     hapmapSnpsUi(tdb);
 else if (sameString(track, "switchDbTss"))
     switchDbScoreUi(tdb);
 else if (sameString(track, "dgv")
      || (startsWith("dgvV", track) && isdigit(track[4])))
     dgvUi(tdb);
+else if (sameString(track, "all_mrna")
+     ||  sameString(track, "mrna")
+     ||  sameString(track, "all_est")
+     ||  sameString(track, "est")
+     ||  sameString(track, "tightMrna")
+     ||  sameString(track, "tightEst")
+     ||  sameString(track, "intronEst")
+     ||  sameString(track, "xenoMrna")
+     ||  sameString(track, "xenoEst"))
+    mrnaCfgUi(cart, tdb, tdb->track, NULL, boxed);
 else if (tdb->type != NULL)
     {   // NOTE for developers: please avoid special cases and use cfgTypeFromTdb//cfgByCfgType()
         //  When you do, then multi-view cfg and subtrack cfg will work.
     eCfgType cType = cfgTypeFromTdb(tdb,FALSE);
     if (cType != cfgNone)
         {
-        boolean boxed = trackDbSettingClosestToHomeOn(tdb, "boxedCfg");
         cfgByCfgType(cType,database, cart, tdb,tdb->track, NULL, boxed);
         }
     // NOTE: these cases that fall through the cracks should probably get folded into cfgByCfgType()
     else if (startsWithWord("expRatio", tdb->type))
         expRatioUi(tdb);
     else if (startsWith("chromGraph", tdb->type))
         chromGraphUi(tdb);
     else if (startsWith("sample", tdb->type))
         genericWiggleUi(tdb,7);
     else if (startsWithWord("array",tdb->type)) /* not quite the same as an "expRatio" type (custom tracks) */
         expRatioCtUi(tdb);
     else if (startsWithWord("factorSource",tdb->type))
         factorSourceUi(database,tdb);
     }