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); }