@jbrowse/plugin-gtf 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/GtfAdapter/GtfAdapter.d.ts +1 -1
- package/dist/GtfAdapter/GtfAdapter.js +5 -4
- package/dist/GtfAdapter/GtfAdapter.js.map +1 -1
- package/dist/util.js +7 -9
- package/dist/util.js.map +1 -1
- package/esm/GtfAdapter/GtfAdapter.d.ts +1 -1
- package/esm/GtfAdapter/GtfAdapter.js +2 -1
- package/esm/GtfAdapter/GtfAdapter.js.map +1 -1
- package/esm/util.js +7 -9
- package/esm/util.js.map +1 -1
- package/package.json +2 -2
- package/src/GtfAdapter/GtfAdapter.ts +4 -1
- package/src/util.ts +9 -9
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
2
|
import { NoAssemblyRegion } from '@jbrowse/core/util/types';
|
|
3
3
|
import IntervalTree from '@flatten-js/interval-tree';
|
|
4
|
-
import { Feature } from '@jbrowse/core/util
|
|
4
|
+
import { Feature } from '@jbrowse/core/util';
|
|
5
5
|
export default class extends BaseFeatureDataAdapter {
|
|
6
6
|
protected gtfFeatures?: Promise<{
|
|
7
7
|
feats: {
|
|
@@ -7,10 +7,11 @@ const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
|
7
7
|
const io_1 = require("@jbrowse/core/util/io");
|
|
8
8
|
const rxjs_1 = require("@jbrowse/core/util/rxjs");
|
|
9
9
|
const interval_tree_1 = __importDefault(require("@flatten-js/interval-tree"));
|
|
10
|
-
const
|
|
10
|
+
const util_1 = require("@jbrowse/core/util");
|
|
11
11
|
const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
|
|
12
12
|
const gtf_1 = __importDefault(require("@gmod/gtf"));
|
|
13
|
-
|
|
13
|
+
// locals
|
|
14
|
+
const util_2 = require("../util");
|
|
14
15
|
function isGzip(buf) {
|
|
15
16
|
return buf[0] === 31 && buf[1] === 139 && buf[2] === 8;
|
|
16
17
|
}
|
|
@@ -72,8 +73,8 @@ class default_1 extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
72
73
|
parseSequences: false,
|
|
73
74
|
});
|
|
74
75
|
const intervalTree = new interval_tree_1.default();
|
|
75
|
-
const ret = data.flat().map((f, i) => new
|
|
76
|
-
data: (0,
|
|
76
|
+
const ret = data.flat().map((f, i) => new util_1.SimpleFeature({
|
|
77
|
+
data: (0, util_2.featureData)(f),
|
|
77
78
|
id: `${this.id}-${refName}-${i}`,
|
|
78
79
|
}));
|
|
79
80
|
for (let i = 0; i < ret.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GtfAdapter.js","sourceRoot":"","sources":["../../src/GtfAdapter/GtfAdapter.ts"],"names":[],"mappings":";;;;;AAAA,yEAGgD;AAEhD,8CAAoD;AACpD,kDAA0D;AAC1D,8EAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"GtfAdapter.js","sourceRoot":"","sources":["../../src/GtfAdapter/GtfAdapter.ts"],"names":[],"mappings":"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"}
|
package/dist/util.js
CHANGED
|
@@ -13,7 +13,7 @@ function featureData(data) {
|
|
|
13
13
|
if (data.frame === null) {
|
|
14
14
|
delete f.score;
|
|
15
15
|
}
|
|
16
|
-
const defaultFields = [
|
|
16
|
+
const defaultFields = new Set([
|
|
17
17
|
'start',
|
|
18
18
|
'end',
|
|
19
19
|
'seq_name',
|
|
@@ -22,10 +22,10 @@ function featureData(data) {
|
|
|
22
22
|
'source',
|
|
23
23
|
'frame',
|
|
24
24
|
'strand',
|
|
25
|
-
];
|
|
26
|
-
Object.keys(data.attributes)
|
|
25
|
+
]);
|
|
26
|
+
for (const a of Object.keys(data.attributes)) {
|
|
27
27
|
let b = a.toLowerCase();
|
|
28
|
-
if (defaultFields.
|
|
28
|
+
if (defaultFields.has(b)) {
|
|
29
29
|
// add "suffix" to tag name if it already exists
|
|
30
30
|
// reproduces behavior of NCList
|
|
31
31
|
b += '2';
|
|
@@ -39,14 +39,12 @@ function featureData(data) {
|
|
|
39
39
|
}
|
|
40
40
|
f[b] = attr;
|
|
41
41
|
}
|
|
42
|
-
}
|
|
42
|
+
}
|
|
43
43
|
f.refName = f.seq_name;
|
|
44
44
|
f.type = f.featureType;
|
|
45
45
|
// the SimpleFeature constructor takes care of recursively inflating subfeatures
|
|
46
|
-
if (data.child_features && data.child_features.length) {
|
|
47
|
-
f.subfeatures = data.child_features
|
|
48
|
-
.map(childLocs => childLocs.map(childLoc => featureData(childLoc)))
|
|
49
|
-
.flat();
|
|
46
|
+
if (data.child_features && data.child_features.length > 0) {
|
|
47
|
+
f.subfeatures = data.child_features.flatMap(childLocs => childLocs.map(childLoc => featureData(childLoc)));
|
|
50
48
|
}
|
|
51
49
|
delete f.child_features;
|
|
52
50
|
delete f.data;
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAaA,SAAgB,WAAW,CAAC,IAAgB;IAC1C,MAAM,CAAC,GAA4B,EAAE,GAAG,IAAI,EAAE,CAC7C;IAAC,CAAC,CAAC,KAAgB,IAAI,CAAC,CAAA,CAAC,uBAAuB;IACjD,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,iBAAiB;IACrF,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;IACzB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,MAAM,aAAa,GAAG;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAaA,SAAgB,WAAW,CAAC,IAAgB;IAC1C,MAAM,CAAC,GAA4B,EAAE,GAAG,IAAI,EAAE,CAC7C;IAAC,CAAC,CAAC,KAAgB,IAAI,CAAC,CAAA,CAAC,uBAAuB;IACjD,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,iBAAiB;IACrF,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;IACzB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,OAAO;QACP,KAAK;QACL,UAAU;QACV,OAAO;QACP,aAAa;QACb,QAAQ;QACR,OAAO;QACP,QAAQ;KACT,CAAC,CAAA;IACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QACvB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxB,gDAAgD;YAChD,gCAAgC;YAChC,CAAC,IAAI,GAAG,CAAA;SACT;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5C,+EAA+E;gBAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACnD,IAAI,GAAG,aAAa,CAAA;aACrB;YACD,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;SACZ;KACF;IACD,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAA;IACtB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAA;IAEtB,gFAAgF;IAChF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QACzD,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CACjD,CAAA;KACF;IAED,OAAO,CAAC,CAAC,cAAc,CAAA;IACvB,OAAO,CAAC,CAAC,IAAI,CAAA;IACb,OAAO,CAAC,CAAC,gBAAgB,CAAA;IACzB,gDAAgD;IAChD,OAAO,CAAC,CAAC,SAAS,CAAA;IAClB,OAAO,CAAC,CAAC,UAAU,CAAA;IACnB,OAAO,CAAC,CAAC,QAAQ,CAAA;IACjB,OAAO,CAAC,CAAC,WAAW,CAAA;IACpB,OAAO,CAAC,CAAC,KAAK,CAAA;IAEd,IAAI,CAAC,CAAC,aAAa,EAAE;QACnB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,CAAA;KACzB;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AA/DD,kCA+DC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
2
|
import { NoAssemblyRegion } from '@jbrowse/core/util/types';
|
|
3
3
|
import IntervalTree from '@flatten-js/interval-tree';
|
|
4
|
-
import { Feature } from '@jbrowse/core/util
|
|
4
|
+
import { Feature } from '@jbrowse/core/util';
|
|
5
5
|
export default class extends BaseFeatureDataAdapter {
|
|
6
6
|
protected gtfFeatures?: Promise<{
|
|
7
7
|
feats: {
|
|
@@ -2,9 +2,10 @@ import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter
|
|
|
2
2
|
import { openLocation } from '@jbrowse/core/util/io';
|
|
3
3
|
import { ObservableCreate } from '@jbrowse/core/util/rxjs';
|
|
4
4
|
import IntervalTree from '@flatten-js/interval-tree';
|
|
5
|
-
import SimpleFeature from '@jbrowse/core/util
|
|
5
|
+
import { SimpleFeature } from '@jbrowse/core/util';
|
|
6
6
|
import { unzip } from '@gmod/bgzf-filehandle';
|
|
7
7
|
import gtf from '@gmod/gtf';
|
|
8
|
+
// locals
|
|
8
9
|
import { featureData } from '../util';
|
|
9
10
|
function isGzip(buf) {
|
|
10
11
|
return buf[0] === 31 && buf[1] === 139 && buf[2] === 8;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GtfAdapter.js","sourceRoot":"","sources":["../../src/GtfAdapter/GtfAdapter.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,
|
|
1
|
+
{"version":3,"file":"GtfAdapter.js","sourceRoot":"","sources":["../../src/GtfAdapter/GtfAdapter.ts"],"names":[],"mappings":"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"}
|
package/esm/util.js
CHANGED
|
@@ -10,7 +10,7 @@ export function featureData(data) {
|
|
|
10
10
|
if (data.frame === null) {
|
|
11
11
|
delete f.score;
|
|
12
12
|
}
|
|
13
|
-
const defaultFields = [
|
|
13
|
+
const defaultFields = new Set([
|
|
14
14
|
'start',
|
|
15
15
|
'end',
|
|
16
16
|
'seq_name',
|
|
@@ -19,10 +19,10 @@ export function featureData(data) {
|
|
|
19
19
|
'source',
|
|
20
20
|
'frame',
|
|
21
21
|
'strand',
|
|
22
|
-
];
|
|
23
|
-
Object.keys(data.attributes)
|
|
22
|
+
]);
|
|
23
|
+
for (const a of Object.keys(data.attributes)) {
|
|
24
24
|
let b = a.toLowerCase();
|
|
25
|
-
if (defaultFields.
|
|
25
|
+
if (defaultFields.has(b)) {
|
|
26
26
|
// add "suffix" to tag name if it already exists
|
|
27
27
|
// reproduces behavior of NCList
|
|
28
28
|
b += '2';
|
|
@@ -36,14 +36,12 @@ export function featureData(data) {
|
|
|
36
36
|
}
|
|
37
37
|
f[b] = attr;
|
|
38
38
|
}
|
|
39
|
-
}
|
|
39
|
+
}
|
|
40
40
|
f.refName = f.seq_name;
|
|
41
41
|
f.type = f.featureType;
|
|
42
42
|
// the SimpleFeature constructor takes care of recursively inflating subfeatures
|
|
43
|
-
if (data.child_features && data.child_features.length) {
|
|
44
|
-
f.subfeatures = data.child_features
|
|
45
|
-
.map(childLocs => childLocs.map(childLoc => featureData(childLoc)))
|
|
46
|
-
.flat();
|
|
43
|
+
if (data.child_features && data.child_features.length > 0) {
|
|
44
|
+
f.subfeatures = data.child_features.flatMap(childLocs => childLocs.map(childLoc => featureData(childLoc)));
|
|
47
45
|
}
|
|
48
46
|
delete f.child_features;
|
|
49
47
|
delete f.data;
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,MAAM,CAAC,GAA4B,EAAE,GAAG,IAAI,EAAE,CAC7C;IAAC,CAAC,CAAC,KAAgB,IAAI,CAAC,CAAA,CAAC,uBAAuB;IACjD,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,iBAAiB;IACrF,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;IACzB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,MAAM,aAAa,GAAG;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,MAAM,CAAC,GAA4B,EAAE,GAAG,IAAI,EAAE,CAC7C;IAAC,CAAC,CAAC,KAAgB,IAAI,CAAC,CAAA,CAAC,uBAAuB;IACjD,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,iBAAiB;IACrF,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;IACzB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;QACvB,OAAO,CAAC,CAAC,KAAK,CAAA;KACf;IACD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,OAAO;QACP,KAAK;QACL,UAAU;QACV,OAAO;QACP,aAAa;QACb,QAAQ;QACR,OAAO;QACP,QAAQ;KACT,CAAC,CAAA;IACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QACvB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxB,gDAAgD;YAChD,gCAAgC;YAChC,CAAC,IAAI,GAAG,CAAA;SACT;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5C,+EAA+E;gBAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACnD,IAAI,GAAG,aAAa,CAAA;aACrB;YACD,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;SACZ;KACF;IACD,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAA;IACtB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAA;IAEtB,gFAAgF;IAChF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QACzD,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CACjD,CAAA;KACF;IAED,OAAO,CAAC,CAAC,cAAc,CAAA;IACvB,OAAO,CAAC,CAAC,IAAI,CAAA;IACb,OAAO,CAAC,CAAC,gBAAgB,CAAA;IACzB,gDAAgD;IAChD,OAAO,CAAC,CAAC,SAAS,CAAA;IAClB,OAAO,CAAC,CAAC,UAAU,CAAA;IACnB,OAAO,CAAC,CAAC,QAAQ,CAAA;IACjB,OAAO,CAAC,CAAC,WAAW,CAAA;IACpB,OAAO,CAAC,CAAC,KAAK,CAAA;IAEd,IAAI,CAAC,CAAC,aAAa,EAAE;QACnB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,CAAA;KACzB;IACD,OAAO,CAAC,CAAA;AACV,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-gtf",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.1",
|
|
4
4
|
"description": "JBrowse 2 gtf feature adapter",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"distModule": "esm/index.js",
|
|
58
58
|
"srcModule": "src/index.ts",
|
|
59
59
|
"module": "esm/index.js",
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "747c50c4edc0184827efa4f8dfc576ca9a72caeb"
|
|
61
61
|
}
|
|
@@ -6,10 +6,13 @@ import { NoAssemblyRegion } from '@jbrowse/core/util/types'
|
|
|
6
6
|
import { openLocation } from '@jbrowse/core/util/io'
|
|
7
7
|
import { ObservableCreate } from '@jbrowse/core/util/rxjs'
|
|
8
8
|
import IntervalTree from '@flatten-js/interval-tree'
|
|
9
|
-
import SimpleFeature,
|
|
9
|
+
import { SimpleFeature, Feature } from '@jbrowse/core/util'
|
|
10
10
|
import { unzip } from '@gmod/bgzf-filehandle'
|
|
11
11
|
import gtf from '@gmod/gtf'
|
|
12
|
+
|
|
13
|
+
// locals
|
|
12
14
|
import { FeatureLoc, featureData } from '../util'
|
|
15
|
+
|
|
13
16
|
function isGzip(buf: Buffer) {
|
|
14
17
|
return buf[0] === 31 && buf[1] === 139 && buf[2] === 8
|
|
15
18
|
}
|
package/src/util.ts
CHANGED
|
@@ -23,7 +23,7 @@ export function featureData(data: FeatureLoc) {
|
|
|
23
23
|
if (data.frame === null) {
|
|
24
24
|
delete f.score
|
|
25
25
|
}
|
|
26
|
-
const defaultFields = [
|
|
26
|
+
const defaultFields = new Set([
|
|
27
27
|
'start',
|
|
28
28
|
'end',
|
|
29
29
|
'seq_name',
|
|
@@ -32,10 +32,10 @@ export function featureData(data: FeatureLoc) {
|
|
|
32
32
|
'source',
|
|
33
33
|
'frame',
|
|
34
34
|
'strand',
|
|
35
|
-
]
|
|
36
|
-
Object.keys(data.attributes)
|
|
35
|
+
])
|
|
36
|
+
for (const a of Object.keys(data.attributes)) {
|
|
37
37
|
let b = a.toLowerCase()
|
|
38
|
-
if (defaultFields.
|
|
38
|
+
if (defaultFields.has(b)) {
|
|
39
39
|
// add "suffix" to tag name if it already exists
|
|
40
40
|
// reproduces behavior of NCList
|
|
41
41
|
b += '2'
|
|
@@ -49,15 +49,15 @@ export function featureData(data: FeatureLoc) {
|
|
|
49
49
|
}
|
|
50
50
|
f[b] = attr
|
|
51
51
|
}
|
|
52
|
-
}
|
|
52
|
+
}
|
|
53
53
|
f.refName = f.seq_name
|
|
54
54
|
f.type = f.featureType
|
|
55
55
|
|
|
56
56
|
// the SimpleFeature constructor takes care of recursively inflating subfeatures
|
|
57
|
-
if (data.child_features && data.child_features.length) {
|
|
58
|
-
f.subfeatures = data.child_features
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
if (data.child_features && data.child_features.length > 0) {
|
|
58
|
+
f.subfeatures = data.child_features.flatMap(childLocs =>
|
|
59
|
+
childLocs.map(childLoc => featureData(childLoc)),
|
|
60
|
+
)
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
delete f.child_features
|