a1dcdda03cad5b931d17066789091a64f8dceca6 max Tue Nov 22 16:05:21 2016 -0800 adding bigDataIndex support to the table browser, refs #18420 diff --git src/hg/hgTables/bam.c src/hg/hgTables/bam.c index 44199fd..44d6322 100644 --- src/hg/hgTables/bam.c +++ src/hg/hgTables/bam.c @@ -162,31 +162,33 @@ fprintf(f, "# Filtering on %d columns\n", slCount(filter->columnList)); } } /* Loop through outputting each region */ struct region *region, *regionList = getRegions(); struct trackDb *tdb = findTdbForTable(db, curTrack, table, ctLookupName); int maxOut = bigFileMaxOutput(); char *cacheDir = cfgOption("cramRef"); char *refUrl = trackDbSetting(tdb, "refUrl"); for (region = regionList; region != NULL && (maxOut > 0); region = region->next) { struct lm *lm = lmInit(0); char *fileName = bamFileName(table, conn, region->chrom); - struct samAlignment *sam, *samList = bamFetchSamAlignmentPlus(fileName, region->chrom, + char *baiUrl = bigDataIndexFromCtOrHub(table, conn); + + struct samAlignment *sam, *samList = bamAndIndexFetchSamAlignmentPlus(fileName, baiUrl, region->chrom, region->start, region->end, lm, refUrl, cacheDir); char *row[SAMALIGNMENT_NUM_COLS]; char numBuf[BAM_NUM_BUF_SIZE]; for (sam = samList; sam != NULL && (maxOut > 0); sam = sam->next) { samAlignmentToRow(sam, numBuf, row); if (asFilterOnRow(filter, row)) { /* if we're looking for identifiers, check if this matches */ if ((idHash != NULL)&&(hashLookup(idHash, row[idFieldNum]) == NULL)) continue; int i; fprintf(f, "%s", row[columnArray[0]]); for (i=1; iformat.format == cram) { char *cacheDir = cfgOption("cramRef"); struct trackDb *tdb = findTdbForTable(database, curTrack, table, ctLookupName); char *refUrl = trackDbSetting(tdb, "refUrl"); cram_set_cache_url(fh, cacheDir, refUrl); } struct samAlignment *sam, *samList = bamReadNextSamAlignments(fh, header, orderedCount, lm);