04a89671eb368a9fac4b5b1999ff4b55b13337a8 angie Tue Sep 17 07:17:49 2013 -0700 Yikes, when querying at the cart position instead of the whole genome,annoStreamVcf was skipping rows that it shouldn't have! diff --git src/lib/annoStreamVcf.c src/lib/annoStreamVcf.c index 2ed7b19..6626be4 100644 --- src/lib/annoStreamVcf.c +++ src/lib/annoStreamVcf.c @@ -114,31 +114,31 @@ regionStart = minEnd; regionEnd = annoAssemblySeqSize(sSelf->assembly, minChrom); } else { regionStart = max(regionStart, minEnd); } } char **words = nextRowRaw(self); if (regionChrom != NULL && words != NULL) { if (self->isTabix && strcmp(getProperChromName(self, words[0]), regionChrom) < 0) lineFileSetTabixRegion(self->vcff->lf, regionChrom, regionStart, regionEnd); while (words != NULL && (strcmp(getProperChromName(self, words[0]), regionChrom) < 0 || - (sameString(words[0], regionChrom) && self->record->chromEnd < regionEnd))) + (sameString(words[0], regionChrom) && self->record->chromEnd < regionStart))) words = nextRowRaw(self); } return words; } static struct annoRow *asvNextRow(struct annoStreamer *sSelf, char *minChrom, uint minEnd, struct lm *callerLm) /* Return an annoRow encoding the next VCF record, or NULL if there are no more items. */ { struct annoStreamVcf *self = (struct annoStreamVcf *)sSelf; if (minChrom != NULL && sSelf->chrom != NULL && differentString(minChrom, sSelf->chrom)) errAbort("annoStreamVcf %s: nextRow minChrom='%s' but region chrom='%s'", sSelf->name, minChrom, sSelf->chrom); if (self->maxRecords > 0 && self->recordCount >= self->maxRecords) return NULL;