@gmod/bbi 8.1.2 → 9.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -24
- package/dist/array-feature-view.d.ts +1 -1
- package/dist/array-feature-view.js.map +1 -1
- package/dist/bbi.d.ts +5 -25
- package/dist/bbi.js +31 -133
- package/dist/bbi.js.map +1 -1
- package/dist/bigbed.d.ts +0 -1
- package/dist/bigbed.js +20 -51
- package/dist/bigbed.js.map +1 -1
- package/dist/bigwig.d.ts +1 -2
- package/dist/bigwig.js +1 -2
- package/dist/bigwig.js.map +1 -1
- package/dist/block-view.d.ts +7 -16
- package/dist/block-view.js +369 -443
- package/dist/block-view.js.map +1 -1
- package/dist/parse-bigwig.d.ts +2 -2
- package/dist/parse-bigwig.js +5 -5
- package/dist/parse-bigwig.js.map +1 -1
- package/dist/range.d.ts +1 -15
- package/dist/range.js +16 -49
- package/dist/range.js.map +1 -1
- package/dist/util.d.ts +0 -22
- package/dist/util.js +0 -46
- package/dist/util.js.map +1 -1
- package/dist/wasm/inflate-wasm-inlined.js +3 -3
- package/dist/wasm/inflate-wasm-inlined.js.map +1 -1
- package/dist/wasm/inflate_wasm_bg.d.ts +1 -1
- package/dist/wasm/inflate_wasm_bg.js +2 -2
- package/esm/array-feature-view.d.ts +1 -1
- package/esm/array-feature-view.js.map +1 -1
- package/esm/bbi.d.ts +5 -25
- package/esm/bbi.js +31 -133
- package/esm/bbi.js.map +1 -1
- package/esm/bigbed.d.ts +0 -1
- package/esm/bigbed.js +20 -50
- package/esm/bigbed.js.map +1 -1
- package/esm/bigwig.d.ts +1 -2
- package/esm/bigwig.js +1 -2
- package/esm/bigwig.js.map +1 -1
- package/esm/block-view.d.ts +7 -16
- package/esm/block-view.js +369 -443
- package/esm/block-view.js.map +1 -1
- package/esm/parse-bigwig.d.ts +2 -2
- package/esm/parse-bigwig.js +5 -5
- package/esm/parse-bigwig.js.map +1 -1
- package/esm/range.d.ts +1 -15
- package/esm/range.js +15 -48
- package/esm/range.js.map +1 -1
- package/esm/util.d.ts +0 -22
- package/esm/util.js +0 -42
- package/esm/util.js.map +1 -1
- package/esm/wasm/inflate-wasm-inlined.js +3 -3
- package/esm/wasm/inflate-wasm-inlined.js.map +1 -1
- package/esm/wasm/inflate_wasm_bg.d.ts +1 -1
- package/esm/wasm/inflate_wasm_bg.js +1 -1
- package/package.json +21 -24
- package/src/array-feature-view.ts +5 -2
- package/src/bbi.ts +50 -153
- package/src/bigbed.ts +23 -55
- package/src/bigwig.ts +1 -3
- package/src/block-view.ts +525 -639
- package/src/parse-bigwig.ts +7 -9
- package/src/range.ts +19 -58
- package/src/util.ts +0 -46
- package/src/wasm/inflate-wasm-inlined.js +3 -3
- package/src/wasm/inflate_wasm_bg.js +1 -1
- package/src/wasm/inflate_wasm_bg.wasm +0 -0
- package/CHANGELOG.md +0 -350
package/esm/bbi.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { LocalFile, RemoteFile } from 'generic-filehandle2';
|
|
2
|
-
import { Observable, firstValueFrom } from 'rxjs';
|
|
3
|
-
import { toArray } from 'rxjs/operators';
|
|
4
2
|
import { BlockView } from "./block-view.js";
|
|
5
3
|
const BIG_WIG_MAGIC = -2003829722;
|
|
6
4
|
const BIG_BED_MAGIC = -2021002517;
|
|
@@ -58,13 +56,12 @@ export class BBI {
|
|
|
58
56
|
async _getMainHeader(opts, requestSize = 2000) {
|
|
59
57
|
const b = await this.bbi.read(requestSize, 0, opts);
|
|
60
58
|
const dataView = getDataView(b);
|
|
61
|
-
const r1 = dataView.getInt32(0, true);
|
|
62
|
-
if (r1 !== BIG_WIG_MAGIC && r1 !== BIG_BED_MAGIC) {
|
|
63
|
-
throw new Error('not a BigWig/BigBed file');
|
|
64
|
-
}
|
|
65
59
|
let offset = 0;
|
|
66
60
|
const magic = dataView.getInt32(offset, true);
|
|
67
61
|
offset += 4;
|
|
62
|
+
if (magic !== BIG_WIG_MAGIC && magic !== BIG_BED_MAGIC) {
|
|
63
|
+
throw new Error('not a BigWig/BigBed file');
|
|
64
|
+
}
|
|
68
65
|
const version = dataView.getUint16(offset, true);
|
|
69
66
|
offset += 2;
|
|
70
67
|
const numZoomLevels = dataView.getUint16(offset, true);
|
|
@@ -125,7 +122,6 @@ export class BBI {
|
|
|
125
122
|
const scoreSum = dataView.getFloat64(offset, true);
|
|
126
123
|
offset += 8;
|
|
127
124
|
const scoreSumSquares = dataView.getFloat64(offset, true);
|
|
128
|
-
offset += 8;
|
|
129
125
|
totalSummary = {
|
|
130
126
|
scoreMin,
|
|
131
127
|
scoreMax,
|
|
@@ -166,33 +162,18 @@ export class BBI {
|
|
|
166
162
|
const refsByName = {};
|
|
167
163
|
const chromosomeTreeOffset = header.chromosomeTreeOffset;
|
|
168
164
|
const dataView = getDataView(await this.bbi.read(32, chromosomeTreeOffset, opts));
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
offset += 4;
|
|
172
|
-
// const blockSize = dataView.getUint32(offset, true) // unused
|
|
173
|
-
offset += 4;
|
|
174
|
-
const keySize = dataView.getUint32(offset, true);
|
|
175
|
-
offset += 4;
|
|
176
|
-
const valSize = dataView.getUint32(offset, true);
|
|
177
|
-
offset += 4;
|
|
178
|
-
// const itemCount = dataView.getBigUint64(offset, true) // unused
|
|
179
|
-
offset += 8;
|
|
165
|
+
const keySize = dataView.getUint32(8, true);
|
|
166
|
+
const valSize = dataView.getUint32(12, true);
|
|
180
167
|
// Recursively traverses the B+ tree to populate chromosome name-to-ID mappings
|
|
181
168
|
const readBPlusTreeNode = async (currentOffset) => {
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
const isLeafNode = dataView.getUint8(offset);
|
|
186
|
-
offset += 1;
|
|
187
|
-
// const reserved = dataView.getUint8(offset) // unused
|
|
188
|
-
offset += 1;
|
|
189
|
-
const count = dataView.getUint16(offset, true);
|
|
190
|
-
offset += 2;
|
|
169
|
+
const header = getDataView(await this.bbi.read(4, currentOffset));
|
|
170
|
+
const isLeafNode = header.getUint8(0);
|
|
171
|
+
const count = header.getUint16(2, true);
|
|
191
172
|
// Leaf nodes contain the actual chromosome name-to-ID mappings
|
|
192
173
|
if (isLeafNode) {
|
|
193
|
-
const b = await this.bbi.read(count * (keySize + valSize), currentOffset +
|
|
174
|
+
const b = await this.bbi.read(count * (keySize + valSize), currentOffset + 4);
|
|
194
175
|
const dataView = getDataView(b);
|
|
195
|
-
offset = 0;
|
|
176
|
+
let offset = 0;
|
|
196
177
|
for (let n = 0; n < count; n++) {
|
|
197
178
|
const keyEnd = b.indexOf(0, offset);
|
|
198
179
|
const effectiveKeyEnd = keyEnd !== -1 && keyEnd < offset + keySize
|
|
@@ -205,18 +186,14 @@ export class BBI {
|
|
|
205
186
|
const refSize = dataView.getUint32(offset, true);
|
|
206
187
|
offset += 4;
|
|
207
188
|
refsByName[this.renameRefSeqs(key)] = refId;
|
|
208
|
-
refsByNumber[refId] = {
|
|
209
|
-
name: key,
|
|
210
|
-
id: refId,
|
|
211
|
-
length: refSize,
|
|
212
|
-
};
|
|
189
|
+
refsByNumber[refId] = { name: key, id: refId, length: refSize };
|
|
213
190
|
}
|
|
214
191
|
}
|
|
215
192
|
else {
|
|
216
193
|
// Non-leaf nodes contain pointers to child nodes
|
|
194
|
+
const dataView = getDataView(await this.bbi.read(count * (keySize + 8), currentOffset + 4));
|
|
217
195
|
const nextNodes = [];
|
|
218
|
-
|
|
219
|
-
offset = 0;
|
|
196
|
+
let offset = 0;
|
|
220
197
|
for (let n = 0; n < count; n++) {
|
|
221
198
|
offset += keySize;
|
|
222
199
|
const childOffset = Number(dataView.getBigUint64(offset, true));
|
|
@@ -232,115 +209,36 @@ export class BBI {
|
|
|
232
209
|
refsByNumber,
|
|
233
210
|
};
|
|
234
211
|
}
|
|
212
|
+
viewCache = new Map();
|
|
213
|
+
getOrCreateBlockView(refsByName, rTreeOffset, uncompressBufSize, blockType) {
|
|
214
|
+
const key = `${rTreeOffset}_${blockType}`;
|
|
215
|
+
let view = this.viewCache.get(key);
|
|
216
|
+
if (!view) {
|
|
217
|
+
view = new BlockView(this.bbi, refsByName, rTreeOffset, uncompressBufSize, blockType);
|
|
218
|
+
this.viewCache.set(key, view);
|
|
219
|
+
}
|
|
220
|
+
return view;
|
|
221
|
+
}
|
|
235
222
|
/*
|
|
236
223
|
* fetches the "unzoomed" view of the bigwig data. this is the default for bigbed
|
|
237
224
|
* @param abortSignal - a signal to optionally abort this operation
|
|
238
225
|
*/
|
|
239
226
|
async getUnzoomedView(opts) {
|
|
240
227
|
const { unzoomedIndexOffset, refsByName, uncompressBufSize, fileType } = await this.getHeader(opts);
|
|
241
|
-
return
|
|
228
|
+
return this.getOrCreateBlockView(refsByName, unzoomedIndexOffset, uncompressBufSize, fileType);
|
|
242
229
|
}
|
|
243
|
-
|
|
244
|
-
* Gets features from a BigWig file
|
|
245
|
-
*
|
|
246
|
-
* @param refName - The chromosome name
|
|
247
|
-
*
|
|
248
|
-
* @param start - The start of a region
|
|
249
|
-
*
|
|
250
|
-
* @param end - The end of a region
|
|
251
|
-
*
|
|
252
|
-
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair)
|
|
253
|
-
* or scale used to infer the zoomLevel to use
|
|
254
|
-
*/
|
|
255
|
-
async getFeatureStream(refName, start, end, opts) {
|
|
256
|
-
await this.getHeader(opts);
|
|
257
|
-
const chrName = this.renameRefSeqs(refName);
|
|
258
|
-
let view;
|
|
230
|
+
async _getView(opts) {
|
|
259
231
|
const { basesPerSpan, scale } = opts || {};
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
else if (scale) {
|
|
264
|
-
view = await this.getView(scale, opts);
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
view = await this.getView(1, opts);
|
|
268
|
-
}
|
|
269
|
-
return new Observable(observer => {
|
|
270
|
-
view
|
|
271
|
-
.readWigData(chrName, start, end, observer, opts)
|
|
272
|
-
.catch((e) => {
|
|
273
|
-
observer.error(e);
|
|
274
|
-
});
|
|
275
|
-
});
|
|
232
|
+
const viewScale = basesPerSpan ? 1 / basesPerSpan : (scale ?? 1);
|
|
233
|
+
return this.getView(viewScale, opts);
|
|
276
234
|
}
|
|
277
235
|
async getFeatures(refName, start, end, opts) {
|
|
278
|
-
const
|
|
279
|
-
|
|
280
|
-
const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
|
|
281
|
-
const result = new Array(totalLength);
|
|
282
|
-
let index = 0;
|
|
283
|
-
for (const arr of arrays) {
|
|
284
|
-
for (const item of arr) {
|
|
285
|
-
result[index++] = item;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
return result;
|
|
236
|
+
const view = await this._getView(opts);
|
|
237
|
+
return view.readWigData(this.renameRefSeqs(refName), start, end, opts);
|
|
289
238
|
}
|
|
290
|
-
/**
|
|
291
|
-
* Gets features from a BigWig file as typed arrays (more efficient than getFeatures)
|
|
292
|
-
*
|
|
293
|
-
* @param refName - The chromosome name
|
|
294
|
-
* @param start - The start of a region
|
|
295
|
-
* @param end - The end of a region
|
|
296
|
-
* @param opts - Options including basesPerSpan or scale
|
|
297
|
-
* @returns Promise with typed arrays: starts, ends, scores (and minScores/maxScores for summary data)
|
|
298
|
-
*/
|
|
299
239
|
async getFeaturesAsArrays(refName, start, end, opts) {
|
|
300
|
-
const
|
|
301
|
-
|
|
302
|
-
if (count === 0) {
|
|
303
|
-
return {
|
|
304
|
-
starts: new Int32Array(0),
|
|
305
|
-
ends: new Int32Array(0),
|
|
306
|
-
scores: new Float32Array(0),
|
|
307
|
-
isSummary: false,
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
const hasSummary = features[0]?.summary === true;
|
|
311
|
-
if (hasSummary) {
|
|
312
|
-
const starts = new Int32Array(count);
|
|
313
|
-
const ends = new Int32Array(count);
|
|
314
|
-
const scores = new Float32Array(count);
|
|
315
|
-
const minScores = new Float32Array(count);
|
|
316
|
-
const maxScores = new Float32Array(count);
|
|
317
|
-
for (let i = 0; i < count; i++) {
|
|
318
|
-
const f = features[i];
|
|
319
|
-
starts[i] = f.start;
|
|
320
|
-
ends[i] = f.end;
|
|
321
|
-
scores[i] = f.score ?? 0;
|
|
322
|
-
minScores[i] = f.minScore ?? 0;
|
|
323
|
-
maxScores[i] = f.maxScore ?? 0;
|
|
324
|
-
}
|
|
325
|
-
return {
|
|
326
|
-
starts,
|
|
327
|
-
ends,
|
|
328
|
-
scores,
|
|
329
|
-
minScores,
|
|
330
|
-
maxScores,
|
|
331
|
-
isSummary: true,
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
const starts = new Int32Array(count);
|
|
335
|
-
const ends = new Int32Array(count);
|
|
336
|
-
const scores = new Float32Array(count);
|
|
337
|
-
for (let i = 0; i < count; i++) {
|
|
338
|
-
const f = features[i];
|
|
339
|
-
starts[i] = f.start;
|
|
340
|
-
ends[i] = f.end;
|
|
341
|
-
scores[i] = f.score ?? 0;
|
|
342
|
-
}
|
|
343
|
-
return { starts, ends, scores, isSummary: false };
|
|
240
|
+
const view = await this._getView(opts);
|
|
241
|
+
return view.readWigDataAsArrays(this.renameRefSeqs(refName), start, end, opts);
|
|
344
242
|
}
|
|
345
243
|
}
|
|
346
244
|
//# sourceMappingURL=bbi.js.map
|
package/esm/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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"}
|
package/esm/bigbed.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ interface Index {
|
|
|
7
7
|
offset: number;
|
|
8
8
|
field: number;
|
|
9
9
|
}
|
|
10
|
-
export declare function filterUndef<T>(ts: (T | undefined)[]): T[];
|
|
11
10
|
export declare class BigBed extends BBI {
|
|
12
11
|
readIndicesCache: AbortablePromiseCache<RequestOptions, Index[], string>;
|
|
13
12
|
readIndices(opts?: RequestOptions): Promise<Index[]>;
|
package/esm/bigbed.js
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import AbortablePromiseCache from '@gmod/abortable-promise-cache';
|
|
2
2
|
import QuickLRU from '@jbrowse/quick-lru';
|
|
3
|
-
import { Observable, firstValueFrom, merge } from 'rxjs';
|
|
4
|
-
import { map, reduce } from 'rxjs/operators';
|
|
5
3
|
import { BBI } from "./bbi.js";
|
|
6
4
|
const decoder = new TextDecoder('utf8');
|
|
7
|
-
export function filterUndef(ts) {
|
|
8
|
-
return ts.filter((t) => !!t);
|
|
9
|
-
}
|
|
10
5
|
function getTabField(str, fieldIndex) {
|
|
11
6
|
if (fieldIndex < 0) {
|
|
12
7
|
return undefined;
|
|
@@ -34,11 +29,9 @@ async function readBPlusTreeNode(bbi, nodeOffset, blockSize, keySize, valSize, n
|
|
|
34
29
|
const len = 4 + blockSize * (keySize + valSize);
|
|
35
30
|
const buffer = await bbi.read(len, nodeOffset, opts);
|
|
36
31
|
const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
offset
|
|
40
|
-
const cnt = dataView.getInt16(offset, true);
|
|
41
|
-
offset += 2;
|
|
32
|
+
const nodeType = dataView.getInt8(0);
|
|
33
|
+
const cnt = dataView.getInt16(2, true);
|
|
34
|
+
let offset = 4;
|
|
42
35
|
// Non-leaf node (nodeType === 0): contains keys and child node pointers for navigation
|
|
43
36
|
if (nodeType === 0) {
|
|
44
37
|
const leafkeys = [];
|
|
@@ -105,6 +98,7 @@ async function readBPlusTreeNode(bbi, nodeOffset, blockSize, keySize, valSize, n
|
|
|
105
98
|
}
|
|
106
99
|
return undefined;
|
|
107
100
|
}
|
|
101
|
+
return undefined;
|
|
108
102
|
}
|
|
109
103
|
export class BigBed extends BBI {
|
|
110
104
|
readIndicesCache = new AbortablePromiseCache({
|
|
@@ -132,13 +126,8 @@ export class BigBed extends BBI {
|
|
|
132
126
|
const { extHeaderOffset } = await this.getHeader(opts);
|
|
133
127
|
const b = await this.bbi.read(64, extHeaderOffset);
|
|
134
128
|
const dataView = new DataView(b.buffer, b.byteOffset, b.length);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
offset += 2;
|
|
138
|
-
const count = dataView.getUint16(offset, true);
|
|
139
|
-
offset += 2;
|
|
140
|
-
const dataOffset = Number(dataView.getBigUint64(offset, true));
|
|
141
|
-
offset += 8;
|
|
129
|
+
const count = dataView.getUint16(2, true);
|
|
130
|
+
const dataOffset = Number(dataView.getBigUint64(4, true));
|
|
142
131
|
// no extra index is defined if count==0
|
|
143
132
|
if (count === 0) {
|
|
144
133
|
return [];
|
|
@@ -150,14 +139,10 @@ export class BigBed extends BBI {
|
|
|
150
139
|
for (let i = 0; i < count; i += 1) {
|
|
151
140
|
const b = buffer.subarray(i * blocklen);
|
|
152
141
|
const dataView = new DataView(b.buffer, b.byteOffset, b.length);
|
|
153
|
-
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
const
|
|
157
|
-
offset += 2;
|
|
158
|
-
const dataOffset = Number(dataView.getBigUint64(offset, true));
|
|
159
|
-
offset += 8 + 4; // skip 8-byte offset + 4 reserved bytes
|
|
160
|
-
const field = dataView.getInt16(offset, true);
|
|
142
|
+
const type = dataView.getInt16(0, true);
|
|
143
|
+
const fieldcount = dataView.getInt16(2, true);
|
|
144
|
+
const dataOffset = Number(dataView.getBigUint64(4, true));
|
|
145
|
+
const field = dataView.getInt16(16, true);
|
|
161
146
|
indices.push({
|
|
162
147
|
type,
|
|
163
148
|
fieldcount,
|
|
@@ -186,20 +171,13 @@ export class BigBed extends BBI {
|
|
|
186
171
|
const { offset: offset2, field } = index;
|
|
187
172
|
const b = await this.bbi.read(32, offset2, opts);
|
|
188
173
|
const dataView = new DataView(b.buffer, b.byteOffset, b.length);
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
const blockSize = dataView.getInt32(offset, true);
|
|
193
|
-
offset += 4;
|
|
194
|
-
const keySize = dataView.getInt32(offset, true);
|
|
195
|
-
offset += 4;
|
|
196
|
-
const valSize = dataView.getInt32(offset, true);
|
|
197
|
-
offset += 4;
|
|
198
|
-
// const _itemCount = Number(dataView.getBigUint64(offset, true))
|
|
199
|
-
offset += 8;
|
|
174
|
+
const blockSize = dataView.getInt32(4, true);
|
|
175
|
+
const keySize = dataView.getInt32(8, true);
|
|
176
|
+
const valSize = dataView.getInt32(12, true);
|
|
200
177
|
return readBPlusTreeNode(this.bbi, offset2 + 32, blockSize, keySize, valSize, name, field, opts);
|
|
201
178
|
});
|
|
202
|
-
|
|
179
|
+
const results = await Promise.all(locs);
|
|
180
|
+
return results.filter((l) => l !== undefined);
|
|
203
181
|
}
|
|
204
182
|
/*
|
|
205
183
|
* retrieve the features from the bigbed data that were found through the
|
|
@@ -218,20 +196,12 @@ export class BigBed extends BBI {
|
|
|
218
196
|
return [];
|
|
219
197
|
}
|
|
220
198
|
const view = await this.getUnzoomedView(opts);
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
});
|
|
226
|
-
}).pipe(reduce((acc, curr) => {
|
|
227
|
-
acc.push(...curr);
|
|
228
|
-
return acc;
|
|
229
|
-
}, []), map(features => features.map(f => ({ ...f, field: block.field }))));
|
|
230
|
-
});
|
|
231
|
-
const ret = await firstValueFrom(merge(...res));
|
|
232
|
-
// Filter to features where the indexed field matches the search name
|
|
199
|
+
const results = await Promise.all(blocks.map(async (block) => {
|
|
200
|
+
const features = await view.readFeatures([block], opts);
|
|
201
|
+
return features.map(f => ({ ...f, field: block.field }));
|
|
202
|
+
}));
|
|
233
203
|
// field offset is adjusted by -3 to account for chrom, chromStart, chromEnd columns
|
|
234
|
-
return
|
|
204
|
+
return results.flat().filter(f => {
|
|
235
205
|
if (!f.rest) {
|
|
236
206
|
return false;
|
|
237
207
|
}
|
package/esm/bigbed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigbed.js","sourceRoot":"","sources":["../src/bigbed.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,+BAA+B,CAAA;AACjE,OAAO,QAAQ,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"bigbed.js","sourceRoot":"","sources":["../src/bigbed.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,+BAA+B,CAAA;AACjE,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAK9B,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;AAgBvC,SAAS,WAAW,CAAC,GAAW,EAAE,UAAkB;IAClD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAChC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,KAAK,EAAE,CAAA;IACT,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC9D,CAAC;AAED,0DAA0D;AAC1D,SAAS,QAAQ,CAAC,MAAkB,EAAE,MAAc,EAAE,OAAe;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACxC,MAAM,eAAe,GACnB,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAA;IACxE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,yFAAyF;AACzF,0EAA0E;AAC1E,KAAK,UAAU,iBAAiB,CAC9B,GAAsB,EACtB,UAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,OAAe,EACf,IAAY,EACZ,KAAa,EACb,IAAoB;IAEpB,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IACpD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACtC,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,uFAAuF;IACvF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7C,MAAM,IAAI,OAAO,CAAA;YACjB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,CAAC,CAAA;YACX,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG;gBACH,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;QACJ,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAErC,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAAA;YAElD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,WAAW,GAAG,GAAG,GAAG,CAAC,CAAA;gBACrB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GACf,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,MAAM,CAAA;QACxE,OAAO,iBAAiB,CACtB,GAAG,EACH,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,CACL,CAAA;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,6DAA6D;QAC7D,MAAM,IAAI,GAAG,EAAE,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7C,MAAM,IAAI,OAAO,CAAA;YACjB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,CAAC,CAAA;YACX,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAC/C,MAAM,IAAI,CAAC,CAAA;YACX,MAAM,IAAI,CAAC,CAAA,CAAC,gBAAgB;YAC5B,IAAI,CAAC,IAAI,CAAC;gBACR,GAAG;gBACH,MAAM,EAAE,UAAU;gBAClB,MAAM;aACP,CAAC,CAAA;QACJ,CAAC;QAED,wDAAwD;QACxD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QAE3B,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAAA;YAE9C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,KAAK,EAAE,CAAA;YACjC,CAAC;iBAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;YAChB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,OAAO,MAAO,SAAQ,GAAG;IACtB,gBAAgB,GAAG,IAAI,qBAAqB,CAA0B;QAC3E,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,IAAoB,EAAE,MAAoB,EAAE,EAAE,CACnD,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;KACzC,CAAC,CAAA;IAEK,WAAW,CAAC,OAAuB,EAAE;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;QAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACtE,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAqB;QAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,IAAoB;QAC7C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAA;QAElD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAEzD,wCAAwC;QACxC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAEnD,MAAM,OAAO,GAAY,EAAE,CAAA;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;YACvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;YACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI;gBACJ,UAAU;gBACV,MAAM,EAAE,UAAU;gBAClB,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,sBAAsB,CAClC,IAAY,EACZ,OAAuB,EAAE;QAEzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACrC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;YACxC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAEhD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAE3C,OAAO,iBAAiB,CACtB,IAAI,CAAC,GAAG,EACR,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;IACzD,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,OAAuB,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;YACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC1D,CAAC,CAAC,CACH,CAAA;QACD,oFAAoF;QACpF,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAA;YACd,CAAC;YACD,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;YACrC,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
package/esm/bigwig.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BBI } from './bbi.ts';
|
|
2
|
-
import { BlockView } from './block-view.ts';
|
|
3
2
|
import type { RequestOptions } from './types.ts';
|
|
4
3
|
export declare class BigWig extends BBI {
|
|
5
4
|
/**
|
|
@@ -10,5 +9,5 @@ export declare class BigWig extends BBI {
|
|
|
10
9
|
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair)
|
|
11
10
|
* or scale used to infer the zoomLevel to use
|
|
12
11
|
*/
|
|
13
|
-
protected getView(scale: number, opts: RequestOptions): Promise<BlockView>;
|
|
12
|
+
protected getView(scale: number, opts: RequestOptions): Promise<import("./block-view.ts").BlockView>;
|
|
14
13
|
}
|
package/esm/bigwig.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BBI } from "./bbi.js";
|
|
2
|
-
import { BlockView } from "./block-view.js";
|
|
3
2
|
export class BigWig extends BBI {
|
|
4
3
|
/**
|
|
5
4
|
* Retrieves a BlockView of a specific zoomLevel
|
|
@@ -16,7 +15,7 @@ export class BigWig extends BBI {
|
|
|
16
15
|
for (let i = maxLevel; i >= 0; i -= 1) {
|
|
17
16
|
const zh = zoomLevels[i];
|
|
18
17
|
if (zh && zh.reductionLevel <= 2 * basesPerPx) {
|
|
19
|
-
return
|
|
18
|
+
return this.getOrCreateBlockView(refsByName, zh.indexOffset, uncompressBufSize, 'summary');
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
21
|
return this.getUnzoomedView(opts);
|
package/esm/bigwig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigwig.js","sourceRoot":"","sources":["../src/bigwig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"bigwig.js","sourceRoot":"","sources":["../src/bigwig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAI9B,MAAM,OAAO,MAAO,SAAQ,GAAG;IAC7B;;;;;;;OAOG;IACO,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,IAAoB;QACzD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GACjD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAA;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAEtC,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,EAAE,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,UAAU,EACV,EAAE,CAAC,WAAW,EACd,iBAAiB,EACjB,SAAS,CACV,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF"}
|
package/esm/block-view.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Feature } from './types.ts';
|
|
2
2
|
import type { BigWigFeatureArrays, SummaryFeatureArrays } from './unzip.ts';
|
|
3
3
|
import type { GenericFilehandle } from 'generic-filehandle2';
|
|
4
|
-
import type { Observer } from 'rxjs';
|
|
5
4
|
interface CoordRequest {
|
|
6
5
|
chrId: number;
|
|
7
6
|
start: number;
|
|
@@ -26,22 +25,14 @@ export declare class BlockView {
|
|
|
26
25
|
private rTreePromise?;
|
|
27
26
|
private featureCache;
|
|
28
27
|
constructor(bbi: GenericFilehandle, refsByName: Record<string, number>, rTreeOffset: number, uncompressBufSize: number, blockType: string);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
private parseBigWigBlockAsArrays;
|
|
34
|
-
readFeatures(observer: Observer<Feature[]>, blocks: {
|
|
28
|
+
private _collectBlocks;
|
|
29
|
+
readWigData(chrName: string, start: number, end: number, opts?: Options): Promise<Feature[]>;
|
|
30
|
+
readWigDataAsArrays(chrName: string, start: number, end: number, opts?: Options): Promise<BigWigFeatureArrays | SummaryFeatureArrays>;
|
|
31
|
+
readFeatures(blocks: {
|
|
35
32
|
offset: number;
|
|
36
33
|
length: number;
|
|
37
|
-
}[], opts?: Options): Promise<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
length: number;
|
|
41
|
-
}[], opts?: Options): Promise<BigWigFeatureArrays>;
|
|
42
|
-
readSummaryFeaturesAsArrays(blocks: {
|
|
43
|
-
offset: number;
|
|
44
|
-
length: number;
|
|
45
|
-
}[], opts?: Options): Promise<SummaryFeatureArrays>;
|
|
34
|
+
}[], opts?: Options): Promise<Feature[]>;
|
|
35
|
+
private _readBigWigFeaturesAsArrays;
|
|
36
|
+
private _readSummaryFeaturesAsArrays;
|
|
46
37
|
}
|
|
47
38
|
export {};
|