@jbrowse/plugin-sequence 1.6.9 → 1.7.3
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.d.ts +7 -7
- package/dist/BgzipFastaAdapter/BgzipFastaAdapter.js +70 -0
- package/dist/BgzipFastaAdapter/BgzipFastaAdapter.test.js +64 -0
- package/dist/BgzipFastaAdapter/configSchema.d.ts +2 -2
- package/dist/BgzipFastaAdapter/configSchema.js +36 -0
- package/dist/BgzipFastaAdapter/index.d.ts +1 -1
- package/dist/BgzipFastaAdapter/index.js +15 -0
- package/dist/ChromSizesAdapter/ChromSizesAdapter.d.ts +19 -19
- package/dist/ChromSizesAdapter/ChromSizesAdapter.js +170 -0
- package/dist/ChromSizesAdapter/ChromSizesAdapter.test.js +46 -0
- package/dist/ChromSizesAdapter/configSchema.d.ts +2 -2
- package/dist/ChromSizesAdapter/configSchema.js +22 -0
- package/dist/ChromSizesAdapter/index.d.ts +1 -1
- package/dist/ChromSizesAdapter/index.js +15 -0
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.d.ts +21 -21
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.js +239 -0
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.test.js +245 -0
- package/dist/DivSequenceRenderer/configSchema.d.ts +2 -2
- package/dist/DivSequenceRenderer/configSchema.js +20 -0
- package/dist/DivSequenceRenderer/index.d.ts +2 -2
- package/dist/DivSequenceRenderer/index.js +23 -0
- package/dist/GCContentAdapter/GCContentAdapter.d.ts +23 -23
- package/dist/GCContentAdapter/GCContentAdapter.js +261 -0
- package/dist/GCContentAdapter/configSchema.d.ts +3 -3
- package/dist/GCContentAdapter/configSchema.js +18 -0
- package/dist/GCContentAdapter/index.d.ts +6 -6
- package/dist/GCContentAdapter/index.js +31 -0
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.d.ts +25 -25
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.js +228 -0
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.test.js +71 -0
- package/dist/IndexedFastaAdapter/configSchema.d.ts +2 -2
- package/dist/IndexedFastaAdapter/configSchema.js +29 -0
- package/dist/IndexedFastaAdapter/index.d.ts +1 -1
- package/dist/IndexedFastaAdapter/index.js +15 -0
- package/dist/LinearReferenceSequenceDisplay/configSchema.d.ts +1 -1
- package/dist/LinearReferenceSequenceDisplay/configSchema.js +18 -0
- package/dist/LinearReferenceSequenceDisplay/index.d.ts +2 -2
- package/dist/LinearReferenceSequenceDisplay/index.js +21 -0
- package/dist/LinearReferenceSequenceDisplay/model.d.ts +208 -208
- package/dist/LinearReferenceSequenceDisplay/model.js +102 -0
- package/dist/TwoBitAdapter/TwoBitAdapter.d.ts +26 -26
- package/dist/TwoBitAdapter/TwoBitAdapter.js +289 -0
- package/dist/TwoBitAdapter/TwoBitAdapter.test.js +94 -0
- package/dist/TwoBitAdapter/configSchema.d.ts +2 -2
- package/dist/TwoBitAdapter/configSchema.js +30 -0
- package/dist/TwoBitAdapter/index.d.ts +1 -1
- package/dist/TwoBitAdapter/index.js +15 -0
- package/dist/declare.d.js +1 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +325 -6
- package/dist/index.test.js +29 -0
- package/dist/referenceSeqTrackConfig.d.ts +2 -2
- package/dist/referenceSeqTrackConfig.js +88 -0
- package/package.json +5 -7
- package/src/index.ts +7 -8
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.test.d.ts +0 -1
- package/dist/index.test.d.ts +0 -1
- package/dist/plugin-sequence.cjs.development.js +0 -2567
- package/dist/plugin-sequence.cjs.development.js.map +0 -1
- package/dist/plugin-sequence.cjs.production.min.js +0 -2
- package/dist/plugin-sequence.cjs.production.min.js.map +0 -1
- package/dist/plugin-sequence.esm.js +0 -2561
- package/dist/plugin-sequence.esm.js.map +0 -1
|
@@ -0,0 +1,261 @@
|
|
|
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 _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
29
|
+
|
|
30
|
+
var _rxjs = require("@jbrowse/core/util/rxjs");
|
|
31
|
+
|
|
32
|
+
var _simpleFeature = _interopRequireDefault(require("@jbrowse/core/util/simpleFeature"));
|
|
33
|
+
|
|
34
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
35
|
+
|
|
36
|
+
var _operators = require("rxjs/operators");
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
|
|
40
|
+
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; }
|
|
41
|
+
|
|
42
|
+
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); }; }
|
|
43
|
+
|
|
44
|
+
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; } }
|
|
45
|
+
|
|
46
|
+
var _default = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
|
|
47
|
+
(0, _inherits2["default"])(_default, _BaseFeatureDataAdapt);
|
|
48
|
+
|
|
49
|
+
var _super = _createSuper(_default);
|
|
50
|
+
|
|
51
|
+
function _default() {
|
|
52
|
+
var _this;
|
|
53
|
+
|
|
54
|
+
(0, _classCallCheck2["default"])(this, _default);
|
|
55
|
+
|
|
56
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
57
|
+
args[_key] = arguments[_key];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
61
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "windowSize", 1000);
|
|
62
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "windowDelta", 1000);
|
|
63
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "gcMode", 'content');
|
|
64
|
+
return _this;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
(0, _createClass2["default"])(_default, [{
|
|
68
|
+
key: "configure",
|
|
69
|
+
value: function () {
|
|
70
|
+
var _configure = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
71
|
+
var _this$getSubAdapter;
|
|
72
|
+
|
|
73
|
+
var sequenceAdapter, dataAdapter;
|
|
74
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
75
|
+
while (1) {
|
|
76
|
+
switch (_context.prev = _context.next) {
|
|
77
|
+
case 0:
|
|
78
|
+
// instantiate the sequence adapter
|
|
79
|
+
sequenceAdapter = (0, _configuration.readConfObject)(this.config, 'sequenceAdapter');
|
|
80
|
+
_context.next = 3;
|
|
81
|
+
return (_this$getSubAdapter = this.getSubAdapter) === null || _this$getSubAdapter === void 0 ? void 0 : _this$getSubAdapter.call(this, sequenceAdapter);
|
|
82
|
+
|
|
83
|
+
case 3:
|
|
84
|
+
dataAdapter = _context.sent;
|
|
85
|
+
|
|
86
|
+
if (dataAdapter) {
|
|
87
|
+
_context.next = 6;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
throw new Error('Error getting subadapter');
|
|
92
|
+
|
|
93
|
+
case 6:
|
|
94
|
+
return _context.abrupt("return", dataAdapter.dataAdapter);
|
|
95
|
+
|
|
96
|
+
case 7:
|
|
97
|
+
case "end":
|
|
98
|
+
return _context.stop();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}, _callee, this);
|
|
102
|
+
}));
|
|
103
|
+
|
|
104
|
+
function configure() {
|
|
105
|
+
return _configure.apply(this, arguments);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return configure;
|
|
109
|
+
}()
|
|
110
|
+
}, {
|
|
111
|
+
key: "getRefNames",
|
|
112
|
+
value: function () {
|
|
113
|
+
var _getRefNames = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
114
|
+
var sequenceAdapter;
|
|
115
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
116
|
+
while (1) {
|
|
117
|
+
switch (_context2.prev = _context2.next) {
|
|
118
|
+
case 0:
|
|
119
|
+
_context2.next = 2;
|
|
120
|
+
return this.configure();
|
|
121
|
+
|
|
122
|
+
case 2:
|
|
123
|
+
sequenceAdapter = _context2.sent;
|
|
124
|
+
return _context2.abrupt("return", sequenceAdapter.getRefNames());
|
|
125
|
+
|
|
126
|
+
case 4:
|
|
127
|
+
case "end":
|
|
128
|
+
return _context2.stop();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}, _callee2, this);
|
|
132
|
+
}));
|
|
133
|
+
|
|
134
|
+
function getRefNames() {
|
|
135
|
+
return _getRefNames.apply(this, arguments);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return getRefNames;
|
|
139
|
+
}()
|
|
140
|
+
/**
|
|
141
|
+
* Fetch features for a certain region
|
|
142
|
+
* @param param -
|
|
143
|
+
* @returns Observable of Feature objects in the region
|
|
144
|
+
*/
|
|
145
|
+
|
|
146
|
+
}, {
|
|
147
|
+
key: "getFeatures",
|
|
148
|
+
value: function getFeatures(query, opts) {
|
|
149
|
+
var _this2 = this;
|
|
150
|
+
|
|
151
|
+
this.windowSize = 1000;
|
|
152
|
+
this.windowDelta = 1000;
|
|
153
|
+
this.gcMode = 'content';
|
|
154
|
+
return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
|
|
155
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(observer) {
|
|
156
|
+
var _feats$;
|
|
157
|
+
|
|
158
|
+
var sequenceAdapter, hw, f, queryStart, queryEnd, ret, feats, residues, i, r, nc, ng, len, j, pos, score;
|
|
159
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
160
|
+
while (1) {
|
|
161
|
+
switch (_context3.prev = _context3.next) {
|
|
162
|
+
case 0:
|
|
163
|
+
_context3.next = 2;
|
|
164
|
+
return _this2.configure();
|
|
165
|
+
|
|
166
|
+
case 2:
|
|
167
|
+
sequenceAdapter = _context3.sent;
|
|
168
|
+
hw = _this2.windowSize === 1 ? 1 : _this2.windowSize / 2; // Half the window size
|
|
169
|
+
|
|
170
|
+
f = _this2.windowSize === 1;
|
|
171
|
+
queryStart = query.start, queryEnd = query.end;
|
|
172
|
+
queryStart = Math.max(0, queryStart - hw);
|
|
173
|
+
queryEnd += hw;
|
|
174
|
+
|
|
175
|
+
if (!(queryEnd < 0 || queryStart > queryEnd)) {
|
|
176
|
+
_context3.next = 11;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
observer.complete();
|
|
181
|
+
return _context3.abrupt("return");
|
|
182
|
+
|
|
183
|
+
case 11:
|
|
184
|
+
ret = sequenceAdapter.getFeatures(_objectSpread(_objectSpread({}, query), {}, {
|
|
185
|
+
start: queryStart,
|
|
186
|
+
end: queryEnd
|
|
187
|
+
}));
|
|
188
|
+
_context3.next = 14;
|
|
189
|
+
return ret.pipe((0, _operators.toArray)()).toPromise();
|
|
190
|
+
|
|
191
|
+
case 14:
|
|
192
|
+
feats = _context3.sent;
|
|
193
|
+
residues = ((_feats$ = feats[0]) === null || _feats$ === void 0 ? void 0 : _feats$.get('seq')) || '';
|
|
194
|
+
|
|
195
|
+
for (i = hw; i < residues.length - hw; i += _this2.windowDelta) {
|
|
196
|
+
r = f ? residues[i] : residues.slice(i - hw, i + hw);
|
|
197
|
+
nc = 0;
|
|
198
|
+
ng = 0;
|
|
199
|
+
len = 0;
|
|
200
|
+
|
|
201
|
+
for (j = 0; j < r.length; j++) {
|
|
202
|
+
if (r[j] === 'c' || r[j] === 'C') {
|
|
203
|
+
nc++;
|
|
204
|
+
} else if (r[j] === 'g' || r[j] === 'G') {
|
|
205
|
+
ng++;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (r[j] !== 'N') {
|
|
209
|
+
len++;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
pos = queryStart;
|
|
214
|
+
score = void 0;
|
|
215
|
+
|
|
216
|
+
if (_this2.gcMode === 'content') {
|
|
217
|
+
score = (ng + nc) / (len || 1);
|
|
218
|
+
} else if (_this2.gcMode === 'skew') {
|
|
219
|
+
score = (ng - nc) / (ng + nc || 1);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
observer.next(new _simpleFeature["default"]({
|
|
223
|
+
uniqueId: "".concat(_this2.id, "_").concat(pos + i),
|
|
224
|
+
start: pos + i,
|
|
225
|
+
end: pos + i + _this2.windowDelta,
|
|
226
|
+
score: score
|
|
227
|
+
}));
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
observer.complete();
|
|
231
|
+
|
|
232
|
+
case 18:
|
|
233
|
+
case "end":
|
|
234
|
+
return _context3.stop();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}, _callee3);
|
|
238
|
+
}));
|
|
239
|
+
|
|
240
|
+
return function (_x) {
|
|
241
|
+
return _ref.apply(this, arguments);
|
|
242
|
+
};
|
|
243
|
+
}());
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* called to provide a hint that data tied to a certain region
|
|
247
|
+
* will not be needed for the forseeable future and can be purged
|
|
248
|
+
* from caches, etc
|
|
249
|
+
*/
|
|
250
|
+
|
|
251
|
+
}, {
|
|
252
|
+
key: "freeResources",
|
|
253
|
+
value: function
|
|
254
|
+
/* { region } */
|
|
255
|
+
freeResources() {}
|
|
256
|
+
}]);
|
|
257
|
+
return _default;
|
|
258
|
+
}(_BaseAdapter.BaseFeatureDataAdapter);
|
|
259
|
+
|
|
260
|
+
exports["default"] = _default;
|
|
261
|
+
(0, _defineProperty2["default"])(_default, "capabilities", ['hasLocalStats']);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
declare const _default: (pluginManager: PluginManager) => import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
3
|
-
export default _default;
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
declare const _default: (pluginManager: PluginManager) => import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
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 = function _default(pluginManager) {
|
|
11
|
+
return (0, _configuration.ConfigurationSchema)('GCContentAdapter', {
|
|
12
|
+
sequenceAdapter: pluginManager.pluggableConfigSchemaType('adapter')
|
|
13
|
+
}, {
|
|
14
|
+
explicitlyTyped: true
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports["default"] = _default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
declare const _default: (pluginManager: PluginManager) => {
|
|
3
|
-
configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
4
|
-
getAdapterClass: () => Promise<typeof import("./GCContentAdapter").default>;
|
|
5
|
-
};
|
|
6
|
-
export default _default;
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
declare const _default: (pluginManager: PluginManager) => {
|
|
3
|
+
configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
4
|
+
getAdapterClass: () => Promise<typeof import("./GCContentAdapter").default>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
12
|
+
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
|
13
|
+
|
|
14
|
+
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); }
|
|
15
|
+
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2["default"])(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; }
|
|
17
|
+
|
|
18
|
+
var _default = function _default(pluginManager) {
|
|
19
|
+
return {
|
|
20
|
+
configSchema: pluginManager.load(_configSchema["default"]),
|
|
21
|
+
getAdapterClass: function getAdapterClass() {
|
|
22
|
+
return Promise.resolve().then(function () {
|
|
23
|
+
return _interopRequireWildcard(require('./GCContentAdapter'));
|
|
24
|
+
}).then(function (r) {
|
|
25
|
+
return r["default"];
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports["default"] = _default;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { IndexedFasta } from '@gmod/indexedfasta';
|
|
2
|
-
import { BaseSequenceAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
|
-
import { NoAssemblyRegion } from '@jbrowse/core/util/types';
|
|
4
|
-
import { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
5
|
-
import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema';
|
|
6
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
7
|
-
import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
|
|
8
|
-
export default class extends BaseSequenceAdapter {
|
|
9
|
-
protected fasta: IndexedFasta;
|
|
10
|
-
private seqCache;
|
|
11
|
-
constructor(config: AnyConfigurationModel, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
|
|
12
|
-
getRefNames(opts?: BaseOptions): Promise<string[]>;
|
|
13
|
-
getRegions(opts?: BaseOptions): Promise<{
|
|
14
|
-
refName: string;
|
|
15
|
-
start: number;
|
|
16
|
-
end: number;
|
|
17
|
-
}[]>;
|
|
18
|
-
getFeatures(region: NoAssemblyRegion, opts?: BaseOptions): import("rxjs").Observable<Feature>;
|
|
19
|
-
/**
|
|
20
|
-
* called to provide a hint that data tied to a certain region
|
|
21
|
-
* will not be needed for the forseeable future and can be purged
|
|
22
|
-
* from caches, etc
|
|
23
|
-
*/
|
|
24
|
-
freeResources(): void;
|
|
25
|
-
}
|
|
1
|
+
import { IndexedFasta } from '@gmod/indexedfasta';
|
|
2
|
+
import { BaseSequenceAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
|
+
import { NoAssemblyRegion } from '@jbrowse/core/util/types';
|
|
4
|
+
import { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
5
|
+
import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema';
|
|
6
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
7
|
+
import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
|
|
8
|
+
export default class extends BaseSequenceAdapter {
|
|
9
|
+
protected fasta: IndexedFasta;
|
|
10
|
+
private seqCache;
|
|
11
|
+
constructor(config: AnyConfigurationModel, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
|
|
12
|
+
getRefNames(opts?: BaseOptions): Promise<string[]>;
|
|
13
|
+
getRegions(opts?: BaseOptions): Promise<{
|
|
14
|
+
refName: string;
|
|
15
|
+
start: number;
|
|
16
|
+
end: number;
|
|
17
|
+
}[]>;
|
|
18
|
+
getFeatures(region: NoAssemblyRegion, opts?: BaseOptions): import("rxjs").Observable<Feature>;
|
|
19
|
+
/**
|
|
20
|
+
* called to provide a hint that data tied to a certain region
|
|
21
|
+
* will not be needed for the forseeable future and can be purged
|
|
22
|
+
* from caches, etc
|
|
23
|
+
*/
|
|
24
|
+
freeResources(): void;
|
|
25
|
+
}
|
|
@@ -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;
|