+5
-37
| import { Variant } from './Variant.ts'; | ||
| import type { MetaField, MetaMap } from './parseInfo.ts'; | ||
| export { Variant } from './Variant.ts'; | ||
| /** | ||
| * Class representing a VCF parser, instantiated with the VCF header. | ||
| * | ||
| * @param {object} args | ||
| * | ||
| * @param {string} args.header - The VCF header. Supports both LF and CRLF | ||
| * newlines. | ||
| * | ||
| * @param {boolean} args.strict - Whether to parse in strict mode or not | ||
| * (default true) | ||
| */ | ||
| type Metadata = Record<string, MetaMap | MetaField | string | undefined>; | ||
| export default class VCFParser { | ||
@@ -22,30 +13,7 @@ private metadata; | ||
| }); | ||
| /** | ||
| * Parse a VCF metadata line (i.e. a line that starts with "##") and add its | ||
| * properties to the object. | ||
| * | ||
| * @param {string} line - A line from the VCF. Supports both LF and CRLF | ||
| * newlines. | ||
| */ | ||
| private parseMetadata; | ||
| /** | ||
| * Get metadata filtered by the elements in args. For example, can pass | ||
| * ('INFO', 'DP') to only get info on an metadata tag that was like | ||
| * "##INFO=<ID=DP,...>" | ||
| * | ||
| * @param {...string} args - List of metadata filter strings. | ||
| * | ||
| * @returns {any} An object, string, or number, depending on the filtering | ||
| */ | ||
| getMetadata(...args: string[]): unknown; | ||
| /** | ||
| * Parse a VCF line into a Variant object. | ||
| * | ||
| * The returned Variant has SAMPLES() and GENOTYPES() methods which are | ||
| * lazily evaluated to avoid parsing the potentially long list of samples from | ||
| * e.g. 1000 genotypes data unless requested. | ||
| * | ||
| * @param {string} line - A string of a line from a VCF | ||
| */ | ||
| getMetadata(): Metadata; | ||
| getMetadata(section: string): MetaMap | MetaField | string | undefined; | ||
| getMetadata(section: string, ...rest: string[]): unknown; | ||
| parseLine(line: string): Variant; | ||
| } |
+7
-45
@@ -12,13 +12,2 @@ "use strict"; | ||
| Object.defineProperty(exports, "Variant", { enumerable: true, get: function () { return Variant_ts_2.Variant; } }); | ||
| /** | ||
| * Class representing a VCF parser, instantiated with the VCF header. | ||
| * | ||
| * @param {object} args | ||
| * | ||
| * @param {string} args.header - The VCF header. Supports both LF and CRLF | ||
| * newlines. | ||
| * | ||
| * @param {boolean} args.strict - Whether to parse in strict mode or not | ||
| * (default true) | ||
| */ | ||
| class VCFParser { | ||
@@ -80,9 +69,2 @@ metadata; | ||
| } | ||
| /** | ||
| * Parse a VCF metadata line (i.e. a line that starts with "##") and add its | ||
| * properties to the object. | ||
| * | ||
| * @param {string} line - A line from the VCF. Supports both LF and CRLF | ||
| * newlines. | ||
| */ | ||
| parseMetadata(line) { | ||
@@ -96,15 +78,12 @@ const match = /^##(.+?)=(.*)/.exec(line.trim()); | ||
| if (metaVal?.startsWith('<')) { | ||
| if (!(r in this.metadata)) { | ||
| this.metadata[r] = {}; | ||
| } | ||
| const existing = this.metadata[r]; | ||
| const section = existing && typeof existing === 'object' ? existing : {}; | ||
| const [id, keyVals] = (0, parseMetaString_ts_1.parseStructuredMetaVal)(metaVal); | ||
| if (typeof id === 'string') { | ||
| // if there is an ID field in the <> metadata | ||
| // e.g. ##INFO=<ID=AF_ESP,...> | ||
| ; | ||
| this.metadata[r][id] = keyVals; | ||
| // ##INFO=<ID=AF_ESP,...> | ||
| section[id] = keyVals; | ||
| this.metadata[r] = section; | ||
| } | ||
| else { | ||
| // if there is not an ID field in the <> metadata | ||
| // e.g. ##ID=<Description="ClinVar Variation ID"> | ||
| // ##ID=<Description="ClinVar Variation ID"> | ||
| this.metadata[r] = keyVals; | ||
@@ -117,11 +96,2 @@ } | ||
| } | ||
| /** | ||
| * Get metadata filtered by the elements in args. For example, can pass | ||
| * ('INFO', 'DP') to only get info on an metadata tag that was like | ||
| * "##INFO=<ID=DP,...>" | ||
| * | ||
| * @param {...string} args - List of metadata filter strings. | ||
| * | ||
| * @returns {any} An object, string, or number, depending on the filtering | ||
| */ | ||
| getMetadata(...args) { | ||
@@ -140,11 +110,3 @@ let filteredMetadata = this.metadata; | ||
| } | ||
| /** | ||
| * Parse a VCF line into a Variant object. | ||
| * | ||
| * The returned Variant has SAMPLES() and GENOTYPES() methods which are | ||
| * lazily evaluated to avoid parsing the potentially long list of samples from | ||
| * e.g. 1000 genotypes data unless requested. | ||
| * | ||
| * @param {string} line - A string of a line from a VCF | ||
| */ | ||
| // SAMPLES() and GENOTYPES() on the returned Variant are lazily evaluated. | ||
| parseLine(line) { | ||
@@ -151,0 +113,0 @@ return new Variant_ts_1.Variant(line, this.metadata.INFO, this.metadata.FORMAT, this.samples, this.strict); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"} |
@@ -1,4 +0,1 @@ | ||
| /** | ||
| * Extracts genotype (GT) values from VCF sample data. | ||
| */ | ||
| export declare function parseGenotypesOnly(format: string, prerest: string, samples: string[]): Record<string, string>; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.parseGenotypesOnly = parseGenotypesOnly; | ||
| /** | ||
| * Extracts genotype (GT) values from VCF sample data. | ||
| */ | ||
| const processGenotypes_ts_1 = require("./processGenotypes.js"); | ||
| function parseGenotypesOnly(format, prerest, samples) { | ||
| const genotypes = Object.create(null); | ||
| const samplesLen = samples.length; | ||
| const prerestLen = prerest.length; | ||
| const TAB = 9; | ||
| const COLON = 58; | ||
| let pos = 0; | ||
| // Fast path: format is exactly "GT" | ||
| if (format === 'GT') { | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const start = pos; | ||
| while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) { | ||
| pos++; | ||
| } | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(start, pos); | ||
| pos++; | ||
| } | ||
| return genotypes; | ||
| } | ||
| // Check if GT field exists | ||
| const gtIdx = format.indexOf('GT'); | ||
| if (gtIdx === -1) { | ||
| return genotypes; | ||
| } | ||
| // GT is first field but not only field | ||
| if (gtIdx === 0) { | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const start = pos; | ||
| while (pos < prerestLen && | ||
| prerest.charCodeAt(pos) !== COLON && | ||
| prerest.charCodeAt(pos) !== TAB) { | ||
| pos++; | ||
| } | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(start, pos); | ||
| while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) { | ||
| pos++; | ||
| } | ||
| pos++; | ||
| } | ||
| return genotypes; | ||
| } | ||
| // GT is not first field | ||
| let colonCount = 0; | ||
| for (let j = 0; j < gtIdx; j++) { | ||
| if (format.charCodeAt(j) === COLON) { | ||
| colonCount++; | ||
| } | ||
| } | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const sampleStart = pos; | ||
| let tabIdx = pos; | ||
| while (tabIdx < prerestLen && prerest.charCodeAt(tabIdx) !== TAB) { | ||
| tabIdx++; | ||
| } | ||
| let colons = 0; | ||
| let fieldStart = sampleStart; | ||
| for (let j = sampleStart; j <= tabIdx; j++) { | ||
| if (j === tabIdx || prerest.charCodeAt(j) === COLON) { | ||
| if (colons === colonCount) { | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(fieldStart, j); | ||
| break; | ||
| } | ||
| colons++; | ||
| fieldStart = j + 1; | ||
| } | ||
| } | ||
| pos = tabIdx + 1; | ||
| } | ||
| (0, processGenotypes_ts_1.processGenotypes)(format, prerest, samples.length, (str, start, end, idx) => { | ||
| genotypes[samples[idx] ?? ''] = str.slice(start, end); | ||
| }); | ||
| return genotypes; | ||
| } | ||
| //# sourceMappingURL=parseGenotypesOnly.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parseGenotypesOnly.js","sourceRoot":"","sources":["../src/parseGenotypesOnly.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parseGenotypesOnly.js","sourceRoot":"","sources":["../src/parseGenotypesOnly.ts"],"names":[],"mappings":";;AAEA,gDAUC;AAZD,+DAAwD;AAExD,SAAgB,kBAAkB,CAChC,MAAc,EACd,OAAe,EACf,OAAiB;IAEjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAA2B,CAAA;IAC/D,IAAA,sCAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACzE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC"} |
@@ -1,3 +0,4 @@ | ||
| export declare function parseInfo(infoStr: string, infoMeta: Record<string, { | ||
| Type?: string; | ||
| }>): Record<string, unknown>; | ||
| export type MetaField = Record<string, string | string[] | number | null | undefined>; | ||
| export type MetaMap = Record<string, MetaField>; | ||
| export type InfoValue = true | (string | number | undefined)[]; | ||
| export declare function parseInfo(infoStr: string, infoMeta: MetaMap): Record<string, InfoValue>; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parseInfo.js","sourceRoot":"","sources":["../src/parseInfo.ts"],"names":[],"mappings":";;AAQA,8BAqCC;AA7CD,SAAS,yBAAyB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,SAAS,CACvB,OAAe,EACf,QAA2C;IAE3C,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;QAEpC,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO,CAAA;YAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAA;YAEhC,MAAM,KAAK,GAAoC,EAAE,CAAA;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"} | ||
| {"version":3,"file":"parseInfo.js","sourceRoot":"","sources":["../src/parseInfo.ts"],"names":[],"mappings":";;AAiBA,8BAqCC;AA/CD,SAAS,yBAAyB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAID,SAAgB,SAAS,CACvB,OAAe,EACf,QAAiB;IAEjB,MAAM,MAAM,GAA8B,EAAE,CAAA;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;QAEpC,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO,CAAA;YAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAA;YAEhC,MAAM,KAAK,GAAoC,EAAE,CAAA;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"} |
| export declare function parseStructuredMetaVal(metaVal: string): readonly [string | number | string[] | undefined, Record<string, string | number | string[]>]; | ||
| export declare function parseMetaString(metaString: string): { | ||
| [k: string]: string | string[]; | ||
| }; | ||
| export declare function parseMetaString(metaString: string): Record<string, string | string[]>; |
@@ -57,23 +57,20 @@ "use strict"; | ||
| const parts = customSplit(inside); | ||
| const entries = []; | ||
| const result = {}; | ||
| for (const f of parts) { | ||
| const [key, val] = splitFirst(f, '='); | ||
| if (val && val.startsWith('[') && val.endsWith(']')) { | ||
| entries.push([ | ||
| key, | ||
| val | ||
| .slice(1, -1) | ||
| .split(',') | ||
| .map(s => s.trim()), | ||
| ]); | ||
| result[key] = val | ||
| .slice(1, -1) | ||
| .split(',') | ||
| .map(s => s.trim()); | ||
| } | ||
| else if (val && val.startsWith('"') && val.endsWith('"')) { | ||
| entries.push([key, val.slice(1, -1)]); | ||
| result[key] = val.slice(1, -1); | ||
| } | ||
| else { | ||
| entries.push([key, val]); | ||
| result[key] = val; | ||
| } | ||
| } | ||
| return Object.fromEntries(entries); | ||
| return result; | ||
| } | ||
| //# sourceMappingURL=parseMetaString.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parseMetaString.js","sourceRoot":"","sources":["../src/parseMetaString.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parseMetaString.js","sourceRoot":"","sources":["../src/parseMetaString.ts"],"names":[],"mappings":";;AAsCA,wDAYC;AAED,0CAkBC;AAtED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,QAAQ,GAAG,CAAC,QAAQ,CAAA;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,UAAU,GAAG,IAAI,CAAA;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,UAAU,GAAG,KAAK,CAAA;YAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAClC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,KAAa;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAU,CAAA;AAC7D,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAe;IACpD,MAAM,OAAO,GACX,eAAe,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;IACrB,OAAO,OAAO,CAAC,EAAE,CAAA;IACjB,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,EAAE,EAAE,OAAO,CAAU,CAAA;AAC/B,CAAC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,MAAM,GAAsC,EAAE,CAAA;IACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACrC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG;iBACd,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACZ,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"} |
@@ -0,2 +1,6 @@ | ||
| import type { InfoValue, MetaMap } from './parseInfo.ts'; | ||
| import type { GenotypeCallback } from './processGenotypes.ts'; | ||
| export type SampleValue = (string | number | undefined)[] | undefined; | ||
| export type SampleData = Record<string, SampleValue>; | ||
| export type Samples = Record<string, SampleData>; | ||
| export declare class Variant { | ||
@@ -10,3 +14,3 @@ CHROM: string | undefined; | ||
| FILTER: string | string[] | undefined; | ||
| INFO: Record<string, unknown>; | ||
| INFO: Record<string, InfoValue>; | ||
| FORMAT: string | undefined; | ||
@@ -16,8 +20,4 @@ private formatMeta; | ||
| private sampleNames; | ||
| constructor(line: string, infoMeta: Record<string, { | ||
| Type?: string; | ||
| }>, formatMeta: Record<string, { | ||
| Type?: string; | ||
| }>, sampleNames: string[], strict: boolean); | ||
| SAMPLES(): Record<string, Record<string, (string | number | undefined)[] | undefined>>; | ||
| constructor(line: string, infoMeta: MetaMap, formatMeta: MetaMap, sampleNames: string[], strict: boolean); | ||
| SAMPLES(): Samples; | ||
| GENOTYPES(): Record<string, string>; | ||
@@ -33,5 +33,5 @@ processGenotypes(callback: GenotypeCallback): void; | ||
| FILTER: string | string[] | undefined; | ||
| INFO: Record<string, unknown>; | ||
| INFO: Record<string, InfoValue>; | ||
| FORMAT: string | undefined; | ||
| }; | ||
| } |
+3
-2
@@ -75,5 +75,6 @@ "use strict"; | ||
| if (j === sampleStrLen || sampleStr[j] === ':') { | ||
| const key = formatKeys[colIdx] ?? ''; | ||
| const val = sampleStr.slice(colStart, j); | ||
| if (val === '' || val === '.') { | ||
| sampleData[formatKeys[colIdx] ?? ''] = undefined; | ||
| sampleData[key] = undefined; | ||
| } | ||
@@ -89,3 +90,3 @@ else { | ||
| } | ||
| sampleData[formatKeys[colIdx] ?? ''] = result; | ||
| sampleData[key] = result; | ||
| } | ||
@@ -92,0 +93,0 @@ colStart = j + 1; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Variant.js","sourceRoot":"","sources":["../src/Variant.ts"],"names":[],"mappings":";;;AAAA,mEAA4D;AAC5D,iDAA0C;AAC1C,+DAAwD;AAIxD,MAAa,OAAO;IAClB,KAAK,CAAoB;IACzB,GAAG,CAAQ;IACX,EAAE,CAAsB;IACxB,GAAG,CAAoB;IACvB,GAAG,CAAsB;IACzB,IAAI,CAAoB;IACxB,MAAM,CAA+B;IACrC,IAAI,CAAyB;IAC7B,MAAM,CAAoB;IAElB,UAAU,CAAmC;IAC7C,IAAI,CAAQ;IACZ,WAAW,CAAU;IAE7B,YACE,IAAY,EACZ,QAA2C,EAC3C,UAA6C,EAC7C,WAAqB,EACrB,MAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,OAAO,QAAQ,GAAG,OAAO,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,QAAQ,IAAI,CAAC,CAAA;YACf,CAAC;YACD,QAAQ,IAAI,CAAC,CAAA;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;QACvD,MAAM,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAE9D,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAA;QACH,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QAC5E,IAAI,CAAC,IAAI;YACP,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;gBAC1C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAA,wBAAS,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAEvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,OAAO;QACL,MAAM,SAAS,GAAG,EAGjB,CAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACpC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACtC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAA;gBAClC,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,OAAO,CAAA;YACzC,CAAC,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAA;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBACxC,MAAM,UAAU,GAGZ,EAAE,CAAA;gBACN,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC/B,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAA;gBACrC,IAAI,QAAQ,GAAG,CAAC,CAAA;gBAChB,IAAI,MAAM,GAAG,CAAC,CAAA;gBAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,CAAC,KAAK,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC/C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;wBACxC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;4BAC9B,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;wBAClD,CAAC;6BAAM,CAAC;4BACN,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;4BAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAA;4BAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;4BAClC,MAAM,MAAM,GAAoC,EAAE,CAAA;4BAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gCAClC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gCAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;4BAC3D,CAAC;4BACD,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAA;wBAC/C,CAAC;wBACD,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;wBAChB,MAAM,IAAI,CAAC,CAAA;wBACX,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;4BACtB,MAAK;wBACP,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,CAAA;YAChC,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAA,0CAAkB,EAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC3E,CAAC;IAED,gBAAgB,CAAC,QAA0B;QACzC,IAAA,sCAAgB,EACd,IAAI,CAAC,MAAM,IAAI,EAAE,EACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,CAAC,MAAM,EACvB,QAAQ,CACT,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF;AA9ID,0BA8IC"} | ||
| {"version":3,"file":"Variant.js","sourceRoot":"","sources":["../src/Variant.ts"],"names":[],"mappings":"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"} |
+5
-37
| import { Variant } from './Variant.ts'; | ||
| import type { MetaField, MetaMap } from './parseInfo.ts'; | ||
| export { Variant } from './Variant.ts'; | ||
| /** | ||
| * Class representing a VCF parser, instantiated with the VCF header. | ||
| * | ||
| * @param {object} args | ||
| * | ||
| * @param {string} args.header - The VCF header. Supports both LF and CRLF | ||
| * newlines. | ||
| * | ||
| * @param {boolean} args.strict - Whether to parse in strict mode or not | ||
| * (default true) | ||
| */ | ||
| type Metadata = Record<string, MetaMap | MetaField | string | undefined>; | ||
| export default class VCFParser { | ||
@@ -22,30 +13,7 @@ private metadata; | ||
| }); | ||
| /** | ||
| * Parse a VCF metadata line (i.e. a line that starts with "##") and add its | ||
| * properties to the object. | ||
| * | ||
| * @param {string} line - A line from the VCF. Supports both LF and CRLF | ||
| * newlines. | ||
| */ | ||
| private parseMetadata; | ||
| /** | ||
| * Get metadata filtered by the elements in args. For example, can pass | ||
| * ('INFO', 'DP') to only get info on an metadata tag that was like | ||
| * "##INFO=<ID=DP,...>" | ||
| * | ||
| * @param {...string} args - List of metadata filter strings. | ||
| * | ||
| * @returns {any} An object, string, or number, depending on the filtering | ||
| */ | ||
| getMetadata(...args: string[]): unknown; | ||
| /** | ||
| * Parse a VCF line into a Variant object. | ||
| * | ||
| * The returned Variant has SAMPLES() and GENOTYPES() methods which are | ||
| * lazily evaluated to avoid parsing the potentially long list of samples from | ||
| * e.g. 1000 genotypes data unless requested. | ||
| * | ||
| * @param {string} line - A string of a line from a VCF | ||
| */ | ||
| getMetadata(): Metadata; | ||
| getMetadata(section: string): MetaMap | MetaField | string | undefined; | ||
| getMetadata(section: string, ...rest: string[]): unknown; | ||
| parseLine(line: string): Variant; | ||
| } |
+7
-45
@@ -5,13 +5,2 @@ import { Variant } from "./Variant.js"; | ||
| export { Variant } from "./Variant.js"; | ||
| /** | ||
| * Class representing a VCF parser, instantiated with the VCF header. | ||
| * | ||
| * @param {object} args | ||
| * | ||
| * @param {string} args.header - The VCF header. Supports both LF and CRLF | ||
| * newlines. | ||
| * | ||
| * @param {boolean} args.strict - Whether to parse in strict mode or not | ||
| * (default true) | ||
| */ | ||
| export default class VCFParser { | ||
@@ -73,9 +62,2 @@ metadata; | ||
| } | ||
| /** | ||
| * Parse a VCF metadata line (i.e. a line that starts with "##") and add its | ||
| * properties to the object. | ||
| * | ||
| * @param {string} line - A line from the VCF. Supports both LF and CRLF | ||
| * newlines. | ||
| */ | ||
| parseMetadata(line) { | ||
@@ -89,15 +71,12 @@ const match = /^##(.+?)=(.*)/.exec(line.trim()); | ||
| if (metaVal?.startsWith('<')) { | ||
| if (!(r in this.metadata)) { | ||
| this.metadata[r] = {}; | ||
| } | ||
| const existing = this.metadata[r]; | ||
| const section = existing && typeof existing === 'object' ? existing : {}; | ||
| const [id, keyVals] = parseStructuredMetaVal(metaVal); | ||
| if (typeof id === 'string') { | ||
| // if there is an ID field in the <> metadata | ||
| // e.g. ##INFO=<ID=AF_ESP,...> | ||
| ; | ||
| this.metadata[r][id] = keyVals; | ||
| // ##INFO=<ID=AF_ESP,...> | ||
| section[id] = keyVals; | ||
| this.metadata[r] = section; | ||
| } | ||
| else { | ||
| // if there is not an ID field in the <> metadata | ||
| // e.g. ##ID=<Description="ClinVar Variation ID"> | ||
| // ##ID=<Description="ClinVar Variation ID"> | ||
| this.metadata[r] = keyVals; | ||
@@ -110,11 +89,2 @@ } | ||
| } | ||
| /** | ||
| * Get metadata filtered by the elements in args. For example, can pass | ||
| * ('INFO', 'DP') to only get info on an metadata tag that was like | ||
| * "##INFO=<ID=DP,...>" | ||
| * | ||
| * @param {...string} args - List of metadata filter strings. | ||
| * | ||
| * @returns {any} An object, string, or number, depending on the filtering | ||
| */ | ||
| getMetadata(...args) { | ||
@@ -133,11 +103,3 @@ let filteredMetadata = this.metadata; | ||
| } | ||
| /** | ||
| * Parse a VCF line into a Variant object. | ||
| * | ||
| * The returned Variant has SAMPLES() and GENOTYPES() methods which are | ||
| * lazily evaluated to avoid parsing the potentially long list of samples from | ||
| * e.g. 1000 genotypes data unless requested. | ||
| * | ||
| * @param {string} line - A string of a line from a VCF | ||
| */ | ||
| // SAMPLES() and GENOTYPES() on the returned Variant are lazily evaluated. | ||
| parseLine(line) { | ||
@@ -144,0 +106,0 @@ return new Variant(line, this.metadata.INFO, this.metadata.FORMAT, this.samples, this.strict); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"} |
@@ -1,4 +0,1 @@ | ||
| /** | ||
| * Extracts genotype (GT) values from VCF sample data. | ||
| */ | ||
| export declare function parseGenotypesOnly(format: string, prerest: string, samples: string[]): Record<string, string>; |
@@ -1,74 +0,9 @@ | ||
| /** | ||
| * Extracts genotype (GT) values from VCF sample data. | ||
| */ | ||
| import { processGenotypes } from "./processGenotypes.js"; | ||
| export function parseGenotypesOnly(format, prerest, samples) { | ||
| const genotypes = Object.create(null); | ||
| const samplesLen = samples.length; | ||
| const prerestLen = prerest.length; | ||
| const TAB = 9; | ||
| const COLON = 58; | ||
| let pos = 0; | ||
| // Fast path: format is exactly "GT" | ||
| if (format === 'GT') { | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const start = pos; | ||
| while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) { | ||
| pos++; | ||
| } | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(start, pos); | ||
| pos++; | ||
| } | ||
| return genotypes; | ||
| } | ||
| // Check if GT field exists | ||
| const gtIdx = format.indexOf('GT'); | ||
| if (gtIdx === -1) { | ||
| return genotypes; | ||
| } | ||
| // GT is first field but not only field | ||
| if (gtIdx === 0) { | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const start = pos; | ||
| while (pos < prerestLen && | ||
| prerest.charCodeAt(pos) !== COLON && | ||
| prerest.charCodeAt(pos) !== TAB) { | ||
| pos++; | ||
| } | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(start, pos); | ||
| while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) { | ||
| pos++; | ||
| } | ||
| pos++; | ||
| } | ||
| return genotypes; | ||
| } | ||
| // GT is not first field | ||
| let colonCount = 0; | ||
| for (let j = 0; j < gtIdx; j++) { | ||
| if (format.charCodeAt(j) === COLON) { | ||
| colonCount++; | ||
| } | ||
| } | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const sampleStart = pos; | ||
| let tabIdx = pos; | ||
| while (tabIdx < prerestLen && prerest.charCodeAt(tabIdx) !== TAB) { | ||
| tabIdx++; | ||
| } | ||
| let colons = 0; | ||
| let fieldStart = sampleStart; | ||
| for (let j = sampleStart; j <= tabIdx; j++) { | ||
| if (j === tabIdx || prerest.charCodeAt(j) === COLON) { | ||
| if (colons === colonCount) { | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(fieldStart, j); | ||
| break; | ||
| } | ||
| colons++; | ||
| fieldStart = j + 1; | ||
| } | ||
| } | ||
| pos = tabIdx + 1; | ||
| } | ||
| processGenotypes(format, prerest, samples.length, (str, start, end, idx) => { | ||
| genotypes[samples[idx] ?? ''] = str.slice(start, end); | ||
| }); | ||
| return genotypes; | ||
| } | ||
| //# sourceMappingURL=parseGenotypesOnly.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parseGenotypesOnly.js","sourceRoot":"","sources":["../src/parseGenotypesOnly.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parseGenotypesOnly.js","sourceRoot":"","sources":["../src/parseGenotypesOnly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,OAAe,EACf,OAAiB;IAEjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAA2B,CAAA;IAC/D,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACzE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC"} |
@@ -1,3 +0,4 @@ | ||
| export declare function parseInfo(infoStr: string, infoMeta: Record<string, { | ||
| Type?: string; | ||
| }>): Record<string, unknown>; | ||
| export type MetaField = Record<string, string | string[] | number | null | undefined>; | ||
| export type MetaMap = Record<string, MetaField>; | ||
| export type InfoValue = true | (string | number | undefined)[]; | ||
| export declare function parseInfo(infoStr: string, infoMeta: MetaMap): Record<string, InfoValue>; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parseInfo.js","sourceRoot":"","sources":["../src/parseInfo.ts"],"names":[],"mappings":"AAAA,SAAS,yBAAyB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,OAAe,EACf,QAA2C;IAE3C,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;QAEpC,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO,CAAA;YAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAA;YAEhC,MAAM,KAAK,GAAoC,EAAE,CAAA;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"} | ||
| {"version":3,"file":"parseInfo.js","sourceRoot":"","sources":["../src/parseInfo.ts"],"names":[],"mappings":"AAOA,SAAS,yBAAyB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAID,MAAM,UAAU,SAAS,CACvB,OAAe,EACf,QAAiB;IAEjB,MAAM,MAAM,GAA8B,EAAE,CAAA;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;QAEpC,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO,CAAA;YAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAA;YAEhC,MAAM,KAAK,GAAoC,EAAE,CAAA;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"} |
| export declare function parseStructuredMetaVal(metaVal: string): readonly [string | number | string[] | undefined, Record<string, string | number | string[]>]; | ||
| export declare function parseMetaString(metaString: string): { | ||
| [k: string]: string | string[]; | ||
| }; | ||
| export declare function parseMetaString(metaString: string): Record<string, string | string[]>; |
@@ -53,23 +53,20 @@ function customSplit(str) { | ||
| const parts = customSplit(inside); | ||
| const entries = []; | ||
| const result = {}; | ||
| for (const f of parts) { | ||
| const [key, val] = splitFirst(f, '='); | ||
| if (val && val.startsWith('[') && val.endsWith(']')) { | ||
| entries.push([ | ||
| key, | ||
| val | ||
| .slice(1, -1) | ||
| .split(',') | ||
| .map(s => s.trim()), | ||
| ]); | ||
| result[key] = val | ||
| .slice(1, -1) | ||
| .split(',') | ||
| .map(s => s.trim()); | ||
| } | ||
| else if (val && val.startsWith('"') && val.endsWith('"')) { | ||
| entries.push([key, val.slice(1, -1)]); | ||
| result[key] = val.slice(1, -1); | ||
| } | ||
| else { | ||
| entries.push([key, val]); | ||
| result[key] = val; | ||
| } | ||
| } | ||
| return Object.fromEntries(entries); | ||
| return result; | ||
| } | ||
| //# sourceMappingURL=parseMetaString.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parseMetaString.js","sourceRoot":"","sources":["../src/parseMetaString.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parseMetaString.js","sourceRoot":"","sources":["../src/parseMetaString.ts"],"names":[],"mappings":"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"} |
+8
-8
@@ -0,2 +1,6 @@ | ||
| import type { InfoValue, MetaMap } from './parseInfo.ts'; | ||
| import type { GenotypeCallback } from './processGenotypes.ts'; | ||
| export type SampleValue = (string | number | undefined)[] | undefined; | ||
| export type SampleData = Record<string, SampleValue>; | ||
| export type Samples = Record<string, SampleData>; | ||
| export declare class Variant { | ||
@@ -10,3 +14,3 @@ CHROM: string | undefined; | ||
| FILTER: string | string[] | undefined; | ||
| INFO: Record<string, unknown>; | ||
| INFO: Record<string, InfoValue>; | ||
| FORMAT: string | undefined; | ||
@@ -16,8 +20,4 @@ private formatMeta; | ||
| private sampleNames; | ||
| constructor(line: string, infoMeta: Record<string, { | ||
| Type?: string; | ||
| }>, formatMeta: Record<string, { | ||
| Type?: string; | ||
| }>, sampleNames: string[], strict: boolean); | ||
| SAMPLES(): Record<string, Record<string, (string | number | undefined)[] | undefined>>; | ||
| constructor(line: string, infoMeta: MetaMap, formatMeta: MetaMap, sampleNames: string[], strict: boolean); | ||
| SAMPLES(): Samples; | ||
| GENOTYPES(): Record<string, string>; | ||
@@ -33,5 +33,5 @@ processGenotypes(callback: GenotypeCallback): void; | ||
| FILTER: string | string[] | undefined; | ||
| INFO: Record<string, unknown>; | ||
| INFO: Record<string, InfoValue>; | ||
| FORMAT: string | undefined; | ||
| }; | ||
| } |
+3
-2
@@ -72,5 +72,6 @@ import { parseGenotypesOnly } from "./parseGenotypesOnly.js"; | ||
| if (j === sampleStrLen || sampleStr[j] === ':') { | ||
| const key = formatKeys[colIdx] ?? ''; | ||
| const val = sampleStr.slice(colStart, j); | ||
| if (val === '' || val === '.') { | ||
| sampleData[formatKeys[colIdx] ?? ''] = undefined; | ||
| sampleData[key] = undefined; | ||
| } | ||
@@ -86,3 +87,3 @@ else { | ||
| } | ||
| sampleData[formatKeys[colIdx] ?? ''] = result; | ||
| sampleData[key] = result; | ||
| } | ||
@@ -89,0 +90,0 @@ colStart = j + 1; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Variant.js","sourceRoot":"","sources":["../src/Variant.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"Variant.js","sourceRoot":"","sources":["../src/Variant.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@gmod/vcf", | ||
| "version": "7.0.4", | ||
| "version": "7.0.5", | ||
| "description": "High performance streaming Variant Call Format (VCF) parser in pure JavaScript", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+1
-1
@@ -62,3 +62,3 @@ # vcf-js | ||
| let homRef = 0 | ||
| variant.processGenotypes((str, start, end) => { | ||
| variant.processGenotypes((str, start, end, sampleIdx) => { | ||
| if ( | ||
@@ -65,0 +65,0 @@ end - start === 3 && // e.g. "0|0" |
+19
-48
@@ -5,17 +5,10 @@ import { Variant } from './Variant.ts' | ||
| import type { MetaField, MetaMap } from './parseInfo.ts' | ||
| export { Variant } from './Variant.ts' | ||
| /** | ||
| * Class representing a VCF parser, instantiated with the VCF header. | ||
| * | ||
| * @param {object} args | ||
| * | ||
| * @param {string} args.header - The VCF header. Supports both LF and CRLF | ||
| * newlines. | ||
| * | ||
| * @param {boolean} args.strict - Whether to parse in strict mode or not | ||
| * (default true) | ||
| */ | ||
| type Metadata = Record<string, MetaMap | MetaField | string | undefined> | ||
| export default class VCFParser { | ||
| private metadata: Record<string, unknown> | ||
| private metadata: Metadata | ||
| public strict: boolean | ||
@@ -79,9 +72,2 @@ public samples: string[] | ||
| /** | ||
| * Parse a VCF metadata line (i.e. a line that starts with "##") and add its | ||
| * properties to the object. | ||
| * | ||
| * @param {string} line - A line from the VCF. Supports both LF and CRLF | ||
| * newlines. | ||
| */ | ||
| private parseMetadata(line: string) { | ||
@@ -95,13 +81,12 @@ const match = /^##(.+?)=(.*)/.exec(line.trim()) | ||
| if (metaVal?.startsWith('<')) { | ||
| if (!(r in this.metadata)) { | ||
| this.metadata[r] = {} | ||
| } | ||
| const existing = this.metadata[r] | ||
| const section: MetaMap = | ||
| existing && typeof existing === 'object' ? (existing as MetaMap) : {} | ||
| const [id, keyVals] = parseStructuredMetaVal(metaVal) | ||
| if (typeof id === 'string') { | ||
| // if there is an ID field in the <> metadata | ||
| // e.g. ##INFO=<ID=AF_ESP,...> | ||
| ;(this.metadata[r] as Record<string, unknown>)[id] = keyVals | ||
| // ##INFO=<ID=AF_ESP,...> | ||
| section[id] = keyVals | ||
| this.metadata[r] = section | ||
| } else { | ||
| // if there is not an ID field in the <> metadata | ||
| // e.g. ##ID=<Description="ClinVar Variation ID"> | ||
| // ##ID=<Description="ClinVar Variation ID"> | ||
| this.metadata[r] = keyVals | ||
@@ -114,12 +99,6 @@ } | ||
| /** | ||
| * Get metadata filtered by the elements in args. For example, can pass | ||
| * ('INFO', 'DP') to only get info on an metadata tag that was like | ||
| * "##INFO=<ID=DP,...>" | ||
| * | ||
| * @param {...string} args - List of metadata filter strings. | ||
| * | ||
| * @returns {any} An object, string, or number, depending on the filtering | ||
| */ | ||
| getMetadata(...args: string[]) { | ||
| getMetadata(): Metadata | ||
| getMetadata(section: string): MetaMap | MetaField | string | undefined | ||
| getMetadata(section: string, ...rest: string[]): unknown | ||
| getMetadata(...args: string[]): unknown { | ||
| let filteredMetadata: unknown = this.metadata | ||
@@ -138,16 +117,8 @@ for (const arg of args) { | ||
| /** | ||
| * Parse a VCF line into a Variant object. | ||
| * | ||
| * The returned Variant has SAMPLES() and GENOTYPES() methods which are | ||
| * lazily evaluated to avoid parsing the potentially long list of samples from | ||
| * e.g. 1000 genotypes data unless requested. | ||
| * | ||
| * @param {string} line - A string of a line from a VCF | ||
| */ | ||
| // SAMPLES() and GENOTYPES() on the returned Variant are lazily evaluated. | ||
| parseLine(line: string) { | ||
| return new Variant( | ||
| line, | ||
| this.metadata.INFO as Record<string, { Type?: string }>, | ||
| this.metadata.FORMAT as Record<string, { Type?: string }>, | ||
| this.metadata.INFO as MetaMap, | ||
| this.metadata.FORMAT as MetaMap, | ||
| this.samples, | ||
@@ -154,0 +125,0 @@ this.strict, |
@@ -1,4 +0,3 @@ | ||
| /** | ||
| * Extracts genotype (GT) values from VCF sample data. | ||
| */ | ||
| import { processGenotypes } from './processGenotypes.ts' | ||
| export function parseGenotypesOnly( | ||
@@ -10,78 +9,6 @@ format: string, | ||
| const genotypes = Object.create(null) as Record<string, string> | ||
| const samplesLen = samples.length | ||
| const prerestLen = prerest.length | ||
| const TAB = 9 | ||
| const COLON = 58 | ||
| let pos = 0 | ||
| // Fast path: format is exactly "GT" | ||
| if (format === 'GT') { | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const start = pos | ||
| while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) { | ||
| pos++ | ||
| } | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(start, pos) | ||
| pos++ | ||
| } | ||
| return genotypes | ||
| } | ||
| // Check if GT field exists | ||
| const gtIdx = format.indexOf('GT') | ||
| if (gtIdx === -1) { | ||
| return genotypes | ||
| } | ||
| // GT is first field but not only field | ||
| if (gtIdx === 0) { | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const start = pos | ||
| while ( | ||
| pos < prerestLen && | ||
| prerest.charCodeAt(pos) !== COLON && | ||
| prerest.charCodeAt(pos) !== TAB | ||
| ) { | ||
| pos++ | ||
| } | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(start, pos) | ||
| while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) { | ||
| pos++ | ||
| } | ||
| pos++ | ||
| } | ||
| return genotypes | ||
| } | ||
| // GT is not first field | ||
| let colonCount = 0 | ||
| for (let j = 0; j < gtIdx; j++) { | ||
| if (format.charCodeAt(j) === COLON) { | ||
| colonCount++ | ||
| } | ||
| } | ||
| for (let idx = 0; idx < samplesLen; idx++) { | ||
| const sampleStart = pos | ||
| let tabIdx = pos | ||
| while (tabIdx < prerestLen && prerest.charCodeAt(tabIdx) !== TAB) { | ||
| tabIdx++ | ||
| } | ||
| let colons = 0 | ||
| let fieldStart = sampleStart | ||
| for (let j = sampleStart; j <= tabIdx; j++) { | ||
| if (j === tabIdx || prerest.charCodeAt(j) === COLON) { | ||
| if (colons === colonCount) { | ||
| genotypes[samples[idx] ?? ''] = prerest.slice(fieldStart, j) | ||
| break | ||
| } | ||
| colons++ | ||
| fieldStart = j + 1 | ||
| } | ||
| } | ||
| pos = tabIdx + 1 | ||
| } | ||
| processGenotypes(format, prerest, samples.length, (str, start, end, idx) => { | ||
| genotypes[samples[idx] ?? ''] = str.slice(start, end) | ||
| }) | ||
| return genotypes | ||
| } |
+12
-3
@@ -0,1 +1,8 @@ | ||
| export type MetaField = Record< | ||
| string, | ||
| string | string[] | number | null | undefined | ||
| > | ||
| export type MetaMap = Record<string, MetaField> | ||
| function decodeURIComponentNoThrow(uri: string) { | ||
@@ -9,7 +16,9 @@ try { | ||
| export type InfoValue = true | (string | number | undefined)[] | ||
| export function parseInfo( | ||
| infoStr: string, | ||
| infoMeta: Record<string, { Type?: string }>, | ||
| ) { | ||
| const result: Record<string, unknown> = {} | ||
| infoMeta: MetaMap, | ||
| ): Record<string, InfoValue> { | ||
| const result: Record<string, InfoValue> = {} | ||
| const hasDecode = infoStr.includes('%') | ||
@@ -16,0 +25,0 @@ const infoPairs = infoStr.split(';') |
@@ -56,20 +56,17 @@ function customSplit(str: string) { | ||
| const parts = customSplit(inside) | ||
| const entries: [string, string | string[]][] = [] | ||
| const result: Record<string, string | string[]> = {} | ||
| for (const f of parts) { | ||
| const [key, val] = splitFirst(f, '=') | ||
| if (val && val.startsWith('[') && val.endsWith(']')) { | ||
| entries.push([ | ||
| key, | ||
| val | ||
| .slice(1, -1) | ||
| .split(',') | ||
| .map(s => s.trim()), | ||
| ]) | ||
| result[key] = val | ||
| .slice(1, -1) | ||
| .split(',') | ||
| .map(s => s.trim()) | ||
| } else if (val && val.startsWith('"') && val.endsWith('"')) { | ||
| entries.push([key, val.slice(1, -1)]) | ||
| result[key] = val.slice(1, -1) | ||
| } else { | ||
| entries.push([key, val]) | ||
| result[key] = val | ||
| } | ||
| } | ||
| return Object.fromEntries(entries) | ||
| return result | ||
| } |
+15
-15
@@ -5,4 +5,9 @@ import { parseGenotypesOnly } from './parseGenotypesOnly.ts' | ||
| import type { InfoValue, MetaMap } from './parseInfo.ts' | ||
| import type { GenotypeCallback } from './processGenotypes.ts' | ||
| export type SampleValue = (string | number | undefined)[] | undefined | ||
| export type SampleData = Record<string, SampleValue> | ||
| export type Samples = Record<string, SampleData> | ||
| export class Variant { | ||
@@ -16,6 +21,6 @@ CHROM: string | undefined | ||
| FILTER: string | string[] | undefined | ||
| INFO: Record<string, unknown> | ||
| INFO: Record<string, InfoValue> | ||
| FORMAT: string | undefined | ||
| private formatMeta: Record<string, { Type?: string }> | ||
| private formatMeta: MetaMap | ||
| private rest: string | ||
@@ -26,4 +31,4 @@ private sampleNames: string[] | ||
| line: string, | ||
| infoMeta: Record<string, { Type?: string }>, | ||
| formatMeta: Record<string, { Type?: string }>, | ||
| infoMeta: MetaMap, | ||
| formatMeta: MetaMap, | ||
| sampleNames: string[], | ||
@@ -71,7 +76,4 @@ strict: boolean, | ||
| SAMPLES() { | ||
| const genotypes = {} as Record< | ||
| string, | ||
| Record<string, (string | number | undefined)[] | undefined> | ||
| > | ||
| SAMPLES(): Samples { | ||
| const genotypes: Samples = {} | ||
| const format = this.FORMAT | ||
@@ -89,6 +91,3 @@ if (format) { | ||
| const sample = this.sampleNames[i] ?? '' | ||
| const sampleData: Record< | ||
| string, | ||
| (string | number | undefined)[] | undefined | ||
| > = {} | ||
| const sampleData: SampleData = {} | ||
| const sampleStr = rest[i] ?? '' | ||
@@ -101,5 +100,6 @@ const sampleStrLen = sampleStr.length | ||
| if (j === sampleStrLen || sampleStr[j] === ':') { | ||
| const key = formatKeys[colIdx] ?? '' | ||
| const val = sampleStr.slice(colStart, j) | ||
| if (val === '' || val === '.') { | ||
| sampleData[formatKeys[colIdx] ?? ''] = undefined | ||
| sampleData[key] = undefined | ||
| } else { | ||
@@ -114,3 +114,3 @@ const items = val.split(',') | ||
| } | ||
| sampleData[formatKeys[colIdx] ?? ''] = result | ||
| sampleData[key] = result | ||
| } | ||
@@ -117,0 +117,0 @@ colStart = j + 1 |
162304
-8.35%3496
-9.76%