@jbrowse/plugin-variants 2.3.4 → 2.4.1
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.
- package/dist/ChordVariantDisplay/index.js +1 -0
- package/dist/ChordVariantDisplay/index.js.map +1 -1
- package/dist/ChordVariantDisplay/models/stateModelFactory.d.ts +9 -2
- package/dist/ChordVariantDisplay/models/stateModelFactory.js +1 -1
- package/dist/ChordVariantDisplay/models/stateModelFactory.js.map +1 -1
- package/dist/LinearVariantDisplay/model.d.ts +3 -1
- package/dist/StructuralVariantChordRenderer/ReactComponent.d.ts +2 -3
- package/dist/StructuralVariantChordRenderer/ReactComponent.js +3 -5
- package/dist/StructuralVariantChordRenderer/ReactComponent.js.map +1 -1
- package/dist/VariantFeatureWidget/BreakendOptionDialog.js +4 -3
- package/dist/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -1
- package/dist/VariantFeatureWidget/VariantSampleGrid.js +11 -7
- package/dist/VariantFeatureWidget/VariantSampleGrid.js.map +1 -1
- package/dist/VcfAdapter/VcfAdapter.d.ts +3 -1
- package/dist/VcfAdapter/VcfAdapter.js +9 -10
- package/dist/VcfAdapter/VcfAdapter.js.map +1 -1
- package/dist/VcfFeature/index.js +1 -1
- package/dist/VcfFeature/index.js.map +1 -1
- package/dist/VcfFeature/util.js +4 -7
- package/dist/VcfFeature/util.js.map +1 -1
- package/dist/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -1
- package/esm/ChordVariantDisplay/index.js +1 -0
- package/esm/ChordVariantDisplay/index.js.map +1 -1
- package/esm/ChordVariantDisplay/models/stateModelFactory.d.ts +9 -2
- package/esm/ChordVariantDisplay/models/stateModelFactory.js +1 -1
- package/esm/ChordVariantDisplay/models/stateModelFactory.js.map +1 -1
- package/esm/LinearVariantDisplay/model.d.ts +3 -1
- package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +2 -3
- package/esm/StructuralVariantChordRenderer/ReactComponent.js +3 -5
- package/esm/StructuralVariantChordRenderer/ReactComponent.js.map +1 -1
- package/esm/VariantFeatureWidget/BreakendOptionDialog.js +4 -3
- package/esm/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -1
- package/esm/VariantFeatureWidget/VariantSampleGrid.js +11 -7
- package/esm/VariantFeatureWidget/VariantSampleGrid.js.map +1 -1
- package/esm/VcfAdapter/VcfAdapter.d.ts +3 -1
- package/esm/VcfAdapter/VcfAdapter.js +9 -10
- package/esm/VcfAdapter/VcfAdapter.js.map +1 -1
- package/esm/VcfFeature/index.js +1 -1
- package/esm/VcfFeature/index.js.map +1 -1
- package/esm/VcfFeature/util.js +4 -7
- package/esm/VcfFeature/util.js.map +1 -1
- package/esm/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -1
- package/package.json +3 -3
- package/src/ChordVariantDisplay/index.ts +2 -0
- package/src/ChordVariantDisplay/models/stateModelFactory.ts +2 -2
- package/src/StructuralVariantChordRenderer/ReactComponent.tsx +14 -15
- package/src/VariantFeatureWidget/BreakendOptionDialog.tsx +11 -5
- package/src/VariantFeatureWidget/VariantFeatureWidget.test.tsx +1 -1
- package/src/VariantFeatureWidget/VariantSampleGrid.tsx +48 -33
- package/src/VariantFeatureWidget/__snapshots__/VariantFeatureWidget.test.tsx.snap +8 -8
- package/src/VcfAdapter/VcfAdapter.ts +15 -16
- package/src/VcfFeature/index.ts +1 -1
- package/src/VcfFeature/util.ts +4 -6
- package/src/VcfTabixAdapter/VcfTabixAdapter.ts +2 -2
- package/src/VcfTabixAdapter/__snapshots__/VcfTabixAdapter.test.ts.snap +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreakendOptionDialog.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/BreakendOptionDialog.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,UAAU;AACV,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAW,MAAM,oBAAoB,CAAA;AAExD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,KAAK,EAAE;QACL,OAAO,EAAE,OAAO;KACjB;CACF,CAAC,CAAA;AAEF,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAQ,GAMT;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEtD,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,QAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,+BAA+B;QACtE,oBAAC,aAAa;YACZ,oBAAC,gBAAgB,IACf,SAAS,EAAE,OAAO,CAAC,KAAK,EACxB,OAAO,EACL,oBAAC,QAAQ,IACP,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAC1C,EAEJ,KAAK,EAAC,+BAA+B,GACrC;YAEF,oBAAC,gBAAgB,IACf,SAAS,EAAE,OAAO,CAAC,KAAK,EACxB,OAAO,EACL,oBAAC,QAAQ,IACP,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAC5C,EAEJ,KAAK,EAAC,qDAAqD,GAC3D,CACY;QAChB,oBAAC,aAAa;YACZ,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;oBACtB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;oBACjC,IAAI;wBACF,MAAM,YAAY,GAAG,QAAQ,CAAC,2BAA2B,CACvD,OAAO,EACP,IAAI,CACL,CAAA;
|
|
1
|
+
{"version":3,"file":"BreakendOptionDialog.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/BreakendOptionDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,19 @@ import { DataGrid } from '@mui/x-data-grid';
|
|
|
4
4
|
import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';
|
|
5
5
|
import { measureGridWidth } from '@jbrowse/core/util';
|
|
6
6
|
import ResizeBar, { useResizeBar } from '@jbrowse/core/ui/ResizeBar';
|
|
7
|
+
function SampleFilters({ columns, filter, setFilter, }) {
|
|
8
|
+
const [showFilters, setShowFilters] = useState(false);
|
|
9
|
+
return (React.createElement(React.Fragment, null,
|
|
10
|
+
React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: showFilters, onChange: () => setShowFilters(f => !f) }), label: "Show sample filters" }),
|
|
11
|
+
showFilters ? (React.createElement(React.Fragment, null,
|
|
12
|
+
React.createElement(Typography, null, "These filters can use a plain text search or regex style query, e.g. in the genotype field, entering 1 will query for all genotypes that include the first alternate allele e.g. 0|1 or 1|1, entering [1-9]\\d* will find any non-zero allele e.g. 0|2 or 2/33"),
|
|
13
|
+
columns.map(({ field }) => (React.createElement(TextField, { key: `filter-${field}`, placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => setFilter({ ...filter, [field]: event.target.value }) }))))) : null));
|
|
14
|
+
}
|
|
7
15
|
export default function VariantSamples(props) {
|
|
8
16
|
var _a;
|
|
9
17
|
const { feature, descriptions = {} } = props;
|
|
10
18
|
const { ref, scrollLeft } = useResizeBar();
|
|
11
19
|
const [filter, setFilter] = useState({});
|
|
12
|
-
const [showFilters, setShowFilters] = useState(false);
|
|
13
20
|
const samples = (feature.samples || {});
|
|
14
21
|
const preFilteredRows = Object.entries(samples);
|
|
15
22
|
let error;
|
|
@@ -40,7 +47,7 @@ export default function VariantSamples(props) {
|
|
|
40
47
|
}
|
|
41
48
|
const keys = ['sample', ...Object.keys(((_a = preFilteredRows[0]) === null || _a === void 0 ? void 0 : _a[1]) || {})];
|
|
42
49
|
const [widths, setWidths] = useState(keys.map(e => measureGridWidth(rows.map(r => r[e]))));
|
|
43
|
-
const
|
|
50
|
+
const columns = keys.map((field, index) => {
|
|
44
51
|
var _a, _b;
|
|
45
52
|
return ({
|
|
46
53
|
field,
|
|
@@ -52,13 +59,10 @@ export default function VariantSamples(props) {
|
|
|
52
59
|
// https://github.com/mui-org/material-ui-x/issues/1197
|
|
53
60
|
return !preFilteredRows.length ? null : (React.createElement(BaseCard, { ...props, title: "Samples" },
|
|
54
61
|
error ? React.createElement(Typography, { color: "error" }, `${error}`) : null,
|
|
55
|
-
React.createElement(
|
|
56
|
-
showFilters ? (React.createElement(React.Fragment, null,
|
|
57
|
-
React.createElement(Typography, null, "These filters can use a plain text search or regex style query, e.g. in the genotype field, entering 1 will query for all genotypes that include the first alternate allele e.g. 0|1 or 1|1, entering [1-9]\\d* will find any non-zero allele e.g. 0|2 or 2/33"),
|
|
58
|
-
infoFields.map(({ field }) => (React.createElement(TextField, { key: `filter-${field}`, placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => setFilter({ ...filter, [field]: event.target.value }) }))))) : null,
|
|
62
|
+
React.createElement(SampleFilters, { setFilter: setFilter, columns: columns, filter: filter }),
|
|
59
63
|
React.createElement("div", { ref: ref },
|
|
60
64
|
React.createElement(ResizeBar, { widths: widths, setWidths: setWidths, scrollLeft: scrollLeft }),
|
|
61
65
|
React.createElement("div", { ref: ref, style: { height: 600, width: '100%', overflow: 'auto' } },
|
|
62
|
-
React.createElement(DataGrid, { rows: rows, columns:
|
|
66
|
+
React.createElement(DataGrid, { rows: rows, columns: columns, disableSelectionOnClick: true, rowHeight: 25, headerHeight: 35, disableColumnMenu: true })))));
|
|
63
67
|
}
|
|
64
68
|
//# sourceMappingURL=VariantSampleGrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariantSampleGrid.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantSampleGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAA2B,MAAM,oBAAoB,CAAA;AAC9E,OAAO,SAAS,EAAE,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAWpE,
|
|
1
|
+
{"version":3,"file":"VariantSampleGrid.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantSampleGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,9 @@ export default class VcfAdapter extends BaseFeatureDataAdapter {
|
|
|
11
11
|
getMetadata(): Promise<any>;
|
|
12
12
|
setupP(): Promise<{
|
|
13
13
|
header: string;
|
|
14
|
-
intervalTree:
|
|
14
|
+
intervalTree: {
|
|
15
|
+
[key: string]: IntervalTree<any>;
|
|
16
|
+
};
|
|
15
17
|
}>;
|
|
16
18
|
setup(): Promise<{
|
|
17
19
|
header: string;
|
|
@@ -46,22 +46,21 @@ export default class VcfAdapter extends BaseFeatureDataAdapter {
|
|
|
46
46
|
}
|
|
47
47
|
const str = new TextDecoder().decode(buffer);
|
|
48
48
|
const { header, lines } = readVcf(str);
|
|
49
|
-
const intervalTree =
|
|
50
|
-
|
|
49
|
+
const intervalTree = {};
|
|
50
|
+
for (const obj of lines.map((line, id) => {
|
|
51
51
|
var _a;
|
|
52
52
|
const [refName, startP, , ref, , , , info] = line.split('\t');
|
|
53
53
|
const start = +startP - 1;
|
|
54
|
-
const
|
|
54
|
+
const def = start + ref.length;
|
|
55
|
+
const end = +(((_a = info.match(/END=(\d+)/)) === null || _a === void 0 ? void 0 : _a[1].trim()) || def);
|
|
55
56
|
return { line, refName, start, end, id };
|
|
56
|
-
})
|
|
57
|
-
.reduce((acc, obj) => {
|
|
57
|
+
})) {
|
|
58
58
|
const key = obj.refName;
|
|
59
|
-
if (!
|
|
60
|
-
|
|
59
|
+
if (!intervalTree[key]) {
|
|
60
|
+
intervalTree[key] = new IntervalTree();
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}, {});
|
|
62
|
+
intervalTree[key].insert([obj.start, obj.end], obj);
|
|
63
|
+
}
|
|
65
64
|
return { header, intervalTree };
|
|
66
65
|
}
|
|
67
66
|
async setup() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,YAAY,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,GAAG,MAAM,WAAW,CAAA;AAE3B,QAAQ;AACR,OAAO,UAAU,MAAM,eAAe,CAAA;AAEtC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,OAAO,CAAC,IAAI,CAAC,EAAE;QACd,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SAClB;aAAM,IAAI,IAAI,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SAChB;IACH,CAAC,CAAC,CAAA;IACJ,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACnD,CAAC,CAAA;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,sBAAsB;IAQrD,KAAK,CAAC,SAAS;QACpB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QACrC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QAC1C,OAAO,MAAM,CAAC,WAAW,EAAE,CAAA;IAC7B,CAAC;IAED,uCAAuC;IAChC,KAAK,CAAC,MAAM;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;QAC7B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;QAE1E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QAEnD,2CAA2C;QAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,SAAW,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;SAC9D;QAED,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"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"}
|
package/esm/VcfFeature/index.js
CHANGED
|
@@ -32,7 +32,7 @@ export default class VCFFeature {
|
|
|
32
32
|
const start = POS - 1;
|
|
33
33
|
const [type, description] = getSOTermAndDescription(REF, ALT, this.parser);
|
|
34
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.
|
|
35
|
+
const isSymbolic = ALT === null || ALT === void 0 ? void 0 : ALT.some(f => f.includes('<'));
|
|
36
36
|
return {
|
|
37
37
|
refName: CHROM,
|
|
38
38
|
start,
|
|
@@ -1 +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,
|
|
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,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAElD,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"}
|
package/esm/VcfFeature/util.js
CHANGED
|
@@ -70,7 +70,7 @@ export function getSOAndDescFromAltDefs(ref, alt, parser) {
|
|
|
70
70
|
// try to look for a definition for a parent term if we can
|
|
71
71
|
const modAlt = alt.split(':');
|
|
72
72
|
if (modAlt.length > 1) {
|
|
73
|
-
return getSOAndDescFromAltDefs(ref, `<${modAlt.slice(0,
|
|
73
|
+
return getSOAndDescFromAltDefs(ref, `<${modAlt.slice(0, -1).join(':')}>`, parser);
|
|
74
74
|
}
|
|
75
75
|
// no parent
|
|
76
76
|
return [];
|
|
@@ -102,12 +102,9 @@ export function getSOAndDescByExamination(ref, alt) {
|
|
|
102
102
|
return ['sv', alt];
|
|
103
103
|
}
|
|
104
104
|
else if (ref.length === alt.length) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
else {
|
|
109
|
-
return ['substitution', makeDescriptionString('substitution', ref, alt)];
|
|
110
|
-
}
|
|
105
|
+
return ref.split('').reverse().join('') === alt
|
|
106
|
+
? ['inversion', makeDescriptionString('inversion', ref, alt)]
|
|
107
|
+
: ['substitution', makeDescriptionString('substitution', ref, alt)];
|
|
111
108
|
}
|
|
112
109
|
else if (ref.length <= alt.length) {
|
|
113
110
|
return ['insertion', makeDescriptionString('insertion', ref, alt)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/VcfFeature/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/VcfFeature/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VcfTabixAdapter.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/VcfTabixAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,QAAQ;AACR,OAAO,UAAU,MAAM,eAAe,CAAA;AAEtC,MAAM,CAAC,OAAO,MAAO,SAAQ,sBAAsB;IAMzC,KAAK,CAAC,YAAY;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QAEtD,MAAM,UAAU,GAAG,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"VcfTabixAdapter.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/VcfTabixAdapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-variants",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.1",
|
|
4
4
|
"description": "JBrowse 2 variant adapters, tracks, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@flatten-js/interval-tree": "^1.0.15",
|
|
41
41
|
"@gmod/bgzf-filehandle": "^1.4.3",
|
|
42
|
-
"@gmod/tabix": "^1.5.
|
|
42
|
+
"@gmod/tabix": "^1.5.6",
|
|
43
43
|
"@gmod/vcf": "^5.0.9",
|
|
44
44
|
"@mui/icons-material": "^5.0.2",
|
|
45
45
|
"@mui/x-data-grid": "^5.0.1",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"distModule": "esm/index.js",
|
|
65
65
|
"srcModule": "src/index.ts",
|
|
66
66
|
"module": "esm/index.js",
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "747c50c4edc0184827efa4f8dfc576ca9a72caeb"
|
|
68
68
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
2
|
import { BaseChordDisplayComponent } from '@jbrowse/plugin-circular-view'
|
|
3
3
|
import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType'
|
|
4
|
+
|
|
5
|
+
// locals
|
|
4
6
|
import configSchemaF from './models/configSchema'
|
|
5
7
|
import stateModelF from './models/stateModelFactory'
|
|
6
8
|
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
ConfigurationReference,
|
|
5
5
|
} from '@jbrowse/core/configuration'
|
|
6
6
|
import { types } from 'mobx-state-tree'
|
|
7
|
-
import { getContainingView } from '@jbrowse/core/util'
|
|
7
|
+
import { Feature, getContainingView } from '@jbrowse/core/util'
|
|
8
8
|
import { getParentRenderProps } from '@jbrowse/core/util/tracks'
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -48,7 +48,7 @@ const stateModelFactory = (configSchema: AnyConfigurationSchemaType) => {
|
|
|
48
48
|
radius: view.radiusPx,
|
|
49
49
|
blockDefinitions: self.blockDefinitions,
|
|
50
50
|
config: self.configuration.renderer,
|
|
51
|
-
onChordClick: self.onChordClick,
|
|
51
|
+
onChordClick: (arg: Feature) => self.onChordClick(arg),
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
}))
|
|
@@ -6,7 +6,16 @@ import { AnyConfigurationModel } from '@jbrowse/core/configuration'
|
|
|
6
6
|
// locals
|
|
7
7
|
import Chord, { Block, AnyRegion } from './Chord'
|
|
8
8
|
|
|
9
|
-
function StructuralVariantChords(
|
|
9
|
+
export default observer(function StructuralVariantChords({
|
|
10
|
+
features,
|
|
11
|
+
config,
|
|
12
|
+
displayModel,
|
|
13
|
+
blockDefinitions,
|
|
14
|
+
radius,
|
|
15
|
+
bezierRadius,
|
|
16
|
+
displayModel: { selectedFeatureId },
|
|
17
|
+
onChordClick,
|
|
18
|
+
}: {
|
|
10
19
|
features: Map<string, Feature>
|
|
11
20
|
radius: number
|
|
12
21
|
config: AnyConfigurationModel
|
|
@@ -20,16 +29,6 @@ function StructuralVariantChords(props: {
|
|
|
20
29
|
evt: unknown,
|
|
21
30
|
) => void
|
|
22
31
|
}) {
|
|
23
|
-
const {
|
|
24
|
-
features,
|
|
25
|
-
config,
|
|
26
|
-
displayModel,
|
|
27
|
-
blockDefinitions,
|
|
28
|
-
radius,
|
|
29
|
-
bezierRadius,
|
|
30
|
-
displayModel: { selectedFeatureId },
|
|
31
|
-
onChordClick,
|
|
32
|
-
} = props
|
|
33
32
|
// make a map of refName -> blockDefinition
|
|
34
33
|
const blocksForRefsMemo = useMemo(() => {
|
|
35
34
|
const blocksForRefs = {} as { [key: string]: Block }
|
|
@@ -57,7 +56,9 @@ function StructuralVariantChords(props: {
|
|
|
57
56
|
/>,
|
|
58
57
|
)
|
|
59
58
|
}
|
|
60
|
-
const trackStyleId = `chords-${
|
|
59
|
+
const trackStyleId = `chords-${
|
|
60
|
+
typeof jest !== 'undefined' ? 'test' : displayModel.id
|
|
61
|
+
}`
|
|
61
62
|
return (
|
|
62
63
|
<g id={trackStyleId} data-testid="structuralVariantChordRenderer">
|
|
63
64
|
<style
|
|
@@ -74,6 +75,4 @@ function StructuralVariantChords(props: {
|
|
|
74
75
|
{chords}
|
|
75
76
|
</g>
|
|
76
77
|
)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export default observer(StructuralVariantChords)
|
|
78
|
+
})
|
|
@@ -70,19 +70,25 @@ function BreakendOptionDialog({
|
|
|
70
70
|
feature,
|
|
71
71
|
view,
|
|
72
72
|
)
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
|
|
74
|
+
interface Track {
|
|
75
|
+
trackId: string
|
|
76
|
+
[key: string]: unknown
|
|
77
|
+
}
|
|
78
|
+
function remapIds(arr: Track[]) {
|
|
79
|
+
return arr.map(v => ({
|
|
75
80
|
...v,
|
|
76
|
-
id: v.trackId
|
|
81
|
+
id: `${v.trackId}-${Math.random()}`,
|
|
77
82
|
}))
|
|
78
83
|
}
|
|
79
84
|
viewSnapshot.views[0].offsetPx -= view.width / 2 + 100
|
|
80
85
|
viewSnapshot.views[1].offsetPx -= view.width / 2 + 100
|
|
81
86
|
viewSnapshot.featureData = feature
|
|
82
|
-
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
88
|
+
const viewTracks = getSnapshot(view.tracks) as Track[]
|
|
83
89
|
viewSnapshot.views[0].tracks = remapIds(viewTracks)
|
|
84
90
|
viewSnapshot.views[1].tracks = remapIds(
|
|
85
|
-
mirrorTracks ? viewTracks.
|
|
91
|
+
mirrorTracks ? [...viewTracks].reverse() : viewTracks,
|
|
86
92
|
)
|
|
87
93
|
|
|
88
94
|
session.addView('BreakpointSplitView', viewSnapshot)
|
|
@@ -21,6 +21,51 @@ interface Entry {
|
|
|
21
21
|
type InfoFields = Record<string, unknown>
|
|
22
22
|
type Filters = Record<string, string>
|
|
23
23
|
|
|
24
|
+
function SampleFilters({
|
|
25
|
+
columns,
|
|
26
|
+
filter,
|
|
27
|
+
setFilter,
|
|
28
|
+
}: {
|
|
29
|
+
columns: { field: string }[]
|
|
30
|
+
filter: Filters
|
|
31
|
+
setFilter: (arg: Filters) => void
|
|
32
|
+
}) {
|
|
33
|
+
const [showFilters, setShowFilters] = useState(false)
|
|
34
|
+
return (
|
|
35
|
+
<>
|
|
36
|
+
<FormControlLabel
|
|
37
|
+
control={
|
|
38
|
+
<Checkbox
|
|
39
|
+
checked={showFilters}
|
|
40
|
+
onChange={() => setShowFilters(f => !f)}
|
|
41
|
+
/>
|
|
42
|
+
}
|
|
43
|
+
label="Show sample filters"
|
|
44
|
+
/>
|
|
45
|
+
{showFilters ? (
|
|
46
|
+
<>
|
|
47
|
+
<Typography>
|
|
48
|
+
These filters can use a plain text search or regex style query, e.g.
|
|
49
|
+
in the genotype field, entering 1 will query for all genotypes that
|
|
50
|
+
include the first alternate allele e.g. 0|1 or 1|1, entering
|
|
51
|
+
[1-9]\d* will find any non-zero allele e.g. 0|2 or 2/33
|
|
52
|
+
</Typography>
|
|
53
|
+
{columns.map(({ field }) => (
|
|
54
|
+
<TextField
|
|
55
|
+
key={`filter-${field}`}
|
|
56
|
+
placeholder={`Filter ${field}`}
|
|
57
|
+
value={filter[field] || ''}
|
|
58
|
+
onChange={event =>
|
|
59
|
+
setFilter({ ...filter, [field]: event.target.value })
|
|
60
|
+
}
|
|
61
|
+
/>
|
|
62
|
+
))}
|
|
63
|
+
</>
|
|
64
|
+
) : null}
|
|
65
|
+
</>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
|
|
24
69
|
export default function VariantSamples(props: {
|
|
25
70
|
feature: SimpleFeatureSerialized
|
|
26
71
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -29,7 +74,6 @@ export default function VariantSamples(props: {
|
|
|
29
74
|
const { feature, descriptions = {} } = props
|
|
30
75
|
const { ref, scrollLeft } = useResizeBar()
|
|
31
76
|
const [filter, setFilter] = useState<Filters>({})
|
|
32
|
-
const [showFilters, setShowFilters] = useState(false)
|
|
33
77
|
const samples = (feature.samples || {}) as Record<string, InfoFields>
|
|
34
78
|
const preFilteredRows = Object.entries(samples)
|
|
35
79
|
|
|
@@ -69,7 +113,7 @@ export default function VariantSamples(props: {
|
|
|
69
113
|
const [widths, setWidths] = useState(
|
|
70
114
|
keys.map(e => measureGridWidth(rows.map(r => r[e]))),
|
|
71
115
|
)
|
|
72
|
-
const
|
|
116
|
+
const columns = keys.map((field, index) => ({
|
|
73
117
|
field,
|
|
74
118
|
description: descriptions.FORMAT?.[field]?.Description,
|
|
75
119
|
width: widths[index],
|
|
@@ -80,36 +124,7 @@ export default function VariantSamples(props: {
|
|
|
80
124
|
return !preFilteredRows.length ? null : (
|
|
81
125
|
<BaseCard {...props} title="Samples">
|
|
82
126
|
{error ? <Typography color="error">{`${error}`}</Typography> : null}
|
|
83
|
-
|
|
84
|
-
<FormControlLabel
|
|
85
|
-
control={
|
|
86
|
-
<Checkbox
|
|
87
|
-
checked={showFilters}
|
|
88
|
-
onChange={() => setShowFilters(f => !f)}
|
|
89
|
-
/>
|
|
90
|
-
}
|
|
91
|
-
label="Show sample filters"
|
|
92
|
-
/>
|
|
93
|
-
{showFilters ? (
|
|
94
|
-
<>
|
|
95
|
-
<Typography>
|
|
96
|
-
These filters can use a plain text search or regex style query, e.g.
|
|
97
|
-
in the genotype field, entering 1 will query for all genotypes that
|
|
98
|
-
include the first alternate allele e.g. 0|1 or 1|1, entering
|
|
99
|
-
[1-9]\d* will find any non-zero allele e.g. 0|2 or 2/33
|
|
100
|
-
</Typography>
|
|
101
|
-
{infoFields.map(({ field }) => (
|
|
102
|
-
<TextField
|
|
103
|
-
key={`filter-${field}`}
|
|
104
|
-
placeholder={`Filter ${field}`}
|
|
105
|
-
value={filter[field] || ''}
|
|
106
|
-
onChange={event =>
|
|
107
|
-
setFilter({ ...filter, [field]: event.target.value })
|
|
108
|
-
}
|
|
109
|
-
/>
|
|
110
|
-
))}
|
|
111
|
-
</>
|
|
112
|
-
) : null}
|
|
127
|
+
<SampleFilters setFilter={setFilter} columns={columns} filter={filter} />
|
|
113
128
|
<div ref={ref}>
|
|
114
129
|
<ResizeBar
|
|
115
130
|
widths={widths}
|
|
@@ -119,7 +134,7 @@ export default function VariantSamples(props: {
|
|
|
119
134
|
<div ref={ref} style={{ height: 600, width: '100%', overflow: 'auto' }}>
|
|
120
135
|
<DataGrid
|
|
121
136
|
rows={rows}
|
|
122
|
-
columns={
|
|
137
|
+
columns={columns}
|
|
123
138
|
disableSelectionOnClick
|
|
124
139
|
rowHeight={25}
|
|
125
140
|
headerHeight={35}
|
|
@@ -29,7 +29,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
29
29
|
>
|
|
30
30
|
<svg
|
|
31
31
|
aria-hidden="true"
|
|
32
|
-
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-
|
|
32
|
+
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-ymsoo8-MuiSvgIcon-root-expandIcon"
|
|
33
33
|
data-testid="ExpandMoreIcon"
|
|
34
34
|
focusable="false"
|
|
35
35
|
viewBox="0 0 24 24"
|
|
@@ -66,7 +66,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
66
66
|
class="css-1m8nxnb-field"
|
|
67
67
|
>
|
|
68
68
|
<div
|
|
69
|
-
class="css-
|
|
69
|
+
class="css-1q83rf3-fieldName"
|
|
70
70
|
>
|
|
71
71
|
Position
|
|
72
72
|
</div>
|
|
@@ -80,7 +80,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
80
80
|
class="css-1m8nxnb-field"
|
|
81
81
|
>
|
|
82
82
|
<div
|
|
83
|
-
class="css-
|
|
83
|
+
class="css-1q83rf3-fieldName"
|
|
84
84
|
>
|
|
85
85
|
Name
|
|
86
86
|
</div>
|
|
@@ -96,7 +96,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
96
96
|
class="css-1m8nxnb-field"
|
|
97
97
|
>
|
|
98
98
|
<div
|
|
99
|
-
class="css-
|
|
99
|
+
class="css-1q83rf3-fieldName"
|
|
100
100
|
>
|
|
101
101
|
Length
|
|
102
102
|
</div>
|
|
@@ -121,7 +121,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
121
121
|
>
|
|
122
122
|
<div
|
|
123
123
|
aria-label="reference base(s): Each base must be one of A,C,G,T,N (case insensitive)."
|
|
124
|
-
class="css-
|
|
124
|
+
class="css-18vnxxj-fieldDescription-fieldName"
|
|
125
125
|
data-mui-internal-clone-element="true"
|
|
126
126
|
>
|
|
127
127
|
REF
|
|
@@ -139,7 +139,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
139
139
|
>
|
|
140
140
|
<div
|
|
141
141
|
aria-label="alternate base(s): Comma-separated list of alternate non-reference alleles"
|
|
142
|
-
class="css-
|
|
142
|
+
class="css-18vnxxj-fieldDescription-fieldName"
|
|
143
143
|
data-mui-internal-clone-element="true"
|
|
144
144
|
>
|
|
145
145
|
ALT
|
|
@@ -157,7 +157,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
157
157
|
>
|
|
158
158
|
<div
|
|
159
159
|
aria-label="quality: Phred-scaled quality score for the assertion made in ALT"
|
|
160
|
-
class="css-
|
|
160
|
+
class="css-18vnxxj-fieldDescription-fieldName"
|
|
161
161
|
data-mui-internal-clone-element="true"
|
|
162
162
|
>
|
|
163
163
|
QUAL
|
|
@@ -174,7 +174,7 @@ exports[`renders with just the required model elements 1`] = `
|
|
|
174
174
|
class="css-1m8nxnb-field"
|
|
175
175
|
>
|
|
176
176
|
<div
|
|
177
|
-
class="css-
|
|
177
|
+
class="css-1q83rf3-fieldName"
|
|
178
178
|
style="width: 62px;"
|
|
179
179
|
>
|
|
180
180
|
INFO.MQ
|
|
@@ -65,22 +65,21 @@ export default class VcfAdapter extends BaseFeatureDataAdapter {
|
|
|
65
65
|
|
|
66
66
|
const str = new TextDecoder().decode(buffer)
|
|
67
67
|
const { header, lines } = readVcf(str)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}, {} as Record<string, IntervalTree>)
|
|
68
|
+
const intervalTree = {} as { [key: string]: IntervalTree }
|
|
69
|
+
|
|
70
|
+
for (const obj of lines.map((line, id) => {
|
|
71
|
+
const [refName, startP, , ref, , , , info] = line.split('\t')
|
|
72
|
+
const start = +startP - 1
|
|
73
|
+
const def = start + ref.length
|
|
74
|
+
const end = +(info.match(/END=(\d+)/)?.[1].trim() || def)
|
|
75
|
+
return { line, refName, start, end, id }
|
|
76
|
+
})) {
|
|
77
|
+
const key = obj.refName
|
|
78
|
+
if (!intervalTree[key]) {
|
|
79
|
+
intervalTree[key] = new IntervalTree()
|
|
80
|
+
}
|
|
81
|
+
intervalTree[key].insert([obj.start, obj.end], obj)
|
|
82
|
+
}
|
|
84
83
|
|
|
85
84
|
return { header, intervalTree }
|
|
86
85
|
}
|
package/src/VcfFeature/index.ts
CHANGED
|
@@ -79,7 +79,7 @@ export default class VCFFeature implements Feature {
|
|
|
79
79
|
const start = POS - 1
|
|
80
80
|
const [type, description] = getSOTermAndDescription(REF, ALT, this.parser)
|
|
81
81
|
const isTRA = ALT?.some(f => f === '<TRA>')
|
|
82
|
-
const isSymbolic = ALT?.some(f => f.
|
|
82
|
+
const isSymbolic = ALT?.some(f => f.includes('<'))
|
|
83
83
|
|
|
84
84
|
return {
|
|
85
85
|
refName: CHROM,
|