src/hg/hgc/bamClick.c 1.11

1.11 2009/10/08 06:38:26 angie
Added support for bam as a custom track type.
Index: src/hg/hgc/bamClick.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/bamClick.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -b -B -U 4 -r1.10 -r1.11
--- src/hg/hgc/bamClick.c	24 Sep 2009 04:33:50 -0000	1.10
+++ src/hg/hgc/bamClick.c	8 Oct 2009 06:38:26 -0000	1.11
@@ -128,8 +128,10 @@
 
 void doBamDetails(struct trackDb *tdb, char *item)
 /* Show details of an alignment from a BAM file. */
 {
+if (item == NULL)
+    errAbort("doBamDetails: NULL item name");
 int start = cartInt(cart, "o");
 // TODO: libify tdb settings table_pairEndsByName, stripPrefix and pairSearchRange
 
 char varName[1024];
@@ -145,9 +147,17 @@
 
 bamIgnoreStrand();
 struct hash *pairHash = isPaired ? hashNew(0) : NULL;
 struct bamTrackData btd = {start, item, pairHash};
-char *fileName = bamFileNameFromTable(database, tdb->tableName, seqNameForBam);
+char *fileName;
+if (isCustomTrack(tdb->tableName))
+    {
+    fileName = trackDbSetting(tdb, "bigDataUrl");
+    if (fileName == NULL)
+	errAbort("doBamDetails: can't find bigDataUrl for custom track %s", tdb->tableName);
+    }
+else
+    fileName = bamFileNameFromTable(database, tdb->tableName, seqNameForBam);
 bamFetch(fileName, posForBam, oneBam, &btd);
 if (isPaired && hashNumEntries(pairHash) > 0)
     {
     char *setting = trackDbSettingOrDefault(tdb, "pairSearchRange", "1000");