dc6005af50417e5d8dfc693aa133afdd7079acdc
kent
  Thu Feb 3 13:44:57 2011 -0800
Adding bam support to data hubs in hgTracks and hgc.
diff --git src/hg/hgTracks/bamTrack.c src/hg/hgTracks/bamTrack.c
index 5a8b4d6..4061197 100644
--- src/hg/hgTracks/bamTrack.c
+++ src/hg/hgTracks/bamTrack.c
@@ -452,43 +452,44 @@
 
 void bamLoadItemsCore(struct track *tg, boolean isPaired)
 /* Load BAM data into tg->items item list, unless zoomed out so far
  * that the data would just end up in dense mode and be super-slow. */
 {
 struct hash *pairHash = isPaired ? hashNew(18) : NULL;
 int minAliQual = atoi(cartOrTdbString(cart, tg->tdb, BAM_MIN_ALI_QUAL, BAM_MIN_ALI_QUAL_DEFAULT));
 char *colorMode = cartOrTdbString(cart, tg->tdb, BAM_COLOR_MODE, BAM_COLOR_MODE_DEFAULT);
 char *grayMode = cartOrTdbString(cart, tg->tdb, BAM_GRAY_MODE, BAM_GRAY_MODE_DEFAULT);
 char *userTag = cartOrTdbString(cart, tg->tdb, BAM_COLOR_TAG, BAM_COLOR_TAG_DEFAULT);
 int aliQualShadeMin = 0, aliQualShadeMax = 99, baseQualShadeMin = 0, baseQualShadeMax = 40;
 parseIntRangeSetting(tg->tdb, "aliQualRange", &aliQualShadeMin, &aliQualShadeMax);
 parseIntRangeSetting(tg->tdb, "baseQualRange", &baseQualShadeMin, &baseQualShadeMax);
 struct bamTrackData btd = {tg, pairHash, minAliQual, colorMode, grayMode, userTag,
 			   aliQualShadeMin, aliQualShadeMax, baseQualShadeMin, baseQualShadeMax};
-char *fileName;
+char *fileName = trackDbSetting(tg->tdb, "bigDataUrl");
+if (fileName == NULL)
+    {
 if (tg->customPt)
     {
-    fileName = trackDbSetting(tg->tdb, "bigDataUrl");
-    if (fileName == NULL)
 	errAbort("bamLoadItemsCore: can't find bigDataUrl for custom track %s", tg->track);
     }
 else
     {
     struct sqlConnection *conn = hAllocConnTrack(database, tg->tdb);
     fileName = bamFileNameFromTable(conn, tg->table, chromName);
     hFreeConn(&conn);
     }
+    }
 
 char posForBam[512];
 safef(posForBam, sizeof(posForBam), "%s:%d-%d", chromName, winStart, winEnd);
 if (!isPaired)
     bamFetch(fileName, posForBam, addBam, &btd);
 else
     {
     char *setting = trackDbSettingClosestToHomeOrDefault(tg->tdb, "pairSearchRange", "20000");
     int pairSearchRange = atoi(setting);
     if (pairSearchRange > 0)
 	safef(posForBam, sizeof(posForBam), "%s:%d-%d", chromName,
 	      max(0, winStart-pairSearchRange), winEnd+pairSearchRange);
     bamFetch(fileName, posForBam, addBamPaired, &btd);
     struct hashEl *hel;
     struct hashCookie cookie = hashFirst(btd.pairHash);