@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/index.js CHANGED
@@ -1,8 +1,137 @@
1
+ "use strict";
1
2
 
2
- 'use strict'
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
 
4
- if (process.env.NODE_ENV === 'production') {
5
- module.exports = require('./plugin-bed.cjs.production.min.js')
6
- } else {
7
- module.exports = require('./plugin-bed.cjs.development.js')
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.6.8",
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
- "start": "tsdx watch --verbose --noClean",
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": "585e522096651ef4afb188366bb46d723439dc1b"
48
+ "gitHead": "6da232090c90f22ac96fd464c33082c89b8da14b"
51
49
  }
@@ -1 +0,0 @@
1
- export {};