dc6005af50417e5d8dfc693aa133afdd7079acdc kent Thu Feb 3 13:44:57 2011 -0800 Adding bam support to data hubs in hgTracks and hgc. diff --git src/hg/hgc/bamClick.c src/hg/hgc/bamClick.c index a02a019..0015d36 100644 --- src/hg/hgc/bamClick.c +++ src/hg/hgc/bamClick.c @@ -169,43 +169,45 @@ #if (defined USE_BAM && defined KNETFILE_HOOKS) knetUdcInstall(); if (udcCacheTimeout() < 300) udcSetCacheTimeout(300); #endif//def USE_BAM && KNETFILE_HOOKS char varName[1024]; safef(varName, sizeof(varName), "%s_pairEndsByName", tdb->track); boolean isPaired = cartUsualBoolean(cart, varName, (trackDbSetting(tdb, "pairEndsByName") != NULL)); char position[512]; safef(position, sizeof(position), "%s:%d-%d", seqName, winStart, winEnd); struct hash *pairHash = isPaired ? hashNew(0) : NULL; struct bamTrackData btd = {start, item, pairHash}; -char *fileName; +char *fileName = trackDbSetting(tdb, "bigDataUrl"); +if (fileName == NULL) + { if (isCustomTrack(tdb->table)) { - fileName = trackDbSetting(tdb, "bigDataUrl"); - if (fileName == NULL) - errAbort("doBamDetails: can't find bigDataUrl for custom track %s", tdb->track); + 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); 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); } struct hashEl *hel;