68fcd621c19e5dc8d6c6cbea81229f9a33781483 kent Wed Apr 13 14:26:35 2016 -0700 Relaxing checking of ID symbols in INFO and FORMAT metadata lines of VCF files. diff --git src/lib/vcf.c src/lib/vcf.c index cfbee9a..91e3eb3 100644 --- src/lib/vcf.c +++ src/lib/vcf.c @@ -252,31 +252,31 @@ return vcfInfoFloat; if (sameString("Flag", typeWord)) return vcfInfoFlag; if (sameString("Character", typeWord)) return vcfInfoCharacter; if (sameString("String", typeWord)) return vcfInfoString; vcfFileErr(vcff, "Unrecognized type word \"%s\" in metadata line \"%s\"", typeWord, line); return vcfInfoString; } // Regular expressions to check format and extract information from header lines: static const char *fileformatRegex = "^##(file)?format=VCFv([0-9]+)(\\.([0-9]+))?$"; static const char *infoOrFormatRegex = "^##(INFO|FORMAT)=" - "<ID=([A-Za-z0-9_:-]+)," + "<ID=([\\.+A-Za-z0-9_:-]+)," "Number=(\\.|A|G|[0-9-]+)," "Type=([A-Za-z]+)," "Description=\"?(.*)\"?>$"; static const char *filterOrAltRegex = "^##(FILTER|ALT)=" "<ID=([^,]+)," "(Description|Type)=\"?(.*)\"?>$"; // VCF version 3.3 was different enough to warrant separate regexes: static const char *infoOrFormatRegex3_3 = "^##(INFO|FORMAT)=" "([A-Za-z0-9_:-]+)," "(\\.|A|G|[0-9-]+)," "([A-Za-z]+)," "\"?(.*)\"?$"; static const char *filterRegex3_3 =