7898951baf0f75614898e4d6ff735c444f46cbb5 angie Wed Oct 5 11:25:44 2011 -0700 Fixed an incorrect regex substr index for VCF FILTER or ALT header defs. diff --git src/lib/vcf.c src/lib/vcf.c index 0b8bc81..26ad918 100644 --- src/lib/vcf.c +++ src/lib/vcf.c @@ -302,34 +302,34 @@ else def->fieldCount = atoi(line + substrs[3].rm_so); def->type = vcfInfoTypeFromSubstr(vcff, line, substrs[4]); def->description = vcfFileCloneSubstr(vcff, line, substrs[5]); slAddHead((isInfo ? &(vcff->infoDefs) : &(vcff->gtFormatDefs)), def); } else vcfFileErr(vcff, "##%s line does not match expected pattern /%s/: \"%s\"", (isInfo ? "INFO" : "FORMAT"), infoOrFormatRegex, line); } else if (startsWith("##FILTER=", line) || startsWith("##ALT=", line)) { boolean isFilter = startsWith("##FILTER", line); if (regexMatchSubstr(line, filterOrAltRegex, substrs, ArraySize(substrs))) { - // substrs[2] is ID/key, substrs[3] is Description. + // substrs[2] is ID/key, substrs[4] is Description. struct vcfInfoDef *def = vcfFileAlloc(vcff, sizeof(struct vcfInfoDef)); def->key = vcfFileCloneSubstr(vcff, line, substrs[2]); - def->description = vcfFileCloneSubstr(vcff, line, substrs[3]); + def->description = vcfFileCloneSubstr(vcff, line, substrs[4]); slAddHead((isFilter ? &(vcff->filterDefs) : &(vcff->altDefs)), def); } else vcfFileErr(vcff, "##%s line does not match expected pattern /%s/: \"%s\"", (isFilter ? "FILTER" : "ALT"), filterOrAltRegex, line); } } static void expectColumnName2(struct vcfFile *vcff, char *exp1, char *exp2, char *words[], int ix) /* Every file must include a header naming the columns, though most column names are * fixed; make sure the names of fixed columns are as expected. */ { if (! sameString(exp1, words[ix])) { if (exp2 == NULL)