a1dcdda03cad5b931d17066789091a64f8dceca6 max Tue Nov 22 16:05:21 2016 -0800 adding bigDataIndex support to the table browser, refs #18420 diff --git src/hg/lib/hgBam.c src/hg/lib/hgBam.c index de360f1..5e0ac5d 100644 --- src/hg/lib/hgBam.c +++ src/hg/lib/hgBam.c @@ -175,38 +175,45 @@ sam->qual = lmCloneStringZ(lm, bamQual, core->l_qseq); addToChars(sam->qual, core->l_qseq, 33); } dyStringClear(dy); bamUnpackAux(bam, dy); sam->tagTypeVals = lmCloneStringZ(lm, dy->string, dy->stringSize); slAddHead(&helper->samList, sam); return 0; } struct samAlignment *bamFetchSamAlignmentPlus(char *fileOrUrl, char *chrom, int start, int end, struct lm *lm, char *refUrl, char *cacheDir) /* Fetch region as a list of samAlignments - which is more or less an unpacked * bam record. Results is allocated out of lm, since it tends to be large... */ { +return bamAndIndexFetchSamAlignmentPlus(fileOrUrl, NULL, chrom, start, end, lm, refUrl, cacheDir); +} + +struct samAlignment *bamAndIndexFetchSamAlignmentPlus(char *fileOrUrl, char *baiUrl, char *chrom, int start, int end, + struct lm *lm, char *refUrl, char *cacheDir) +/* Like bamFetchSamAlignmentPlus but can specify bai index file url in addition to the bam file */ +{ struct bamToSamHelper helper; helper.lm = lm; helper.chrom = chrom; helper.dy = dyStringNew(0); helper.samList = NULL; char posForBam[256]; safef(posForBam, sizeof(posForBam), "%s:%d-%d", chrom, start+1, end); -bamFetchPlus(fileOrUrl, posForBam, bamAddOneSamAlignment, &helper, &helper.samFile, +bamAndIndexFetchPlus(fileOrUrl, baiUrl, posForBam, bamAddOneSamAlignment, &helper, &helper.samFile, refUrl, cacheDir); dyStringFree(&helper.dy); slReverse(&helper.samList); return helper.samList; } struct samAlignment *bamFetchSamAlignment(char *fileOrUrl, char *chrom, int start, int end, struct lm *lm) /* Fetch region as a list of samAlignments - which is more or less an unpacked * bam record. Results is allocated out of lm, since it tends to be large... */ { return bamFetchSamAlignmentPlus(fileOrUrl, chrom, start, end, lm, NULL, NULL); } struct samAlignment *bamReadNextSamAlignments(samfile_t *fh, bam_hdr_t *header, int count, struct lm *lm)