🚀 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.0
to
7.0.1
+1
-1
dist/parse.d.ts

@@ -49,3 +49,3 @@ import { Variant } from './Variant.ts';

*/
getMetadata(...args: string[]): any;
getMetadata(...args: string[]): unknown;
/**

@@ -52,0 +52,0 @@ * Parse a VCF line into a Variant object.

@@ -41,3 +41,3 @@ "use strict";

for (let i = 0; i < headerLines.length; i++) {
const line = headerLines[i];
const line = headerLines[i] ?? '';
if (!line.startsWith('#')) {

@@ -89,4 +89,4 @@ throw new Error(`Bad line in header:\n${line}`);

}
const [metaKey, metaVal] = match.slice(1, 3);
const r = metaKey;
const r = match[1] ?? '';
const metaVal = match[2];
if (metaVal?.startsWith('<')) {

@@ -97,3 +97,3 @@ if (!(r in this.metadata)) {

const [id, keyVals] = this.parseStructuredMetaVal(metaVal);
if (id) {
if (typeof id === 'string') {
// if there is an ID field in the <> metadata

@@ -147,3 +147,6 @@ // e.g. ##INFO=<ID=AF_ESP,...>

for (let i = 0; i < argsLen; i++) {
filteredMetadata = filteredMetadata[args[i]];
if (typeof filteredMetadata !== 'object' || filteredMetadata === null) {
return undefined;
}
filteredMetadata = filteredMetadata[args[i] ?? ''];
if (!filteredMetadata) {

@@ -150,0 +153,0 @@ return filteredMetadata;

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

@@ -18,5 +18,3 @@ "use strict";

let MatePosition;
const tokensLen = tokens.length;
for (let i = 0; i < tokensLen; i++) {
const tok = tokens[i];
for (const tok of tokens) {
if (tok) {

@@ -62,3 +60,3 @@ if (tok.includes(':')) {

MateDirection: 'right',
MatePosition: `<${res[1]}>:1`,
MatePosition: `<${res[1] ?? ''}>:1`,
}

@@ -78,3 +76,3 @@ : undefined;

MateDirection: 'right',
MatePosition: `<${res[2]}>:1`,
MatePosition: `<${res[2] ?? ''}>:1`,
}

@@ -81,0 +79,0 @@ : undefined;

@@ -1,1 +0,1 @@

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

@@ -21,3 +21,3 @@ "use strict";

}
genotypes[samples[idx]] = prerest.slice(start, pos);
genotypes[samples[idx] ?? ''] = prerest.slice(start, pos);
pos++;

@@ -41,3 +41,3 @@ }

}
genotypes[samples[idx]] = prerest.slice(start, pos);
genotypes[samples[idx] ?? ''] = prerest.slice(start, pos);
while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) {

@@ -68,3 +68,3 @@ pos++;

if (colons === colonCount) {
genotypes[samples[idx]] = prerest.slice(fieldStart, j);
genotypes[samples[idx] ?? ''] = prerest.slice(fieldStart, j);
break;

@@ -71,0 +71,0 @@ }

@@ -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":"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"}
export declare function parseMetaString(metaString: string): {
[k: string]: any;
[k: string]: string | string[];
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseMetaString = parseMetaString;
// constructed with the assistance of claude AI
//
// I first prompted it with a regex that splits a comma separated string with
// awareness of quotation from this stackoverflow question
// https://stackoverflow.com/a/18893443/2129219, and asked it to add support
// for square brackets
//
// it undid the regex into serial logic and the result was this function
function customSplit(str) {

@@ -19,3 +11,3 @@ const result = [];

for (let i = 0; i < strLen; i++) {
const char = str[i];
const char = str[i] ?? '';
if (char === '"') {

@@ -54,11 +46,12 @@ inQuotes = !inQuotes;

const entries = [];
for (let i = 0; i < parts.length; i++) {
const f = parts[i];
for (const f of parts) {
const [key, val] = splitFirst(f, '=');
if (val && val.startsWith('[') && val.endsWith(']')) {
const items = val.slice(1, -1).split(',');
for (let j = 0; j < items.length; j++) {
items[j] = items[j].trim();
}
entries.push([key, items]);
entries.push([
key,
val
.slice(1, -1)
.split(',')
.map(s => s.trim()),
]);
}

@@ -65,0 +58,0 @@ else if (val && val.startsWith('"') && val.endsWith('"')) {

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

@@ -5,3 +5,3 @@ /**

*/
export type GenotypeCallback = (str: string, start: number, end: number) => any;
export type GenotypeCallback = (str: string, start: number, end: number) => unknown;
/**

@@ -8,0 +8,0 @@ * Process genotypes by calling a callback for each one, avoiding intermediate

@@ -1,1 +0,1 @@

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

@@ -29,3 +29,3 @@ "use strict";

const [CHROM, POS, ID, REF, ALT, QUAL, FILTER] = fields;
const filter = FILTER === '.' ? undefined : FILTER.split(';');
const filter = FILTER === '.' ? undefined : FILTER?.split(';');
if (strict && !fields[7]) {

@@ -35,7 +35,8 @@ throw new Error("no INFO field specified, must contain at least a '.' (turn off strict mode to allow)");

this.CHROM = CHROM;
this.POS = +POS;
this.ID = ID === '.' ? undefined : ID.split(';');
this.POS = POS !== undefined ? +POS : 0;
this.ID = ID === '.' ? undefined : ID?.split(';');
this.REF = REF;
this.ALT = ALT === '.' ? undefined : ALT.split(',');
this.QUAL = QUAL === '.' ? undefined : +QUAL;
this.ALT = ALT === '.' ? undefined : ALT?.split(',');
this.QUAL =
QUAL === '.' ? undefined : QUAL !== undefined ? +QUAL : undefined;
this.FILTER = filter?.length === 1 && filter[0] === 'PASS' ? 'PASS' : filter;

@@ -57,3 +58,3 @@ this.INFO =

for (let i = 0; i < pairsLen; i++) {
const pair = infoPairs[i];
const pair = infoPairs[i] ?? '';
const eqIdx = pair.indexOf('=');

@@ -73,29 +74,14 @@ const key = eqIdx === -1 ? pair : pair.slice(0, eqIdx);

const itemsLen = rawItems.length;
if (hasDecode) {
const items = [];
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j];
if (v === '.') {
items.push(undefined);
}
else {
const decoded = decodeURIComponentNoThrow(v);
items.push(isNumber ? Number(decoded) : decoded);
}
const items = [];
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j] ?? '';
if (v === '.') {
items.push(undefined);
}
result[key] = items;
}
else {
const items = [];
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j];
if (v === '.') {
items.push(undefined);
}
else {
items.push(isNumber ? Number(v) : v);
}
else {
const w = hasDecode ? decodeURIComponentNoThrow(v) : v;
items.push(isNumber ? Number(w) : w);
}
result[key] = items;
}
result[key] = items;
}

@@ -113,3 +99,3 @@ }

for (let i = 0; i < formatKeys.length; i++) {
const r = this.formatMeta[formatKeys[i]]?.Type;
const r = this.formatMeta[formatKeys[i] ?? '']?.Type;
isNumberType.push(r === 'Integer' || r === 'Float');

@@ -120,5 +106,5 @@ }

for (let i = 0; i < samplesLen; i++) {
const sample = this.sampleNames[i];
const sample = this.sampleNames[i] ?? '';
const sampleData = {};
const sampleStr = rest[i];
const sampleStr = rest[i] ?? '';
const sampleStrLen = sampleStr.length;

@@ -131,3 +117,3 @@ let colStart = 0;

if (val === '' || val === '.') {
sampleData[formatKeys[colIdx]] = undefined;
sampleData[formatKeys[colIdx] ?? ''] = undefined;
}

@@ -139,3 +125,3 @@ else {

for (let k = 0; k < items.length; k++) {
const ent = items[k];
const ent = items[k] ?? '';
result.push(ent === '.' ? undefined : +ent);

@@ -146,7 +132,7 @@ }

for (let k = 0; k < items.length; k++) {
const ent = items[k];
const ent = items[k] ?? '';
result.push(ent === '.' ? undefined : ent);
}
}
sampleData[formatKeys[colIdx]] = result;
sampleData[formatKeys[colIdx] ?? ''] = result;
}

@@ -153,0 +139,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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"}

@@ -49,3 +49,3 @@ import { Variant } from './Variant.ts';

*/
getMetadata(...args: string[]): any;
getMetadata(...args: string[]): unknown;
/**

@@ -52,0 +52,0 @@ * Parse a VCF line into a Variant object.

@@ -34,3 +34,3 @@ import { Variant } from "./Variant.js";

for (let i = 0; i < headerLines.length; i++) {
const line = headerLines[i];
const line = headerLines[i] ?? '';
if (!line.startsWith('#')) {

@@ -82,4 +82,4 @@ throw new Error(`Bad line in header:\n${line}`);

}
const [metaKey, metaVal] = match.slice(1, 3);
const r = metaKey;
const r = match[1] ?? '';
const metaVal = match[2];
if (metaVal?.startsWith('<')) {

@@ -90,3 +90,3 @@ if (!(r in this.metadata)) {

const [id, keyVals] = this.parseStructuredMetaVal(metaVal);
if (id) {
if (typeof id === 'string') {
// if there is an ID field in the <> metadata

@@ -140,3 +140,6 @@ // e.g. ##INFO=<ID=AF_ESP,...>

for (let i = 0; i < argsLen; i++) {
filteredMetadata = filteredMetadata[args[i]];
if (typeof filteredMetadata !== 'object' || filteredMetadata === null) {
return undefined;
}
filteredMetadata = filteredMetadata[args[i] ?? ''];
if (!filteredMetadata) {

@@ -143,0 +146,0 @@ return filteredMetadata;

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

@@ -15,5 +15,3 @@ const ANGLE_BRACKET_START_REGEX = /<(.*)>(.*)/;

let MatePosition;
const tokensLen = tokens.length;
for (let i = 0; i < tokensLen; i++) {
const tok = tokens[i];
for (const tok of tokens) {
if (tok) {

@@ -59,3 +57,3 @@ if (tok.includes(':')) {

MateDirection: 'right',
MatePosition: `<${res[1]}>:1`,
MatePosition: `<${res[1] ?? ''}>:1`,
}

@@ -75,3 +73,3 @@ : undefined;

MateDirection: 'right',
MatePosition: `<${res[2]}>:1`,
MatePosition: `<${res[2] ?? ''}>:1`,
}

@@ -78,0 +76,0 @@ : undefined;

@@ -1,1 +0,1 @@

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

@@ -18,3 +18,3 @@ /**

}
genotypes[samples[idx]] = prerest.slice(start, pos);
genotypes[samples[idx] ?? ''] = prerest.slice(start, pos);
pos++;

@@ -38,3 +38,3 @@ }

}
genotypes[samples[idx]] = prerest.slice(start, pos);
genotypes[samples[idx] ?? ''] = prerest.slice(start, pos);
while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) {

@@ -65,3 +65,3 @@ pos++;

if (colons === colonCount) {
genotypes[samples[idx]] = prerest.slice(fieldStart, j);
genotypes[samples[idx] ?? ''] = prerest.slice(fieldStart, j);
break;

@@ -68,0 +68,0 @@ }

@@ -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":"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"}
export declare function parseMetaString(metaString: string): {
[k: string]: any;
[k: string]: string | string[];
};

@@ -1,9 +0,1 @@

// constructed with the assistance of claude AI
//
// I first prompted it with a regex that splits a comma separated string with
// awareness of quotation from this stackoverflow question
// https://stackoverflow.com/a/18893443/2129219, and asked it to add support
// for square brackets
//
// it undid the regex into serial logic and the result was this function
function customSplit(str) {

@@ -16,3 +8,3 @@ const result = [];

for (let i = 0; i < strLen; i++) {
const char = str[i];
const char = str[i] ?? '';
if (char === '"') {

@@ -51,11 +43,12 @@ inQuotes = !inQuotes;

const entries = [];
for (let i = 0; i < parts.length; i++) {
const f = parts[i];
for (const f of parts) {
const [key, val] = splitFirst(f, '=');
if (val && val.startsWith('[') && val.endsWith(']')) {
const items = val.slice(1, -1).split(',');
for (let j = 0; j < items.length; j++) {
items[j] = items[j].trim();
}
entries.push([key, items]);
entries.push([
key,
val
.slice(1, -1)
.split(',')
.map(s => s.trim()),
]);
}

@@ -62,0 +55,0 @@ else if (val && val.startsWith('"') && val.endsWith('"')) {

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

@@ -5,3 +5,3 @@ /**

*/
export type GenotypeCallback = (str: string, start: number, end: number) => any;
export type GenotypeCallback = (str: string, start: number, end: number) => unknown;
/**

@@ -8,0 +8,0 @@ * Process genotypes by calling a callback for each one, avoiding intermediate

@@ -1,1 +0,1 @@

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

@@ -26,3 +26,3 @@ import { parseGenotypesOnly } from "./parseGenotypesOnly.js";

const [CHROM, POS, ID, REF, ALT, QUAL, FILTER] = fields;
const filter = FILTER === '.' ? undefined : FILTER.split(';');
const filter = FILTER === '.' ? undefined : FILTER?.split(';');
if (strict && !fields[7]) {

@@ -32,7 +32,8 @@ throw new Error("no INFO field specified, must contain at least a '.' (turn off strict mode to allow)");

this.CHROM = CHROM;
this.POS = +POS;
this.ID = ID === '.' ? undefined : ID.split(';');
this.POS = POS !== undefined ? +POS : 0;
this.ID = ID === '.' ? undefined : ID?.split(';');
this.REF = REF;
this.ALT = ALT === '.' ? undefined : ALT.split(',');
this.QUAL = QUAL === '.' ? undefined : +QUAL;
this.ALT = ALT === '.' ? undefined : ALT?.split(',');
this.QUAL =
QUAL === '.' ? undefined : QUAL !== undefined ? +QUAL : undefined;
this.FILTER = filter?.length === 1 && filter[0] === 'PASS' ? 'PASS' : filter;

@@ -54,3 +55,3 @@ this.INFO =

for (let i = 0; i < pairsLen; i++) {
const pair = infoPairs[i];
const pair = infoPairs[i] ?? '';
const eqIdx = pair.indexOf('=');

@@ -70,29 +71,14 @@ const key = eqIdx === -1 ? pair : pair.slice(0, eqIdx);

const itemsLen = rawItems.length;
if (hasDecode) {
const items = [];
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j];
if (v === '.') {
items.push(undefined);
}
else {
const decoded = decodeURIComponentNoThrow(v);
items.push(isNumber ? Number(decoded) : decoded);
}
const items = [];
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j] ?? '';
if (v === '.') {
items.push(undefined);
}
result[key] = items;
}
else {
const items = [];
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j];
if (v === '.') {
items.push(undefined);
}
else {
items.push(isNumber ? Number(v) : v);
}
else {
const w = hasDecode ? decodeURIComponentNoThrow(v) : v;
items.push(isNumber ? Number(w) : w);
}
result[key] = items;
}
result[key] = items;
}

@@ -110,3 +96,3 @@ }

for (let i = 0; i < formatKeys.length; i++) {
const r = this.formatMeta[formatKeys[i]]?.Type;
const r = this.formatMeta[formatKeys[i] ?? '']?.Type;
isNumberType.push(r === 'Integer' || r === 'Float');

@@ -117,5 +103,5 @@ }

for (let i = 0; i < samplesLen; i++) {
const sample = this.sampleNames[i];
const sample = this.sampleNames[i] ?? '';
const sampleData = {};
const sampleStr = rest[i];
const sampleStr = rest[i] ?? '';
const sampleStrLen = sampleStr.length;

@@ -128,3 +114,3 @@ let colStart = 0;

if (val === '' || val === '.') {
sampleData[formatKeys[colIdx]] = undefined;
sampleData[formatKeys[colIdx] ?? ''] = undefined;
}

@@ -136,3 +122,3 @@ else {

for (let k = 0; k < items.length; k++) {
const ent = items[k];
const ent = items[k] ?? '';
result.push(ent === '.' ? undefined : +ent);

@@ -143,7 +129,7 @@ }

for (let k = 0; k < items.length; k++) {
const ent = items[k];
const ent = items[k] ?? '';
result.push(ent === '.' ? undefined : ent);
}
}
sampleData[formatKeys[colIdx]] = result;
sampleData[formatKeys[colIdx] ?? ''] = result;
}

@@ -150,0 +136,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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"}
{
"name": "@gmod/vcf",
"version": "7.0.0",
"version": "7.0.1",
"description": "High performance streaming Variant Call Format (VCF) parser in pure JavaScript",

@@ -8,10 +8,9 @@ "type": "module",

"exports": {
"import": {
"import": "./esm/index.js"
},
"require": {
"require": "./dist/index.js"
}
"import": "./esm/index.js",
"require": "./dist/index.js"
},
"repository": "github:GMOD/vcf-js",
"repository": {
"type": "git",
"url": "https://github.com/GMOD/vcf-js.git"
},
"author": {

@@ -32,5 +31,2 @@ "name": "Garrett Stevens",

],
"engines": {
"node": ">=6"
},
"scripts": {

@@ -41,12 +37,10 @@ "test": "vitest",

"lint": "eslint --report-unused-disable-directives --max-warnings 0",
"docs": "documentation readme src/parse.ts --section=API --shallow",
"format": "prettier --write .",
"postdocs": "prettier --write README.md",
"clean": "rimraf dist esm",
"build:esm": "tsc --target es2020 --outDir esm",
"build:es5": "tsc --target es2020 --module commonjs --outDir dist",
"build": "yarn build:esm && yarn build:es5",
"prebuild": "yarn clean",
"build:es5": "tsc --target es2020 --module commonjs --moduleResolution bundler --outDir dist",
"build": "pnpm build:esm && pnpm build:es5",
"prebuild": "pnpm clean",
"postbuild:es5": "echo '{\"type\": \"commonjs\"}' > dist/package.json",
"preversion": "yarn lint && yarn test --run && yarn build",
"preversion": "pnpm lint && pnpm test --run && pnpm build",
"version": "standard-changelog && git add CHANGELOG.md",

@@ -56,18 +50,17 @@ "postversion": "git push --follow-tags"

"devDependencies": {
"@babel/core": "^7.20.5",
"@eslint/js": "^9.7.0",
"@types/node": "^24.10.1",
"@typescript-eslint/eslint-plugin": "^8.48.0",
"@typescript-eslint/parser": "^8.48.0",
"@vitest/coverage-v8": "^4.0.14",
"documentation": "^14.0.1",
"eslint": "^9.7.0",
"@babel/core": "^7.29.0",
"@eslint/js": "^10.0.1",
"@types/node": "^25.6.0",
"@typescript-eslint/eslint-plugin": "^8.59.0",
"@typescript-eslint/parser": "^8.59.0",
"@vitest/coverage-v8": "^4.1.5",
"eslint": "^10.2.1",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-unicorn": "^62.0.0",
"prettier": "^3.2.4",
"rimraf": "^6.0.1",
"eslint-plugin-unicorn": "^64.0.0",
"prettier": "^3.8.3",
"rimraf": "^6.1.3",
"standard-changelog": "^7.0.1",
"typescript": "^5.3.3",
"typescript-eslint": "^8.48.0",
"vitest": "^4.0.14"
"typescript": "^6.0.3",
"typescript-eslint": "^8.59.0",
"vitest": "^4.1.5"
},

@@ -74,0 +67,0 @@ "keywords": [

+98
-266
# vcf-js
High performance Variant Call Format (VCF) parser in pure JavaScript.
VCF (variant call format) parser
## Status
[![NPM version](https://img.shields.io/npm/v/@gmod/vcf.svg?logo=npm&style=flat-square)](https://npmjs.org/package/@gmod/vcf)
[![Coverage Status](https://img.shields.io/codecov/c/github/GMOD/vcf-js/master.svg?style=flat-square)](https://codecov.io/gh/GMOD/vcf-js/branch/master)
[![Build Status](https://img.shields.io/github/actions/workflow/status/GMOD/vcf-js/push.yml?branch=master)](https://github.com/GMOD/vcf-js/actions)
[![Build Status](https://img.shields.io/github/actions/workflow/status/GMOD/vcf-js/push.yml?branch=main)](https://github.com/GMOD/vcf-js/actions)
## Usage
This module is best used when combined with some easy way of retrieving the
header and individual lines from a VCF, like the `@gmod/tabix` module.
```typescript
import { TabixIndexedFile } from '@gmod/tabix'
import VCF from '@gmod/vcf'
// with import
import VCF, { parseBreakend, Variant } from '@gmod/vcf'
// with require
const { default: VCF, parseBreakend } = require('@gmod/vcf')
const tbiIndexed = new TabixIndexedFile({ path: '/path/to/my.vcf.gz' })
async function doStuff() {
const headerText = await tbiIndexed.getHeader()
const tbiVCFParser = new VCF({ header: headerText })
const variants = []
await tbiIndexed.getLines('ctgA', 200, 300, line =>
variants.push(tbiVCFParser.parseLine(line)),
)
console.log(variants)
}
```
const headerText = await tbiIndexed.getHeader()
const parser = new VCF({ header: headerText }) // strict?: boolean (default true)
If you want to stream a VCF file, you can alternatively use something like this
```typescript
const fs = require('fs')
const VCF = require('@gmod/vcf').default
const { createGunzip } = require('zlib')
const readline = require('readline')
const rl = readline.createInterface({
input: fs.createReadStream(process.argv[2]).pipe(createGunzip()),
})
let header = []
let elts = []
let parser = undefined
rl.on('line', function (line) {
if (line.startsWith('#')) {
header.push(line)
return
} else if (!parser) {
parser = new VCF({ header: header.join('\n') })
}
const elt = parser.parseLine(line)
elts.push(elt.INFO.AN[0])
})
rl.on('close', function () {
console.log(elts.reduce((a, b) => a + b, 0) / elts.length)
})
const variants = []
await tbiIndexed.getLines('ctgA', 200, 300, line =>
variants.push(parser.parseLine(line)),
)
```
This method is used to test @gmod/vcf in https://github.com/brentp/vcf-bench
## Variant
## Methods
`parseLine(line)` returns a `Variant` with these fields:
Given a VCF with a single variant line
```text
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT HG00096
contigA 3000 rs17883296 G T,A 100 PASS NS=3;DP=14;AF=0.5;DB;XYZ=5 GT:AP 0|0:0.000,0.000
```
The `Variant` object returned by `parseLine()` has these properties:
```typescript

@@ -91,3 +37,3 @@ {

QUAL: 100,
FILTER: 'PASS',
FILTER: 'PASS', // 'PASS' | string[] of filter names | undefined if '.'
INFO: {

@@ -97,4 +43,4 @@ NS: [3],

AF: [0.5],
DB: true,
XYZ: ['5'],
DB: true, // Flag type
XYZ: ['5'], // unknown fields default to Number=1, Type=String
},

@@ -104,234 +50,120 @@ }

The `Variant` class also has methods for accessing sample data:
INFO and FORMAT values are typed using header metadata. Values are arrays unless
`Type=Flag`, in which case they are `true`. Fields defined in the
[VCF spec](https://samtools.github.io/hts-specs/VCFv4.3.pdf) are typed even
without a header entry.
- `variant.SAMPLES()` - returns full sample data with all FORMAT fields parsed
- `variant.GENOTYPES()` - returns just the GT strings (faster if that's all you
need)
- `variant.processGenotypes(callback)` - calls a callback for each genotype
without allocating strings (fastest for counting/iteration)
### Sample methods
These methods lazily parse the genotype data, so they only do work when called.
This saves time especially if your VCF has many samples (e.g. 1000 Genomes).
- `variant.SAMPLES()` — full sample data with all FORMAT fields parsed
- `variant.GENOTYPES()` — GT strings only (faster)
- `variant.processGenotypes(callback)` — iterate genotypes without allocating
strings (fastest)
The parser will try to convert the values in INFO and FORMAT to the proper types
using the header metadata. For example, if there is a header line like
```text
##INFO=<ID=ABC,Number=2,Type=Integer,Description="A description">
```typescript
let homRef = 0
variant.processGenotypes((str, start, end) => {
if (
end - start === 3 && // e.g. "0|0"
str.charCodeAt(start) === 48 && // 48 = '0'
str.charCodeAt(start + 2) === 48
) {
homRef++
}
})
```
The parser will expect any INFO entry ABC to be an array of two integers, so it
would convert `ABC=12,20` to `{ ABC: [12, 20] }`.
Sample data is lazily parsed — nothing is computed until these methods are
called.
Each INFO entry value will be an array unless `Type=Flag` is specified, in which
case it will be `true`. If no metadata can be found for the entry, it will
assume `Number=1` and `Type=String`.
## Metadata
Some fields are pre-defined by the
[VCF spec](https://samtools.github.io/hts-specs/VCFv4.3.pdf), which is why in
the variant object above "DP" was parsed as an integer (it is defined in the VCF
spec), but "XYZ" was left as a string (it is not defined in either the VCF spec
or the header).
`parser.getMetadata(...keys)` returns header metadata, filtered by the keys
provided:
Metadata can be accessed with the `getMetadata()` method, including all the
built-in metadata from the VCF spec. With no parameters it will return all the
data. Any parameters passed will further filter the metadata. For example, for a
VCF with this header:
```typescript
parser.getMetadata('INFO', 'DP')
// { Number: 1, Type: 'Integer', Description: 'Total Depth' }
```text
##INFO=<ID=ABC,Number=2,Type=Integer,Description="A description">
#CHROM POS ID REF ALT QUAL FILTER INFO
parser.getMetadata('INFO', 'DP', 'Number')
// 1
```
you can access the VCF's header metadata like (some output omitted for clarity):
Call with no arguments to get all metadata. `parser.samples` lists sample names.
```typescript
> console.log(vcfParser.getMetadata())
{ INFO:
{ AA:
{ Number: 1, Type: 'String', Description: 'Ancestral Allele' },
## Streaming
...
To parse a plain VCF without tabix, collect header lines until the first
non-header line, then construct the parser:
ABC: { Number: 2, Type: 'Integer', Description: 'A description' } },
FORMAT:
{ AD:
{ Number: 'R',
Type: 'Integer',
Description: 'Read depth for each allele' },
```typescript
import fs from 'fs'
import VCF from '@gmod/vcf'
import { createGunzip } from 'zlib'
import readline from 'readline'
...
const rl = readline.createInterface({
input: fs.createReadStream('file.vcf.gz').pipe(createGunzip()),
})
ALT:
{ DEL: { Description: 'Deletion relative to the reference' },
const header = []
let parser
...
FILTER: { PASS: { Description: 'Passed all filters' } } }
> console.log(vcfParser.getMetadata('INFO'))
{ AA:
{ Number: 1, Type: 'String', Description: 'Ancestral Allele' },
AC:
{ Number: 'A',
Type: 'Integer',
Description:
'Allele count in genotypes, for each ALT allele, in the same order as listed' },
AD:
{ Number: 'R',
Type: 'Integer',
Description: 'Total read depth for each allele' },
...
ABC: { Number: 2, Type: 'Integer', Description: 'A description' } }
> console.log(vcfParser.getMetadata('INFO', 'DP'))
{ Number: 1, Type: 'Integer', Description: 'Total Depth' }
> console.log(vcfParser.getMetadata('INFO', 'DP', 'Number'))
1
rl.on('line', line => {
if (line.startsWith('#')) {
header.push(line)
} else {
if (!parser) {
parser = new VCF({ header: header.join('\n') })
}
const variant = parser.parseLine(line)
console.log(variant.CHROM, variant.POS)
}
})
```
A list of sample names is also available in the `samples` attribute of the
parser object:
```typescript
> console.log(vcfParser.samples)
[ 'HG00096' ]
```
## Breakends
We offer a helper function to parse breakend strings. We used to parse these
automatically but it is now a helper function
`parseBreakend(alt)` parses a breakend ALT string:
```js
```typescript
import { parseBreakend } from '@gmod/vcf'
parseBreakend('C[2:321682[')
// output
//
// {
// "MateDirection": "right",
// "Replacement": "C",
// "MatePosition": "2:321682",
// "Join": "right"
// }
// { MateDirection: 'right', Replacement: 'C', MatePosition: '2:321682', Join: 'right' }
```
- The C\[2:321682\[ parses as "Join": "right" because the BND is after the C
base
- The C\[2:321682\[ also is given "MateDirection": "right" because the square
brackets point to the right.
- The spec never has the square brackets pointing in different directions.
Instead, the different types of joins can be imagined as follows
All four bracket forms from the VCF spec:
For the above vcf line where chr13:123456->C\[2:321682\[ then we have this
| ALT form | Join | MateDirection |
| -------- | ----- | ------------- |
| `t[p[` | right | right |
| `t]p]` | right | left |
| `[p[t` | left | right |
| `]p]t` | left | left |
chr13:123456
-------------C\
\
\
\
\
\
\
\
\--------------
chr2:321682
- `Join` — whether the replacement base appears before (`right`) or after
(`left`) the mate position
- `MateDirection` — `[` means the mate sequence extends rightward; `]` means
leftward
If the alt was instead chr13:123456->\[2:321682\[C then the the "Join" would be
"left" since the "BND" is before "C" and then the breakend structure looks like
this
### Single breakends
chr13:123456
When the ALT starts or ends with `.`, `parseBreakend` returns
`SingleBreakend: true` with no `MatePosition`:
|C--------------------
|
|
|
|
|
|
|
|
|
|
----------------------
chr2:321682
```typescript
parseBreakend('C.')
// { Join: 'right', Replacement: 'C', SingleBreakend: true }
## API
parseBreakend('.ACGT')
// { Join: 'left', Replacement: 'ACGT', SingleBreakend: true }
```
#### Table of Contents
## Publishing
- [VCFParser](#vcfparser)
- [Parameters](#parameters)
- [getMetadata](#getmetadata)
- [parseLine](#parseline)
- [Variant](#variant)
- [SAMPLES](#samples)
- [GENOTYPES](#genotypes)
- [processGenotypes](#processgenotypes)
[Trusted publishing](https://docs.npmjs.com/about-trusted-publishing) via GitHub Actions.
### VCFParser
Class representing a VCF parser, instantiated with the VCF header.
#### Parameters
- `args.header` **string** - The VCF header. Supports both LF and CRLF newlines.
- `args.strict` **boolean** - Whether to parse in strict mode or not (default
true)
#### getMetadata
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,...>"
##### Parameters
- `...args` **string[]** - List of metadata filter strings.
Returns **any** An object, string, or number, depending on the filtering
#### parseLine
Parse a VCF line into a `Variant` object.
##### Parameters
- `line` **string** - A string of a line from a VCF
Returns **Variant** A Variant instance with the parsed data
### Variant
Class representing a parsed VCF variant line. Has data properties (CHROM, POS,
ID, REF, ALT, QUAL, FILTER, INFO, FORMAT) and methods for accessing sample data.
#### SAMPLES
Returns full sample data with all FORMAT fields parsed.
Returns **Record\<string, Record\<string, (string | number | undefined)[] |
undefined>>**
#### GENOTYPES
Returns just the GT strings for each sample (faster than SAMPLES if you only
need genotypes).
Returns **Record\<string, string>**
#### processGenotypes
Calls a callback for each genotype without allocating strings. Useful for
counting or iterating over genotypes with minimal memory allocation.
##### Parameters
- `callback` **(str: string, start: number, end: number) => any** - Called for
each genotype with the raw string and indices. Use `str.slice(start, end)` to
extract the genotype string, or `str.charCodeAt(start)` to read characters
without allocation.
```bash
npm version patch # or minor/major
```

@@ -42,3 +42,3 @@ import { Variant } from './Variant.ts'

for (let i = 0; i < headerLines.length; i++) {
const line = headerLines[i]!
const line = headerLines[i] ?? ''
if (!line.startsWith('#')) {

@@ -91,5 +91,4 @@ throw new Error(`Bad line in header:\n${line}`)

}
const [metaKey, metaVal] = match.slice(1, 3)
const r = metaKey!
const r = match[1] ?? ''
const metaVal = match[2]
if (metaVal?.startsWith('<')) {

@@ -100,3 +99,3 @@ if (!(r in this.metadata)) {

const [id, keyVals] = this.parseStructuredMetaVal(metaVal)
if (id) {
if (typeof id === 'string') {
// if there is an ID field in the <> metadata

@@ -125,4 +124,5 @@ // e.g. ##INFO=<ID=AF_ESP,...>

private parseStructuredMetaVal(metaVal: string) {
const keyVals = parseMetaString(metaVal)
const id = keyVals.ID!
const keyVals: Record<string, string | string[] | number> =
parseMetaString(metaVal)
const id = keyVals.ID
delete keyVals.ID

@@ -147,6 +147,11 @@ if ('Number' in keyVals) {

getMetadata(...args: string[]) {
let filteredMetadata: any = this.metadata
let filteredMetadata: unknown = this.metadata
const argsLen = args.length
for (let i = 0; i < argsLen; i++) {
filteredMetadata = filteredMetadata[args[i]!]
if (typeof filteredMetadata !== 'object' || filteredMetadata === null) {
return undefined
}
filteredMetadata = (filteredMetadata as Record<string, unknown>)[
args[i] ?? ''
]
if (!filteredMetadata) {

@@ -153,0 +158,0 @@ return filteredMetadata

@@ -27,5 +27,3 @@ export interface Breakend {

let MatePosition
const tokensLen = tokens.length
for (let i = 0; i < tokensLen; i++) {
const tok = tokens[i]!
for (const tok of tokens) {
if (tok) {

@@ -73,3 +71,3 @@ if (tok.includes(':')) {

MateDirection: 'right',
MatePosition: `<${res[1]!}>:1`,
MatePosition: `<${res[1] ?? ''}>:1`,
}

@@ -90,3 +88,3 @@ : undefined

MateDirection: 'right',
MatePosition: `<${res[2]!}>:1`,
MatePosition: `<${res[2] ?? ''}>:1`,
}

@@ -93,0 +91,0 @@ : undefined

@@ -24,3 +24,3 @@ /**

}
genotypes[samples[idx]!] = prerest.slice(start, pos)
genotypes[samples[idx] ?? ''] = prerest.slice(start, pos)
pos++

@@ -48,3 +48,3 @@ }

}
genotypes[samples[idx]!] = prerest.slice(start, pos)
genotypes[samples[idx] ?? ''] = prerest.slice(start, pos)
while (pos < prerestLen && prerest.charCodeAt(pos) !== TAB) {

@@ -77,3 +77,3 @@ pos++

if (colons === colonCount) {
genotypes[samples[idx]!] = prerest.slice(fieldStart, j)
genotypes[samples[idx] ?? ''] = prerest.slice(fieldStart, j)
break

@@ -80,0 +80,0 @@ }

@@ -1,9 +0,1 @@

// constructed with the assistance of claude AI
//
// I first prompted it with a regex that splits a comma separated string with
// awareness of quotation from this stackoverflow question
// https://stackoverflow.com/a/18893443/2129219, and asked it to add support
// for square brackets
//
// it undid the regex into serial logic and the result was this function
function customSplit(str: string) {

@@ -17,3 +9,3 @@ const result = []

for (let i = 0; i < strLen; i++) {
const char = str[i]!
const char = str[i] ?? ''
if (char === '"') {

@@ -45,3 +37,3 @@ inQuotes = !inQuotes

const index = str.indexOf(split)
return [str.slice(0, index), str.slice(index + 1)]
return [str.slice(0, index), str.slice(index + 1)] as const
}

@@ -52,16 +44,17 @@

const parts = customSplit(inside)
const entries: [string, any][] = []
for (let i = 0; i < parts.length; i++) {
const f = parts[i]!
const entries: [string, string | string[]][] = []
for (const f of parts) {
const [key, val] = splitFirst(f, '=')
if (val && val.startsWith('[') && val.endsWith(']')) {
const items = val.slice(1, -1).split(',')
for (let j = 0; j < items.length; j++) {
items[j] = items[j]!.trim()
}
entries.push([key!, items])
entries.push([
key,
val
.slice(1, -1)
.split(',')
.map(s => s.trim()),
])
} else if (val && val.startsWith('"') && val.endsWith('"')) {
entries.push([key!, val.slice(1, -1)])
entries.push([key, val.slice(1, -1)])
} else {
entries.push([key!, val])
entries.push([key, val])
}

@@ -68,0 +61,0 @@ }

@@ -5,3 +5,7 @@ /**

*/
export type GenotypeCallback = (str: string, start: number, end: number) => any
export type GenotypeCallback = (
str: string,
start: number,
end: number,
) => unknown

@@ -8,0 +12,0 @@ /**

@@ -49,3 +49,3 @@ import { parseGenotypesOnly } from './parseGenotypesOnly.ts'

const [CHROM, POS, ID, REF, ALT, QUAL, FILTER] = fields
const filter = FILTER === '.' ? undefined : FILTER!.split(';')
const filter = FILTER === '.' ? undefined : FILTER?.split(';')

@@ -59,7 +59,8 @@ if (strict && !fields[7]) {

this.CHROM = CHROM
this.POS = +POS!
this.ID = ID === '.' ? undefined : ID!.split(';')
this.POS = POS !== undefined ? +POS : 0
this.ID = ID === '.' ? undefined : ID?.split(';')
this.REF = REF
this.ALT = ALT === '.' ? undefined : ALT!.split(',')
this.QUAL = QUAL === '.' ? undefined : +QUAL!
this.ALT = ALT === '.' ? undefined : ALT?.split(',')
this.QUAL =
QUAL === '.' ? undefined : QUAL !== undefined ? +QUAL : undefined
this.FILTER = filter?.length === 1 && filter[0] === 'PASS' ? 'PASS' : filter

@@ -87,3 +88,3 @@ this.INFO =

for (let i = 0; i < pairsLen; i++) {
const pair = infoPairs[i]!
const pair = infoPairs[i] ?? ''
const eqIdx = pair.indexOf('=')

@@ -103,26 +104,13 @@ const key = eqIdx === -1 ? pair : pair.slice(0, eqIdx)

if (hasDecode) {
const items: (string | number | undefined)[] = []
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j]!
if (v === '.') {
items.push(undefined)
} else {
const decoded = decodeURIComponentNoThrow(v)
items.push(isNumber ? Number(decoded) : decoded)
}
const items: (string | number | undefined)[] = []
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j] ?? ''
if (v === '.') {
items.push(undefined)
} else {
const w = hasDecode ? decodeURIComponentNoThrow(v) : v
items.push(isNumber ? Number(w) : w)
}
result[key] = items
} else {
const items: (string | number | undefined)[] = []
for (let j = 0; j < itemsLen; j++) {
const v = rawItems[j]!
if (v === '.') {
items.push(undefined)
} else {
items.push(isNumber ? Number(v) : v)
}
}
result[key] = items
}
result[key] = items
}

@@ -144,3 +132,3 @@ }

for (let i = 0; i < formatKeys.length; i++) {
const r = this.formatMeta[formatKeys[i]!]?.Type
const r = this.formatMeta[formatKeys[i] ?? '']?.Type
isNumberType.push(r === 'Integer' || r === 'Float')

@@ -151,3 +139,3 @@ }

for (let i = 0; i < samplesLen; i++) {
const sample = this.sampleNames[i]!
const sample = this.sampleNames[i] ?? ''
const sampleData: Record<

@@ -157,3 +145,3 @@ string,

> = {}
const sampleStr = rest[i]!
const sampleStr = rest[i] ?? ''
const sampleStrLen = sampleStr.length

@@ -167,3 +155,3 @@ let colStart = 0

if (val === '' || val === '.') {
sampleData[formatKeys[colIdx]!] = undefined
sampleData[formatKeys[colIdx] ?? ''] = undefined
} else {

@@ -174,3 +162,3 @@ const items = val.split(',')

for (let k = 0; k < items.length; k++) {
const ent = items[k]!
const ent = items[k] ?? ''
result.push(ent === '.' ? undefined : +ent)

@@ -180,7 +168,7 @@ }

for (let k = 0; k < items.length; k++) {
const ent = items[k]!
const ent = items[k] ?? ''
result.push(ent === '.' ? undefined : ent)
}
}
sampleData[formatKeys[colIdx]!] = result
sampleData[formatKeys[colIdx] ?? ''] = result
}

@@ -187,0 +175,0 @@ colStart = j + 1

# [7.0.0](https://github.com/GMOD/vcf-js/compare/v6.1.2...v7.0.0) (2026-01-18)
## [6.1.2](https://github.com/GMOD/vcf-js/compare/v6.1.1...v6.1.2) (2026-01-18)
# [6.1.0](https://github.com/GMOD/vcf-js/compare/v6.0.9...v6.1.0) (2025-11-26)
## [6.0.9](https://github.com/GMOD/vcf-js/compare/v6.0.8...v6.0.9) (2025-04-01)
## [6.0.8](https://github.com/GMOD/vcf-js/compare/v6.0.7...v6.0.8) (2025-02-13)
## [6.0.7](https://github.com/GMOD/vcf-js/compare/v6.0.6...v6.0.7) (2025-01-29)
## [6.0.6](https://github.com/GMOD/vcf-js/compare/v6.0.5...v6.0.6) (2025-01-16)
## [6.0.5](https://github.com/GMOD/vcf-js/compare/v6.0.4...v6.0.5) (2025-01-16)
## [6.0.4](https://github.com/GMOD/vcf-js/compare/v6.0.3...v6.0.4) (2025-01-16)
## [6.0.3](https://github.com/GMOD/vcf-js/compare/v6.0.2...v6.0.3) (2025-01-16)
## [6.0.2](https://github.com/GMOD/vcf-js/compare/v6.0.1...v6.0.2) (2025-01-07)
## [6.0.1](https://github.com/GMOD/vcf-js/compare/v6.0.0...v6.0.1) (2024-12-17)
# [6.0.0](https://github.com/GMOD/vcf-js/compare/v5.0.10...v6.0.0) (2024-11-30)
- Changes the default Variant object to have a SAMPLES() function call instead
of a SAMPLES getter, to make it more abundantly clear that it is a lazy
operation. Also adds a GENOTYPES() function that returns the raw string of
genotype fields
## [5.0.10](https://github.com/GMOD/vcf-js/compare/v5.0.9...v5.0.10) (2022-12-17)
- Use es2015 for nodejs build
## [5.0.9](https://github.com/GMOD/vcf-js/compare/v5.0.8...v5.0.9) (2022-11-23)
- Fix erroneous parsing of symbolic alleles as breakends
## [5.0.8](https://github.com/GMOD/vcf-js/compare/v5.0.7...v5.0.8) (2022-11-20)
- Parse single breakends and large insertion shorthand notation (#95)
<a name="5.0.7"></a>
## [5.0.7](https://github.com/GMOD/vcf-js/compare/v5.0.6...v5.0.7) (2022-08-24)
- Don't throw error when there is a FORMAT column but no genotypes
<a name="5.0.6"></a>
## [5.0.6](https://github.com/GMOD/vcf-js/compare/v5.0.5...v5.0.6) (2022-03-30)
- Include src directory for better source maps
<a name="5.0.5"></a>
## [5.0.5](https://github.com/GMOD/vcf-js/compare/v5.0.4...v5.0.5) (2022-01-12)
- Add optimization related to better allocation of variant records, thanks to
@bpow for contributing
<a name="5.0.4"></a>
## [5.0.4](https://github.com/GMOD/vcf-js/compare/v5.0.3...v5.0.4) (2021-12-23)
- Make the strict field in the constructor optional
- Export `Breakend` type for typescript users
<a name="5.0.3"></a>
## [5.0.3](https://github.com/GMOD/vcf-js/compare/v5.0.2...v5.0.3) (2021-12-14)
- Add typescripting and esm module build
<a name="5.0.2"></a>
## [5.0.2](https://github.com/GMOD/vcf-js/compare/v5.0.1...v5.0.2) (2021-11-13)
- Update package description to refer to variant call format
<a name="5.0.1"></a>
## [5.0.1](https://github.com/GMOD/vcf-js/compare/v5.0.0...v5.0.1) (2021-11-04)
- Add URI decoding to INFO field
<a name="5.0.0"></a>
# [5.0.0](https://github.com/GMOD/vcf-js/compare/v4.0.4...v5.0.0) (2021-09-06)
- Make parseBreakends an optional helper function, all ALTs are plain strings
now instead of string|Breakend. This is a breaking change so a major version
bump is applied
<a name="4.0.4"></a>
## [4.0.4](https://github.com/GMOD/vcf-js/compare/v4.0.1...v4.0.4) (2021-08-04)
- Fix issue when there is extra whitespace on the header line
<a name="4.0.3"></a>
## [4.0.3](https://github.com/GMOD/vcf-js/compare/v4.0.1...v4.0.3) (2021-03-31)
- Include github automated fixes in release from before 4.0.2
<a name="4.0.2"></a>
## [4.0.2](https://github.com/GMOD/vcf-js/compare/v4.0.1...v4.0.2) (2021-03-31)
- Avoid modifying built-in exports with parseMetadata, fixes issue with using
parseMetadata from jest tests (#63)
<a name="4.0.1"></a>
## [4.0.1](https://github.com/GMOD/vcf-js/compare/v4.0.0...v4.0.1) (2019-10-30)
- Add toString for Breakend ALTs so they are easily interpretable
## [4.0.0](https://github.com/GMOD/vcf-js/compare/v3.0.0...v4.0.0) (2019-06-14)
- Breaking change: INFO entries that are type Flag now evaluate to `true`
instead of `null`
## [3.0.0](https://github.com/GMOD/vcf-js/compare/v2.0.3...v3.0.0) (2019-05-31)
- Breaking change: ALT entries in breakend format now parse into a breakend
object instead of a string
- Performance improvements
## [2.0.3](https://github.com/GMOD/vcf-js/compare/v2.0.2...v2.0.3) (2019-02-23)
- Upgrade to Babel 7
## [2.0.2](https://github.com/GMOD/vcf-js/compare/v2.0.1...v2.0.2) (2018-11-26)
- Remove errant unused dependency
## [2.0.1](https://github.com/GMOD/vcf-js/compare/v2.0.0...v2.0.1) (2018-11-08)
- Bugfix for getMetadata()
## [2.0.0](https://github.com/GMOD/vcf-js/compare/v1.0.4...v2.0.0) (2018-11-07)
- Breaking change: SAMPLES attribute of the variant is now evaluated lazily
## [1.0.4](https://github.com/GMOD/vcf-js/compare/v1.0.3...v1.0.4) (2018-11-06)
- Decode %-encoded entries in INFO and FORMAT
## [1.0.3](https://github.com/GMOD/vcf-js/compare/v1.0.2...v1.0.3) (2018-11-05)
- Fix for parsing missing genotypes
## [1.0.2](https://github.com/GMOD/vcf-js/compare/v1.0.1...v1.0.2) (2018-10-11)
- Better handle filter metadata
## [1.0.1](https://github.com/GMOD/vcf-js/compare/v1.0.0...v1.0.1) (2018-10-05)
- Fix bug in interpreting "Number" in header metadata
## 1.0.0 (2018-10-05)
- Initial release