@jbrowse/plugin-bed 1.7.11 → 2.0.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.
Files changed (61) hide show
  1. package/dist/BedAdapter/BedAdapter.js +260 -485
  2. package/dist/BedAdapter/BedAdapter.js.map +1 -0
  3. package/dist/BedAdapter/configSchema.js +39 -51
  4. package/dist/BedAdapter/configSchema.js.map +1 -0
  5. package/dist/BedAdapter/index.js +8 -14
  6. package/dist/BedAdapter/index.js.map +1 -0
  7. package/dist/BedTabixAdapter/BedTabixAdapter.js +155 -234
  8. package/dist/BedTabixAdapter/BedTabixAdapter.js.map +1 -0
  9. package/dist/BedTabixAdapter/configSchema.js +38 -51
  10. package/dist/BedTabixAdapter/configSchema.js.map +1 -0
  11. package/dist/BedTabixAdapter/index.js +8 -14
  12. package/dist/BedTabixAdapter/index.js.map +1 -0
  13. package/dist/BigBedAdapter/BigBedAdapter.js +228 -335
  14. package/dist/BigBedAdapter/BigBedAdapter.js.map +1 -0
  15. package/dist/BigBedAdapter/configSchema.js +9 -21
  16. package/dist/BigBedAdapter/configSchema.js.map +1 -0
  17. package/dist/BigBedAdapter/index.js +8 -14
  18. package/dist/BigBedAdapter/index.js.map +1 -0
  19. package/dist/index.js +129 -157
  20. package/dist/index.js.map +1 -0
  21. package/dist/util.js +156 -175
  22. package/dist/util.js.map +1 -0
  23. package/esm/BedAdapter/BedAdapter.d.ts +29 -0
  24. package/esm/BedAdapter/BedAdapter.js +130 -0
  25. package/esm/BedAdapter/BedAdapter.js.map +1 -0
  26. package/esm/BedAdapter/configSchema.d.ts +2 -0
  27. package/esm/BedAdapter/configSchema.js +38 -0
  28. package/esm/BedAdapter/configSchema.js.map +1 -0
  29. package/esm/BedAdapter/index.d.ts +1 -0
  30. package/esm/BedAdapter/index.js +2 -0
  31. package/esm/BedAdapter/index.js.map +1 -0
  32. package/esm/BedTabixAdapter/BedTabixAdapter.d.ts +19 -0
  33. package/esm/BedTabixAdapter/BedTabixAdapter.js +69 -0
  34. package/esm/BedTabixAdapter/BedTabixAdapter.js.map +1 -0
  35. package/esm/BedTabixAdapter/configSchema.d.ts +2 -0
  36. package/esm/BedTabixAdapter/configSchema.js +38 -0
  37. package/esm/BedTabixAdapter/configSchema.js.map +1 -0
  38. package/esm/BedTabixAdapter/index.d.ts +1 -0
  39. package/esm/BedTabixAdapter/index.js +2 -0
  40. package/esm/BedTabixAdapter/index.js.map +1 -0
  41. package/esm/BigBedAdapter/BigBedAdapter.d.ts +46 -0
  42. package/esm/BigBedAdapter/BigBedAdapter.js +104 -0
  43. package/esm/BigBedAdapter/BigBedAdapter.js.map +1 -0
  44. package/esm/BigBedAdapter/configSchema.d.ts +2 -0
  45. package/esm/BigBedAdapter/configSchema.js +8 -0
  46. package/esm/BigBedAdapter/configSchema.js.map +1 -0
  47. package/esm/BigBedAdapter/index.d.ts +1 -0
  48. package/esm/BigBedAdapter/index.js +2 -0
  49. package/esm/BigBedAdapter/index.js.map +1 -0
  50. package/esm/index.d.ts +6 -0
  51. package/esm/index.js +81 -0
  52. package/esm/index.js.map +1 -0
  53. package/esm/util.d.ts +4 -0
  54. package/esm/util.js +154 -0
  55. package/esm/util.js.map +1 -0
  56. package/package.json +15 -6
  57. package/dist/BedAdapter/BedAdapter.test.js +0 -255
  58. package/dist/BedTabixAdapter/BedTabixAdapter.test.js +0 -276
  59. package/dist/BigBedAdapter/BigBedAdapter.test.js +0 -63
  60. package/dist/declare.d.js +0 -1
  61. package/dist/index.test.js +0 -24
@@ -1,498 +1,273 @@
1
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 _bed = _interopRequireDefault(require("@gmod/bed"));
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 _util = require("../util");
37
-
38
- var _intervalTree = _interopRequireDefault(require("@flatten-js/interval-tree"));
39
-
40
- var _bgzfFilehandle = require("@gmod/bgzf-filehandle");
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
-
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ var bed_1 = __importDefault(require("@gmod/bed"));
58
+ var BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
59
+ var io_1 = require("@jbrowse/core/util/io");
60
+ var rxjs_1 = require("@jbrowse/core/util/rxjs");
61
+ var util_1 = require("../util");
62
+ var interval_tree_1 = __importDefault(require("@flatten-js/interval-tree"));
63
+ var bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
46
64
  function isGzip(buf) {
47
- return buf[0] === 31 && buf[1] === 139 && buf[2] === 8;
65
+ return buf[0] === 31 && buf[1] === 139 && buf[2] === 8;
48
66
  }
49
-
50
- var BedAdapter = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
51
- (0, _inherits2.default)(BedAdapter, _BaseFeatureDataAdapt);
52
-
53
- var _super = _createSuper(BedAdapter);
54
-
55
- function BedAdapter() {
56
- var _this;
57
-
58
- (0, _classCallCheck2.default)(this, BedAdapter);
59
-
60
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
- args[_key] = arguments[_key];
67
+ var BedAdapter = /** @class */ (function (_super) {
68
+ __extends(BedAdapter, _super);
69
+ function BedAdapter() {
70
+ var _this = _super !== null && _super.apply(this, arguments) || this;
71
+ _this.intervalTrees = {};
72
+ return _this;
62
73
  }
63
-
64
- _this = _super.call.apply(_super, [this].concat(args));
65
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "bedFeatures", void 0);
66
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "intervalTrees", {});
67
- return _this;
68
- }
69
-
70
- (0, _createClass2.default)(BedAdapter, [{
71
- key: "loadDataP",
72
- value: function () {
73
- var _loadDataP = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
74
- var opts,
75
- pm,
76
- bedLoc,
77
- buf,
78
- buffer,
79
- data,
80
- lines,
81
- headerLines,
82
- i,
83
- header,
84
- features,
85
- line,
86
- tab,
87
- refName,
88
- autoSql,
89
- parser,
90
- columnNames,
91
- scoreColumn,
92
- colRef,
93
- colStart,
94
- colEnd,
95
- _args = arguments;
96
- return _regenerator.default.wrap(function _callee$(_context) {
97
- while (1) {
98
- switch (_context.prev = _context.next) {
99
- case 0:
100
- opts = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
101
- pm = this.pluginManager;
102
- bedLoc = this.getConf('bedLocation');
103
- _context.next = 5;
104
- return (0, _io.openLocation)(bedLoc, pm).readFile(opts);
105
-
106
- case 5:
107
- buf = _context.sent;
108
-
109
- if (!isGzip(buf)) {
110
- _context.next = 12;
111
- break;
112
- }
113
-
114
- _context.next = 9;
115
- return (0, _bgzfFilehandle.unzip)(buf);
116
-
117
- case 9:
118
- _context.t0 = _context.sent;
119
- _context.next = 13;
120
- break;
121
-
122
- case 12:
123
- _context.t0 = buf;
124
-
125
- case 13:
126
- buffer = _context.t0;
127
-
128
- if (!(buffer.length > 536870888)) {
129
- _context.next = 16;
130
- break;
131
- }
132
-
133
- throw new Error('Data exceeds maximum string length (512MB)');
134
-
135
- case 16:
136
- data = new TextDecoder('utf8', {
137
- fatal: true
138
- }).decode(buffer);
139
- lines = data.split('\n').filter(function (f) {
140
- return !!f;
141
- });
142
- headerLines = [];
143
- i = 0;
144
-
145
- for (; i < lines.length && lines[i].startsWith('#'); i++) {
146
- headerLines.push(lines[i]);
74
+ BedAdapter.prototype.loadDataP = function (opts) {
75
+ if (opts === void 0) { opts = {}; }
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var pm, bedLoc, buf, buffer, _a, data, lines, headerLines, i, header, features, line, tab, refName, autoSql, parser, columnNames, scoreColumn, colRef, colStart, colEnd;
78
+ return __generator(this, function (_b) {
79
+ switch (_b.label) {
80
+ case 0:
81
+ pm = this.pluginManager;
82
+ bedLoc = this.getConf('bedLocation');
83
+ return [4 /*yield*/, (0, io_1.openLocation)(bedLoc, pm).readFile(opts)];
84
+ case 1:
85
+ buf = _b.sent();
86
+ if (!isGzip(buf)) return [3 /*break*/, 3];
87
+ return [4 /*yield*/, (0, bgzf_filehandle_1.unzip)(buf)];
88
+ case 2:
89
+ _a = _b.sent();
90
+ return [3 /*break*/, 4];
91
+ case 3:
92
+ _a = buf;
93
+ _b.label = 4;
94
+ case 4:
95
+ buffer = _a;
96
+ // 512MB max chrome string length is 512MB
97
+ if (buffer.length > 536870888) {
98
+ throw new Error('Data exceeds maximum string length (512MB)');
99
+ }
100
+ data = new TextDecoder('utf8', { fatal: true }).decode(buffer);
101
+ lines = data.split('\n').filter(function (f) { return !!f; });
102
+ headerLines = [];
103
+ i = 0;
104
+ for (; i < lines.length && lines[i].startsWith('#'); i++) {
105
+ headerLines.push(lines[i]);
106
+ }
107
+ header = headerLines.join('\n');
108
+ features = {};
109
+ for (; i < lines.length; i++) {
110
+ line = lines[i];
111
+ tab = line.indexOf('\t');
112
+ refName = line.slice(0, tab);
113
+ if (!features[refName]) {
114
+ features[refName] = [];
115
+ }
116
+ features[refName].push(line);
117
+ }
118
+ autoSql = this.getConf('autoSql');
119
+ parser = new bed_1.default({ autoSql: autoSql });
120
+ columnNames = this.getConf('columnNames');
121
+ scoreColumn = this.getConf('scoreColumn');
122
+ colRef = this.getConf('colRef');
123
+ colStart = this.getConf('colStart');
124
+ colEnd = this.getConf('colEnd');
125
+ return [2 /*return*/, {
126
+ header: header,
127
+ features: features,
128
+ parser: parser,
129
+ columnNames: columnNames,
130
+ scoreColumn: scoreColumn,
131
+ colRef: colRef,
132
+ colStart: colStart,
133
+ colEnd: colEnd,
134
+ }];
147
135
  }
148
-
149
- header = headerLines.join('\n');
150
- features = {};
151
-
152
- for (; i < lines.length; i++) {
153
- line = lines[i];
154
- tab = line.indexOf('\t');
155
- refName = line.slice(0, tab);
156
-
157
- if (!features[refName]) {
158
- features[refName] = [];
159
- }
160
-
161
- features[refName].push(line);
162
- }
163
-
164
- autoSql = this.getConf('autoSql');
165
- parser = new _bed.default({
166
- autoSql: autoSql
167
- });
168
- columnNames = this.getConf('columnNames');
169
- scoreColumn = this.getConf('scoreColumn');
170
- colRef = this.getConf('colRef');
171
- colStart = this.getConf('colStart');
172
- colEnd = this.getConf('colEnd');
173
- return _context.abrupt("return", {
174
- header: header,
175
- features: features,
176
- parser: parser,
177
- columnNames: columnNames,
178
- scoreColumn: scoreColumn,
179
- colRef: colRef,
180
- colStart: colStart,
181
- colEnd: colEnd
182
- });
183
-
184
- case 32:
185
- case "end":
186
- return _context.stop();
187
- }
188
- }
189
- }, _callee, this);
190
- }));
191
-
192
- function loadDataP() {
193
- return _loadDataP.apply(this, arguments);
194
- }
195
-
196
- return loadDataP;
197
- }()
198
- }, {
199
- key: "loadData",
200
- value: function () {
201
- var _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
202
- var _this2 = this;
203
-
204
- var opts,
205
- _args2 = arguments;
206
- return _regenerator.default.wrap(function _callee2$(_context2) {
207
- while (1) {
208
- switch (_context2.prev = _context2.next) {
209
- case 0:
210
- opts = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
211
-
136
+ });
137
+ });
138
+ };
139
+ BedAdapter.prototype.loadData = function (opts) {
140
+ if (opts === void 0) { opts = {}; }
141
+ return __awaiter(this, void 0, void 0, function () {
142
+ var _this = this;
143
+ return __generator(this, function (_a) {
212
144
  if (!this.bedFeatures) {
213
- this.bedFeatures = this.loadDataP(opts).catch(function (e) {
214
- _this2.bedFeatures = undefined;
215
- throw e;
216
- });
145
+ this.bedFeatures = this.loadDataP(opts).catch(function (e) {
146
+ _this.bedFeatures = undefined;
147
+ throw e;
148
+ });
217
149
  }
218
-
219
- return _context2.abrupt("return", this.bedFeatures);
220
-
221
- case 3:
222
- case "end":
223
- return _context2.stop();
224
- }
225
- }
226
- }, _callee2, this);
227
- }));
228
-
229
- function loadData() {
230
- return _loadData.apply(this, arguments);
231
- }
232
-
233
- return loadData;
234
- }()
235
- }, {
236
- key: "getRefNames",
237
- value: function () {
238
- var _getRefNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
239
- var opts,
240
- _yield$this$loadData,
241
- features,
242
- _args3 = arguments;
243
-
244
- return _regenerator.default.wrap(function _callee3$(_context3) {
245
- while (1) {
246
- switch (_context3.prev = _context3.next) {
247
- case 0:
248
- opts = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
249
- _context3.next = 3;
250
- return this.loadData(opts);
251
-
252
- case 3:
253
- _yield$this$loadData = _context3.sent;
254
- features = _yield$this$loadData.features;
255
- return _context3.abrupt("return", Object.keys(features));
256
-
257
- case 6:
258
- case "end":
259
- return _context3.stop();
260
- }
261
- }
262
- }, _callee3, this);
263
- }));
264
-
265
- function getRefNames() {
266
- return _getRefNames.apply(this, arguments);
267
- }
268
-
269
- return getRefNames;
270
- }()
271
- }, {
272
- key: "getHeader",
273
- value: function () {
274
- var _getHeader = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
275
- var opts,
276
- _yield$this$loadData2,
277
- header,
278
- _args4 = arguments;
279
-
280
- return _regenerator.default.wrap(function _callee4$(_context4) {
281
- while (1) {
282
- switch (_context4.prev = _context4.next) {
283
- case 0:
284
- opts = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};
285
- _context4.next = 3;
286
- return this.loadData(opts);
287
-
288
- case 3:
289
- _yield$this$loadData2 = _context4.sent;
290
- header = _yield$this$loadData2.header;
291
- return _context4.abrupt("return", header);
292
-
293
- case 6:
294
- case "end":
295
- return _context4.stop();
296
- }
297
- }
298
- }, _callee4, this);
299
- }));
300
-
301
- function getHeader() {
302
- return _getHeader.apply(this, arguments);
303
- }
304
-
305
- return getHeader;
306
- }()
307
- }, {
308
- key: "getNames",
309
- value: function () {
310
- var _getNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
311
- var _yield$this$loadData3, header, columnNames, defs, defline;
312
-
313
- return _regenerator.default.wrap(function _callee5$(_context5) {
314
- while (1) {
315
- switch (_context5.prev = _context5.next) {
316
- case 0:
317
- _context5.next = 2;
318
- return this.loadData();
319
-
320
- case 2:
321
- _yield$this$loadData3 = _context5.sent;
322
- header = _yield$this$loadData3.header;
323
- columnNames = _yield$this$loadData3.columnNames;
324
-
325
- if (!columnNames.length) {
326
- _context5.next = 7;
327
- break;
150
+ return [2 /*return*/, this.bedFeatures];
151
+ });
152
+ });
153
+ };
154
+ BedAdapter.prototype.getRefNames = function (opts) {
155
+ if (opts === void 0) { opts = {}; }
156
+ return __awaiter(this, void 0, void 0, function () {
157
+ var features;
158
+ return __generator(this, function (_a) {
159
+ switch (_a.label) {
160
+ case 0: return [4 /*yield*/, this.loadData(opts)];
161
+ case 1:
162
+ features = (_a.sent()).features;
163
+ return [2 /*return*/, Object.keys(features)];
328
164
  }
329
-
330
- return _context5.abrupt("return", columnNames);
331
-
332
- case 7:
333
- defs = header.split('\n').filter(function (f) {
334
- return !!f;
335
- });
336
- defline = defs[defs.length - 1];
337
- return _context5.abrupt("return", defline !== null && defline !== void 0 && defline.includes('\t') ? defline.slice(1).split('\t').map(function (field) {
338
- return field.trim();
339
- }) : undefined);
340
-
341
- case 10:
342
- case "end":
343
- return _context5.stop();
344
- }
345
- }
346
- }, _callee5, this);
347
- }));
348
-
349
- function getNames() {
350
- return _getNames.apply(this, arguments);
351
- }
352
-
353
- return getNames;
354
- }()
355
- }, {
356
- key: "loadFeatureIntervalTreeHelper",
357
- value: function () {
358
- var _loadFeatureIntervalTreeHelper = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(refName) {
359
- var _this3 = this;
360
-
361
- var _yield$this$loadData4, colRef, colStart, colEnd, features, parser, scoreColumn, lines, names, intervalTree, ret, i, obj;
362
-
363
- return _regenerator.default.wrap(function _callee6$(_context6) {
364
- while (1) {
365
- switch (_context6.prev = _context6.next) {
366
- case 0:
367
- _context6.next = 2;
368
- return this.loadData();
369
-
370
- case 2:
371
- _yield$this$loadData4 = _context6.sent;
372
- colRef = _yield$this$loadData4.colRef;
373
- colStart = _yield$this$loadData4.colStart;
374
- colEnd = _yield$this$loadData4.colEnd;
375
- features = _yield$this$loadData4.features;
376
- parser = _yield$this$loadData4.parser;
377
- scoreColumn = _yield$this$loadData4.scoreColumn;
378
- lines = features[refName];
379
-
380
- if (lines) {
381
- _context6.next = 12;
382
- break;
165
+ });
166
+ });
167
+ };
168
+ BedAdapter.prototype.getHeader = function (opts) {
169
+ if (opts === void 0) { opts = {}; }
170
+ return __awaiter(this, void 0, void 0, function () {
171
+ var header;
172
+ return __generator(this, function (_a) {
173
+ switch (_a.label) {
174
+ case 0: return [4 /*yield*/, this.loadData(opts)];
175
+ case 1:
176
+ header = (_a.sent()).header;
177
+ return [2 /*return*/, header];
383
178
  }
384
-
385
- return _context6.abrupt("return", undefined);
386
-
387
- case 12:
388
- _context6.next = 14;
389
- return this.getNames();
390
-
391
- case 14:
392
- names = _context6.sent;
393
- intervalTree = new _intervalTree.default();
394
- ret = lines.map(function (f, i) {
395
- var uniqueId = "".concat(_this3.id, "-").concat(refName, "-").concat(i);
396
- return (0, _util.featureData)(f, colRef, colStart, colEnd, scoreColumn, parser, uniqueId, names);
397
- });
398
-
399
- for (i = 0; i < ret.length; i++) {
400
- obj = ret[i];
401
- intervalTree.insert([obj.get('start'), obj.get('end')], obj);
179
+ });
180
+ });
181
+ };
182
+ BedAdapter.prototype.getNames = function () {
183
+ return __awaiter(this, void 0, void 0, function () {
184
+ var _a, header, columnNames, defs, defline;
185
+ return __generator(this, function (_b) {
186
+ switch (_b.label) {
187
+ case 0: return [4 /*yield*/, this.loadData()];
188
+ case 1:
189
+ _a = _b.sent(), header = _a.header, columnNames = _a.columnNames;
190
+ if (columnNames.length) {
191
+ return [2 /*return*/, columnNames];
192
+ }
193
+ defs = header.split('\n').filter(function (f) { return !!f; });
194
+ defline = defs[defs.length - 1];
195
+ return [2 /*return*/, (defline === null || defline === void 0 ? void 0 : defline.includes('\t'))
196
+ ? defline
197
+ .slice(1)
198
+ .split('\t')
199
+ .map(function (field) { return field.trim(); })
200
+ : undefined];
402
201
  }
403
-
404
- return _context6.abrupt("return", intervalTree);
405
-
406
- case 19:
407
- case "end":
408
- return _context6.stop();
409
- }
410
- }
411
- }, _callee6, this);
412
- }));
413
-
414
- function loadFeatureIntervalTreeHelper(_x) {
415
- return _loadFeatureIntervalTreeHelper.apply(this, arguments);
416
- }
417
-
418
- return loadFeatureIntervalTreeHelper;
419
- }()
420
- }, {
421
- key: "loadFeatureIntervalTree",
422
- value: function () {
423
- var _loadFeatureIntervalTree = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(refName) {
424
- var _this4 = this;
425
-
426
- return _regenerator.default.wrap(function _callee7$(_context7) {
427
- while (1) {
428
- switch (_context7.prev = _context7.next) {
429
- case 0:
202
+ });
203
+ });
204
+ };
205
+ BedAdapter.prototype.loadFeatureIntervalTreeHelper = function (refName) {
206
+ return __awaiter(this, void 0, void 0, function () {
207
+ var _a, colRef, colStart, colEnd, features, parser, scoreColumn, lines, names, intervalTree, ret, i, obj;
208
+ var _this = this;
209
+ return __generator(this, function (_b) {
210
+ switch (_b.label) {
211
+ case 0: return [4 /*yield*/, this.loadData()];
212
+ case 1:
213
+ _a = _b.sent(), colRef = _a.colRef, colStart = _a.colStart, colEnd = _a.colEnd, features = _a.features, parser = _a.parser, scoreColumn = _a.scoreColumn;
214
+ lines = features[refName];
215
+ if (!lines) {
216
+ return [2 /*return*/, undefined];
217
+ }
218
+ return [4 /*yield*/, this.getNames()];
219
+ case 2:
220
+ names = _b.sent();
221
+ intervalTree = new interval_tree_1.default();
222
+ ret = lines.map(function (f, i) {
223
+ var uniqueId = "".concat(_this.id, "-").concat(refName, "-").concat(i);
224
+ return (0, util_1.featureData)(f, colRef, colStart, colEnd, scoreColumn, parser, uniqueId, names);
225
+ });
226
+ for (i = 0; i < ret.length; i++) {
227
+ obj = ret[i];
228
+ intervalTree.insert([obj.get('start'), obj.get('end')], obj);
229
+ }
230
+ return [2 /*return*/, intervalTree];
231
+ }
232
+ });
233
+ });
234
+ };
235
+ BedAdapter.prototype.loadFeatureIntervalTree = function (refName) {
236
+ return __awaiter(this, void 0, void 0, function () {
237
+ var _this = this;
238
+ return __generator(this, function (_a) {
430
239
  if (!this.intervalTrees[refName]) {
431
- this.intervalTrees[refName] = this.loadFeatureIntervalTreeHelper(refName).catch(function (e) {
432
- _this4.intervalTrees[refName] = undefined;
433
- throw e;
434
- });
240
+ this.intervalTrees[refName] = this.loadFeatureIntervalTreeHelper(refName).catch(function (e) {
241
+ _this.intervalTrees[refName] = undefined;
242
+ throw e;
243
+ });
435
244
  }
436
-
437
- return _context7.abrupt("return", this.intervalTrees[refName]);
438
-
439
- case 2:
440
- case "end":
441
- return _context7.stop();
442
- }
443
- }
444
- }, _callee7, this);
445
- }));
446
-
447
- function loadFeatureIntervalTree(_x2) {
448
- return _loadFeatureIntervalTree.apply(this, arguments);
449
- }
450
-
451
- return loadFeatureIntervalTree;
452
- }()
453
- }, {
454
- key: "getFeatures",
455
- value: function getFeatures(query) {
456
- var _this5 = this;
457
-
458
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
459
- return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
460
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(observer) {
461
- var start, end, refName, intervalTree;
462
- return _regenerator.default.wrap(function _callee8$(_context8) {
463
- while (1) {
464
- switch (_context8.prev = _context8.next) {
465
- case 0:
466
- start = query.start, end = query.end, refName = query.refName;
467
- _context8.next = 3;
468
- return _this5.loadFeatureIntervalTree(refName);
469
-
470
- case 3:
471
- intervalTree = _context8.sent;
472
- intervalTree === null || intervalTree === void 0 ? void 0 : intervalTree.search([start, end]).forEach(function (f) {
473
- return observer.next(f);
474
- });
475
- observer.complete();
476
-
477
- case 6:
478
- case "end":
479
- return _context8.stop();
480
- }
481
- }
482
- }, _callee8);
483
- }));
484
-
485
- return function (_x3) {
486
- return _ref.apply(this, arguments);
487
- };
488
- }(), opts.signal);
489
- }
490
- }, {
491
- key: "freeResources",
492
- value: function freeResources() {}
493
- }]);
494
- return BedAdapter;
495
- }(_BaseAdapter.BaseFeatureDataAdapter);
496
-
245
+ return [2 /*return*/, this.intervalTrees[refName]];
246
+ });
247
+ });
248
+ };
249
+ BedAdapter.prototype.getFeatures = function (query, opts) {
250
+ var _this = this;
251
+ if (opts === void 0) { opts = {}; }
252
+ return (0, rxjs_1.ObservableCreate)(function (observer) { return __awaiter(_this, void 0, void 0, function () {
253
+ var start, end, refName, intervalTree;
254
+ return __generator(this, function (_a) {
255
+ switch (_a.label) {
256
+ case 0:
257
+ start = query.start, end = query.end, refName = query.refName;
258
+ return [4 /*yield*/, this.loadFeatureIntervalTree(refName)];
259
+ case 1:
260
+ intervalTree = _a.sent();
261
+ intervalTree === null || intervalTree === void 0 ? void 0 : intervalTree.search([start, end]).forEach(function (f) { return observer.next(f); });
262
+ observer.complete();
263
+ return [2 /*return*/];
264
+ }
265
+ });
266
+ }); }, opts.signal);
267
+ };
268
+ BedAdapter.prototype.freeResources = function () { };
269
+ BedAdapter.capabilities = ['getFeatures', 'getRefNames'];
270
+ return BedAdapter;
271
+ }(BaseAdapter_1.BaseFeatureDataAdapter));
497
272
  exports.default = BedAdapter;
498
- (0, _defineProperty2.default)(BedAdapter, "capabilities", ['getFeatures', 'getRefNames']);
273
+ //# sourceMappingURL=BedAdapter.js.map