@jbrowse/plugin-sequence 1.6.7 → 1.7.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/BgzipFastaAdapter/BgzipFastaAdapter.js +70 -0
- package/dist/BgzipFastaAdapter/BgzipFastaAdapter.test.js +64 -0
- package/dist/BgzipFastaAdapter/configSchema.js +36 -0
- package/dist/BgzipFastaAdapter/index.js +15 -0
- package/dist/ChromSizesAdapter/ChromSizesAdapter.js +170 -0
- package/dist/ChromSizesAdapter/ChromSizesAdapter.test.js +46 -0
- package/dist/ChromSizesAdapter/configSchema.js +22 -0
- package/dist/ChromSizesAdapter/index.js +15 -0
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.js +239 -0
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.test.js +245 -0
- package/dist/DivSequenceRenderer/configSchema.js +20 -0
- package/dist/DivSequenceRenderer/index.js +23 -0
- package/dist/GCContentAdapter/GCContentAdapter.js +261 -0
- package/dist/GCContentAdapter/configSchema.js +18 -0
- package/dist/GCContentAdapter/index.js +31 -0
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.d.ts +0 -5
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.js +228 -0
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.test.js +71 -0
- package/dist/IndexedFastaAdapter/configSchema.js +29 -0
- package/dist/IndexedFastaAdapter/index.js +15 -0
- package/dist/LinearReferenceSequenceDisplay/configSchema.js +18 -0
- package/dist/LinearReferenceSequenceDisplay/index.js +21 -0
- package/dist/LinearReferenceSequenceDisplay/model.d.ts +8 -8
- package/dist/LinearReferenceSequenceDisplay/model.js +102 -0
- package/dist/TwoBitAdapter/TwoBitAdapter.js +289 -0
- package/dist/TwoBitAdapter/TwoBitAdapter.test.js +94 -0
- package/dist/TwoBitAdapter/configSchema.js +30 -0
- package/dist/TwoBitAdapter/index.js +15 -0
- package/dist/declare.d.js +1 -0
- package/dist/index.js +325 -6
- package/dist/index.test.js +29 -0
- package/dist/plugin-sequence.cjs.development.js +0 -6
- package/dist/plugin-sequence.cjs.development.js.map +1 -1
- package/dist/plugin-sequence.cjs.production.min.js.map +1 -1
- package/dist/plugin-sequence.esm.js +0 -6
- package/dist/plugin-sequence.esm.js.map +1 -1
- package/dist/referenceSeqTrackConfig.js +88 -0
- package/package.json +3 -6
- package/src/IndexedFastaAdapter/IndexedFastaAdapter.ts +0 -5
- package/src/index.ts +7 -8
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
+
|
|
20
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
+
|
|
22
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
+
|
|
24
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
+
|
|
26
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
+
|
|
28
|
+
var _indexedfasta = require("@gmod/indexedfasta");
|
|
29
|
+
|
|
30
|
+
var _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
31
|
+
|
|
32
|
+
var _io = require("@jbrowse/core/util/io");
|
|
33
|
+
|
|
34
|
+
var _rxjs = require("@jbrowse/core/util/rxjs");
|
|
35
|
+
|
|
36
|
+
var _simpleFeature = _interopRequireDefault(require("@jbrowse/core/util/simpleFeature"));
|
|
37
|
+
|
|
38
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
39
|
+
|
|
40
|
+
var _abortablePromiseCache = _interopRequireDefault(require("abortable-promise-cache"));
|
|
41
|
+
|
|
42
|
+
var _QuickLRU = _interopRequireDefault(require("@jbrowse/core/util/QuickLRU"));
|
|
43
|
+
|
|
44
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
45
|
+
|
|
46
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
47
|
+
|
|
48
|
+
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); }; }
|
|
49
|
+
|
|
50
|
+
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; } }
|
|
51
|
+
|
|
52
|
+
var _default = /*#__PURE__*/function (_BaseSequenceAdapter) {
|
|
53
|
+
(0, _inherits2["default"])(_default, _BaseSequenceAdapter);
|
|
54
|
+
|
|
55
|
+
var _super = _createSuper(_default);
|
|
56
|
+
|
|
57
|
+
function _default(config, getSubAdapter, pluginManager) {
|
|
58
|
+
var _this;
|
|
59
|
+
|
|
60
|
+
(0, _classCallCheck2["default"])(this, _default);
|
|
61
|
+
_this = _super.call(this, config, getSubAdapter, pluginManager);
|
|
62
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "fasta", void 0);
|
|
63
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "seqCache", new _abortablePromiseCache["default"]({
|
|
64
|
+
cache: new _QuickLRU["default"]({
|
|
65
|
+
maxSize: 200
|
|
66
|
+
}),
|
|
67
|
+
fill: function () {
|
|
68
|
+
var _fill = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args, signal) {
|
|
69
|
+
var refName, start, end;
|
|
70
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
71
|
+
while (1) {
|
|
72
|
+
switch (_context.prev = _context.next) {
|
|
73
|
+
case 0:
|
|
74
|
+
refName = args.refName, start = args.start, end = args.end;
|
|
75
|
+
return _context.abrupt("return", _this.fasta.getSequence(refName, start, end, _objectSpread(_objectSpread({}, args), {}, {
|
|
76
|
+
signal: signal
|
|
77
|
+
})));
|
|
78
|
+
|
|
79
|
+
case 2:
|
|
80
|
+
case "end":
|
|
81
|
+
return _context.stop();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}, _callee);
|
|
85
|
+
}));
|
|
86
|
+
|
|
87
|
+
function fill(_x, _x2) {
|
|
88
|
+
return _fill.apply(this, arguments);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return fill;
|
|
92
|
+
}()
|
|
93
|
+
}));
|
|
94
|
+
var fastaLocation = (0, _configuration.readConfObject)(config, 'fastaLocation');
|
|
95
|
+
var faiLocation = (0, _configuration.readConfObject)(config, 'faiLocation');
|
|
96
|
+
var fastaOpts = {
|
|
97
|
+
fasta: (0, _io.openLocation)(fastaLocation, _this.pluginManager),
|
|
98
|
+
fai: (0, _io.openLocation)(faiLocation, _this.pluginManager)
|
|
99
|
+
};
|
|
100
|
+
_this.fasta = new _indexedfasta.IndexedFasta(fastaOpts);
|
|
101
|
+
return _this;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
(0, _createClass2["default"])(_default, [{
|
|
105
|
+
key: "getRefNames",
|
|
106
|
+
value: function getRefNames(opts) {
|
|
107
|
+
return this.fasta.getSequenceNames(opts);
|
|
108
|
+
}
|
|
109
|
+
}, {
|
|
110
|
+
key: "getRegions",
|
|
111
|
+
value: function () {
|
|
112
|
+
var _getRegions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(opts) {
|
|
113
|
+
var seqSizes;
|
|
114
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
115
|
+
while (1) {
|
|
116
|
+
switch (_context2.prev = _context2.next) {
|
|
117
|
+
case 0:
|
|
118
|
+
_context2.next = 2;
|
|
119
|
+
return this.fasta.getSequenceSizes(opts);
|
|
120
|
+
|
|
121
|
+
case 2:
|
|
122
|
+
seqSizes = _context2.sent;
|
|
123
|
+
return _context2.abrupt("return", Object.keys(seqSizes).map(function (refName) {
|
|
124
|
+
return {
|
|
125
|
+
refName: refName,
|
|
126
|
+
start: 0,
|
|
127
|
+
end: seqSizes[refName]
|
|
128
|
+
};
|
|
129
|
+
}));
|
|
130
|
+
|
|
131
|
+
case 4:
|
|
132
|
+
case "end":
|
|
133
|
+
return _context2.stop();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}, _callee2, this);
|
|
137
|
+
}));
|
|
138
|
+
|
|
139
|
+
function getRegions(_x3) {
|
|
140
|
+
return _getRegions.apply(this, arguments);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return getRegions;
|
|
144
|
+
}()
|
|
145
|
+
}, {
|
|
146
|
+
key: "getFeatures",
|
|
147
|
+
value: function getFeatures(region, opts) {
|
|
148
|
+
var _this2 = this;
|
|
149
|
+
|
|
150
|
+
var refName = region.refName,
|
|
151
|
+
start = region.start,
|
|
152
|
+
end = region.end;
|
|
153
|
+
return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
|
|
154
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(observer) {
|
|
155
|
+
var size, regionEnd, chunks, chunkSize, s, e, chunkStart, r, seq;
|
|
156
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
157
|
+
while (1) {
|
|
158
|
+
switch (_context3.prev = _context3.next) {
|
|
159
|
+
case 0:
|
|
160
|
+
_context3.next = 2;
|
|
161
|
+
return _this2.fasta.getSequenceSize(refName, opts);
|
|
162
|
+
|
|
163
|
+
case 2:
|
|
164
|
+
size = _context3.sent;
|
|
165
|
+
regionEnd = size !== undefined ? Math.min(size, end) : end;
|
|
166
|
+
chunks = [];
|
|
167
|
+
chunkSize = 128000;
|
|
168
|
+
s = start - start % chunkSize;
|
|
169
|
+
e = end + (chunkSize - end % chunkSize);
|
|
170
|
+
|
|
171
|
+
for (chunkStart = s; chunkStart < e; chunkStart += chunkSize) {
|
|
172
|
+
r = {
|
|
173
|
+
refName: refName,
|
|
174
|
+
start: chunkStart,
|
|
175
|
+
end: chunkStart + chunkSize
|
|
176
|
+
};
|
|
177
|
+
chunks.push(_this2.seqCache.get(JSON.stringify(r), r, opts === null || opts === void 0 ? void 0 : opts.signal));
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
_context3.next = 11;
|
|
181
|
+
return Promise.all(chunks);
|
|
182
|
+
|
|
183
|
+
case 11:
|
|
184
|
+
seq = _context3.sent.join('').slice(start - s).slice(0, end - start);
|
|
185
|
+
|
|
186
|
+
if (seq) {
|
|
187
|
+
observer.next(new _simpleFeature["default"]({
|
|
188
|
+
id: "".concat(refName, " ").concat(start, "-").concat(regionEnd),
|
|
189
|
+
data: {
|
|
190
|
+
refName: refName,
|
|
191
|
+
start: start,
|
|
192
|
+
end: regionEnd,
|
|
193
|
+
seq: seq
|
|
194
|
+
}
|
|
195
|
+
}));
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
observer.complete();
|
|
199
|
+
|
|
200
|
+
case 14:
|
|
201
|
+
case "end":
|
|
202
|
+
return _context3.stop();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}, _callee3);
|
|
206
|
+
}));
|
|
207
|
+
|
|
208
|
+
return function (_x4) {
|
|
209
|
+
return _ref.apply(this, arguments);
|
|
210
|
+
};
|
|
211
|
+
}());
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* called to provide a hint that data tied to a certain region
|
|
215
|
+
* will not be needed for the forseeable future and can be purged
|
|
216
|
+
* from caches, etc
|
|
217
|
+
*/
|
|
218
|
+
|
|
219
|
+
}, {
|
|
220
|
+
key: "freeResources",
|
|
221
|
+
value: function
|
|
222
|
+
/* { region } */
|
|
223
|
+
freeResources() {}
|
|
224
|
+
}]);
|
|
225
|
+
return _default;
|
|
226
|
+
}(_BaseAdapter.BaseSequenceAdapter);
|
|
227
|
+
|
|
228
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _operators = require("rxjs/operators");
|
|
10
|
+
|
|
11
|
+
var _IndexedFastaAdapter = _interopRequireDefault(require("./IndexedFastaAdapter"));
|
|
12
|
+
|
|
13
|
+
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
|
14
|
+
|
|
15
|
+
test('adapter can fetch sequence from volvox.fa', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
16
|
+
var adapter, features, featuresArray, features2, featuresArray2, features3, featuresArray3;
|
|
17
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
18
|
+
while (1) {
|
|
19
|
+
switch (_context.prev = _context.next) {
|
|
20
|
+
case 0:
|
|
21
|
+
adapter = new _IndexedFastaAdapter["default"](_configSchema["default"].create({
|
|
22
|
+
fastaLocation: {
|
|
23
|
+
localPath: require.resolve('../../test_data/volvox.fa'),
|
|
24
|
+
locationType: 'LocalPathLocation'
|
|
25
|
+
},
|
|
26
|
+
faiLocation: {
|
|
27
|
+
localPath: require.resolve('../../test_data/volvox.fa.fai'),
|
|
28
|
+
locationType: 'LocalPathLocation'
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
features = adapter.getFeatures({
|
|
32
|
+
refName: 'ctgA',
|
|
33
|
+
start: 0,
|
|
34
|
+
end: 20000
|
|
35
|
+
});
|
|
36
|
+
_context.next = 4;
|
|
37
|
+
return features.pipe((0, _operators.toArray)()).toPromise();
|
|
38
|
+
|
|
39
|
+
case 4:
|
|
40
|
+
featuresArray = _context.sent;
|
|
41
|
+
expect(featuresArray).toMatchSnapshot();
|
|
42
|
+
features2 = adapter.getFeatures({
|
|
43
|
+
refName: 'ctgA',
|
|
44
|
+
start: 45000,
|
|
45
|
+
end: 55000
|
|
46
|
+
});
|
|
47
|
+
_context.next = 9;
|
|
48
|
+
return features2.pipe((0, _operators.toArray)()).toPromise();
|
|
49
|
+
|
|
50
|
+
case 9:
|
|
51
|
+
featuresArray2 = _context.sent;
|
|
52
|
+
expect(featuresArray2[0].get('end')).toBe(50001);
|
|
53
|
+
features3 = adapter.getFeatures({
|
|
54
|
+
refName: 'ctgC',
|
|
55
|
+
start: 0,
|
|
56
|
+
end: 20000
|
|
57
|
+
});
|
|
58
|
+
_context.next = 14;
|
|
59
|
+
return features3.pipe((0, _operators.toArray)()).toPromise();
|
|
60
|
+
|
|
61
|
+
case 14:
|
|
62
|
+
featuresArray3 = _context.sent;
|
|
63
|
+
expect(featuresArray3).toMatchSnapshot();
|
|
64
|
+
|
|
65
|
+
case 16:
|
|
66
|
+
case "end":
|
|
67
|
+
return _context.stop();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}, _callee);
|
|
71
|
+
})));
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
9
|
+
|
|
10
|
+
var _default = (0, _configuration.ConfigurationSchema)('IndexedFastaAdapter', {
|
|
11
|
+
fastaLocation: {
|
|
12
|
+
type: 'fileLocation',
|
|
13
|
+
defaultValue: {
|
|
14
|
+
uri: '/path/to/seq.fa',
|
|
15
|
+
locationType: 'UriLocation'
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
faiLocation: {
|
|
19
|
+
type: 'fileLocation',
|
|
20
|
+
defaultValue: {
|
|
21
|
+
uri: '/path/to/seq.fa.fai',
|
|
22
|
+
locationType: 'UriLocation'
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}, {
|
|
26
|
+
explicitlyTyped: true
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "configSchema", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _configSchema["default"];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.configSchema = void 0;
|
|
7
|
+
|
|
8
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
9
|
+
|
|
10
|
+
var _DivSequenceRenderer = require("../DivSequenceRenderer");
|
|
11
|
+
|
|
12
|
+
var configSchema = (0, _configuration.ConfigurationSchema)('LinearReferenceSequenceDisplay', {
|
|
13
|
+
renderer: _DivSequenceRenderer.configSchema
|
|
14
|
+
}, {
|
|
15
|
+
explicitIdentifier: 'displayId',
|
|
16
|
+
explicitlyTyped: true
|
|
17
|
+
});
|
|
18
|
+
exports.configSchema = configSchema;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "configSchema", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _configSchema.configSchema;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "modelFactory", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _model.modelFactory;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
var _configSchema = require("./configSchema");
|
|
20
|
+
|
|
21
|
+
var _model = require("./model");
|
|
@@ -25,7 +25,7 @@ export declare function modelFactory(configSchema: AnyConfigurationSchemaType):
|
|
|
25
25
|
renderInProgress: AbortController | undefined;
|
|
26
26
|
filled: boolean;
|
|
27
27
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)> | undefined;
|
|
28
|
-
features: Map<string, import("@jbrowse/core/util
|
|
28
|
+
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
29
29
|
layout: any;
|
|
30
30
|
status: string;
|
|
31
31
|
error: unknown;
|
|
@@ -43,7 +43,7 @@ export declare function modelFactory(configSchema: AnyConfigurationSchemaType):
|
|
|
43
43
|
setMessage(messageText: string): void;
|
|
44
44
|
setRendered(props: {
|
|
45
45
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
|
|
46
|
-
features: Map<string, import("@jbrowse/core/util
|
|
46
|
+
features: Map<string, import("@jbrowse/core/util").Feature>;
|
|
47
47
|
layout: any;
|
|
48
48
|
maxHeightReached: boolean;
|
|
49
49
|
renderProps: any;
|
|
@@ -117,7 +117,7 @@ export declare function modelFactory(configSchema: AnyConfigurationSchemaType):
|
|
|
117
117
|
currBpPerPx: number;
|
|
118
118
|
message: string;
|
|
119
119
|
featureIdUnderMouse: string | undefined;
|
|
120
|
-
contextMenuFeature: import("@jbrowse/core/util
|
|
120
|
+
contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
|
|
121
121
|
scrollTop: number;
|
|
122
122
|
estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
|
|
123
123
|
estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
|
|
@@ -130,8 +130,8 @@ export declare function modelFactory(configSchema: AnyConfigurationSchemaType):
|
|
|
130
130
|
readonly selectedFeatureId: string | undefined;
|
|
131
131
|
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
132
132
|
} & {
|
|
133
|
-
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util
|
|
134
|
-
readonly featureUnderMouse: import("@jbrowse/core/util
|
|
133
|
+
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
|
|
134
|
+
readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
|
|
135
135
|
getFeatureOverlapping(blockKey: string, x: number, y: number): any;
|
|
136
136
|
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
137
137
|
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
@@ -158,11 +158,11 @@ export declare function modelFactory(configSchema: AnyConfigurationSchemaType):
|
|
|
158
158
|
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
159
159
|
setCurrBpPerPx(n: number): void;
|
|
160
160
|
deleteBlock(key: string): void;
|
|
161
|
-
selectFeature(feature: import("@jbrowse/core/util
|
|
161
|
+
selectFeature(feature: import("@jbrowse/core/util").Feature): void;
|
|
162
162
|
clearFeatureSelection(): void;
|
|
163
163
|
setFeatureIdUnderMouse(feature: string | undefined): void;
|
|
164
164
|
reload(): void;
|
|
165
|
-
setContextMenuFeature(feature?: import("@jbrowse/core/util
|
|
165
|
+
setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
|
|
166
166
|
} & {
|
|
167
167
|
readonly regionTooLarge: boolean;
|
|
168
168
|
readonly regionTooLargeReason: string;
|
|
@@ -180,7 +180,7 @@ export declare function modelFactory(configSchema: AnyConfigurationSchemaType):
|
|
|
180
180
|
}[];
|
|
181
181
|
renderProps(): any;
|
|
182
182
|
} & {
|
|
183
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view/
|
|
183
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view/src/LinearGenomeView").ExportSvgOptions & {
|
|
184
184
|
overrideHeight: number;
|
|
185
185
|
}): Promise<JSX.Element>;
|
|
186
186
|
} & {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.modelFactory = modelFactory;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
13
|
+
|
|
14
|
+
var _pluginLinearGenomeView = require("@jbrowse/plugin-linear-genome-view");
|
|
15
|
+
|
|
16
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
17
|
+
|
|
18
|
+
var _util = require("@jbrowse/core/util");
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
+
|
|
24
|
+
function modelFactory(configSchema) {
|
|
25
|
+
return _mobxStateTree.types.compose('LinearReferenceSequenceDisplay', _pluginLinearGenomeView.BaseLinearDisplay, _mobxStateTree.types.model({
|
|
26
|
+
type: _mobxStateTree.types.literal('LinearReferenceSequenceDisplay'),
|
|
27
|
+
configuration: (0, _configuration.ConfigurationReference)(configSchema),
|
|
28
|
+
showForward: _mobxStateTree.types.optional(_mobxStateTree.types["boolean"], true),
|
|
29
|
+
showReverse: _mobxStateTree.types.optional(_mobxStateTree.types["boolean"], true),
|
|
30
|
+
showTranslation: _mobxStateTree.types.optional(_mobxStateTree.types["boolean"], true),
|
|
31
|
+
height: 180
|
|
32
|
+
})).views(function (self) {
|
|
33
|
+
var superRenderProps = self.renderProps;
|
|
34
|
+
return {
|
|
35
|
+
renderProps: function renderProps() {
|
|
36
|
+
var showForward = self.showForward,
|
|
37
|
+
showReverse = self.showReverse,
|
|
38
|
+
showTranslation = self.showTranslation;
|
|
39
|
+
return _objectSpread(_objectSpread({}, superRenderProps()), {}, {
|
|
40
|
+
rpcDriverName: self.rpcDriverName,
|
|
41
|
+
config: self.configuration.renderer,
|
|
42
|
+
showForward: showForward,
|
|
43
|
+
showReverse: showReverse,
|
|
44
|
+
showTranslation: showTranslation
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
regionCannotBeRendered: function regionCannotBeRendered() {
|
|
48
|
+
var view = (0, _util.getContainingView)(self);
|
|
49
|
+
|
|
50
|
+
if (view && view.bpPerPx >= 1) {
|
|
51
|
+
return 'Zoom in to see sequence';
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return undefined;
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
get rendererTypeName() {
|
|
58
|
+
return self.configuration.renderer.type;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
};
|
|
62
|
+
}).actions(function (self) {
|
|
63
|
+
return {
|
|
64
|
+
toggleShowForward: function toggleShowForward() {
|
|
65
|
+
self.showForward = !self.showForward;
|
|
66
|
+
},
|
|
67
|
+
toggleShowReverse: function toggleShowReverse() {
|
|
68
|
+
self.showReverse = !self.showReverse;
|
|
69
|
+
},
|
|
70
|
+
toggleShowTranslation: function toggleShowTranslation() {
|
|
71
|
+
self.showTranslation = !self.showTranslation;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}).views(function (self) {
|
|
75
|
+
return {
|
|
76
|
+
trackMenuItems: function trackMenuItems() {
|
|
77
|
+
return [{
|
|
78
|
+
label: 'Show forward',
|
|
79
|
+
type: 'checkbox',
|
|
80
|
+
checked: self.showForward,
|
|
81
|
+
onClick: function onClick() {
|
|
82
|
+
self.toggleShowForward();
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
label: 'Show reverse',
|
|
86
|
+
type: 'checkbox',
|
|
87
|
+
checked: self.showReverse,
|
|
88
|
+
onClick: function onClick() {
|
|
89
|
+
self.toggleShowReverse();
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
label: 'Show translation',
|
|
93
|
+
type: 'checkbox',
|
|
94
|
+
checked: self.showTranslation,
|
|
95
|
+
onClick: function onClick() {
|
|
96
|
+
self.toggleShowTranslation();
|
|
97
|
+
}
|
|
98
|
+
}];
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
}
|