@gmod/bbi 1.0.34 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -8
- package/dist/bbi.d.ts +2 -2
- package/dist/bbi.js +56 -59
- package/dist/bbi.js.map +1 -0
- package/dist/bigbed.d.ts +1 -2
- package/dist/bigbed.js +23 -20
- package/dist/bigbed.js.map +1 -0
- package/dist/bigwig.d.ts +1 -3
- package/dist/bigwig.js +5 -8
- package/dist/bigwig.js.map +1 -0
- package/dist/blockView.d.ts +8 -9
- package/dist/blockView.js +156 -95
- package/dist/blockView.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/range.js +2 -0
- package/dist/range.js.map +1 -0
- package/dist/unzip-pako.d.ts +1 -1
- package/dist/unzip-pako.js +2 -1
- package/dist/unzip-pako.js.map +1 -0
- package/dist/unzip.js +1 -0
- package/dist/unzip.js.map +1 -0
- package/dist/util.d.ts +11 -1
- package/dist/util.js +10 -4
- package/dist/util.js.map +1 -0
- package/esm/bbi.d.ts +2 -2
- package/esm/bbi.js +62 -67
- package/esm/bbi.js.map +1 -0
- package/esm/bigbed.d.ts +1 -2
- package/esm/bigbed.js +42 -46
- package/esm/bigbed.js.map +1 -0
- package/esm/bigwig.d.ts +1 -3
- package/esm/bigwig.js +7 -14
- package/esm/bigwig.js.map +1 -0
- package/esm/blockView.d.ts +8 -9
- package/esm/blockView.js +168 -118
- package/esm/blockView.js.map +1 -0
- package/esm/index.js +3 -7
- package/esm/index.js.map +1 -0
- package/esm/range.js +3 -4
- package/esm/range.js.map +1 -0
- package/esm/unzip-pako.d.ts +1 -1
- package/esm/unzip-pako.js +4 -7
- package/esm/unzip-pako.js.map +1 -0
- package/esm/unzip.js +3 -5
- package/esm/unzip.js.map +1 -0
- package/esm/util.d.ts +11 -1
- package/esm/util.js +14 -15
- package/esm/util.js.map +1 -0
- package/package.json +14 -14
- package/src/bbi.ts +375 -0
- package/src/bigbed.ts +244 -0
- package/src/bigwig.ts +38 -0
- package/src/blockView.ts +496 -0
- package/src/declare.d.ts +2 -0
- package/src/index.ts +3 -0
- package/src/range.ts +142 -0
- package/src/unzip-pako.ts +5 -0
- package/src/unzip.ts +2 -0
- package/src/util.ts +83 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,26 +1,35 @@
|
|
|
1
|
-
## [
|
|
1
|
+
## [2.0.1](https://github.com/GMOD/bbi-js/compare/v2.0.0...v2.0.1) (2022-07-18)
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
### Reverts
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
- Bump generic-filehandle 2->3
|
|
7
6
|
|
|
7
|
+
# [2.0.0](https://github.com/GMOD/bbi-js/compare/v1.0.35...v2.0.0) (2022-07-18)
|
|
8
8
|
|
|
9
|
+
- Use binary-parser instead of @gmod/binary-parser, with some optimizations.
|
|
10
|
+
This uses BigInt and TextDecoder, so requires a major version bump
|
|
9
11
|
|
|
10
|
-
-
|
|
11
|
-
of a true Buffer
|
|
12
|
+
## [1.0.35](https://github.com/GMOD/bbi-js/compare/v1.0.34...v1.0.35) (2022-04-22)
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
- Produce actual ESM module for the "module" field in package.json, was commonJS
|
|
15
|
+
- Add sourceMap:true to tsconfig
|
|
14
16
|
|
|
17
|
+
## [1.0.34](https://github.com/GMOD/bbi-js/compare/v1.0.33...v1.0.34) (2022-03-11)
|
|
18
|
+
|
|
19
|
+
### Reverts
|
|
15
20
|
|
|
21
|
+
- Revert "Use subarray instead of slice since slice is deprecated under node xref 'https://nodejs.org/api/buffer.html#bufslicestart-end'" ([44116cc](https://github.com/GMOD/bbi-js/commit/44116cce54601727d37f1c449bfcc60c1b4e602d))
|
|
22
|
+
|
|
23
|
+
* Back to slice instead of subarray, as subarray returned a UInt8Array instead
|
|
24
|
+
of a true Buffer
|
|
25
|
+
|
|
26
|
+
## [1.0.33](https://github.com/GMOD/bbi-js/compare/v1.0.32...v1.0.33) (2022-02-25)
|
|
16
27
|
|
|
17
28
|
- Use subarray instead of slice since slice is deprecated under node xref
|
|
18
29
|
'https://nodejs.org/api/buffer.html#bufslicestart-end'"
|
|
19
30
|
|
|
20
31
|
## [1.0.32](https://github.com/GMOD/bbi-js/compare/v1.0.31...v1.0.32) (2022-02-16)
|
|
21
32
|
|
|
22
|
-
|
|
23
|
-
|
|
24
33
|
- Use pako to decode on command line instead of using zlib to avoid need to
|
|
25
34
|
manually polyfill zlib
|
|
26
35
|
|
package/dist/bbi.d.ts
CHANGED
|
@@ -49,9 +49,9 @@ export interface RequestOptions {
|
|
|
49
49
|
}
|
|
50
50
|
export declare abstract class BBI {
|
|
51
51
|
protected bbi: GenericFilehandle;
|
|
52
|
-
|
|
52
|
+
private headerP?;
|
|
53
53
|
protected renameRefSeqs: (a: string) => string;
|
|
54
|
-
getHeader(opts?: RequestOptions | AbortSignal):
|
|
54
|
+
getHeader(opts?: RequestOptions | AbortSignal): Promise<Header>;
|
|
55
55
|
constructor(options?: {
|
|
56
56
|
filehandle?: GenericFilehandle;
|
|
57
57
|
path?: string;
|
package/dist/bbi.js
CHANGED
|
@@ -46,17 +46,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
-
};
|
|
52
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
50
|
exports.BBI = void 0;
|
|
54
|
-
var binary_parser_1 = require("
|
|
51
|
+
var binary_parser_1 = require("binary-parser");
|
|
55
52
|
var generic_filehandle_1 = require("generic-filehandle");
|
|
56
53
|
var rxjs_1 = require("rxjs");
|
|
57
54
|
var operators_1 = require("rxjs/operators");
|
|
58
|
-
var abortable_promise_cache_1 = __importDefault(require("abortable-promise-cache"));
|
|
59
|
-
var quick_lru_1 = __importDefault(require("quick-lru"));
|
|
60
55
|
var blockView_1 = require("./blockView");
|
|
61
56
|
var BIG_WIG_MAGIC = -2003829722;
|
|
62
57
|
var BIG_BED_MAGIC = -2021002517;
|
|
@@ -84,6 +79,7 @@ function getParsers(isBE) {
|
|
|
84
79
|
.array('zoomLevels', {
|
|
85
80
|
length: 'numZoomLevels',
|
|
86
81
|
type: new binary_parser_1.Parser()
|
|
82
|
+
.endianess(le)
|
|
87
83
|
.uint32('reductionLevel')
|
|
88
84
|
.uint32('reserved')
|
|
89
85
|
.uint64('dataOffset')
|
|
@@ -92,10 +88,10 @@ function getParsers(isBE) {
|
|
|
92
88
|
var totalSummaryParser = new binary_parser_1.Parser()
|
|
93
89
|
.endianess(le)
|
|
94
90
|
.uint64('basesCovered')
|
|
95
|
-
.
|
|
96
|
-
.
|
|
97
|
-
.
|
|
98
|
-
.
|
|
91
|
+
.doublele('scoreMin')
|
|
92
|
+
.doublele('scoreMax')
|
|
93
|
+
.doublele('scoreSum')
|
|
94
|
+
.doublele('scoreSumSquares');
|
|
99
95
|
var chromTreeParser = new binary_parser_1.Parser()
|
|
100
96
|
.endianess(le)
|
|
101
97
|
.uint32('magic')
|
|
@@ -107,7 +103,8 @@ function getParsers(isBE) {
|
|
|
107
103
|
.endianess(le)
|
|
108
104
|
.uint8('isLeafNode')
|
|
109
105
|
.skip(1)
|
|
110
|
-
.uint16('cnt')
|
|
106
|
+
.uint16('cnt')
|
|
107
|
+
.saveOffset('offset');
|
|
111
108
|
return {
|
|
112
109
|
chromTreeParser: chromTreeParser,
|
|
113
110
|
totalSummaryParser: totalSummaryParser,
|
|
@@ -123,18 +120,9 @@ var BBI = /** @class */ (function () {
|
|
|
123
120
|
* @param renameRefSeqs - an optional method to rename the internal reference sequences using a mapping function
|
|
124
121
|
*/
|
|
125
122
|
function BBI(options) {
|
|
126
|
-
var _this = this;
|
|
127
123
|
if (options === void 0) { options = {}; }
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
fill: function (params, signal) { return __awaiter(_this, void 0, void 0, function () {
|
|
131
|
-
return __generator(this, function (_a) {
|
|
132
|
-
return [2 /*return*/, this._getHeader(__assign(__assign({}, params), { signal: signal }))];
|
|
133
|
-
});
|
|
134
|
-
}); },
|
|
135
|
-
});
|
|
136
|
-
var filehandle = options.filehandle, renameRefSeqs = options.renameRefSeqs, path = options.path, url = options.url;
|
|
137
|
-
this.renameRefSeqs = renameRefSeqs || (function (s) { return s; });
|
|
124
|
+
var filehandle = options.filehandle, _a = options.renameRefSeqs, renameRefSeqs = _a === void 0 ? function (s) { return s; } : _a, path = options.path, url = options.url;
|
|
125
|
+
this.renameRefSeqs = renameRefSeqs;
|
|
138
126
|
if (filehandle) {
|
|
139
127
|
this.bbi = filehandle;
|
|
140
128
|
}
|
|
@@ -153,9 +141,16 @@ var BBI = /** @class */ (function () {
|
|
|
153
141
|
* @return a Header object
|
|
154
142
|
*/
|
|
155
143
|
BBI.prototype.getHeader = function (opts) {
|
|
144
|
+
var _this = this;
|
|
156
145
|
if (opts === void 0) { opts = {}; }
|
|
157
146
|
var options = 'aborted' in opts ? { signal: opts } : opts;
|
|
158
|
-
|
|
147
|
+
if (!this.headerP) {
|
|
148
|
+
this.headerP = this._getHeader(options).catch(function (e) {
|
|
149
|
+
_this.headerP = undefined;
|
|
150
|
+
throw e;
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return this.headerP;
|
|
159
154
|
};
|
|
160
155
|
BBI.prototype._getHeader = function (opts) {
|
|
161
156
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -176,7 +171,7 @@ var BBI = /** @class */ (function () {
|
|
|
176
171
|
BBI.prototype._getMainHeader = function (opts, requestSize) {
|
|
177
172
|
if (requestSize === void 0) { requestSize = 2000; }
|
|
178
173
|
return __awaiter(this, void 0, void 0, function () {
|
|
179
|
-
var buffer, isBigEndian, ret, header, tail;
|
|
174
|
+
var buffer, isBigEndian, ret, header, magic, asOffset, totalSummaryOffset, off, tail;
|
|
180
175
|
return __generator(this, function (_a) {
|
|
181
176
|
switch (_a.label) {
|
|
182
177
|
case 0: return [4 /*yield*/, this.bbi.read(Buffer.alloc(requestSize), 0, requestSize, 0, opts)];
|
|
@@ -184,23 +179,24 @@ var BBI = /** @class */ (function () {
|
|
|
184
179
|
buffer = (_a.sent()).buffer;
|
|
185
180
|
isBigEndian = this._isBigEndian(buffer);
|
|
186
181
|
ret = getParsers(isBigEndian);
|
|
187
|
-
header = ret.headerParser.parse(buffer)
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
182
|
+
header = ret.headerParser.parse(buffer);
|
|
183
|
+
magic = header.magic, asOffset = header.asOffset, totalSummaryOffset = header.totalSummaryOffset;
|
|
184
|
+
header.fileType = magic === BIG_BED_MAGIC ? 'bigbed' : 'bigwig';
|
|
185
|
+
if (asOffset > requestSize || totalSummaryOffset > requestSize) {
|
|
191
186
|
return [2 /*return*/, this._getMainHeader(opts, requestSize * 2)];
|
|
192
187
|
}
|
|
193
|
-
if (
|
|
188
|
+
if (asOffset) {
|
|
189
|
+
off = Number(header.asOffset);
|
|
194
190
|
header.autoSql = buffer
|
|
195
|
-
.
|
|
191
|
+
.subarray(off, buffer.indexOf(0, off))
|
|
196
192
|
.toString('utf8');
|
|
197
193
|
}
|
|
198
194
|
if (header.totalSummaryOffset > requestSize) {
|
|
199
195
|
return [2 /*return*/, this._getMainHeader(opts, requestSize * 2)];
|
|
200
196
|
}
|
|
201
197
|
if (header.totalSummaryOffset) {
|
|
202
|
-
tail = buffer.
|
|
203
|
-
header.totalSummary = ret.totalSummaryParser.parse(tail)
|
|
198
|
+
tail = buffer.subarray(Number(header.totalSummaryOffset));
|
|
199
|
+
header.totalSummary = ret.totalSummaryParser.parse(tail);
|
|
204
200
|
}
|
|
205
201
|
return [2 /*return*/, __assign(__assign({}, header), { isBigEndian: isBigEndian })];
|
|
206
202
|
}
|
|
@@ -221,7 +217,7 @@ var BBI = /** @class */ (function () {
|
|
|
221
217
|
// todo: add progress if long running
|
|
222
218
|
BBI.prototype._readChromTree = function (header, opts) {
|
|
223
219
|
return __awaiter(this, void 0, void 0, function () {
|
|
224
|
-
var isBE, le, refsByNumber, refsByName, chromTreeOffset,
|
|
220
|
+
var isBE, le, refsByNumber, refsByName, unzoomedDataOffset, chromTreeOffset, off, buffer, p, keySize, leafNodeParser, nonleafNodeParser, rootNodeOffset, bptReadNode;
|
|
225
221
|
var _this = this;
|
|
226
222
|
return __generator(this, function (_a) {
|
|
227
223
|
switch (_a.label) {
|
|
@@ -230,43 +226,46 @@ var BBI = /** @class */ (function () {
|
|
|
230
226
|
le = isBE ? 'big' : 'little';
|
|
231
227
|
refsByNumber = [];
|
|
232
228
|
refsByName = {};
|
|
233
|
-
|
|
234
|
-
|
|
229
|
+
unzoomedDataOffset = Number(header.unzoomedDataOffset);
|
|
230
|
+
chromTreeOffset = Number(header.chromTreeOffset);
|
|
235
231
|
while (unzoomedDataOffset % 4 !== 0) {
|
|
236
232
|
unzoomedDataOffset += 1;
|
|
237
233
|
}
|
|
238
|
-
|
|
234
|
+
off = unzoomedDataOffset - chromTreeOffset;
|
|
235
|
+
return [4 /*yield*/, this.bbi.read(Buffer.alloc(off), 0, off, Number(chromTreeOffset), opts)];
|
|
239
236
|
case 1:
|
|
240
|
-
|
|
237
|
+
buffer = (_a.sent()).buffer;
|
|
241
238
|
p = getParsers(isBE);
|
|
242
|
-
keySize = p.chromTreeParser.parse(
|
|
239
|
+
keySize = p.chromTreeParser.parse(buffer).keySize;
|
|
243
240
|
leafNodeParser = new binary_parser_1.Parser()
|
|
244
241
|
.endianess(le)
|
|
245
242
|
.string('key', { stripNull: true, length: keySize })
|
|
246
243
|
.uint32('refId')
|
|
247
|
-
.uint32('refSize')
|
|
244
|
+
.uint32('refSize')
|
|
245
|
+
.saveOffset('offset');
|
|
248
246
|
nonleafNodeParser = new binary_parser_1.Parser()
|
|
249
247
|
.endianess(le)
|
|
250
248
|
.skip(keySize)
|
|
251
|
-
.uint64('childOffset')
|
|
249
|
+
.uint64('childOffset')
|
|
250
|
+
.saveOffset('offset');
|
|
252
251
|
rootNodeOffset = 32;
|
|
253
252
|
bptReadNode = function (currentOffset) { return __awaiter(_this, void 0, void 0, function () {
|
|
254
|
-
var offset, ret,
|
|
255
|
-
return __generator(this, function (
|
|
256
|
-
switch (
|
|
253
|
+
var offset, ret, isLeafNode, cnt, n, leafRet, key, refId, refSize, refRec, nextNodes, n, nonleafRet, childOffset;
|
|
254
|
+
return __generator(this, function (_a) {
|
|
255
|
+
switch (_a.label) {
|
|
257
256
|
case 0:
|
|
258
257
|
offset = currentOffset;
|
|
259
|
-
if (offset >=
|
|
258
|
+
if (offset >= buffer.length) {
|
|
260
259
|
throw new Error('reading beyond end of buffer');
|
|
261
260
|
}
|
|
262
|
-
ret = p.isLeafNode.parse(
|
|
263
|
-
|
|
261
|
+
ret = p.isLeafNode.parse(buffer.subarray(offset));
|
|
262
|
+
isLeafNode = ret.isLeafNode, cnt = ret.cnt;
|
|
264
263
|
offset += ret.offset;
|
|
265
264
|
if (!isLeafNode) return [3 /*break*/, 1];
|
|
266
265
|
for (n = 0; n < cnt; n += 1) {
|
|
267
|
-
leafRet = leafNodeParser.parse(
|
|
266
|
+
leafRet = leafNodeParser.parse(buffer.subarray(offset));
|
|
268
267
|
offset += leafRet.offset;
|
|
269
|
-
|
|
268
|
+
key = leafRet.key, refId = leafRet.refId, refSize = leafRet.refSize;
|
|
270
269
|
refRec = { name: key, id: refId, length: refSize };
|
|
271
270
|
refsByName[this.renameRefSeqs(key)] = refId;
|
|
272
271
|
refsByNumber[refId] = refRec;
|
|
@@ -275,16 +274,15 @@ var BBI = /** @class */ (function () {
|
|
|
275
274
|
case 1:
|
|
276
275
|
nextNodes = [];
|
|
277
276
|
for (n = 0; n < cnt; n += 1) {
|
|
278
|
-
nonleafRet = nonleafNodeParser.parse(
|
|
279
|
-
childOffset = nonleafRet.
|
|
277
|
+
nonleafRet = nonleafNodeParser.parse(buffer.subarray(offset));
|
|
278
|
+
childOffset = nonleafRet.childOffset;
|
|
280
279
|
offset += nonleafRet.offset;
|
|
281
|
-
childOffset
|
|
282
|
-
nextNodes.push(bptReadNode(childOffset));
|
|
280
|
+
nextNodes.push(bptReadNode(Number(childOffset) - Number(chromTreeOffset)));
|
|
283
281
|
}
|
|
284
282
|
return [4 /*yield*/, Promise.all(nextNodes)];
|
|
285
283
|
case 2:
|
|
286
|
-
|
|
287
|
-
|
|
284
|
+
_a.sent();
|
|
285
|
+
_a.label = 3;
|
|
288
286
|
case 3: return [2 /*return*/];
|
|
289
287
|
}
|
|
290
288
|
});
|
|
@@ -306,15 +304,13 @@ var BBI = /** @class */ (function () {
|
|
|
306
304
|
*/
|
|
307
305
|
BBI.prototype.getUnzoomedView = function (opts) {
|
|
308
306
|
return __awaiter(this, void 0, void 0, function () {
|
|
309
|
-
var _a, unzoomedIndexOffset,
|
|
307
|
+
var _a, unzoomedIndexOffset, refsByName, uncompressBufSize, isBigEndian, fileType;
|
|
310
308
|
return __generator(this, function (_b) {
|
|
311
309
|
switch (_b.label) {
|
|
312
310
|
case 0: return [4 /*yield*/, this.getHeader(opts)];
|
|
313
311
|
case 1:
|
|
314
|
-
_a = _b.sent(), unzoomedIndexOffset = _a.unzoomedIndexOffset,
|
|
315
|
-
|
|
316
|
-
cirLen = nzl ? nzl.dataOffset - unzoomedIndexOffset : 4000;
|
|
317
|
-
return [2 /*return*/, new blockView_1.BlockView(this.bbi, refsByName, unzoomedIndexOffset, cirLen, isBigEndian, uncompressBufSize > 0, fileType)];
|
|
312
|
+
_a = _b.sent(), unzoomedIndexOffset = _a.unzoomedIndexOffset, refsByName = _a.refsByName, uncompressBufSize = _a.uncompressBufSize, isBigEndian = _a.isBigEndian, fileType = _a.fileType;
|
|
313
|
+
return [2 /*return*/, new blockView_1.BlockView(this.bbi, refsByName, unzoomedIndexOffset, isBigEndian, uncompressBufSize > 0, fileType)];
|
|
318
314
|
}
|
|
319
315
|
});
|
|
320
316
|
});
|
|
@@ -389,3 +385,4 @@ var BBI = /** @class */ (function () {
|
|
|
389
385
|
return BBI;
|
|
390
386
|
}());
|
|
391
387
|
exports.BBI = BBI;
|
|
388
|
+
//# sourceMappingURL=bbi.js.map
|
package/dist/bbi.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bbi.js","sourceRoot":"","sources":["../src/bbi.ts"],"names":[],"mappings":"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"}
|
package/dist/bigbed.d.ts
CHANGED
|
@@ -3,9 +3,8 @@ import { BlockView } from './blockView';
|
|
|
3
3
|
export declare function filterUndef<T>(ts: (T | undefined)[]): T[];
|
|
4
4
|
export declare class BigBed extends BBI {
|
|
5
5
|
readIndicesCache: any;
|
|
6
|
-
constructor(opts?: any);
|
|
7
6
|
readIndices(opts?: AbortSignal | RequestOptions): any;
|
|
8
|
-
protected getView(
|
|
7
|
+
protected getView(_scale: number, opts: RequestOptions): Promise<BlockView>;
|
|
9
8
|
private _readIndices;
|
|
10
9
|
private searchExtraIndexBlocks;
|
|
11
10
|
searchExtraIndex(name: string, opts?: RequestOptions): Promise<Feature[]>;
|
package/dist/bigbed.js
CHANGED
|
@@ -66,7 +66,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
66
66
|
};
|
|
67
67
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68
68
|
exports.BigBed = exports.filterUndef = void 0;
|
|
69
|
-
var binary_parser_1 = require("
|
|
69
|
+
var binary_parser_1 = require("binary-parser");
|
|
70
70
|
var rxjs_1 = require("rxjs");
|
|
71
71
|
var operators_1 = require("rxjs/operators");
|
|
72
72
|
var abortable_promise_cache_1 = __importDefault(require("abortable-promise-cache"));
|
|
@@ -78,8 +78,8 @@ function filterUndef(ts) {
|
|
|
78
78
|
exports.filterUndef = filterUndef;
|
|
79
79
|
var BigBed = /** @class */ (function (_super) {
|
|
80
80
|
__extends(BigBed, _super);
|
|
81
|
-
function BigBed(
|
|
82
|
-
var _this = _super.
|
|
81
|
+
function BigBed() {
|
|
82
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
83
83
|
_this.readIndicesCache = new abortable_promise_cache_1.default({
|
|
84
84
|
cache: new quick_lru_1.default({ maxSize: 1 }),
|
|
85
85
|
fill: function (args, signal) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -101,7 +101,7 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
101
101
|
* @param abortSignal - an optional AbortSignal to kill operation
|
|
102
102
|
* @return promise for a BlockView
|
|
103
103
|
*/
|
|
104
|
-
BigBed.prototype.getView = function (
|
|
104
|
+
BigBed.prototype.getView = function (_scale, opts) {
|
|
105
105
|
return __awaiter(this, void 0, void 0, function () {
|
|
106
106
|
return __generator(this, function (_a) {
|
|
107
107
|
return [2 /*return*/, this.getUnzoomedView(opts)];
|
|
@@ -121,7 +121,7 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
121
121
|
case 0: return [4 /*yield*/, this.getHeader(opts)];
|
|
122
122
|
case 1:
|
|
123
123
|
_a = _b.sent(), extHeaderOffset = _a.extHeaderOffset, isBigEndian = _a.isBigEndian;
|
|
124
|
-
return [4 /*yield*/, this.bbi.read(Buffer.alloc(64), 0, 64, extHeaderOffset)];
|
|
124
|
+
return [4 /*yield*/, this.bbi.read(Buffer.alloc(64), 0, 64, Number(extHeaderOffset))];
|
|
125
125
|
case 2:
|
|
126
126
|
data = (_b.sent()).buffer;
|
|
127
127
|
le = isBigEndian ? 'big' : 'little';
|
|
@@ -130,7 +130,7 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
130
130
|
.uint16('size')
|
|
131
131
|
.uint16('count')
|
|
132
132
|
.uint64('offset')
|
|
133
|
-
.parse(data)
|
|
133
|
+
.parse(data);
|
|
134
134
|
count = ret.count, offset = ret.offset;
|
|
135
135
|
// no extra index is defined if count==0
|
|
136
136
|
if (count === 0) {
|
|
@@ -138,7 +138,7 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
138
138
|
}
|
|
139
139
|
blocklen = 20;
|
|
140
140
|
len = blocklen * count;
|
|
141
|
-
return [4 /*yield*/, this.bbi.read(Buffer.alloc(len), 0, len, offset)];
|
|
141
|
+
return [4 /*yield*/, this.bbi.read(Buffer.alloc(len), 0, len, Number(offset))];
|
|
142
142
|
case 3:
|
|
143
143
|
buffer = (_b.sent()).buffer;
|
|
144
144
|
extParser = new binary_parser_1.Parser()
|
|
@@ -150,7 +150,7 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
150
150
|
.int16('field');
|
|
151
151
|
indices = [];
|
|
152
152
|
for (i = 0; i < count; i += 1) {
|
|
153
|
-
indices.push(extParser.parse(buffer.
|
|
153
|
+
indices.push(extParser.parse(buffer.subarray(i * blocklen)));
|
|
154
154
|
}
|
|
155
155
|
return [2 /*return*/, indices];
|
|
156
156
|
}
|
|
@@ -182,25 +182,26 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
182
182
|
return [2 /*return*/, []];
|
|
183
183
|
}
|
|
184
184
|
locs = indices.map(function (index) { return __awaiter(_this, void 0, void 0, function () {
|
|
185
|
-
var offset, field, data, p, _a, blockSize, keySize, valSize, bpt, bptReadNode, rootNodeOffset;
|
|
185
|
+
var offset, field, data, le, p, _a, blockSize, keySize, valSize, bpt, bptReadNode, rootNodeOffset;
|
|
186
186
|
var _this = this;
|
|
187
187
|
return __generator(this, function (_b) {
|
|
188
188
|
switch (_b.label) {
|
|
189
189
|
case 0:
|
|
190
190
|
offset = index.offset, field = index.field;
|
|
191
|
-
return [4 /*yield*/, this.bbi.read(Buffer.alloc(32), 0, 32, offset, opts)];
|
|
191
|
+
return [4 /*yield*/, this.bbi.read(Buffer.alloc(32), 0, 32, Number(offset), opts)];
|
|
192
192
|
case 1:
|
|
193
193
|
data = (_b.sent()).buffer;
|
|
194
|
+
le = isBigEndian ? 'big' : 'little';
|
|
194
195
|
p = new binary_parser_1.Parser()
|
|
195
|
-
.endianess(
|
|
196
|
+
.endianess(le)
|
|
196
197
|
.int32('magic')
|
|
197
198
|
.int32('blockSize')
|
|
198
199
|
.int32('keySize')
|
|
199
200
|
.int32('valSize')
|
|
200
201
|
.uint64('itemCount');
|
|
201
|
-
_a = p.parse(data)
|
|
202
|
+
_a = p.parse(data), blockSize = _a.blockSize, keySize = _a.keySize, valSize = _a.valSize;
|
|
202
203
|
bpt = new binary_parser_1.Parser()
|
|
203
|
-
.endianess(
|
|
204
|
+
.endianess(le)
|
|
204
205
|
.int8('nodeType')
|
|
205
206
|
.skip(1)
|
|
206
207
|
.int16('cnt')
|
|
@@ -210,12 +211,14 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
210
211
|
0: new binary_parser_1.Parser().array('leafkeys', {
|
|
211
212
|
length: 'cnt',
|
|
212
213
|
type: new binary_parser_1.Parser()
|
|
214
|
+
.endianess(le)
|
|
213
215
|
.string('key', { length: keySize, stripNull: true })
|
|
214
216
|
.uint64('offset'),
|
|
215
217
|
}),
|
|
216
218
|
1: new binary_parser_1.Parser().array('keys', {
|
|
217
219
|
length: 'cnt',
|
|
218
220
|
type: new binary_parser_1.Parser()
|
|
221
|
+
.endianess(le)
|
|
219
222
|
.string('key', { length: keySize, stripNull: true })
|
|
220
223
|
.uint64('offset')
|
|
221
224
|
.uint32('length')
|
|
@@ -224,15 +227,16 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
224
227
|
},
|
|
225
228
|
});
|
|
226
229
|
bptReadNode = function (nodeOffset) { return __awaiter(_this, void 0, void 0, function () {
|
|
227
|
-
var len, buffer, node, lastOffset, i, key, i;
|
|
230
|
+
var val, len, buffer, node, lastOffset, i, key, i;
|
|
228
231
|
return __generator(this, function (_a) {
|
|
229
232
|
switch (_a.label) {
|
|
230
233
|
case 0:
|
|
234
|
+
val = Number(nodeOffset);
|
|
231
235
|
len = 4 + blockSize * (keySize + valSize);
|
|
232
|
-
return [4 /*yield*/, this.bbi.read(Buffer.alloc(len), 0, len,
|
|
236
|
+
return [4 /*yield*/, this.bbi.read(Buffer.alloc(len), 0, len, val, opts)];
|
|
233
237
|
case 1:
|
|
234
238
|
buffer = (_a.sent()).buffer;
|
|
235
|
-
node = bpt.parse(buffer)
|
|
239
|
+
node = bpt.parse(buffer);
|
|
236
240
|
if (node.leafkeys) {
|
|
237
241
|
lastOffset = void 0;
|
|
238
242
|
for (i = 0; i < node.leafkeys.length; i += 1) {
|
|
@@ -254,7 +258,7 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
254
258
|
});
|
|
255
259
|
}); };
|
|
256
260
|
rootNodeOffset = 32;
|
|
257
|
-
return [2 /*return*/, bptReadNode(offset + rootNodeOffset)];
|
|
261
|
+
return [2 /*return*/, bptReadNode(Number(offset) + rootNodeOffset)];
|
|
258
262
|
}
|
|
259
263
|
});
|
|
260
264
|
}); });
|
|
@@ -301,9 +305,7 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
301
305
|
return [4 /*yield*/, rxjs_1.merge.apply(void 0, res).toPromise()];
|
|
302
306
|
case 3:
|
|
303
307
|
ret = _a.sent();
|
|
304
|
-
return [2 /*return*/, ret.filter(function (f) {
|
|
305
|
-
return f.rest.split('\t')[f.field - 3] === name;
|
|
306
|
-
})];
|
|
308
|
+
return [2 /*return*/, ret.filter(function (f) { var _a; return ((_a = f.rest) === null || _a === void 0 ? void 0 : _a.split('\t')[(f.field || 0) - 3]) === name; })];
|
|
307
309
|
}
|
|
308
310
|
});
|
|
309
311
|
});
|
|
@@ -311,3 +313,4 @@ var BigBed = /** @class */ (function (_super) {
|
|
|
311
313
|
return BigBed;
|
|
312
314
|
}(bbi_1.BBI));
|
|
313
315
|
exports.BigBed = BigBed;
|
|
316
|
+
//# sourceMappingURL=bigbed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigbed.js","sourceRoot":"","sources":["../src/bigbed.ts"],"names":[],"mappings":"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"}
|
package/dist/bigwig.d.ts
CHANGED
|
@@ -4,9 +4,7 @@ export declare class BigWig extends BBI {
|
|
|
4
4
|
/**
|
|
5
5
|
* Retrieves a BlockView of a specific zoomLevel
|
|
6
6
|
*
|
|
7
|
-
* @param
|
|
8
|
-
* @param start - The start of a region
|
|
9
|
-
* @param end - The end of a region
|
|
7
|
+
* @param scale - number
|
|
10
8
|
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair) or scale used to infer the zoomLevel to use
|
|
11
9
|
*/
|
|
12
10
|
protected getView(scale: number, opts: RequestOptions): Promise<BlockView>;
|
package/dist/bigwig.js
CHANGED
|
@@ -62,14 +62,12 @@ var BigWig = /** @class */ (function (_super) {
|
|
|
62
62
|
/**
|
|
63
63
|
* Retrieves a BlockView of a specific zoomLevel
|
|
64
64
|
*
|
|
65
|
-
* @param
|
|
66
|
-
* @param start - The start of a region
|
|
67
|
-
* @param end - The end of a region
|
|
65
|
+
* @param scale - number
|
|
68
66
|
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair) or scale used to infer the zoomLevel to use
|
|
69
67
|
*/
|
|
70
68
|
BigWig.prototype.getView = function (scale, opts) {
|
|
71
69
|
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
var _a, zoomLevels, refsByName, fileSize, isBigEndian, uncompressBufSize, basesPerPx, maxLevel, i, zh,
|
|
70
|
+
var _a, zoomLevels, refsByName, fileSize, isBigEndian, uncompressBufSize, basesPerPx, maxLevel, i, zh, indexOffset;
|
|
73
71
|
return __generator(this, function (_b) {
|
|
74
72
|
switch (_b.label) {
|
|
75
73
|
case 0: return [4 /*yield*/, this.getHeader(opts)];
|
|
@@ -84,10 +82,8 @@ var BigWig = /** @class */ (function (_super) {
|
|
|
84
82
|
for (i = maxLevel; i >= 0; i -= 1) {
|
|
85
83
|
zh = zoomLevels[i];
|
|
86
84
|
if (zh && zh.reductionLevel <= 2 * basesPerPx) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
: fileSize - 4 - zh.indexOffset;
|
|
90
|
-
return [2 /*return*/, new blockView_1.BlockView(this.bbi, refsByName, zh.indexOffset, indexLength, isBigEndian, uncompressBufSize > 0, 'summary')];
|
|
85
|
+
indexOffset = Number(zh.indexOffset);
|
|
86
|
+
return [2 /*return*/, new blockView_1.BlockView(this.bbi, refsByName, indexOffset, isBigEndian, uncompressBufSize > 0, 'summary')];
|
|
91
87
|
}
|
|
92
88
|
}
|
|
93
89
|
return [2 /*return*/, this.getUnzoomedView(opts)];
|
|
@@ -98,3 +94,4 @@ var BigWig = /** @class */ (function (_super) {
|
|
|
98
94
|
return BigWig;
|
|
99
95
|
}(bbi_1.BBI));
|
|
100
96
|
exports.BigWig = BigWig;
|
|
97
|
+
//# sourceMappingURL=bigwig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigwig.js","sourceRoot":"","sources":["../src/bigwig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAuC;AACvC,6BAA2C;AAE3C;IAA4B,0BAAG;IAA/B;;IAkCA,CAAC;IAjCC;;;;;OAKG;IACa,wBAAO,GAAvB,UAAwB,KAAa,EAAE,IAAoB;;;;;4BAEvD,qBAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAA;;wBADtB,KACJ,SAA0B,EADpB,UAAU,gBAAA,EAAE,UAAU,gBAAA,EAAE,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAE,iBAAiB,uBAAA;wBAElE,UAAU,GAAG,CAAC,GAAG,KAAK,CAAA;wBACxB,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAA;wBAChC,IAAI,CAAC,QAAQ,EAAE;4BACb,4EAA4E;4BAC5E,QAAQ,IAAI,CAAC,CAAA;yBACd;wBAED,KAAS,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;4BAC/B,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;4BACxB,IAAI,EAAE,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,GAAG,UAAU,EAAE;gCACvC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;gCAE1C,sBAAO,IAAI,qBAAS,CAClB,IAAI,CAAC,GAAG,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,GAAG,CAAC,EACrB,SAAS,CACV,EAAA;6BACF;yBACF;wBACD,sBAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAA;;;;KAClC;IACH,aAAC;AAAD,CAAC,AAlCD,CAA4B,SAAG,GAkC9B;AAlCY,wBAAM"}
|
package/dist/blockView.d.ts
CHANGED
|
@@ -18,25 +18,24 @@ interface Options {
|
|
|
18
18
|
* @constructs
|
|
19
19
|
*/
|
|
20
20
|
export declare class BlockView {
|
|
21
|
-
private cirTreeOffset;
|
|
22
|
-
private cirTreeLength;
|
|
23
21
|
private bbi;
|
|
24
|
-
private isCompressed;
|
|
25
|
-
private isBigEndian;
|
|
26
22
|
private refsByName;
|
|
23
|
+
private cirTreeOffset;
|
|
24
|
+
private isBigEndian;
|
|
25
|
+
private isCompressed;
|
|
27
26
|
private blockType;
|
|
28
27
|
private cirTreePromise?;
|
|
29
28
|
private featureCache;
|
|
30
29
|
private leafParser;
|
|
31
|
-
private bigWigParser;
|
|
32
30
|
private bigBedParser;
|
|
33
|
-
|
|
34
|
-
constructor(bbi: GenericFilehandle, refsByName: any, cirTreeOffset: number, cirTreeLength: number, isBigEndian: boolean, isCompressed: boolean, blockType: string);
|
|
31
|
+
constructor(bbi: GenericFilehandle, refsByName: any, cirTreeOffset: number, isBigEndian: boolean, isCompressed: boolean, blockType: string);
|
|
35
32
|
readWigData(chrName: string, start: number, end: number, observer: Observer<Feature[]>, opts: Options): Promise<void>;
|
|
36
33
|
private parseSummaryBlock;
|
|
37
34
|
private parseBigBedBlock;
|
|
38
35
|
private parseBigWigBlock;
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
readFeatures(observer: Observer<Feature[]>, blocks: {
|
|
37
|
+
offset: bigint;
|
|
38
|
+
length: bigint;
|
|
39
|
+
}[], opts?: Options): Promise<void>;
|
|
41
40
|
}
|
|
42
41
|
export {};
|