7f5b0b5cf3ed7efc0f9e84aa5bdcc097473c7584
kent
  Thu Feb 3 21:18:16 2011 -0800
Some preliminary work putting proper bam support in table browser.  Still quite a ways to go, but have implemented a way to get a list of alignments in 'sam' format out of a BAM.  This I think contains all the info.
diff --git src/hg/hgc/bamClick.c src/hg/hgc/bamClick.c
index 0015d36..24cdd72 100644
--- src/hg/hgc/bamClick.c
+++ src/hg/hgc/bamClick.c
@@ -184,43 +184,43 @@
 char *fileName = 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 = bamFileNameFromTable(conn, tdb->table, seqName);
 	hFreeConn(&conn);
 	}
     }
 
-bamFetch(fileName, position, oneBam, &btd);
+bamFetch(fileName, position, oneBam, &btd, NULL);
 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);
+	bamFetch(fileName, position, oneBam, &btd, NULL);
 	}
     struct hashEl *hel;
     struct hashCookie cookie = hashFirst(btd.pairHash);
     while ((hel = hashNext(&cookie)) != NULL)
 	{
 	bam1_t *bam = hel->val;
 	const bam1_core_t *core = &bam->core;
 	if (! (core->flag & BAM_FMUNMAP))
 	    printf("<B>Note: </B>unable to find paired end for %s "
 		   "within +-%d bases of viewing window %s<BR>\n",
 		   item, pairSearchRange, addCommasToPos(database, cartString(cart, "position")));
 	else
 	    printf("<B>Paired read name:</B> %s<BR>\n", item);
 	singleBamDetails(bam);
 	}