src/hg/hgTrackUi/hgTrackUi.c 1.517

1.517 2010/03/25 17:32:12 angie
Moving bam configuration code from hgTrackUi to hui to support bam in multi-view composites.
Index: src/hg/hgTrackUi/hgTrackUi.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTrackUi/hgTrackUi.c,v
retrieving revision 1.516
retrieving revision 1.517
diff -b -B -U 4 -r1.516 -r1.517
--- src/hg/hgTrackUi/hgTrackUi.c	8 Mar 2010 19:47:41 -0000	1.516
+++ src/hg/hgTrackUi/hgTrackUi.c	25 Mar 2010 17:32:12 -0000	1.517
@@ -34,12 +34,8 @@
 #include "pcrResult.h"
 #include "dgv.h"
 #include "transMapStuff.h"
 
-#ifdef USE_BAM
-#include "bamFile.h"
-#endif
-
 #define MAIN_FORM "mainForm"
 #define WIGGLE_HELP_PAGE  "../goldenPath/help/hgWiggleTrackHelp.html"
 
 static char const rcsid[] = "$Id$";
@@ -2150,104 +2146,8 @@
 cgiMakeCheckboxGroupWithVals(cartVarName, labelArr, valueArr, refCount, checked, 4);
 hFreeConn(&conn);
 }
 
-#ifdef USE_BAM
-static char *grayLabels[] =
-    { "alignment quality",
-      "base qualities",
-      "unpaired ends",
-    };
-static char *grayValues[] =
-    { BAM_GRAY_MODE_ALI_QUAL,
-      BAM_GRAY_MODE_BASE_QUAL,
-      BAM_GRAY_MODE_UNPAIRED,
-    };
-
-// When a child input of a radio set is changed, click its radio button:
-#define UPDATE_RADIO_FORMAT "%s=\"\
-    var inputs = document.getElementsByName('%s'); \
-    if (inputs) { \
-      for (var i=0; i < inputs.length; i++) { \
-        if (inputs[i].type == 'radio') { \
-          inputs[i].checked = (inputs[i].value == '%s'); \
-        } \
-      } \
-    }\""
-
-void bamUi(struct trackDb *tdb, struct customTrack *ct)
-/* BAM: short-read-oriented alignment file format. */
-{
-char cartVarName[1024];
-puts("<BR>");
-printf("<B>Display read names:</B>\n");
-char *tdbShowNames = trackDbSetting(tdb, BAM_SHOW_NAMES);
-safef(cartVarName, sizeof(cartVarName), "%s.%s", tdb->tableName, BAM_SHOW_NAMES);
-cartMakeCheckBox(cart, cartVarName, !sameOk(tdbShowNames, "off"));
-boolean canPair = (trackDbSetting(tdb, BAM_PAIR_ENDS_BY_NAME) != NULL);
-puts("<BR>");
-if (canPair)
-    {
-    printf("<B>Attempt to join paired end reads by name:</B>\n");
-    safef(cartVarName, sizeof(cartVarName), "%s." BAM_PAIR_ENDS_BY_NAME, tdb->tableName);
-    cartMakeCheckBox(cart, cartVarName, TRUE);
-    puts("<BR>");
-    }
-printf("<B>Minimum alignment quality:</B>\n");
-safef(cartVarName, sizeof(cartVarName), "%s." BAM_MIN_ALI_QUAL, tdb->tableName);
-cartMakeIntVar(cart, cartVarName,
-	       atoi(trackDbSettingOrDefault(tdb, BAM_MIN_ALI_QUAL, BAM_MIN_ALI_QUAL_DEFAULT)), 4);
-puts("<BR>");
-if (ct)
-    {
-    // Auto-magic baseColor defaults for BAM, same as in hgTracks.c newCustomTrack
-    hashAdd(tdb->settingsHash, BASE_COLOR_USE_SEQUENCE, cloneString("lfExtra"));
-    hashAdd(tdb->settingsHash, BASE_COLOR_DEFAULT, cloneString("diffBases"));
-    hashAdd(tdb->settingsHash, SHOW_DIFF_BASES_ALL_SCALES, cloneString("."));
-    hashAdd(tdb->settingsHash, "showDiffBasesMaxZoom", cloneString("100"));
-    }
-baseColorDrawOptDropDown(cart, tdb);
-printf("<BR>\n");
-printf("<B>Additional coloring modes:</B><BR>\n");
-safef(cartVarName, sizeof(cartVarName), "%s." BAM_COLOR_MODE, tdb->tableName);
-char *selected = cartUsualString(cart, cartVarName,
-				 trackDbSettingOrDefault(tdb, BAM_COLOR_MODE, BAM_COLOR_MODE_DEFAULT));
-cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_STRAND, sameString(selected, BAM_COLOR_MODE_STRAND));
-printf("Color by strand (blue for +, red for -)<BR>\n");
-cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_GRAY, sameString(selected, BAM_COLOR_MODE_GRAY));
-printf("Use gray for\n");
-char cartVarName2[1024];
-safef(cartVarName2, sizeof(cartVarName2), "%s." BAM_GRAY_MODE, tdb->tableName);
-int grayMenuSize = canPair ? ArraySize(grayLabels) : ArraySize(grayLabels)-1;
-char *sel2 = cartUsualString(cart, cartVarName2,
-			     trackDbSettingOrDefault(tdb, BAM_GRAY_MODE, BAM_GRAY_MODE_DEFAULT));
-char onChange[2048];
-safef(onChange, sizeof(onChange), UPDATE_RADIO_FORMAT,
-      "onChange", cartVarName, BAM_COLOR_MODE_GRAY);
-cgiMakeDropListFull(cartVarName2, grayLabels, grayValues, grayMenuSize, sel2, onChange);
-printf("<BR>\n");
-cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_TAG, sameString(selected, BAM_COLOR_MODE_TAG));
-printf("Use R,G,B colors specified in user-defined tag ");
-safef(cartVarName2, sizeof(cartVarName2), "%s." BAM_COLOR_TAG, tdb->tableName);
-sel2 = cartUsualString(cart, cartVarName2,
-		       trackDbSettingOrDefault(tdb, BAM_COLOR_TAG, BAM_COLOR_TAG_DEFAULT));
-safef(onChange, sizeof(onChange), UPDATE_RADIO_FORMAT,
-      "onkeypress", cartVarName, BAM_COLOR_MODE_TAG);
-cgiMakeTextVarWithExtraHtml(cartVarName2, sel2, 30, onChange);
-printf("<BR>\n");
-cgiMakeRadioButton(cartVarName, BAM_COLOR_MODE_OFF, sameString(selected, BAM_COLOR_MODE_OFF));
-printf("No additional coloring<BR>\n");
-
-//TODO: include / exclude flags
-
-if (fileExists(hHelpFile("hgBamTrackHelp")))
-    printf("<P><A HREF=\"../goldenPath/help/hgBamTrackHelp.html\" TARGET=_BLANK>BAM "
-	   "configuration help</A></P>");
-
-}
-#endif//def USE_BAM
-
-
 void superTrackUi(struct trackDb *superTdb)
 /* List tracks in this collection, with visibility controls and UI links */
 {
 struct trackDb *tdb;
@@ -2438,9 +2338,9 @@
 else if (sameString(track, "dgv") || (startsWith("dgvV", track) && isdigit(track[4])))
     dgvUi(tdb);
 #ifdef USE_BAM
 else if (sameString(tdb->type, "bam"))
-    bamUi(tdb, ct);
+    bamCfgUi(cart, tdb, track, NULL, FALSE);
 #endif
 else if (tdb->type != NULL)
     {
     /* handle all tracks with type genePred or bed or "psl xeno <otherDb>" */