@gmod/bbi 8.1.1 → 9.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 +4 -0
- package/README.md +49 -53
- package/dist/array-feature-view.d.ts +4 -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 +19 -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 +370 -440
- 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 +85 -86
- package/dist/wasm/inflate-wasm-inlined.js.map +1 -1
- package/dist/wasm/inflate_wasm.d.ts +1 -1
- package/dist/wasm/inflate_wasm.js +10 -4
- package/dist/wasm/inflate_wasm.js.map +1 -1
- package/dist/wasm/inflate_wasm_bg.d.ts +2 -2
- package/dist/wasm/inflate_wasm_bg.js +85 -86
- package/dist/wasm/inflate_wasm_bg.js.map +1 -1
- package/esm/array-feature-view.d.ts +4 -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 +19 -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 +370 -440
- 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 +85 -86
- package/esm/wasm/inflate-wasm-inlined.js.map +1 -1
- package/esm/wasm/inflate_wasm.d.ts +1 -1
- package/esm/wasm/inflate_wasm.js +2 -1
- package/esm/wasm/inflate_wasm.js.map +1 -1
- package/esm/wasm/inflate_wasm_bg.d.ts +2 -2
- package/esm/wasm/inflate_wasm_bg.js +83 -84
- package/esm/wasm/inflate_wasm_bg.js.map +1 -1
- package/package.json +14 -16
- package/src/array-feature-view.ts +8 -0
- package/src/bbi.ts +50 -153
- package/src/bigbed.ts +22 -55
- package/src/bigwig.ts +1 -3
- package/src/block-view.ts +526 -634
- 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 +101 -102
- package/src/wasm/inflate_wasm.js +7 -2
- package/src/wasm/inflate_wasm_bg.js +99 -100
- package/src/wasm/inflate_wasm_bg.wasm +0 -0
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 = [];
|
|
@@ -132,13 +125,8 @@ export class BigBed extends BBI {
|
|
|
132
125
|
const { extHeaderOffset } = await this.getHeader(opts);
|
|
133
126
|
const b = await this.bbi.read(64, extHeaderOffset);
|
|
134
127
|
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;
|
|
128
|
+
const count = dataView.getUint16(2, true);
|
|
129
|
+
const dataOffset = Number(dataView.getBigUint64(4, true));
|
|
142
130
|
// no extra index is defined if count==0
|
|
143
131
|
if (count === 0) {
|
|
144
132
|
return [];
|
|
@@ -150,14 +138,10 @@ export class BigBed extends BBI {
|
|
|
150
138
|
for (let i = 0; i < count; i += 1) {
|
|
151
139
|
const b = buffer.subarray(i * blocklen);
|
|
152
140
|
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);
|
|
141
|
+
const type = dataView.getInt16(0, true);
|
|
142
|
+
const fieldcount = dataView.getInt16(2, true);
|
|
143
|
+
const dataOffset = Number(dataView.getBigUint64(4, true));
|
|
144
|
+
const field = dataView.getInt16(16, true);
|
|
161
145
|
indices.push({
|
|
162
146
|
type,
|
|
163
147
|
fieldcount,
|
|
@@ -186,20 +170,13 @@ export class BigBed extends BBI {
|
|
|
186
170
|
const { offset: offset2, field } = index;
|
|
187
171
|
const b = await this.bbi.read(32, offset2, opts);
|
|
188
172
|
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;
|
|
173
|
+
const blockSize = dataView.getInt32(4, true);
|
|
174
|
+
const keySize = dataView.getInt32(8, true);
|
|
175
|
+
const valSize = dataView.getInt32(12, true);
|
|
200
176
|
return readBPlusTreeNode(this.bbi, offset2 + 32, blockSize, keySize, valSize, name, field, opts);
|
|
201
177
|
});
|
|
202
|
-
|
|
178
|
+
const results = await Promise.all(locs);
|
|
179
|
+
return results.filter((l) => l !== undefined);
|
|
203
180
|
}
|
|
204
181
|
/*
|
|
205
182
|
* retrieve the features from the bigbed data that were found through the
|
|
@@ -218,20 +195,12 @@ export class BigBed extends BBI {
|
|
|
218
195
|
return [];
|
|
219
196
|
}
|
|
220
197
|
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
|
|
198
|
+
const results = await Promise.all(blocks.map(async (block) => {
|
|
199
|
+
const features = await view.readFeatures([block], opts);
|
|
200
|
+
return features.map(f => ({ ...f, field: block.field }));
|
|
201
|
+
}));
|
|
233
202
|
// field offset is adjusted by -3 to account for chrom, chromStart, chromEnd columns
|
|
234
|
-
return
|
|
203
|
+
return results.flat().filter(f => {
|
|
235
204
|
if (!f.rest) {
|
|
236
205
|
return false;
|
|
237
206
|
}
|
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":"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"}
|
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 {};
|