🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@gmod/vcf

Package Overview
Dependencies
Maintainers
4
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gmod/vcf - npm Package Compare versions

Comparing version
7.0.4
to
7.0.5
+5
-37
dist/parse.d.ts
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;
}

@@ -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

@@ -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":";;AAGA,gDAkFC;AArFD;;GAEG;AACH,SAAgB,kBAAkB,CAChC,MAAc,EACd,OAAe,EACf,OAAiB;IAEjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAA2B,CAAA;IAE/D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAA;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAA;IACjC,MAAM,GAAG,GAAG,CAAC,CAAA;IACb,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,IAAI,GAAG,GAAG,CAAC,CAAA;IAEX,oCAAoC;IACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,GAAG,CAAA;YACjB,OAAO,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3D,GAAG,EAAE,CAAA;YACP,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACzD,GAAG,EAAE,CAAA;QACP,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,uCAAuC;IACvC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,GAAG,CAAA;YACjB,OACE,GAAG,GAAG,UAAU;gBAChB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK;gBACjC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,EAC/B,CAAC;gBACD,GAAG,EAAE,CAAA;YACP,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACzD,OAAO,GAAG,GAAG,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3D,GAAG,EAAE,CAAA;YACP,CAAC;YACD,GAAG,EAAE,CAAA;QACP,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACnC,UAAU,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IACD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,GAAG,CAAA;QACvB,IAAI,MAAM,GAAG,GAAG,CAAA;QAChB,OAAO,MAAM,GAAG,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;YACjE,MAAM,EAAE,CAAA;QACV,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,UAAU,GAAG,WAAW,CAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBACpD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC1B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;oBAC5D,MAAK;gBACP,CAAC;gBACD,MAAM,EAAE,CAAA;gBACR,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QACD,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
{"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;
};
}

@@ -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":"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"}
{"version":3,"file":"Variant.js","sourceRoot":"","sources":["../src/Variant.ts"],"names":[],"mappings":"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"}
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;
}

@@ -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 +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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"}

@@ -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;
};
}

@@ -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":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAIxD,MAAM,OAAO,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,SAAS,CAAC,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,kBAAkB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC3E,CAAC;IAED,gBAAgB,CAAC,QAA0B;QACzC,gBAAgB,CACd,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"}
{"version":3,"file":"Variant.js","sourceRoot":"","sources":["../src/Variant.ts"],"names":[],"mappings":"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"}
{
"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",

@@ -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"

@@ -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
}

@@ -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
}

@@ -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