@jbrowse/plugin-variants 2.3.1 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/VcfAdapter/VcfAdapter.d.ts +1 -2
  2. package/dist/VcfAdapter/VcfAdapter.js +2 -2
  3. package/dist/VcfAdapter/VcfAdapter.js.map +1 -1
  4. package/dist/{VcfTabixAdapter/VcfFeature.d.ts → VcfFeature/index.d.ts} +3 -15
  5. package/dist/VcfFeature/index.js +59 -0
  6. package/dist/VcfFeature/index.js.map +1 -0
  7. package/dist/VcfFeature/util.d.ts +7 -0
  8. package/dist/VcfFeature/util.js +129 -0
  9. package/dist/VcfFeature/util.js.map +1 -0
  10. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +1 -1
  11. package/dist/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/esm/VcfAdapter/VcfAdapter.d.ts +1 -2
  16. package/esm/VcfAdapter/VcfAdapter.js +2 -2
  17. package/esm/VcfAdapter/VcfAdapter.js.map +1 -1
  18. package/esm/{VcfTabixAdapter/VcfFeature.d.ts → VcfFeature/index.d.ts} +3 -15
  19. package/esm/VcfFeature/index.js +56 -0
  20. package/esm/VcfFeature/index.js.map +1 -0
  21. package/esm/VcfFeature/util.d.ts +7 -0
  22. package/esm/VcfFeature/util.js +123 -0
  23. package/esm/VcfFeature/util.js.map +1 -0
  24. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +1 -1
  25. package/esm/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -1
  26. package/esm/index.d.ts +1 -1
  27. package/esm/index.js +1 -1
  28. package/esm/index.js.map +1 -1
  29. package/package.json +2 -2
  30. package/src/VcfAdapter/VcfAdapter.test.ts +0 -2
  31. package/src/VcfAdapter/VcfAdapter.ts +3 -4
  32. package/src/VcfFeature/index.test.ts +132 -0
  33. package/src/VcfFeature/index.ts +104 -0
  34. package/src/VcfFeature/util.ts +140 -0
  35. package/src/VcfTabixAdapter/VcfTabixAdapter.ts +1 -1
  36. package/src/index.ts +1 -1
  37. package/dist/VcfTabixAdapter/VcfFeature.js +0 -187
  38. package/dist/VcfTabixAdapter/VcfFeature.js.map +0 -1
  39. package/esm/VcfTabixAdapter/VcfFeature.js +0 -184
  40. package/esm/VcfTabixAdapter/VcfFeature.js.map +0 -1
  41. package/src/VcfTabixAdapter/VcfFeature.test.ts +0 -118
  42. package/src/VcfTabixAdapter/VcfFeature.ts +0 -250
@@ -1,6 +1,5 @@
1
1
  import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import { Region } from '@jbrowse/core/util/types';
3
- import { Feature } from '@jbrowse/core/util/simpleFeature';
2
+ import { Region, Feature } from '@jbrowse/core/util';
4
3
  import IntervalTree from '@flatten-js/interval-tree';
5
4
  export default class VcfAdapter extends BaseFeatureDataAdapter {
6
5
  static capabilities: string[];
@@ -10,7 +10,7 @@ const interval_tree_1 = __importDefault(require("@flatten-js/interval-tree"));
10
10
  const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
11
11
  const vcf_1 = __importDefault(require("@gmod/vcf"));
12
12
  // local
13
- const VcfFeature_1 = __importDefault(require("../VcfTabixAdapter/VcfFeature"));
13
+ const VcfFeature_1 = __importDefault(require("../VcfFeature"));
14
14
  const readVcf = (f) => {
15
15
  const header = [];
16
16
  const rest = [];
@@ -88,7 +88,7 @@ class VcfAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
88
88
  try {
89
89
  const { start, end, refName } = region;
90
90
  const { header, intervalTree } = await this.setup();
91
- const parser = new vcf_1.default({ header: header });
91
+ const parser = new vcf_1.default({ header });
92
92
  (_a = intervalTree[refName]) === null || _a === void 0 ? void 0 : _a.search([start, end]).forEach(f => observer.next(new VcfFeature_1.default({
93
93
  variant: parser.parseLine(f.line),
94
94
  parser,
@@ -1 +1 @@
1
- {"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { Feature } from '@jbrowse/core/util/simpleFeature';
2
- /**
3
- * VCF Feature creation with lazy genotype evaluation.
4
- */
1
+ import { Feature } from '@jbrowse/core/util';
2
+ import VCF from '@gmod/vcf';
5
3
  interface Samples {
6
4
  [key: string]: {
7
5
  [key: string]: {
@@ -27,7 +25,7 @@ export default class VCFFeature implements Feature {
27
25
  private _id;
28
26
  constructor(args: {
29
27
  variant: any;
30
- parser: any;
28
+ parser: VCF;
31
29
  id: string;
32
30
  });
33
31
  get(field: string): any;
@@ -44,16 +42,6 @@ export default class VCFFeature implements Feature {
44
42
  INFO: any;
45
43
  ID: string[];
46
44
  }): FeatureData;
47
- /**
48
- * Get a sequence ontology (SO) term that describes the variant type
49
- */
50
- _getSOTermAndDescription(ref: string, alt: string[]): [string, string] | [undefined, undefined];
51
- static _altTypeToSO: {
52
- [key: string]: string | undefined;
53
- };
54
- _getSOAndDescFromAltDefs(ref: string, alt: string): [string, string] | [undefined, undefined];
55
- _getSOAndDescByExamination(ref: string, alt: string): [string, string];
56
- _makeDescriptionString(soTerm: string, ref: string, alt: string): string;
57
45
  toJSON(): any;
58
46
  }
59
47
  export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // locals
4
+ const util_1 = require("./util");
5
+ class VCFFeature {
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ constructor(args) {
8
+ this.variant = args.variant;
9
+ this.parser = args.parser;
10
+ this.data = this.dataFromVariant(this.variant);
11
+ this._id = args.id;
12
+ }
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ get(field) {
15
+ return field === 'samples'
16
+ ? this.variant.SAMPLES
17
+ : this.data[field] || this.variant[field];
18
+ }
19
+ set() { }
20
+ parent() {
21
+ return undefined;
22
+ }
23
+ children() {
24
+ return undefined;
25
+ }
26
+ tags() {
27
+ return [...Object.keys(this.data), ...Object.keys(this.variant), 'samples'];
28
+ }
29
+ id() {
30
+ return this._id;
31
+ }
32
+ dataFromVariant(variant) {
33
+ const { REF, ALT, POS, CHROM, INFO, ID } = variant;
34
+ const start = POS - 1;
35
+ const [type, description] = (0, util_1.getSOTermAndDescription)(REF, ALT, this.parser);
36
+ const isTRA = ALT === null || ALT === void 0 ? void 0 : ALT.some(f => f === '<TRA>');
37
+ const isSymbolic = ALT === null || ALT === void 0 ? void 0 : ALT.some(f => f.indexOf('<') !== -1);
38
+ return {
39
+ refName: CHROM,
40
+ start,
41
+ end: isSymbolic && INFO.END && !isTRA ? +INFO.END[0] : start + REF.length,
42
+ description,
43
+ type,
44
+ name: ID === null || ID === void 0 ? void 0 : ID.join(','),
45
+ aliases: ID && ID.length > 1 ? variant.ID.slice(1) : undefined,
46
+ };
47
+ }
48
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
+ toJSON() {
50
+ return {
51
+ uniqueId: this._id,
52
+ ...this.variant,
53
+ ...this.data,
54
+ samples: this.variant.SAMPLES,
55
+ };
56
+ }
57
+ }
58
+ exports.default = VCFFeature;
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VcfFeature/index.ts"],"names":[],"mappings":";;AAGA,SAAS;AACT,iCAAgD;AAsBhD,MAAqB,UAAU;IAU7B,8DAA8D;IAC9D,YAAY,IAA+C;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAA;IACpB,CAAC;IAED,8DAA8D;IAC9D,GAAG,CAAC,KAAa;QACf,OAAO,KAAK,KAAK,SAAS;YACxB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,GAAG,KAAI,CAAC;IAER,MAAM;QACJ,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAA;IAC7E,CAAC;IAED,EAAE;QACA,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,eAAe,CAAC,OAOf;QACC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAA;QAClD,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,IAAA,8BAAuB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1E,MAAM,KAAK,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;QAC3C,MAAM,UAAU,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAExD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK;YACL,GAAG,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM;YACzE,WAAW;YACX,IAAI;YACJ,IAAI,EAAE,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,CAAC,GAAG,CAAC;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI,CAAC,IAAI;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SAC9B,CAAA;IACH,CAAC;CACF;AA7ED,6BA6EC"}
@@ -0,0 +1,7 @@
1
+ import VCF from '@gmod/vcf';
2
+ /**
3
+ * Get a sequence ontology (SO) term that describes the variant type
4
+ */
5
+ export declare function getSOTermAndDescription(ref: string, alt: string[], parser: VCF): string[];
6
+ export declare function getSOAndDescFromAltDefs(ref: string, alt: string, parser: VCF): string[];
7
+ export declare function getSOAndDescByExamination(ref: string, alt: string): string[];
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSOAndDescByExamination = exports.getSOAndDescFromAltDefs = exports.getSOTermAndDescription = void 0;
4
+ const vcf_1 = require("@gmod/vcf");
5
+ const altTypeToSO = {
6
+ DEL: 'deletion',
7
+ INS: 'insertion',
8
+ DUP: 'duplication',
9
+ INV: 'inversion',
10
+ INVDUP: 'inverted duplication',
11
+ CNV: 'copy_number_variation',
12
+ TRA: 'translocation',
13
+ 'DUP:TANDEM': 'tandem_duplication',
14
+ NON_REF: 'sequence_variant',
15
+ '*': 'sequence_variant',
16
+ };
17
+ /**
18
+ * Get a sequence ontology (SO) term that describes the variant type
19
+ */
20
+ function getSOTermAndDescription(ref, alt, parser) {
21
+ // it's just a remark if there are no alternate alleles
22
+ if (!alt || alt.length === 0) {
23
+ return ['remark', 'no alternative alleles'];
24
+ }
25
+ const soTerms = new Set();
26
+ let descriptions = new Set();
27
+ alt.forEach(a => {
28
+ let [soTerm, description] = getSOAndDescFromAltDefs(ref, a, parser);
29
+ if (!soTerm) {
30
+ ;
31
+ [soTerm, description] = getSOAndDescByExamination(ref, a);
32
+ }
33
+ if (soTerm && description) {
34
+ soTerms.add(soTerm);
35
+ descriptions.add(description);
36
+ }
37
+ });
38
+ // Combine descriptions like ["SNV G -> A", "SNV G -> T"] to ["SNV G -> A,T"]
39
+ if (descriptions.size > 1) {
40
+ const descs = [...descriptions];
41
+ const prefixes = new Set(descs.map(desc => {
42
+ const prefix = desc.split('->');
43
+ return prefix[1] ? prefix[0] : desc;
44
+ }));
45
+ descriptions = new Set([...prefixes].map(prefix => {
46
+ const suffixes = descs
47
+ .map(desc => {
48
+ const pref = desc.split('-> ');
49
+ return pref[1] && pref[0] === prefix ? pref[1] : '';
50
+ })
51
+ .filter(f => !!f);
52
+ return suffixes.length ? prefix + '-> ' + suffixes.join(',') : prefix;
53
+ }));
54
+ }
55
+ if (soTerms.size) {
56
+ return [[...soTerms].join(','), [...descriptions].join(',')];
57
+ }
58
+ return [];
59
+ }
60
+ exports.getSOTermAndDescription = getSOTermAndDescription;
61
+ function getSOAndDescFromAltDefs(ref, alt, parser) {
62
+ if (typeof alt === 'string' && !alt.startsWith('<')) {
63
+ return [];
64
+ }
65
+ // look for a definition with an SO type for this
66
+ let soTerm = altTypeToSO[alt];
67
+ // if no SO term but ALT is in metadata, assume sequence_variant
68
+ if (!soTerm && parser.getMetadata('ALT', alt)) {
69
+ soTerm = 'sequence_variant';
70
+ }
71
+ if (soTerm) {
72
+ return [soTerm, alt];
73
+ }
74
+ // try to look for a definition for a parent term if we can
75
+ const modAlt = alt.split(':');
76
+ if (modAlt.length > 1) {
77
+ return getSOAndDescFromAltDefs(ref, `<${modAlt.slice(0, modAlt.length - 1).join(':')}>`, parser);
78
+ }
79
+ // no parent
80
+ return [];
81
+ }
82
+ exports.getSOAndDescFromAltDefs = getSOAndDescFromAltDefs;
83
+ // note: term SNV is used instead of SNP because SO definition of SNP says
84
+ // abundance must be at least 1% in population, and can't be sure we meet
85
+ // that
86
+ function getSOAndDescByExamination(ref, alt) {
87
+ const bnd = (0, vcf_1.parseBreakend)(alt);
88
+ if (bnd) {
89
+ return ['breakend', alt];
90
+ }
91
+ else if (ref.length === 1 && alt.length === 1) {
92
+ return ['SNV', makeDescriptionString('SNV', ref, alt)];
93
+ }
94
+ else if (alt === '<INS>') {
95
+ return ['insertion', alt];
96
+ }
97
+ else if (alt === '<DEL>') {
98
+ return ['deletion', alt];
99
+ }
100
+ else if (alt === '<INV>') {
101
+ return ['deletion', alt];
102
+ }
103
+ else if (alt === '<TRA>') {
104
+ return ['translocation', alt];
105
+ }
106
+ else if (alt.includes('<')) {
107
+ return ['sv', alt];
108
+ }
109
+ else if (ref.length === alt.length) {
110
+ if (ref.split('').reverse().join('') === alt) {
111
+ return ['inversion', makeDescriptionString('inversion', ref, alt)];
112
+ }
113
+ else {
114
+ return ['substitution', makeDescriptionString('substitution', ref, alt)];
115
+ }
116
+ }
117
+ else if (ref.length <= alt.length) {
118
+ return ['insertion', makeDescriptionString('insertion', ref, alt)];
119
+ }
120
+ else if (ref.length > alt.length) {
121
+ return ['deletion', makeDescriptionString('deletion', ref, alt)];
122
+ }
123
+ return ['indel', makeDescriptionString('indel', ref, alt)];
124
+ }
125
+ exports.getSOAndDescByExamination = getSOAndDescByExamination;
126
+ function makeDescriptionString(soTerm, ref, alt) {
127
+ return `${soTerm} ${ref} -> ${alt}`;
128
+ }
129
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/VcfFeature/util.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ const rxjs_1 = require("@jbrowse/core/util/rxjs");
10
10
  const tabix_1 = require("@gmod/tabix");
11
11
  const vcf_1 = __importDefault(require("@gmod/vcf"));
12
12
  // local
13
- const VcfFeature_1 = __importDefault(require("./VcfFeature"));
13
+ const VcfFeature_1 = __importDefault(require("../VcfFeature"));
14
14
  class default_1 extends BaseAdapter_1.BaseFeatureDataAdapter {
15
15
  async configurePre() {
16
16
  const pm = this.pluginManager;
@@ -1 +1 @@
1
- {"version":3,"file":"VcfTabixAdapter.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/VcfTabixAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VcfTabixAdapter.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/VcfTabixAdapter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,4 @@ export default class VariantsPlugin extends Plugin {
4
4
  name: string;
5
5
  install(pluginManager: PluginManager): void;
6
6
  }
7
- export { default as VcfFeature } from './VcfTabixAdapter/VcfFeature';
7
+ export { default as VcfFeature } from './VcfFeature';
package/dist/index.js CHANGED
@@ -30,6 +30,6 @@ class VariantsPlugin extends Plugin_1.default {
30
30
  }
31
31
  }
32
32
  exports.default = VariantsPlugin;
33
- var VcfFeature_1 = require("./VcfTabixAdapter/VcfFeature");
33
+ var VcfFeature_1 = require("./VcfFeature");
34
34
  Object.defineProperty(exports, "VcfFeature", { enumerable: true, get: function () { return __importDefault(VcfFeature_1).default; } });
35
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AACtC,wEAAgD;AAChD,wEAAgD;AAChD,kEAA0C;AAC1C,kEAAyC;AAEzC,gFAAwD;AACxD,kFAA0D;AAC1D,sGAA8E;AAC9E,kFAA0D;AAE1D,MAAqB,cAAe,SAAQ,gBAAM;IAAlD;;QACE,SAAI,GAAG,gBAAgB,CAAA;IAYzB,CAAC;IAVC,OAAO,CAAC,aAA4B;QAClC,IAAA,oBAAW,EAAC,aAAa,CAAC,CAAA;QAC1B,IAAA,yBAAgB,EAAC,aAAa,CAAC,CAAA;QAC/B,IAAA,8BAAqB,EAAC,aAAa,CAAC,CAAA;QACpC,IAAA,sBAAa,EAAC,aAAa,CAAC,CAAA;QAC5B,IAAA,yBAAgB,EAAC,aAAa,CAAC,CAAA;QAC/B,IAAA,8BAAqB,EAAC,aAAa,CAAC,CAAA;QACpC,IAAA,wCAA+B,EAAC,aAAa,CAAC,CAAA;QAC9C,IAAA,6BAAoB,EAAC,aAAa,CAAC,CAAA;IACrC,CAAC;CACF;AAbD,iCAaC;AAED,2DAAoE;AAA3D,yHAAA,OAAO,OAAc"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AACtC,wEAAgD;AAChD,wEAAgD;AAChD,kEAA0C;AAC1C,kEAAyC;AAEzC,gFAAwD;AACxD,kFAA0D;AAC1D,sGAA8E;AAC9E,kFAA0D;AAE1D,MAAqB,cAAe,SAAQ,gBAAM;IAAlD;;QACE,SAAI,GAAG,gBAAgB,CAAA;IAYzB,CAAC;IAVC,OAAO,CAAC,aAA4B;QAClC,IAAA,oBAAW,EAAC,aAAa,CAAC,CAAA;QAC1B,IAAA,yBAAgB,EAAC,aAAa,CAAC,CAAA;QAC/B,IAAA,8BAAqB,EAAC,aAAa,CAAC,CAAA;QACpC,IAAA,sBAAa,EAAC,aAAa,CAAC,CAAA;QAC5B,IAAA,yBAAgB,EAAC,aAAa,CAAC,CAAA;QAC/B,IAAA,8BAAqB,EAAC,aAAa,CAAC,CAAA;QACpC,IAAA,wCAA+B,EAAC,aAAa,CAAC,CAAA;QAC9C,IAAA,6BAAoB,EAAC,aAAa,CAAC,CAAA;IACrC,CAAC;CACF;AAbD,iCAaC;AAED,2CAAoD;AAA3C,yHAAA,OAAO,OAAc"}
@@ -1,6 +1,5 @@
1
1
  import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import { Region } from '@jbrowse/core/util/types';
3
- import { Feature } from '@jbrowse/core/util/simpleFeature';
2
+ import { Region, Feature } from '@jbrowse/core/util';
4
3
  import IntervalTree from '@flatten-js/interval-tree';
5
4
  export default class VcfAdapter extends BaseFeatureDataAdapter {
6
5
  static capabilities: string[];
@@ -5,7 +5,7 @@ import IntervalTree from '@flatten-js/interval-tree';
5
5
  import { unzip } from '@gmod/bgzf-filehandle';
6
6
  import VCF from '@gmod/vcf';
7
7
  // local
8
- import VcfFeature from '../VcfTabixAdapter/VcfFeature';
8
+ import VcfFeature from '../VcfFeature';
9
9
  const readVcf = (f) => {
10
10
  const header = [];
11
11
  const rest = [];
@@ -83,7 +83,7 @@ export default class VcfAdapter extends BaseFeatureDataAdapter {
83
83
  try {
84
84
  const { start, end, refName } = region;
85
85
  const { header, intervalTree } = await this.setup();
86
- const parser = new VCF({ header: header });
86
+ const parser = new VCF({ header });
87
87
  (_a = intervalTree[refName]) === null || _a === void 0 ? void 0 : _a.search([start, end]).forEach(f => observer.next(new VcfFeature({
88
88
  variant: parser.parseLine(f.line),
89
89
  parser,
@@ -1 +1 @@
1
- {"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { Feature } from '@jbrowse/core/util/simpleFeature';
2
- /**
3
- * VCF Feature creation with lazy genotype evaluation.
4
- */
1
+ import { Feature } from '@jbrowse/core/util';
2
+ import VCF from '@gmod/vcf';
5
3
  interface Samples {
6
4
  [key: string]: {
7
5
  [key: string]: {
@@ -27,7 +25,7 @@ export default class VCFFeature implements Feature {
27
25
  private _id;
28
26
  constructor(args: {
29
27
  variant: any;
30
- parser: any;
28
+ parser: VCF;
31
29
  id: string;
32
30
  });
33
31
  get(field: string): any;
@@ -44,16 +42,6 @@ export default class VCFFeature implements Feature {
44
42
  INFO: any;
45
43
  ID: string[];
46
44
  }): FeatureData;
47
- /**
48
- * Get a sequence ontology (SO) term that describes the variant type
49
- */
50
- _getSOTermAndDescription(ref: string, alt: string[]): [string, string] | [undefined, undefined];
51
- static _altTypeToSO: {
52
- [key: string]: string | undefined;
53
- };
54
- _getSOAndDescFromAltDefs(ref: string, alt: string): [string, string] | [undefined, undefined];
55
- _getSOAndDescByExamination(ref: string, alt: string): [string, string];
56
- _makeDescriptionString(soTerm: string, ref: string, alt: string): string;
57
45
  toJSON(): any;
58
46
  }
59
47
  export {};
@@ -0,0 +1,56 @@
1
+ // locals
2
+ import { getSOTermAndDescription } from './util';
3
+ export default class VCFFeature {
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ constructor(args) {
6
+ this.variant = args.variant;
7
+ this.parser = args.parser;
8
+ this.data = this.dataFromVariant(this.variant);
9
+ this._id = args.id;
10
+ }
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ get(field) {
13
+ return field === 'samples'
14
+ ? this.variant.SAMPLES
15
+ : this.data[field] || this.variant[field];
16
+ }
17
+ set() { }
18
+ parent() {
19
+ return undefined;
20
+ }
21
+ children() {
22
+ return undefined;
23
+ }
24
+ tags() {
25
+ return [...Object.keys(this.data), ...Object.keys(this.variant), 'samples'];
26
+ }
27
+ id() {
28
+ return this._id;
29
+ }
30
+ dataFromVariant(variant) {
31
+ const { REF, ALT, POS, CHROM, INFO, ID } = variant;
32
+ const start = POS - 1;
33
+ const [type, description] = getSOTermAndDescription(REF, ALT, this.parser);
34
+ const isTRA = ALT === null || ALT === void 0 ? void 0 : ALT.some(f => f === '<TRA>');
35
+ const isSymbolic = ALT === null || ALT === void 0 ? void 0 : ALT.some(f => f.indexOf('<') !== -1);
36
+ return {
37
+ refName: CHROM,
38
+ start,
39
+ end: isSymbolic && INFO.END && !isTRA ? +INFO.END[0] : start + REF.length,
40
+ description,
41
+ type,
42
+ name: ID === null || ID === void 0 ? void 0 : ID.join(','),
43
+ aliases: ID && ID.length > 1 ? variant.ID.slice(1) : undefined,
44
+ };
45
+ }
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
+ toJSON() {
48
+ return {
49
+ uniqueId: this._id,
50
+ ...this.variant,
51
+ ...this.data,
52
+ samples: this.variant.SAMPLES,
53
+ };
54
+ }
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VcfFeature/index.ts"],"names":[],"mappings":"AAGA,SAAS;AACT,OAAO,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAA;AAsBhD,MAAM,CAAC,OAAO,OAAO,UAAU;IAU7B,8DAA8D;IAC9D,YAAY,IAA+C;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAA;IACpB,CAAC;IAED,8DAA8D;IAC9D,GAAG,CAAC,KAAa;QACf,OAAO,KAAK,KAAK,SAAS;YACxB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAED,GAAG,KAAI,CAAC;IAER,MAAM;QACJ,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAA;IAC7E,CAAC;IAED,EAAE;QACA,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,eAAe,CAAC,OAOf;QACC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAA;QAClD,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;QACrB,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1E,MAAM,KAAK,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;QAC3C,MAAM,UAAU,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAExD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK;YACL,GAAG,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM;YACzE,WAAW;YACX,IAAI;YACJ,IAAI,EAAE,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,CAAC,GAAG,CAAC;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAA;IACH,CAAC;IAED,8DAA8D;IAC9D,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI,CAAC,IAAI;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SAC9B,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import VCF from '@gmod/vcf';
2
+ /**
3
+ * Get a sequence ontology (SO) term that describes the variant type
4
+ */
5
+ export declare function getSOTermAndDescription(ref: string, alt: string[], parser: VCF): string[];
6
+ export declare function getSOAndDescFromAltDefs(ref: string, alt: string, parser: VCF): string[];
7
+ export declare function getSOAndDescByExamination(ref: string, alt: string): string[];
@@ -0,0 +1,123 @@
1
+ import { parseBreakend } from '@gmod/vcf';
2
+ const altTypeToSO = {
3
+ DEL: 'deletion',
4
+ INS: 'insertion',
5
+ DUP: 'duplication',
6
+ INV: 'inversion',
7
+ INVDUP: 'inverted duplication',
8
+ CNV: 'copy_number_variation',
9
+ TRA: 'translocation',
10
+ 'DUP:TANDEM': 'tandem_duplication',
11
+ NON_REF: 'sequence_variant',
12
+ '*': 'sequence_variant',
13
+ };
14
+ /**
15
+ * Get a sequence ontology (SO) term that describes the variant type
16
+ */
17
+ export function getSOTermAndDescription(ref, alt, parser) {
18
+ // it's just a remark if there are no alternate alleles
19
+ if (!alt || alt.length === 0) {
20
+ return ['remark', 'no alternative alleles'];
21
+ }
22
+ const soTerms = new Set();
23
+ let descriptions = new Set();
24
+ alt.forEach(a => {
25
+ let [soTerm, description] = getSOAndDescFromAltDefs(ref, a, parser);
26
+ if (!soTerm) {
27
+ ;
28
+ [soTerm, description] = getSOAndDescByExamination(ref, a);
29
+ }
30
+ if (soTerm && description) {
31
+ soTerms.add(soTerm);
32
+ descriptions.add(description);
33
+ }
34
+ });
35
+ // Combine descriptions like ["SNV G -> A", "SNV G -> T"] to ["SNV G -> A,T"]
36
+ if (descriptions.size > 1) {
37
+ const descs = [...descriptions];
38
+ const prefixes = new Set(descs.map(desc => {
39
+ const prefix = desc.split('->');
40
+ return prefix[1] ? prefix[0] : desc;
41
+ }));
42
+ descriptions = new Set([...prefixes].map(prefix => {
43
+ const suffixes = descs
44
+ .map(desc => {
45
+ const pref = desc.split('-> ');
46
+ return pref[1] && pref[0] === prefix ? pref[1] : '';
47
+ })
48
+ .filter(f => !!f);
49
+ return suffixes.length ? prefix + '-> ' + suffixes.join(',') : prefix;
50
+ }));
51
+ }
52
+ if (soTerms.size) {
53
+ return [[...soTerms].join(','), [...descriptions].join(',')];
54
+ }
55
+ return [];
56
+ }
57
+ export function getSOAndDescFromAltDefs(ref, alt, parser) {
58
+ if (typeof alt === 'string' && !alt.startsWith('<')) {
59
+ return [];
60
+ }
61
+ // look for a definition with an SO type for this
62
+ let soTerm = altTypeToSO[alt];
63
+ // if no SO term but ALT is in metadata, assume sequence_variant
64
+ if (!soTerm && parser.getMetadata('ALT', alt)) {
65
+ soTerm = 'sequence_variant';
66
+ }
67
+ if (soTerm) {
68
+ return [soTerm, alt];
69
+ }
70
+ // try to look for a definition for a parent term if we can
71
+ const modAlt = alt.split(':');
72
+ if (modAlt.length > 1) {
73
+ return getSOAndDescFromAltDefs(ref, `<${modAlt.slice(0, modAlt.length - 1).join(':')}>`, parser);
74
+ }
75
+ // no parent
76
+ return [];
77
+ }
78
+ // note: term SNV is used instead of SNP because SO definition of SNP says
79
+ // abundance must be at least 1% in population, and can't be sure we meet
80
+ // that
81
+ export function getSOAndDescByExamination(ref, alt) {
82
+ const bnd = parseBreakend(alt);
83
+ if (bnd) {
84
+ return ['breakend', alt];
85
+ }
86
+ else if (ref.length === 1 && alt.length === 1) {
87
+ return ['SNV', makeDescriptionString('SNV', ref, alt)];
88
+ }
89
+ else if (alt === '<INS>') {
90
+ return ['insertion', alt];
91
+ }
92
+ else if (alt === '<DEL>') {
93
+ return ['deletion', alt];
94
+ }
95
+ else if (alt === '<INV>') {
96
+ return ['deletion', alt];
97
+ }
98
+ else if (alt === '<TRA>') {
99
+ return ['translocation', alt];
100
+ }
101
+ else if (alt.includes('<')) {
102
+ return ['sv', alt];
103
+ }
104
+ else if (ref.length === alt.length) {
105
+ if (ref.split('').reverse().join('') === alt) {
106
+ return ['inversion', makeDescriptionString('inversion', ref, alt)];
107
+ }
108
+ else {
109
+ return ['substitution', makeDescriptionString('substitution', ref, alt)];
110
+ }
111
+ }
112
+ else if (ref.length <= alt.length) {
113
+ return ['insertion', makeDescriptionString('insertion', ref, alt)];
114
+ }
115
+ else if (ref.length > alt.length) {
116
+ return ['deletion', makeDescriptionString('deletion', ref, alt)];
117
+ }
118
+ return ['indel', makeDescriptionString('indel', ref, alt)];
119
+ }
120
+ function makeDescriptionString(soTerm, ref, alt) {
121
+ return `${soTerm} ${ref} -> ${alt}`;
122
+ }
123
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/VcfFeature/util.ts"],"names":[],"mappings":"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"}