@gmod/bbi 2.0.4 → 2.0.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [2.0.5](https://github.com/GMOD/bbi-js/compare/v2.0.4...v2.0.5) (2022-12-17)
2
+
3
+
4
+
5
+ - Cleanup package.json and README
6
+
1
7
  ## [2.0.4](https://github.com/GMOD/bbi-js/compare/v2.0.3...v2.0.4) (2022-10-15)
2
8
 
3
9
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![NPM version](https://img.shields.io/npm/v/@gmod/bbi.svg?style=flat-square)](https://npmjs.org/package/@gmod/bbi)
4
4
  [![Coverage Status](https://img.shields.io/codecov/c/github/GMOD/bbi-js/master.svg?style=flat-square)](https://codecov.io/gh/GMOD/bbi-js/branch/master)
5
- [![Build Status](https://img.shields.io/github/workflow/status/GMOD/bbi-js/Push/master?logo=github&style=flat-query)](https://github.com/GMOD/bbi-js/actions?query=branch%3Amaster+workflow%3APush+)
5
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/GMOD/bbi-js/push.yml?branch=master)](https://github.com/GMOD/bbi-js/actions?query=branch%3Amaster+workflow%3APush+)
6
6
 
7
7
  A parser for bigwig and bigbed file formats
8
8
 
package/dist/bbi.js CHANGED
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,42 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- 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;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
11
  Object.defineProperty(exports, "__esModule", { value: true });
50
12
  exports.BBI = void 0;
51
- var binary_parser_1 = require("binary-parser");
52
- var generic_filehandle_1 = require("generic-filehandle");
53
- var rxjs_1 = require("rxjs");
54
- var operators_1 = require("rxjs/operators");
55
- var blockView_1 = require("./blockView");
56
- var BIG_WIG_MAGIC = -2003829722;
57
- var BIG_BED_MAGIC = -2021002517;
13
+ const binary_parser_1 = require("binary-parser");
14
+ const generic_filehandle_1 = require("generic-filehandle");
15
+ const rxjs_1 = require("rxjs");
16
+ const operators_1 = require("rxjs/operators");
17
+ const blockView_1 = require("./blockView");
18
+ const BIG_WIG_MAGIC = -2003829722;
19
+ const BIG_BED_MAGIC = -2021002517;
58
20
  function toString(arr) {
59
21
  return new TextDecoder().decode(arr);
60
22
  }
@@ -64,8 +26,8 @@ function toString(arr) {
64
26
  * @return an object with compiled parsers
65
27
  */
66
28
  function getParsers(isBE) {
67
- var le = isBE ? 'big' : 'little';
68
- var headerParser = new binary_parser_1.Parser()
29
+ const le = isBE ? 'big' : 'little';
30
+ const headerParser = new binary_parser_1.Parser()
69
31
  .endianess(le)
70
32
  .int32('magic')
71
33
  .uint16('version')
@@ -88,43 +50,42 @@ function getParsers(isBE) {
88
50
  .uint64('dataOffset')
89
51
  .uint64('indexOffset'),
90
52
  });
91
- var totalSummaryParser = new binary_parser_1.Parser()
53
+ const totalSummaryParser = new binary_parser_1.Parser()
92
54
  .endianess(le)
93
55
  .uint64('basesCovered')
94
56
  .doublele('scoreMin')
95
57
  .doublele('scoreMax')
96
58
  .doublele('scoreSum')
97
59
  .doublele('scoreSumSquares');
98
- var chromTreeParser = new binary_parser_1.Parser()
60
+ const chromTreeParser = new binary_parser_1.Parser()
99
61
  .endianess(le)
100
62
  .uint32('magic')
101
63
  .uint32('blockSize')
102
64
  .uint32('keySize')
103
65
  .uint32('valSize')
104
66
  .uint64('itemCount');
105
- var isLeafNode = new binary_parser_1.Parser()
67
+ const isLeafNode = new binary_parser_1.Parser()
106
68
  .endianess(le)
107
69
  .uint8('isLeafNode')
108
70
  .skip(1)
109
71
  .uint16('cnt')
110
72
  .saveOffset('offset');
111
73
  return {
112
- chromTreeParser: chromTreeParser,
113
- totalSummaryParser: totalSummaryParser,
114
- headerParser: headerParser,
115
- isLeafNode: isLeafNode,
74
+ chromTreeParser,
75
+ totalSummaryParser,
76
+ headerParser,
77
+ isLeafNode,
116
78
  };
117
79
  }
118
- var BBI = /** @class */ (function () {
80
+ class BBI {
119
81
  /*
120
82
  * @param filehandle - a filehandle from generic-filehandle or implementing something similar to the node10 fs.promises API
121
83
  * @param path - a Local file path as a string
122
84
  * @param url - a URL string
123
85
  * @param renameRefSeqs - an optional method to rename the internal reference sequences using a mapping function
124
86
  */
125
- function BBI(options) {
126
- if (options === void 0) { options = {}; }
127
- var filehandle = options.filehandle, _a = options.renameRefSeqs, renameRefSeqs = _a === void 0 ? function (s) { return s; } : _a, path = options.path, url = options.url;
87
+ constructor(options = {}) {
88
+ const { filehandle, renameRefSeqs = s => s, path, url } = options;
128
89
  this.renameRefSeqs = renameRefSeqs;
129
90
  if (filehandle) {
130
91
  this.bbi = filehandle;
@@ -143,70 +104,51 @@ var BBI = /** @class */ (function () {
143
104
  * @param abortSignal - abort the operation, can be null
144
105
  * @return a Header object
145
106
  */
146
- BBI.prototype.getHeader = function (opts) {
147
- var _this = this;
148
- if (opts === void 0) { opts = {}; }
149
- var options = 'aborted' in opts ? { signal: opts } : opts;
107
+ getHeader(opts = {}) {
108
+ const options = 'aborted' in opts ? { signal: opts } : opts;
150
109
  if (!this.headerP) {
151
- this.headerP = this._getHeader(options).catch(function (e) {
152
- _this.headerP = undefined;
110
+ this.headerP = this._getHeader(options).catch(e => {
111
+ this.headerP = undefined;
153
112
  throw e;
154
113
  });
155
114
  }
156
115
  return this.headerP;
157
- };
158
- BBI.prototype._getHeader = function (opts) {
159
- return __awaiter(this, void 0, void 0, function () {
160
- var header, chroms;
161
- return __generator(this, function (_a) {
162
- switch (_a.label) {
163
- case 0: return [4 /*yield*/, this._getMainHeader(opts)];
164
- case 1:
165
- header = _a.sent();
166
- return [4 /*yield*/, this._readChromTree(header, opts)];
167
- case 2:
168
- chroms = _a.sent();
169
- return [2 /*return*/, __assign(__assign({}, header), chroms)];
170
- }
171
- });
116
+ }
117
+ _getHeader(opts) {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ const header = yield this._getMainHeader(opts);
120
+ const chroms = yield this._readChromTree(header, opts);
121
+ return Object.assign(Object.assign({}, header), chroms);
172
122
  });
173
- };
174
- BBI.prototype._getMainHeader = function (opts, requestSize) {
175
- if (requestSize === void 0) { requestSize = 2000; }
176
- return __awaiter(this, void 0, void 0, function () {
177
- var buffer, isBigEndian, ret, header, magic, asOffset, totalSummaryOffset, off, tail, sum;
178
- return __generator(this, function (_a) {
179
- switch (_a.label) {
180
- case 0: return [4 /*yield*/, this.bbi.read(Buffer.alloc(requestSize), 0, requestSize, 0, opts)];
181
- case 1:
182
- buffer = (_a.sent()).buffer;
183
- isBigEndian = this._isBigEndian(buffer);
184
- ret = getParsers(isBigEndian);
185
- header = ret.headerParser.parse(buffer);
186
- magic = header.magic, asOffset = header.asOffset, totalSummaryOffset = header.totalSummaryOffset;
187
- header.fileType = magic === BIG_BED_MAGIC ? 'bigbed' : 'bigwig';
188
- if (asOffset > requestSize || totalSummaryOffset > requestSize) {
189
- return [2 /*return*/, this._getMainHeader(opts, requestSize * 2)];
190
- }
191
- if (asOffset) {
192
- off = Number(header.asOffset);
193
- header.autoSql = toString(buffer.subarray(off, buffer.indexOf(0, off)));
194
- }
195
- if (header.totalSummaryOffset > requestSize) {
196
- return [2 /*return*/, this._getMainHeader(opts, requestSize * 2)];
197
- }
198
- if (header.totalSummaryOffset) {
199
- tail = buffer.subarray(Number(header.totalSummaryOffset));
200
- sum = ret.totalSummaryParser.parse(tail);
201
- header.totalSummary = __assign(__assign({}, sum), { basesCovered: Number(sum.basesCovered) });
202
- }
203
- return [2 /*return*/, __assign(__assign({}, header), { isBigEndian: isBigEndian })];
204
- }
205
- });
123
+ }
124
+ _getMainHeader(opts, requestSize = 2000) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ const { buffer } = yield this.bbi.read(Buffer.alloc(requestSize), 0, requestSize, 0, opts);
127
+ const isBigEndian = this._isBigEndian(buffer);
128
+ const ret = getParsers(isBigEndian);
129
+ const header = ret.headerParser.parse(buffer);
130
+ const { magic, asOffset, totalSummaryOffset } = header;
131
+ header.fileType = magic === BIG_BED_MAGIC ? 'bigbed' : 'bigwig';
132
+ if (asOffset > requestSize || totalSummaryOffset > requestSize) {
133
+ return this._getMainHeader(opts, requestSize * 2);
134
+ }
135
+ if (asOffset) {
136
+ const off = Number(header.asOffset);
137
+ header.autoSql = toString(buffer.subarray(off, buffer.indexOf(0, off)));
138
+ }
139
+ if (header.totalSummaryOffset > requestSize) {
140
+ return this._getMainHeader(opts, requestSize * 2);
141
+ }
142
+ if (header.totalSummaryOffset) {
143
+ const tail = buffer.subarray(Number(header.totalSummaryOffset));
144
+ const sum = ret.totalSummaryParser.parse(tail);
145
+ header.totalSummary = Object.assign(Object.assign({}, sum), { basesCovered: Number(sum.basesCovered) });
146
+ }
147
+ return Object.assign(Object.assign({}, header), { isBigEndian });
206
148
  });
207
- };
208
- BBI.prototype._isBigEndian = function (buffer) {
209
- var ret = buffer.readInt32LE(0);
149
+ }
150
+ _isBigEndian(buffer) {
151
+ let ret = buffer.readInt32LE(0);
210
152
  if (ret === BIG_WIG_MAGIC || ret === BIG_BED_MAGIC) {
211
153
  return false;
212
154
  }
@@ -215,108 +157,82 @@ var BBI = /** @class */ (function () {
215
157
  return true;
216
158
  }
217
159
  throw new Error('not a BigWig/BigBed file');
218
- };
160
+ }
219
161
  // todo: add progress if long running
220
- BBI.prototype._readChromTree = function (header, opts) {
221
- return __awaiter(this, void 0, void 0, function () {
222
- var isBE, le, refsByNumber, refsByName, unzoomedDataOffset, chromTreeOffset, off, buffer, p, keySize, leafNodeParser, nonleafNodeParser, rootNodeOffset, bptReadNode;
223
- var _this = this;
224
- return __generator(this, function (_a) {
225
- switch (_a.label) {
226
- case 0:
227
- isBE = header.isBigEndian;
228
- le = isBE ? 'big' : 'little';
229
- refsByNumber = [];
230
- refsByName = {};
231
- unzoomedDataOffset = Number(header.unzoomedDataOffset);
232
- chromTreeOffset = Number(header.chromTreeOffset);
233
- while (unzoomedDataOffset % 4 !== 0) {
234
- unzoomedDataOffset += 1;
235
- }
236
- off = unzoomedDataOffset - chromTreeOffset;
237
- return [4 /*yield*/, this.bbi.read(Buffer.alloc(off), 0, off, Number(chromTreeOffset), opts)];
238
- case 1:
239
- buffer = (_a.sent()).buffer;
240
- p = getParsers(isBE);
241
- keySize = p.chromTreeParser.parse(buffer).keySize;
242
- leafNodeParser = new binary_parser_1.Parser()
243
- .endianess(le)
244
- .string('key', { stripNull: true, length: keySize })
245
- .uint32('refId')
246
- .uint32('refSize')
247
- .saveOffset('offset');
248
- nonleafNodeParser = new binary_parser_1.Parser()
249
- .endianess(le)
250
- .skip(keySize)
251
- .uint64('childOffset')
252
- .saveOffset('offset');
253
- rootNodeOffset = 32;
254
- bptReadNode = function (currentOffset) { return __awaiter(_this, void 0, void 0, function () {
255
- var offset, ret, isLeafNode, cnt, n, leafRet, key, refId, refSize, refRec, nextNodes, n, nonleafRet, childOffset;
256
- return __generator(this, function (_a) {
257
- switch (_a.label) {
258
- case 0:
259
- offset = currentOffset;
260
- if (offset >= buffer.length) {
261
- throw new Error('reading beyond end of buffer');
262
- }
263
- ret = p.isLeafNode.parse(buffer.subarray(offset));
264
- isLeafNode = ret.isLeafNode, cnt = ret.cnt;
265
- offset += ret.offset;
266
- if (!isLeafNode) return [3 /*break*/, 1];
267
- for (n = 0; n < cnt; n += 1) {
268
- leafRet = leafNodeParser.parse(buffer.subarray(offset));
269
- offset += leafRet.offset;
270
- key = leafRet.key, refId = leafRet.refId, refSize = leafRet.refSize;
271
- refRec = { name: key, id: refId, length: refSize };
272
- refsByName[this.renameRefSeqs(key)] = refId;
273
- refsByNumber[refId] = refRec;
274
- }
275
- return [3 /*break*/, 3];
276
- case 1:
277
- nextNodes = [];
278
- for (n = 0; n < cnt; n += 1) {
279
- nonleafRet = nonleafNodeParser.parse(buffer.subarray(offset));
280
- childOffset = nonleafRet.childOffset;
281
- offset += nonleafRet.offset;
282
- nextNodes.push(bptReadNode(Number(childOffset) - Number(chromTreeOffset)));
283
- }
284
- return [4 /*yield*/, Promise.all(nextNodes)];
285
- case 2:
286
- _a.sent();
287
- _a.label = 3;
288
- case 3: return [2 /*return*/];
289
- }
290
- });
291
- }); };
292
- return [4 /*yield*/, bptReadNode(rootNodeOffset)];
293
- case 2:
294
- _a.sent();
295
- return [2 /*return*/, {
296
- refsByName: refsByName,
297
- refsByNumber: refsByNumber,
298
- }];
162
+ _readChromTree(header, opts) {
163
+ return __awaiter(this, void 0, void 0, function* () {
164
+ const isBE = header.isBigEndian;
165
+ const le = isBE ? 'big' : 'little';
166
+ const refsByNumber = [];
167
+ const refsByName = {};
168
+ let unzoomedDataOffset = Number(header.unzoomedDataOffset);
169
+ const chromTreeOffset = Number(header.chromTreeOffset);
170
+ while (unzoomedDataOffset % 4 !== 0) {
171
+ unzoomedDataOffset += 1;
172
+ }
173
+ const off = unzoomedDataOffset - chromTreeOffset;
174
+ const { buffer } = yield this.bbi.read(Buffer.alloc(off), 0, off, Number(chromTreeOffset), opts);
175
+ const p = getParsers(isBE);
176
+ const { keySize } = p.chromTreeParser.parse(buffer);
177
+ const leafNodeParser = new binary_parser_1.Parser()
178
+ .endianess(le)
179
+ .string('key', { stripNull: true, length: keySize })
180
+ .uint32('refId')
181
+ .uint32('refSize')
182
+ .saveOffset('offset');
183
+ const nonleafNodeParser = new binary_parser_1.Parser()
184
+ .endianess(le)
185
+ .skip(keySize)
186
+ .uint64('childOffset')
187
+ .saveOffset('offset');
188
+ const rootNodeOffset = 32;
189
+ const bptReadNode = (currentOffset) => __awaiter(this, void 0, void 0, function* () {
190
+ let offset = currentOffset;
191
+ if (offset >= buffer.length) {
192
+ throw new Error('reading beyond end of buffer');
193
+ }
194
+ const ret = p.isLeafNode.parse(buffer.subarray(offset));
195
+ const { isLeafNode, cnt } = ret;
196
+ offset += ret.offset;
197
+ if (isLeafNode) {
198
+ for (let n = 0; n < cnt; n += 1) {
199
+ const leafRet = leafNodeParser.parse(buffer.subarray(offset));
200
+ offset += leafRet.offset;
201
+ const { key, refId, refSize } = leafRet;
202
+ const refRec = { name: key, id: refId, length: refSize };
203
+ refsByName[this.renameRefSeqs(key)] = refId;
204
+ refsByNumber[refId] = refRec;
205
+ }
206
+ }
207
+ else {
208
+ // parse index node
209
+ const nextNodes = [];
210
+ for (let n = 0; n < cnt; n += 1) {
211
+ const nonleafRet = nonleafNodeParser.parse(buffer.subarray(offset));
212
+ const { childOffset } = nonleafRet;
213
+ offset += nonleafRet.offset;
214
+ nextNodes.push(bptReadNode(Number(childOffset) - Number(chromTreeOffset)));
215
+ }
216
+ yield Promise.all(nextNodes);
299
217
  }
300
218
  });
219
+ yield bptReadNode(rootNodeOffset);
220
+ return {
221
+ refsByName,
222
+ refsByNumber,
223
+ };
301
224
  });
302
- };
225
+ }
303
226
  /*
304
227
  * fetches the "unzoomed" view of the bigwig data. this is the default for bigbed
305
228
  * @param abortSignal - a signal to optionally abort this operation
306
229
  */
307
- BBI.prototype.getUnzoomedView = function (opts) {
308
- return __awaiter(this, void 0, void 0, function () {
309
- var _a, unzoomedIndexOffset, refsByName, uncompressBufSize, isBigEndian, fileType;
310
- return __generator(this, function (_b) {
311
- switch (_b.label) {
312
- case 0: return [4 /*yield*/, this.getHeader(opts)];
313
- case 1:
314
- _a = _b.sent(), unzoomedIndexOffset = _a.unzoomedIndexOffset, refsByName = _a.refsByName, uncompressBufSize = _a.uncompressBufSize, isBigEndian = _a.isBigEndian, fileType = _a.fileType;
315
- return [2 /*return*/, new blockView_1.BlockView(this.bbi, refsByName, unzoomedIndexOffset, isBigEndian, uncompressBufSize > 0, fileType)];
316
- }
317
- });
230
+ getUnzoomedView(opts) {
231
+ return __awaiter(this, void 0, void 0, function* () {
232
+ const { unzoomedIndexOffset, refsByName, uncompressBufSize, isBigEndian, fileType, } = yield this.getHeader(opts);
233
+ return new blockView_1.BlockView(this.bbi, refsByName, unzoomedIndexOffset, isBigEndian, uncompressBufSize > 0, fileType);
318
234
  });
319
- };
235
+ }
320
236
  /**
321
237
  * Gets features from a BigWig file
322
238
  *
@@ -325,66 +241,41 @@ var BBI = /** @class */ (function () {
325
241
  * @param end - The end of a region
326
242
  * @param opts - An object containing basesPerSpan (e.g. pixels per basepair) or scale used to infer the zoomLevel to use
327
243
  */
328
- BBI.prototype.getFeatureStream = function (refName, start, end, opts) {
329
- if (opts === void 0) { opts = {
330
- scale: 1,
331
- }; }
332
- return __awaiter(this, void 0, void 0, function () {
333
- var chrName, view;
334
- return __generator(this, function (_a) {
335
- switch (_a.label) {
336
- case 0: return [4 /*yield*/, this.getHeader(opts)];
337
- case 1:
338
- _a.sent();
339
- chrName = this.renameRefSeqs(refName);
340
- if (!opts.basesPerSpan) return [3 /*break*/, 3];
341
- return [4 /*yield*/, this.getView(1 / opts.basesPerSpan, opts)];
342
- case 2:
343
- view = _a.sent();
344
- return [3 /*break*/, 7];
345
- case 3:
346
- if (!opts.scale) return [3 /*break*/, 5];
347
- return [4 /*yield*/, this.getView(opts.scale, opts)];
348
- case 4:
349
- view = _a.sent();
350
- return [3 /*break*/, 7];
351
- case 5: return [4 /*yield*/, this.getView(1, opts)];
352
- case 6:
353
- view = _a.sent();
354
- _a.label = 7;
355
- case 7:
356
- if (!view) {
357
- throw new Error('unable to get block view for data');
358
- }
359
- return [2 /*return*/, new rxjs_1.Observable(function (observer) {
360
- view.readWigData(chrName, start, end, observer, opts);
361
- })];
362
- }
244
+ getFeatureStream(refName, start, end, opts = {
245
+ scale: 1,
246
+ }) {
247
+ return __awaiter(this, void 0, void 0, function* () {
248
+ yield this.getHeader(opts);
249
+ const chrName = this.renameRefSeqs(refName);
250
+ let view;
251
+ if (opts.basesPerSpan) {
252
+ view = yield this.getView(1 / opts.basesPerSpan, opts);
253
+ }
254
+ else if (opts.scale) {
255
+ view = yield this.getView(opts.scale, opts);
256
+ }
257
+ else {
258
+ view = yield this.getView(1, opts);
259
+ }
260
+ if (!view) {
261
+ throw new Error('unable to get block view for data');
262
+ }
263
+ return new rxjs_1.Observable((observer) => {
264
+ view.readWigData(chrName, start, end, observer, opts);
363
265
  });
364
266
  });
365
- };
366
- BBI.prototype.getFeatures = function (refName, start, end, opts) {
367
- if (opts === void 0) { opts = {
368
- scale: 1,
369
- }; }
370
- return __awaiter(this, void 0, void 0, function () {
371
- var ob, ret;
372
- return __generator(this, function (_a) {
373
- switch (_a.label) {
374
- case 0: return [4 /*yield*/, this.getFeatureStream(refName, start, end, opts)];
375
- case 1:
376
- ob = _a.sent();
377
- return [4 /*yield*/, ob
378
- .pipe((0, operators_1.reduce)(function (acc, curr) { return acc.concat(curr); }))
379
- .toPromise()];
380
- case 2:
381
- ret = _a.sent();
382
- return [2 /*return*/, ret || []];
383
- }
384
- });
267
+ }
268
+ getFeatures(refName, start, end, opts = {
269
+ scale: 1,
270
+ }) {
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ const ob = yield this.getFeatureStream(refName, start, end, opts);
273
+ const ret = yield ob
274
+ .pipe((0, operators_1.reduce)((acc, curr) => acc.concat(curr)))
275
+ .toPromise();
276
+ return ret || [];
385
277
  });
386
- };
387
- return BBI;
388
- }());
278
+ }
279
+ }
389
280
  exports.BBI = BBI;
390
281
  //# sourceMappingURL=bbi.js.map
package/dist/bbi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bbi.js","sourceRoot":"","sources":["../src/bbi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bbi.js","sourceRoot":"","sources":["../src/bbi.ts"],"names":[],"mappings":"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"}