@jbrowse/plugin-bed 2.7.2 → 2.8.0
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/BedpeAdapter/BedpeAdapter.js +13 -22
- package/dist/index.js +4 -9
- package/esm/BedpeAdapter/BedpeAdapter.js +13 -22
- package/esm/index.js +4 -9
- package/package.json +2 -2
|
@@ -18,21 +18,26 @@ function featureData(line, uniqueId, flip, names) {
|
|
|
18
18
|
const ref1 = l[flip ? 3 : 0];
|
|
19
19
|
const start1 = +l[flip ? 4 : 1];
|
|
20
20
|
const end1 = +l[flip ? 5 : 2];
|
|
21
|
-
const ref2 =
|
|
21
|
+
const ref2 = l[!flip ? 3 : 0];
|
|
22
22
|
const start2 = +l[!flip ? 4 : 1];
|
|
23
23
|
const end2 = +l[!flip ? 5 : 2];
|
|
24
24
|
const name = l[6];
|
|
25
25
|
const score = +l[7];
|
|
26
26
|
const strand1 = parseStrand(l[8]);
|
|
27
27
|
const strand2 = parseStrand(l[9]);
|
|
28
|
-
const extra = l.slice(
|
|
28
|
+
const extra = l.slice(10);
|
|
29
29
|
const rest = names
|
|
30
|
-
? Object.fromEntries(names.slice(
|
|
30
|
+
? Object.fromEntries(names.slice(10).map((n, idx) => [n, extra[idx]]))
|
|
31
31
|
: extra;
|
|
32
|
+
let ALT;
|
|
33
|
+
if (['DUP', 'TRA', 'INV', 'CNV', 'DEL'].includes(extra[0])) {
|
|
34
|
+
ALT = `<${extra[0]}>`;
|
|
35
|
+
}
|
|
32
36
|
return new util_1.SimpleFeature({
|
|
33
37
|
start: start1,
|
|
34
38
|
end: end1,
|
|
35
39
|
refName: ref1,
|
|
40
|
+
...(ALT ? { ALT: [ALT] } : {}),
|
|
36
41
|
strand: strand1,
|
|
37
42
|
name,
|
|
38
43
|
...rest,
|
|
@@ -134,28 +139,14 @@ class BedpeAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
134
139
|
: undefined;
|
|
135
140
|
}
|
|
136
141
|
async loadFeatureTreeP(refName) {
|
|
142
|
+
var _a, _b, _c, _d;
|
|
137
143
|
const { feats1, feats2 } = await this.loadData();
|
|
138
|
-
const lines1 = feats1[refName];
|
|
139
|
-
const lines2 = feats2[refName];
|
|
140
144
|
const names = await this.getNames();
|
|
141
145
|
const intervalTree = new interval_tree_1.default();
|
|
142
|
-
const ret1 =
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
const ret2 = lines2 === null || lines2 === void 0 ? void 0 : lines2.map((f, i) => {
|
|
147
|
-
const uniqueId = `${this.id}-${refName}-${i}`;
|
|
148
|
-
return featureData(f, uniqueId, true, names);
|
|
149
|
-
});
|
|
150
|
-
if (ret1) {
|
|
151
|
-
for (const obj of ret1) {
|
|
152
|
-
intervalTree.insert([obj.get('start'), obj.get('end')], obj);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (ret2) {
|
|
156
|
-
for (const obj of ret2) {
|
|
157
|
-
intervalTree.insert([obj.get('start'), obj.get('end')], obj);
|
|
158
|
-
}
|
|
146
|
+
const ret1 = (_b = (_a = feats1[refName]) === null || _a === void 0 ? void 0 : _a.map((f, i) => featureData(f, `${this.id}-${refName}-${i}-r1`, false, names))) !== null && _b !== void 0 ? _b : [];
|
|
147
|
+
const ret2 = (_d = (_c = feats2[refName]) === null || _c === void 0 ? void 0 : _c.map((f, i) => featureData(f, `${this.id}-${refName}-${i}-r2`, true, names))) !== null && _d !== void 0 ? _d : [];
|
|
148
|
+
for (const obj of [...ret1, ...ret2]) {
|
|
149
|
+
intervalTree.insert([obj.get('start'), obj.get('end')], obj);
|
|
159
150
|
}
|
|
160
151
|
return intervalTree;
|
|
161
152
|
}
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,7 @@ class BedPlugin extends Plugin_1.default {
|
|
|
39
39
|
});
|
|
40
40
|
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
|
|
41
41
|
return (file, index, adapterHint) => {
|
|
42
|
-
const regexGuess = /\.bedpe\.gz
|
|
42
|
+
const regexGuess = /\.bedpe(\.gz)?$/i;
|
|
43
43
|
const adapterName = 'BedpeAdapter';
|
|
44
44
|
const fileName = (0, tracks_1.getFileName)(file);
|
|
45
45
|
if (regexGuess.test(fileName) || adapterHint === adapterName) {
|
|
@@ -84,14 +84,9 @@ class BedPlugin extends Plugin_1.default {
|
|
|
84
84
|
return adapterGuesser(file, index, adapterHint);
|
|
85
85
|
};
|
|
86
86
|
});
|
|
87
|
-
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) =>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return 'VariantTrack';
|
|
91
|
-
}
|
|
92
|
-
return trackTypeGuesser(adapterName);
|
|
93
|
-
};
|
|
94
|
-
});
|
|
87
|
+
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) => (adapterName) => adapterName === 'BedpeAdapter'
|
|
88
|
+
? 'VariantTrack'
|
|
89
|
+
: trackTypeGuesser(adapterName));
|
|
95
90
|
}
|
|
96
91
|
}
|
|
97
92
|
exports.default = BedPlugin;
|
|
@@ -12,21 +12,26 @@ export function featureData(line, uniqueId, flip, names) {
|
|
|
12
12
|
const ref1 = l[flip ? 3 : 0];
|
|
13
13
|
const start1 = +l[flip ? 4 : 1];
|
|
14
14
|
const end1 = +l[flip ? 5 : 2];
|
|
15
|
-
const ref2 =
|
|
15
|
+
const ref2 = l[!flip ? 3 : 0];
|
|
16
16
|
const start2 = +l[!flip ? 4 : 1];
|
|
17
17
|
const end2 = +l[!flip ? 5 : 2];
|
|
18
18
|
const name = l[6];
|
|
19
19
|
const score = +l[7];
|
|
20
20
|
const strand1 = parseStrand(l[8]);
|
|
21
21
|
const strand2 = parseStrand(l[9]);
|
|
22
|
-
const extra = l.slice(
|
|
22
|
+
const extra = l.slice(10);
|
|
23
23
|
const rest = names
|
|
24
|
-
? Object.fromEntries(names.slice(
|
|
24
|
+
? Object.fromEntries(names.slice(10).map((n, idx) => [n, extra[idx]]))
|
|
25
25
|
: extra;
|
|
26
|
+
let ALT;
|
|
27
|
+
if (['DUP', 'TRA', 'INV', 'CNV', 'DEL'].includes(extra[0])) {
|
|
28
|
+
ALT = `<${extra[0]}>`;
|
|
29
|
+
}
|
|
26
30
|
return new SimpleFeature({
|
|
27
31
|
start: start1,
|
|
28
32
|
end: end1,
|
|
29
33
|
refName: ref1,
|
|
34
|
+
...(ALT ? { ALT: [ALT] } : {}),
|
|
30
35
|
strand: strand1,
|
|
31
36
|
name,
|
|
32
37
|
...rest,
|
|
@@ -127,28 +132,14 @@ class BedpeAdapter extends BaseFeatureDataAdapter {
|
|
|
127
132
|
: undefined;
|
|
128
133
|
}
|
|
129
134
|
async loadFeatureTreeP(refName) {
|
|
135
|
+
var _a, _b, _c, _d;
|
|
130
136
|
const { feats1, feats2 } = await this.loadData();
|
|
131
|
-
const lines1 = feats1[refName];
|
|
132
|
-
const lines2 = feats2[refName];
|
|
133
137
|
const names = await this.getNames();
|
|
134
138
|
const intervalTree = new IntervalTree();
|
|
135
|
-
const ret1 =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const ret2 = lines2 === null || lines2 === void 0 ? void 0 : lines2.map((f, i) => {
|
|
140
|
-
const uniqueId = `${this.id}-${refName}-${i}`;
|
|
141
|
-
return featureData(f, uniqueId, true, names);
|
|
142
|
-
});
|
|
143
|
-
if (ret1) {
|
|
144
|
-
for (const obj of ret1) {
|
|
145
|
-
intervalTree.insert([obj.get('start'), obj.get('end')], obj);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
if (ret2) {
|
|
149
|
-
for (const obj of ret2) {
|
|
150
|
-
intervalTree.insert([obj.get('start'), obj.get('end')], obj);
|
|
151
|
-
}
|
|
139
|
+
const ret1 = (_b = (_a = feats1[refName]) === null || _a === void 0 ? void 0 : _a.map((f, i) => featureData(f, `${this.id}-${refName}-${i}-r1`, false, names))) !== null && _b !== void 0 ? _b : [];
|
|
140
|
+
const ret2 = (_d = (_c = feats2[refName]) === null || _c === void 0 ? void 0 : _c.map((f, i) => featureData(f, `${this.id}-${refName}-${i}-r2`, true, names))) !== null && _d !== void 0 ? _d : [];
|
|
141
|
+
for (const obj of [...ret1, ...ret2]) {
|
|
142
|
+
intervalTree.insert([obj.get('start'), obj.get('end')], obj);
|
|
152
143
|
}
|
|
153
144
|
return intervalTree;
|
|
154
145
|
}
|
package/esm/index.js
CHANGED
|
@@ -34,7 +34,7 @@ export default class BedPlugin extends Plugin {
|
|
|
34
34
|
});
|
|
35
35
|
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
|
|
36
36
|
return (file, index, adapterHint) => {
|
|
37
|
-
const regexGuess = /\.bedpe\.gz
|
|
37
|
+
const regexGuess = /\.bedpe(\.gz)?$/i;
|
|
38
38
|
const adapterName = 'BedpeAdapter';
|
|
39
39
|
const fileName = getFileName(file);
|
|
40
40
|
if (regexGuess.test(fileName) || adapterHint === adapterName) {
|
|
@@ -79,13 +79,8 @@ export default class BedPlugin extends Plugin {
|
|
|
79
79
|
return adapterGuesser(file, index, adapterHint);
|
|
80
80
|
};
|
|
81
81
|
});
|
|
82
|
-
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) =>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return 'VariantTrack';
|
|
86
|
-
}
|
|
87
|
-
return trackTypeGuesser(adapterName);
|
|
88
|
-
};
|
|
89
|
-
});
|
|
82
|
+
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) => (adapterName) => adapterName === 'BedpeAdapter'
|
|
83
|
+
? 'VariantTrack'
|
|
84
|
+
: trackTypeGuesser(adapterName));
|
|
90
85
|
}
|
|
91
86
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-bed",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0",
|
|
4
4
|
"description": "JBrowse 2 bed adapters, tracks, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"distModule": "esm/index.js",
|
|
56
56
|
"srcModule": "src/index.ts",
|
|
57
57
|
"module": "esm/index.js",
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "ee8c2bdc8bd4f1a70b1eefda984f04a2830d9ca0"
|
|
59
59
|
}
|