5390b51b1beb4c37c736b3b910dce64f065892e2 angie Thu Sep 5 11:03:31 2013 -0700 VCF annoRows need to have corrected coords for indels, otherwise it messesup coord comparison in annoGrator. Also, that lets us get rid of the ugly skippedFirstBase hack in annoFormatVep and annoGratorGpVar. diff --git src/lib/annoStreamVcf.c src/lib/annoStreamVcf.c index 47f902e..2ed7b19 100644 --- src/lib/annoStreamVcf.c +++ src/lib/annoStreamVcf.c @@ -144,30 +144,31 @@ return NULL; char **words = nextRowUnfiltered(self, minChrom, minEnd); if (words == NULL) return NULL; // Skip past any left-join failures until we get a right-join failure, a passing row, or EOF. boolean rightFail = FALSE; while (annoFilterRowFails(sSelf->filters, words, self->numCols, &rightFail)) { if (rightFail) break; words = nextRowUnfiltered(self, minChrom, minEnd); if (words == NULL) return NULL; } struct vcfRecord *rec = self->record; +vcfRecordTrimIndelLeftBase(rec); char *chrom = getProperChromName(self, rec->chrom); self->recordCount++; return annoRowFromStringArray(chrom, rec->chromStart, rec->chromEnd, rightFail, words, self->numCols, callerLm); } static void asvClose(struct annoStreamer **pVSelf) /* Close VCF file and free self. */ { if (pVSelf == NULL) return; struct annoStreamVcf *self = *(struct annoStreamVcf **)pVSelf; vcfFileFree(&(self->vcff)); // Don't free self->record -- currently it belongs to vcff's localMem dyStringFree(&(self->dyGt));