@gmod/bbi 1.0.33 → 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.
- package/CHANGELOG.md +20 -3
- 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 +153 -92
- 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 +166 -116
- 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 +13 -13
- 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/esm/blockView.js
CHANGED
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const abortable_promise_cache_1 = __importDefault(require("abortable-promise-cache"));
|
|
9
|
-
const unzip_1 = require("./unzip");
|
|
10
|
-
const quick_lru_1 = __importDefault(require("quick-lru"));
|
|
11
|
-
const range_1 = __importDefault(require("./range"));
|
|
12
|
-
const util_1 = require("./util");
|
|
1
|
+
import { Parser } from 'binary-parser';
|
|
2
|
+
import AbortablePromiseCache from 'abortable-promise-cache';
|
|
3
|
+
import QuickLRU from 'quick-lru';
|
|
4
|
+
// locals
|
|
5
|
+
import Range from './range';
|
|
6
|
+
import { unzip } from './unzip';
|
|
7
|
+
import { groupBlocks, checkAbortSignal } from './util';
|
|
13
8
|
const BIG_WIG_TYPE_GRAPH = 1;
|
|
14
9
|
const BIG_WIG_TYPE_VSTEP = 2;
|
|
15
10
|
const BIG_WIG_TYPE_FSTEP = 3;
|
|
11
|
+
function coordFilter(s1, e1, s2, e2) {
|
|
12
|
+
return s1 < e2 && e1 >= s2;
|
|
13
|
+
}
|
|
16
14
|
function getParsers(isBigEndian) {
|
|
17
15
|
const le = isBigEndian ? 'big' : 'little';
|
|
18
|
-
const summaryParser = new
|
|
16
|
+
const summaryParser = new Parser()
|
|
19
17
|
.endianess(le)
|
|
20
18
|
.uint32('chromId')
|
|
21
19
|
.uint32('start')
|
|
22
20
|
.uint32('end')
|
|
23
21
|
.uint32('validCnt')
|
|
24
|
-
.
|
|
25
|
-
.
|
|
26
|
-
.
|
|
27
|
-
.
|
|
28
|
-
|
|
22
|
+
.floatle('minScore')
|
|
23
|
+
.floatle('maxScore')
|
|
24
|
+
.floatle('sumData')
|
|
25
|
+
.floatle('sumSqData')
|
|
26
|
+
.saveOffset('offset');
|
|
27
|
+
const leafParser = new Parser()
|
|
29
28
|
.endianess(le)
|
|
30
29
|
.uint8('isLeaf')
|
|
31
30
|
.skip(1)
|
|
@@ -33,36 +32,41 @@ function getParsers(isBigEndian) {
|
|
|
33
32
|
.choice({
|
|
34
33
|
tag: 'isLeaf',
|
|
35
34
|
choices: {
|
|
36
|
-
1: new
|
|
35
|
+
1: new Parser().endianess(le).array('blocksToFetch', {
|
|
37
36
|
length: 'cnt',
|
|
38
|
-
type: new
|
|
37
|
+
type: new Parser()
|
|
38
|
+
.endianess(le)
|
|
39
39
|
.uint32('startChrom')
|
|
40
40
|
.uint32('startBase')
|
|
41
41
|
.uint32('endChrom')
|
|
42
42
|
.uint32('endBase')
|
|
43
43
|
.uint64('blockOffset')
|
|
44
|
-
.uint64('blockSize')
|
|
44
|
+
.uint64('blockSize')
|
|
45
|
+
.saveOffset('offset'),
|
|
45
46
|
}),
|
|
46
|
-
0: new
|
|
47
|
+
0: new Parser().array('recurOffsets', {
|
|
47
48
|
length: 'cnt',
|
|
48
|
-
type: new
|
|
49
|
+
type: new Parser()
|
|
50
|
+
.endianess(le)
|
|
49
51
|
.uint32('startChrom')
|
|
50
52
|
.uint32('startBase')
|
|
51
53
|
.uint32('endChrom')
|
|
52
54
|
.uint32('endBase')
|
|
53
|
-
.uint64('blockOffset')
|
|
55
|
+
.uint64('blockOffset')
|
|
56
|
+
.saveOffset('offset'),
|
|
54
57
|
}),
|
|
55
58
|
},
|
|
56
59
|
});
|
|
57
|
-
const bigBedParser = new
|
|
60
|
+
const bigBedParser = new Parser()
|
|
58
61
|
.endianess(le)
|
|
59
62
|
.uint32('chromId')
|
|
60
63
|
.int32('start')
|
|
61
64
|
.int32('end')
|
|
62
65
|
.string('rest', {
|
|
63
66
|
zeroTerminated: true,
|
|
64
|
-
})
|
|
65
|
-
|
|
67
|
+
})
|
|
68
|
+
.saveOffset('offset');
|
|
69
|
+
const bigWigParser = new Parser()
|
|
66
70
|
.endianess(le)
|
|
67
71
|
.skip(4)
|
|
68
72
|
.int32('blockStart')
|
|
@@ -75,17 +79,21 @@ function getParsers(isBigEndian) {
|
|
|
75
79
|
.choice({
|
|
76
80
|
tag: 'blockType',
|
|
77
81
|
choices: {
|
|
78
|
-
[BIG_WIG_TYPE_FSTEP]: new
|
|
82
|
+
[BIG_WIG_TYPE_FSTEP]: new Parser().array('items', {
|
|
79
83
|
length: 'itemCount',
|
|
80
|
-
type: new
|
|
84
|
+
type: new Parser().floatle('score'),
|
|
81
85
|
}),
|
|
82
|
-
[BIG_WIG_TYPE_VSTEP]: new
|
|
86
|
+
[BIG_WIG_TYPE_VSTEP]: new Parser().array('items', {
|
|
83
87
|
length: 'itemCount',
|
|
84
|
-
type: new
|
|
88
|
+
type: new Parser().endianess(le).int32('start').floatle('score'),
|
|
85
89
|
}),
|
|
86
|
-
[BIG_WIG_TYPE_GRAPH]: new
|
|
90
|
+
[BIG_WIG_TYPE_GRAPH]: new Parser().array('items', {
|
|
87
91
|
length: 'itemCount',
|
|
88
|
-
type: new
|
|
92
|
+
type: new Parser()
|
|
93
|
+
.endianess(le)
|
|
94
|
+
.int32('start')
|
|
95
|
+
.int32('end')
|
|
96
|
+
.floatle('score'),
|
|
89
97
|
}),
|
|
90
98
|
},
|
|
91
99
|
});
|
|
@@ -103,44 +111,43 @@ function getParsers(isBigEndian) {
|
|
|
103
111
|
* Explorer by Thomas Down.
|
|
104
112
|
* @constructs
|
|
105
113
|
*/
|
|
106
|
-
class BlockView {
|
|
107
|
-
constructor(bbi, refsByName, cirTreeOffset,
|
|
108
|
-
this.
|
|
109
|
-
|
|
114
|
+
export class BlockView {
|
|
115
|
+
constructor(bbi, refsByName, cirTreeOffset, isBigEndian, isCompressed, blockType) {
|
|
116
|
+
this.bbi = bbi;
|
|
117
|
+
this.refsByName = refsByName;
|
|
118
|
+
this.cirTreeOffset = cirTreeOffset;
|
|
119
|
+
this.isBigEndian = isBigEndian;
|
|
120
|
+
this.isCompressed = isCompressed;
|
|
121
|
+
this.blockType = blockType;
|
|
122
|
+
this.featureCache = new AbortablePromiseCache({
|
|
123
|
+
cache: new QuickLRU({ maxSize: 1000 }),
|
|
110
124
|
fill: async (requestData, signal) => {
|
|
111
|
-
const
|
|
112
|
-
const
|
|
125
|
+
const len = Number(requestData.length);
|
|
126
|
+
const off = Number(requestData.offset);
|
|
127
|
+
const { buffer } = await this.bbi.read(Buffer.alloc(len), 0, len, off, {
|
|
128
|
+
signal,
|
|
129
|
+
});
|
|
113
130
|
return buffer;
|
|
114
131
|
},
|
|
115
132
|
});
|
|
116
133
|
if (!(cirTreeOffset >= 0)) {
|
|
117
134
|
throw new Error('invalid cirTreeOffset!');
|
|
118
135
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.cirTreeOffset = cirTreeOffset;
|
|
123
|
-
this.cirTreeLength = cirTreeLength;
|
|
124
|
-
this.isCompressed = isCompressed;
|
|
125
|
-
this.refsByName = refsByName;
|
|
126
|
-
this.isBigEndian = isBigEndian;
|
|
127
|
-
this.bbi = bbi;
|
|
128
|
-
this.blockType = blockType;
|
|
129
|
-
Object.assign(this, getParsers(isBigEndian));
|
|
136
|
+
const parsers = getParsers(isBigEndian);
|
|
137
|
+
this.leafParser = parsers.leafParser;
|
|
138
|
+
this.bigBedParser = parsers.bigBedParser;
|
|
130
139
|
}
|
|
131
140
|
async readWigData(chrName, start, end, observer, opts) {
|
|
132
141
|
try {
|
|
133
142
|
const { refsByName, bbi, cirTreeOffset, isBigEndian } = this;
|
|
134
|
-
const { signal } = opts;
|
|
135
143
|
const chrId = refsByName[chrName];
|
|
136
144
|
if (chrId === undefined) {
|
|
137
145
|
observer.complete();
|
|
138
146
|
}
|
|
139
147
|
const request = { chrId, start, end };
|
|
140
148
|
if (!this.cirTreePromise) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
});
|
|
149
|
+
const off = Number(cirTreeOffset);
|
|
150
|
+
this.cirTreePromise = bbi.read(Buffer.alloc(48), 0, 48, off, opts);
|
|
144
151
|
}
|
|
145
152
|
const { buffer } = await this.cirTreePromise;
|
|
146
153
|
const cirBlockSize = isBigEndian
|
|
@@ -151,9 +158,11 @@ class BlockView {
|
|
|
151
158
|
const cirFobRecur2 = (cirBlockData, offset, level) => {
|
|
152
159
|
try {
|
|
153
160
|
const data = cirBlockData.subarray(offset);
|
|
154
|
-
const p = this.leafParser.parse(data)
|
|
161
|
+
const p = this.leafParser.parse(data);
|
|
155
162
|
if (p.blocksToFetch) {
|
|
156
|
-
blocksToFetch = blocksToFetch.concat(p.blocksToFetch
|
|
163
|
+
blocksToFetch = blocksToFetch.concat(p.blocksToFetch
|
|
164
|
+
.filter(filterFeats)
|
|
165
|
+
.map((l) => ({
|
|
157
166
|
offset: l.blockOffset,
|
|
158
167
|
length: l.blockSize,
|
|
159
168
|
})));
|
|
@@ -161,7 +170,7 @@ class BlockView {
|
|
|
161
170
|
if (p.recurOffsets) {
|
|
162
171
|
const recurOffsets = p.recurOffsets
|
|
163
172
|
.filter(filterFeats)
|
|
164
|
-
.map((l) => l.blockOffset);
|
|
173
|
+
.map((l) => Number(l.blockOffset));
|
|
165
174
|
if (recurOffsets.length > 0) {
|
|
166
175
|
cirFobRecur(recurOffsets, level + 1);
|
|
167
176
|
}
|
|
@@ -180,7 +189,7 @@ class BlockView {
|
|
|
180
189
|
try {
|
|
181
190
|
const length = fr.max() - fr.min();
|
|
182
191
|
const offset = fr.min();
|
|
183
|
-
const resultBuffer = await this.featureCache.get(`${length}_${offset}`, { length, offset }, signal);
|
|
192
|
+
const resultBuffer = await this.featureCache.get(`${length}_${offset}`, { length, offset }, opts.signal);
|
|
184
193
|
for (let i = 0; i < off.length; i += 1) {
|
|
185
194
|
if (fr.contains(off[i])) {
|
|
186
195
|
cirFobRecur2(resultBuffer, off[i] - offset, level);
|
|
@@ -198,10 +207,10 @@ class BlockView {
|
|
|
198
207
|
const cirFobRecur = (offset, level) => {
|
|
199
208
|
try {
|
|
200
209
|
outstanding += offset.length;
|
|
201
|
-
const maxCirBlockSpan = 4 + cirBlockSize * 32; // Upper bound on size, based on a completely full leaf node.
|
|
202
|
-
let spans = new
|
|
210
|
+
const maxCirBlockSpan = 4 + Number(cirBlockSize) * 32; // Upper bound on size, based on a completely full leaf node.
|
|
211
|
+
let spans = new Range(offset[0], offset[0] + maxCirBlockSpan);
|
|
203
212
|
for (let i = 1; i < offset.length; i += 1) {
|
|
204
|
-
const blockSpan = new
|
|
213
|
+
const blockSpan = new Range(offset[i], offset[i] + maxCirBlockSpan);
|
|
205
214
|
spans = spans.union(blockSpan);
|
|
206
215
|
}
|
|
207
216
|
spans.getRanges().map(fr => cirFobStartFetch(offset, fr, level));
|
|
@@ -210,90 +219,133 @@ class BlockView {
|
|
|
210
219
|
observer.error(e);
|
|
211
220
|
}
|
|
212
221
|
};
|
|
213
|
-
return cirFobRecur([cirTreeOffset + 48], 1);
|
|
222
|
+
return cirFobRecur([Number(cirTreeOffset) + 48], 1);
|
|
214
223
|
}
|
|
215
224
|
catch (e) {
|
|
216
225
|
observer.error(e);
|
|
217
226
|
}
|
|
218
227
|
}
|
|
219
|
-
parseSummaryBlock(
|
|
228
|
+
parseSummaryBlock(buffer, startOffset, request) {
|
|
220
229
|
const features = [];
|
|
221
|
-
let
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
+
let offset = startOffset;
|
|
231
|
+
const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);
|
|
232
|
+
while (offset < buffer.byteLength) {
|
|
233
|
+
// this was extracted from looking at the runtime code generated by
|
|
234
|
+
// binary-parser
|
|
235
|
+
const chromId = dataView.getUint32(offset, true);
|
|
236
|
+
offset += 4;
|
|
237
|
+
const start = dataView.getUint32(offset, true);
|
|
238
|
+
offset += 4;
|
|
239
|
+
const end = dataView.getUint32(offset, true);
|
|
240
|
+
offset += 4;
|
|
241
|
+
const validCnt = dataView.getUint32(offset, true);
|
|
242
|
+
offset += 4;
|
|
243
|
+
const minScore = dataView.getFloat32(offset, true);
|
|
244
|
+
offset += 4;
|
|
245
|
+
const maxScore = dataView.getFloat32(offset, true);
|
|
246
|
+
offset += 4;
|
|
247
|
+
const sumData = dataView.getFloat32(offset, true);
|
|
248
|
+
offset += 4;
|
|
249
|
+
// unused
|
|
250
|
+
// const sumSqData = dataView.getFloat32(offset, true)
|
|
251
|
+
offset += 4;
|
|
252
|
+
if (request
|
|
253
|
+
? chromId === request.chrId &&
|
|
254
|
+
coordFilter(start, end, request.start, request.end)
|
|
255
|
+
: true) {
|
|
256
|
+
features.push({
|
|
257
|
+
start,
|
|
258
|
+
end,
|
|
259
|
+
maxScore,
|
|
260
|
+
minScore,
|
|
261
|
+
summary: true,
|
|
262
|
+
score: sumData / (validCnt || 1),
|
|
263
|
+
});
|
|
264
|
+
}
|
|
230
265
|
}
|
|
231
|
-
|
|
232
|
-
start: elt.start,
|
|
233
|
-
end: elt.end,
|
|
234
|
-
maxScore: elt.maxScore,
|
|
235
|
-
minScore: elt.minScore,
|
|
236
|
-
score: elt.sumData / (elt.validCnt || 1),
|
|
237
|
-
summary: true,
|
|
238
|
-
}));
|
|
239
|
-
return request
|
|
240
|
-
? feats.filter(f => BlockView.coordFilter(f, request))
|
|
241
|
-
: feats;
|
|
266
|
+
return features;
|
|
242
267
|
}
|
|
243
268
|
parseBigBedBlock(data, startOffset, offset, request) {
|
|
244
269
|
const items = [];
|
|
245
270
|
let currOffset = startOffset;
|
|
246
271
|
while (currOffset < data.byteLength) {
|
|
247
272
|
const res = this.bigBedParser.parse(data.subarray(currOffset));
|
|
248
|
-
res
|
|
249
|
-
items.push(res.result);
|
|
273
|
+
items.push({ ...res, uniqueId: `bb-${offset + currOffset}` });
|
|
250
274
|
currOffset += res.offset;
|
|
251
275
|
}
|
|
252
276
|
return request
|
|
253
|
-
? items.filter((f) =>
|
|
277
|
+
? items.filter((f) => coordFilter(f.start, f.end, request.start, request.end))
|
|
254
278
|
: items;
|
|
255
279
|
}
|
|
256
|
-
parseBigWigBlock(
|
|
257
|
-
const
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
280
|
+
parseBigWigBlock(buffer, startOffset, request) {
|
|
281
|
+
const b = buffer.subarray(startOffset);
|
|
282
|
+
const dataView = new DataView(b.buffer, b.byteOffset, b.length);
|
|
283
|
+
let offset = 0;
|
|
284
|
+
offset += 4;
|
|
285
|
+
const blockStart = dataView.getInt32(offset, true);
|
|
286
|
+
offset += 8;
|
|
287
|
+
const itemStep = dataView.getUint32(offset, true);
|
|
288
|
+
offset += 4;
|
|
289
|
+
const itemSpan = dataView.getUint32(offset, true);
|
|
290
|
+
offset += 4;
|
|
291
|
+
const blockType = dataView.getUint8(offset);
|
|
292
|
+
offset += 2;
|
|
293
|
+
const itemCount = dataView.getUint16(offset, true);
|
|
294
|
+
offset += 2;
|
|
295
|
+
const items = new Array(itemCount);
|
|
296
|
+
switch (blockType) {
|
|
297
|
+
case 1:
|
|
298
|
+
for (let i = 0; i < itemCount; i++) {
|
|
299
|
+
const start = dataView.getInt32(offset, true);
|
|
300
|
+
offset += 4;
|
|
301
|
+
const end = dataView.getInt32(offset, true);
|
|
302
|
+
offset += 4;
|
|
303
|
+
const score = dataView.getFloat32(offset, true);
|
|
304
|
+
offset += 4;
|
|
305
|
+
items[i] = { start, end, score };
|
|
306
|
+
}
|
|
307
|
+
break;
|
|
308
|
+
case 2:
|
|
309
|
+
for (let i = 0; i < itemCount; i++) {
|
|
310
|
+
const start = dataView.getInt32(offset, true);
|
|
311
|
+
offset += 4;
|
|
312
|
+
const score = dataView.getFloat32(offset, true);
|
|
313
|
+
offset += 4;
|
|
314
|
+
items[i] = { score, start, end: start + itemSpan };
|
|
315
|
+
}
|
|
316
|
+
break;
|
|
317
|
+
case 3:
|
|
318
|
+
for (let i = 0; i < itemCount; i++) {
|
|
319
|
+
const score = dataView.getFloat32(offset, true);
|
|
320
|
+
offset += 4;
|
|
321
|
+
const start = blockStart + i * itemStep;
|
|
322
|
+
items[i] = { score, start, end: start + itemSpan };
|
|
323
|
+
}
|
|
324
|
+
break;
|
|
270
325
|
}
|
|
271
326
|
return request
|
|
272
|
-
? items.filter((f) =>
|
|
327
|
+
? items.filter((f) => coordFilter(f.start, f.end, request.start, request.end))
|
|
273
328
|
: items;
|
|
274
329
|
}
|
|
275
|
-
static coordFilter(f, range) {
|
|
276
|
-
return f.start < range.end && f.end >= range.start;
|
|
277
|
-
}
|
|
278
330
|
async readFeatures(observer, blocks, opts = {}) {
|
|
279
331
|
try {
|
|
280
332
|
const { blockType, isCompressed } = this;
|
|
281
333
|
const { signal, request } = opts;
|
|
282
|
-
const blockGroupsToFetch =
|
|
283
|
-
|
|
334
|
+
const blockGroupsToFetch = groupBlocks(blocks);
|
|
335
|
+
checkAbortSignal(signal);
|
|
284
336
|
await Promise.all(blockGroupsToFetch.map(async (blockGroup) => {
|
|
285
|
-
|
|
337
|
+
checkAbortSignal(signal);
|
|
286
338
|
const { length, offset } = blockGroup;
|
|
287
339
|
const data = await this.featureCache.get(`${length}_${offset}`, blockGroup, signal);
|
|
288
|
-
blockGroup.blocks.forEach(
|
|
289
|
-
|
|
290
|
-
let blockOffset = block.offset - blockGroup.offset;
|
|
340
|
+
blockGroup.blocks.forEach(block => {
|
|
341
|
+
checkAbortSignal(signal);
|
|
342
|
+
let blockOffset = Number(block.offset) - Number(blockGroup.offset);
|
|
291
343
|
let resultData = data;
|
|
292
344
|
if (isCompressed) {
|
|
293
|
-
resultData =
|
|
345
|
+
resultData = unzip(data.subarray(blockOffset));
|
|
294
346
|
blockOffset = 0;
|
|
295
347
|
}
|
|
296
|
-
|
|
348
|
+
checkAbortSignal(signal);
|
|
297
349
|
switch (blockType) {
|
|
298
350
|
case 'summary':
|
|
299
351
|
observer.next(this.parseSummaryBlock(resultData, blockOffset, request));
|
|
@@ -302,9 +354,7 @@ class BlockView {
|
|
|
302
354
|
observer.next(this.parseBigWigBlock(resultData, blockOffset, request));
|
|
303
355
|
break;
|
|
304
356
|
case 'bigbed':
|
|
305
|
-
observer.next(this.parseBigBedBlock(resultData, blockOffset,
|
|
306
|
-
// eslint-disable-next-line no-bitwise
|
|
307
|
-
block.offset * (1 << 8), request));
|
|
357
|
+
observer.next(this.parseBigBedBlock(resultData, blockOffset, Number(block.offset) * (1 << 8), request));
|
|
308
358
|
break;
|
|
309
359
|
default:
|
|
310
360
|
console.warn(`Don't know what to do with ${blockType}`);
|
|
@@ -318,4 +368,4 @@ class BlockView {
|
|
|
318
368
|
}
|
|
319
369
|
}
|
|
320
370
|
}
|
|
321
|
-
|
|
371
|
+
//# sourceMappingURL=blockView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockView.js","sourceRoot":"","sources":["../src/blockView.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var bigwig_1 = require("./bigwig");
|
|
5
|
-
Object.defineProperty(exports, "BigWig", { enumerable: true, get: function () { return bigwig_1.BigWig; } });
|
|
6
|
-
var bigbed_1 = require("./bigbed");
|
|
7
|
-
Object.defineProperty(exports, "BigBed", { enumerable: true, get: function () { return bigbed_1.BigBed; } });
|
|
1
|
+
export { BigWig } from './bigwig';
|
|
2
|
+
export { BigBed } from './bigbed';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
|
package/esm/range.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/* eslint prefer-rest-params:0, no-nested-ternary:0 */
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
2
|
/**
|
|
5
3
|
* Adapted from a combination of Range and _Compound in the
|
|
6
4
|
* Dalliance Genome Explorer, (c) Thomas Down 2006-2010.
|
|
7
5
|
*/
|
|
8
|
-
class Range {
|
|
6
|
+
export default class Range {
|
|
9
7
|
constructor(arg1, arg2) {
|
|
10
8
|
this.ranges =
|
|
11
9
|
arguments.length === 2
|
|
@@ -106,6 +104,7 @@ class Range {
|
|
|
106
104
|
let b = tmpb;
|
|
107
105
|
if (arguments.length < 2) {
|
|
108
106
|
b = a;
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
109
108
|
a = this;
|
|
110
109
|
}
|
|
111
110
|
if (a.min() < b.min()) {
|
|
@@ -123,4 +122,4 @@ class Range {
|
|
|
123
122
|
return 0;
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
|
-
|
|
125
|
+
//# sourceMappingURL=range.js.map
|
package/esm/range.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.js","sourceRoot":"","sources":["../src/range.ts"],"names":[],"mappings":"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"}
|
package/esm/unzip-pako.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
export declare function unzip(input: Buffer):
|
|
2
|
+
export declare function unzip(input: Buffer): Uint8Array;
|
package/esm/unzip-pako.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const pako_1 = require("pako");
|
|
5
|
-
function unzip(input) {
|
|
6
|
-
return Buffer.from((0, pako_1.inflate)(input));
|
|
1
|
+
import { inflateRaw } from 'pako';
|
|
2
|
+
export function unzip(input) {
|
|
3
|
+
return inflateRaw(input.subarray(2));
|
|
7
4
|
}
|
|
8
|
-
|
|
5
|
+
//# sourceMappingURL=unzip-pako.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unzip-pako.js","sourceRoot":"","sources":["../src/unzip-pako.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC"}
|
package/esm/unzip.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const zlib_1 = require("zlib");
|
|
5
|
-
Object.defineProperty(exports, "unzip", { enumerable: true, get: function () { return zlib_1.inflateSync; } });
|
|
1
|
+
import { inflateSync } from 'zlib';
|
|
2
|
+
export { inflateSync as unzip };
|
|
3
|
+
//# sourceMappingURL=unzip.js.map
|
package/esm/unzip.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unzip.js","sourceRoot":"","sources":["../src/unzip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,CAAA"}
|
package/esm/util.d.ts
CHANGED
|
@@ -2,7 +2,17 @@ export declare class AbortError extends Error {
|
|
|
2
2
|
code: string;
|
|
3
3
|
constructor(message: string);
|
|
4
4
|
}
|
|
5
|
-
export declare function groupBlocks(blocks:
|
|
5
|
+
export declare function groupBlocks(blocks: {
|
|
6
|
+
offset: bigint;
|
|
7
|
+
length: bigint;
|
|
8
|
+
}[]): {
|
|
9
|
+
blocks: {
|
|
10
|
+
offset: bigint;
|
|
11
|
+
length: bigint;
|
|
12
|
+
}[];
|
|
13
|
+
length: bigint;
|
|
14
|
+
offset: bigint;
|
|
15
|
+
}[];
|
|
6
16
|
/**
|
|
7
17
|
* Properly check if the given AbortSignal is aborted.
|
|
8
18
|
* Per the standard, if the signal reads as aborted,
|