@jbrowse/plugin-bed 1.6.8 → 1.7.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/BedTabixAdapter/BedTabixAdapter.d.ts +23 -23
- package/dist/BedTabixAdapter/BedTabixAdapter.js +295 -0
- package/dist/BedTabixAdapter/BedTabixAdapter.test.js +276 -0
- package/dist/BedTabixAdapter/configSchema.d.ts +2 -2
- package/dist/BedTabixAdapter/configSchema.js +53 -0
- package/dist/BedTabixAdapter/index.d.ts +1 -1
- package/dist/BedTabixAdapter/index.js +15 -0
- package/dist/BigBedAdapter/BigBedAdapter.d.ts +46 -46
- package/dist/BigBedAdapter/BigBedAdapter.js +341 -0
- package/dist/BigBedAdapter/BigBedAdapter.test.js +63 -0
- package/dist/BigBedAdapter/configSchema.d.ts +2 -2
- package/dist/BigBedAdapter/configSchema.js +22 -0
- package/dist/BigBedAdapter/index.d.ts +1 -1
- package/dist/BigBedAdapter/index.js +15 -0
- package/dist/declare.d.js +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +135 -6
- package/dist/index.test.js +24 -0
- package/dist/util.d.ts +2 -2
- package/dist/util.js +124 -0
- package/package.json +5 -7
- package/dist/index.test.d.ts +0 -1
- package/dist/plugin-bed.cjs.development.js +0 -1753
- package/dist/plugin-bed.cjs.development.js.map +0 -1
- package/dist/plugin-bed.cjs.production.min.js +0 -2
- package/dist/plugin-bed.cjs.production.min.js.map +0 -1
- package/dist/plugin-bed.esm.js +0 -1747
- package/dist/plugin-bed.esm.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
|
|
2
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var _AdapterType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/AdapterType"));
|
|
27
|
+
|
|
28
|
+
var _Plugin2 = _interopRequireDefault(require("@jbrowse/core/Plugin"));
|
|
29
|
+
|
|
30
|
+
var _BigBedAdapter = require("./BigBedAdapter");
|
|
31
|
+
|
|
32
|
+
var _BedTabixAdapter = require("./BedTabixAdapter");
|
|
33
|
+
|
|
34
|
+
var _tracks = require("@jbrowse/core/util/tracks");
|
|
35
|
+
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
+
|
|
38
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
|
+
|
|
40
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
41
|
+
|
|
42
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
43
|
+
|
|
44
|
+
var BedPlugin = /*#__PURE__*/function (_Plugin) {
|
|
45
|
+
(0, _inherits2["default"])(BedPlugin, _Plugin);
|
|
46
|
+
|
|
47
|
+
var _super = _createSuper(BedPlugin);
|
|
48
|
+
|
|
49
|
+
function BedPlugin() {
|
|
50
|
+
var _this;
|
|
51
|
+
|
|
52
|
+
(0, _classCallCheck2["default"])(this, BedPlugin);
|
|
53
|
+
|
|
54
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
55
|
+
args[_key] = arguments[_key];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
59
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "name", 'BedPlugin');
|
|
60
|
+
return _this;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
(0, _createClass2["default"])(BedPlugin, [{
|
|
64
|
+
key: "install",
|
|
65
|
+
value: function install(pluginManager) {
|
|
66
|
+
pluginManager.addAdapterType(function () {
|
|
67
|
+
return new _AdapterType["default"]({
|
|
68
|
+
name: 'BigBedAdapter',
|
|
69
|
+
configSchema: _BigBedAdapter.configSchema,
|
|
70
|
+
getAdapterClass: function getAdapterClass() {
|
|
71
|
+
return Promise.resolve().then(function () {
|
|
72
|
+
return _interopRequireWildcard(require('./BigBedAdapter/BigBedAdapter'));
|
|
73
|
+
}).then(function (r) {
|
|
74
|
+
return r["default"];
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', function (adapterGuesser) {
|
|
80
|
+
return function (file, index, adapterHint) {
|
|
81
|
+
var regexGuess = /\.(bb|bigbed)$/i;
|
|
82
|
+
var adapterName = 'BigBedAdapter';
|
|
83
|
+
var fileName = (0, _tracks.getFileName)(file);
|
|
84
|
+
var obj = {
|
|
85
|
+
type: adapterName,
|
|
86
|
+
bigBedLocation: file
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
if (regexGuess.test(fileName) && !adapterHint) {
|
|
90
|
+
return obj;
|
|
91
|
+
} else if (adapterHint === adapterName) {
|
|
92
|
+
return obj;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return adapterGuesser(file, index, adapterHint);
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
pluginManager.addAdapterType(function () {
|
|
99
|
+
return new _AdapterType["default"]({
|
|
100
|
+
name: 'BedTabixAdapter',
|
|
101
|
+
configSchema: _BedTabixAdapter.configSchema,
|
|
102
|
+
getAdapterClass: function getAdapterClass() {
|
|
103
|
+
return Promise.resolve().then(function () {
|
|
104
|
+
return _interopRequireWildcard(require('./BedTabixAdapter/BedTabixAdapter'));
|
|
105
|
+
}).then(function (r) {
|
|
106
|
+
return r["default"];
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', function (adapterGuesser) {
|
|
112
|
+
return function (file, index, adapterHint) {
|
|
113
|
+
var regexGuess = /\.bed\.b?gz$/i;
|
|
114
|
+
var adapterName = 'BedTabixAdapter';
|
|
115
|
+
var fileName = (0, _tracks.getFileName)(file);
|
|
116
|
+
var indexName = index && (0, _tracks.getFileName)(index);
|
|
117
|
+
|
|
118
|
+
if (regexGuess.test(fileName) || adapterHint === adapterName) {
|
|
119
|
+
return {
|
|
120
|
+
type: adapterName,
|
|
121
|
+
bedGzLocation: file,
|
|
122
|
+
index: {
|
|
123
|
+
location: index || (0, _tracks.makeIndex)(file, '.tbi'),
|
|
124
|
+
indexType: (0, _tracks.makeIndexType)(indexName, 'CSI', 'TBI')
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return adapterGuesser(file, index, adapterHint);
|
|
130
|
+
};
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}]);
|
|
134
|
+
return BedPlugin;
|
|
135
|
+
}(_Plugin2["default"]);
|
|
136
|
+
|
|
137
|
+
exports["default"] = BedPlugin;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _PluginManager = _interopRequireDefault(require("@jbrowse/core/PluginManager"));
|
|
6
|
+
|
|
7
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
8
|
+
|
|
9
|
+
var _ = _interopRequireDefault(require("."));
|
|
10
|
+
|
|
11
|
+
test('plugin in a stock JBrowse', function () {
|
|
12
|
+
console.warn = jest.fn();
|
|
13
|
+
var pluginManager = new _PluginManager["default"]([new _["default"]()]);
|
|
14
|
+
pluginManager.createPluggableElements();
|
|
15
|
+
pluginManager.configure();
|
|
16
|
+
expect(function () {
|
|
17
|
+
return pluginManager.addPlugin(new _["default"]());
|
|
18
|
+
}).toThrow(/JBrowse already configured, cannot add plugins/);
|
|
19
|
+
var BigBedAdapter = pluginManager.getAdapterType('BigBedAdapter');
|
|
20
|
+
var config = BigBedAdapter.configSchema.create({
|
|
21
|
+
type: 'BigBedAdapter'
|
|
22
|
+
});
|
|
23
|
+
expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
|
|
24
|
+
});
|
package/dist/util.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import SimpleFeature, { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
2
|
-
export declare function ucscProcessedTranscript(feature: Feature): Feature | SimpleFeature;
|
|
1
|
+
import SimpleFeature, { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
2
|
+
export declare function ucscProcessedTranscript(feature: Feature): Feature | SimpleFeature;
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ucscProcessedTranscript = ucscProcessedTranscript;
|
|
9
|
+
|
|
10
|
+
var _simpleFeature = _interopRequireDefault(require("@jbrowse/core/util/simpleFeature"));
|
|
11
|
+
|
|
12
|
+
function ucscProcessedTranscript(feature) {
|
|
13
|
+
var children = feature.children(); // split the blocks into UTR, CDS, and exons
|
|
14
|
+
|
|
15
|
+
var thickStart = feature.get('thickStart');
|
|
16
|
+
var thickEnd = feature.get('thickEnd');
|
|
17
|
+
|
|
18
|
+
if (!thickStart && !thickEnd) {
|
|
19
|
+
return feature;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var blocks = children ? children.filter(function (child) {
|
|
23
|
+
return child.get('type') === 'block';
|
|
24
|
+
}).sort(function (a, b) {
|
|
25
|
+
return a.get('start') - b.get('start');
|
|
26
|
+
}) : []; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
|
|
28
|
+
var newChildren = [];
|
|
29
|
+
blocks.forEach(function (block) {
|
|
30
|
+
var start = block.get('start');
|
|
31
|
+
var end = block.get('end');
|
|
32
|
+
|
|
33
|
+
if (thickStart >= end) {
|
|
34
|
+
// left-side UTR
|
|
35
|
+
var prime = feature.get('strand') > 0 ? 'five' : 'three';
|
|
36
|
+
newChildren.push({
|
|
37
|
+
type: "".concat(prime, "_prime_UTR"),
|
|
38
|
+
start: start,
|
|
39
|
+
end: end
|
|
40
|
+
});
|
|
41
|
+
} else if (thickStart > start && thickStart < end && thickEnd >= end) {
|
|
42
|
+
// UTR | CDS
|
|
43
|
+
var _prime = feature.get('strand') > 0 ? 'five' : 'three';
|
|
44
|
+
|
|
45
|
+
newChildren.push({
|
|
46
|
+
type: "".concat(_prime, "_prime_UTR"),
|
|
47
|
+
start: start,
|
|
48
|
+
end: thickStart
|
|
49
|
+
}, {
|
|
50
|
+
type: 'CDS',
|
|
51
|
+
start: thickStart,
|
|
52
|
+
end: end
|
|
53
|
+
});
|
|
54
|
+
} else if (thickStart <= start && thickEnd >= end) {
|
|
55
|
+
// CDS
|
|
56
|
+
newChildren.push({
|
|
57
|
+
type: 'CDS',
|
|
58
|
+
start: start,
|
|
59
|
+
end: end
|
|
60
|
+
});
|
|
61
|
+
} else if (thickStart > start && thickStart < end && thickEnd < end) {
|
|
62
|
+
// UTR | CDS | UTR
|
|
63
|
+
var leftPrime = feature.get('strand') > 0 ? 'five' : 'three';
|
|
64
|
+
var rightPrime = feature.get('strand') > 0 ? 'three' : 'five';
|
|
65
|
+
newChildren.push({
|
|
66
|
+
type: "".concat(leftPrime, "_prime_UTR"),
|
|
67
|
+
start: start,
|
|
68
|
+
end: thickStart
|
|
69
|
+
}, {
|
|
70
|
+
type: "CDS",
|
|
71
|
+
start: thickStart,
|
|
72
|
+
end: thickEnd
|
|
73
|
+
}, {
|
|
74
|
+
type: "".concat(rightPrime, "_prime_UTR"),
|
|
75
|
+
start: thickEnd,
|
|
76
|
+
end: end
|
|
77
|
+
});
|
|
78
|
+
} else if (thickStart <= start && thickEnd > start && thickEnd < end) {
|
|
79
|
+
// CDS | UTR
|
|
80
|
+
var _prime2 = feature.get('strand') > 0 ? 'three' : 'five';
|
|
81
|
+
|
|
82
|
+
newChildren.push({
|
|
83
|
+
type: "CDS",
|
|
84
|
+
start: start,
|
|
85
|
+
end: thickEnd
|
|
86
|
+
}, {
|
|
87
|
+
type: "".concat(_prime2, "_prime_UTR"),
|
|
88
|
+
start: thickEnd,
|
|
89
|
+
end: end
|
|
90
|
+
});
|
|
91
|
+
} else if (thickEnd <= start) {
|
|
92
|
+
// right-side UTR
|
|
93
|
+
var _prime3 = feature.get('strand') > 0 ? 'three' : 'five';
|
|
94
|
+
|
|
95
|
+
newChildren.push({
|
|
96
|
+
type: "".concat(_prime3, "_prime_UTR"),
|
|
97
|
+
start: start,
|
|
98
|
+
end: end
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
102
|
+
|
|
103
|
+
var newData = {};
|
|
104
|
+
feature.tags().forEach(function (tag) {
|
|
105
|
+
newData[tag] = feature.get(tag);
|
|
106
|
+
});
|
|
107
|
+
newData.subfeatures = newChildren;
|
|
108
|
+
newData.type = 'mRNA';
|
|
109
|
+
newData.uniqueId = feature.id();
|
|
110
|
+
delete newData.chromStarts;
|
|
111
|
+
delete newData.chromStart;
|
|
112
|
+
delete newData.chromEnd;
|
|
113
|
+
delete newData.chrom;
|
|
114
|
+
delete newData.blockStarts;
|
|
115
|
+
delete newData.blockSizes;
|
|
116
|
+
delete newData.blockCount;
|
|
117
|
+
delete newData.thickStart;
|
|
118
|
+
delete newData.thickEnd;
|
|
119
|
+
var newFeature = new _simpleFeature["default"]({
|
|
120
|
+
data: newData,
|
|
121
|
+
id: feature.id()
|
|
122
|
+
});
|
|
123
|
+
return newFeature;
|
|
124
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-bed",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "JBrowse 2 bed adapters, tracks, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -18,21 +18,19 @@
|
|
|
18
18
|
"distMain": "dist/index.js",
|
|
19
19
|
"srcMain": "src/index.ts",
|
|
20
20
|
"main": "dist/index.js",
|
|
21
|
-
"distModule": "dist/plugin-bed.esm.js",
|
|
22
|
-
"module": "dist/plugin-bed.esm.js",
|
|
23
21
|
"files": [
|
|
24
22
|
"dist",
|
|
25
23
|
"src"
|
|
26
24
|
],
|
|
27
25
|
"scripts": {
|
|
28
|
-
"
|
|
29
|
-
"build": "tsdx build",
|
|
26
|
+
"build": "babel src --root-mode upward --out-dir dist --extensions .ts,.js,.tsx,.jsx",
|
|
30
27
|
"test": "cd ../..; jest plugins/bed",
|
|
31
28
|
"prepublishOnly": "yarn test",
|
|
32
29
|
"prepack": "yarn build; yarn useDist",
|
|
33
30
|
"postpack": "yarn useSrc",
|
|
34
31
|
"useDist": "node ../../scripts/useDist.js",
|
|
35
|
-
"useSrc": "node ../../scripts/useSrc.js"
|
|
32
|
+
"useSrc": "node ../../scripts/useSrc.js",
|
|
33
|
+
"postbuild": "tsc --build tsconfig.build.json"
|
|
36
34
|
},
|
|
37
35
|
"dependencies": {
|
|
38
36
|
"@gmod/bbi": "^1.0.32",
|
|
@@ -47,5 +45,5 @@
|
|
|
47
45
|
"publishConfig": {
|
|
48
46
|
"access": "public"
|
|
49
47
|
},
|
|
50
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "6da232090c90f22ac96fd464c33082c89b8da14b"
|
|
51
49
|
}
|
package/dist/index.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|