0c1d13ef4e3214c4029e098ed5ef708d15e6096f
max
  Mon Nov 21 16:34:53 2016 -0800
CIRM: As per Jim: adding the trackDb tag 'bigDataIndex'. It allows to
specify the URL of the .tbi or .bai file, in case you cannot put it
alongside the .bam or .vcf.gz file.

diff --git src/hg/hgc/bamClick.c src/hg/hgc/bamClick.c
index b422978..f36eeaa 100644
--- src/hg/hgc/bamClick.c
+++ src/hg/hgc/bamClick.c
@@ -195,33 +195,34 @@
 char *fileName = hReplaceGbdb(trackDbSetting(tdb, "bigDataUrl"));
 if (fileName == NULL)
     {
     if (isCustomTrack(tdb->table))
 	{
 	errAbort("bamLoadItemsCore: can't find bigDataUrl for custom track %s", tdb->track);
 	}
     else
 	{
 	struct sqlConnection *conn = hAllocConnTrack(database, tdb);
 	fileName = hReplaceGbdb(bamFileNameFromTable(conn, tdb->table, seqName));
 	hFreeConn(&conn);
 	}
     }
 
+char *indexName = hReplaceGbdb(trackDbSetting(tdb, "bigDataIndex"));
 char *cacheDir =  cfgOption("cramRef");
 char *refUrl = trackDbSetting(tdb, "refUrl");
-bamFetchPlus(fileName, position, oneBam, &btd, NULL, refUrl, cacheDir);
+bamAndIndexFetchPlus(fileName, indexName, position, oneBam, &btd, NULL, refUrl, cacheDir);
 if (isPaired)
     {
     char *setting = trackDbSettingOrDefault(tdb, "pairSearchRange", "20000");
     int pairSearchRange = atoi(setting);
     if (pairSearchRange > 0 && hashNumEntries(pairHash) > 0)
 	{
 	// Repeat the search for item in a larger window:
 	struct hash *newPairHash = hashNew(0);
 	btd.pairHash = newPairHash;
 	safef(position, sizeof(position), "%s:%d-%d", seqName,
 	      max(0, winStart-pairSearchRange), winEnd+pairSearchRange);
 	bamFetch(fileName, position, oneBam, &btd, NULL);
 	}
     struct hashEl *hel;
     struct hashCookie cookie = hashFirst(btd.pairHash);