@gmod/bbi 5.0.2 → 6.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 +5 -5
- package/dist/bbi.d.ts +15 -16
- package/dist/bbi.js +194 -221
- package/dist/bbi.js.map +1 -1
- package/dist/bigbed.js +138 -161
- package/dist/bigbed.js.map +1 -1
- package/dist/bigwig.js +11 -22
- package/dist/bigwig.js.map +1 -1
- package/dist/block-view.d.ts +2 -3
- package/dist/block-view.js +188 -209
- package/dist/block-view.js.map +1 -1
- package/dist/unzip-pako.d.ts +1 -2
- package/dist/unzip-pako.js.map +1 -1
- package/dist/util.js +3 -14
- package/dist/util.js.map +1 -1
- package/esm/bbi.d.ts +15 -16
- package/esm/bbi.js +62 -68
- package/esm/bbi.js.map +1 -1
- package/esm/bigbed.js +44 -39
- package/esm/bigbed.js.map +1 -1
- package/esm/bigwig.js +2 -2
- package/esm/bigwig.js.map +1 -1
- package/esm/block-view.d.ts +2 -3
- package/esm/block-view.js +29 -40
- package/esm/block-view.js.map +1 -1
- package/esm/unzip-pako.d.ts +1 -2
- package/esm/unzip-pako.js.map +1 -1
- package/package.json +5 -7
- package/src/bbi.ts +74 -97
- package/src/bigbed.ts +44 -61
- package/src/bigwig.ts +1 -2
- package/src/block-view.ts +36 -54
- package/src/unzip-pako.ts +1 -2
package/esm/block-view.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
2
1
|
import AbortablePromiseCache from '@gmod/abortable-promise-cache';
|
|
3
2
|
import QuickLRU from 'quick-lru';
|
|
4
3
|
// locals
|
|
@@ -17,22 +16,18 @@ function coordFilter(s1, e1, s2, e2) {
|
|
|
17
16
|
* @constructs
|
|
18
17
|
*/
|
|
19
18
|
export class BlockView {
|
|
20
|
-
constructor(bbi, refsByName, cirTreeOffset,
|
|
19
|
+
constructor(bbi, refsByName, cirTreeOffset, isCompressed, blockType) {
|
|
21
20
|
this.bbi = bbi;
|
|
22
21
|
this.refsByName = refsByName;
|
|
23
22
|
this.cirTreeOffset = cirTreeOffset;
|
|
24
|
-
this.isBigEndian = isBigEndian;
|
|
25
23
|
this.isCompressed = isCompressed;
|
|
26
24
|
this.blockType = blockType;
|
|
27
25
|
this.featureCache = new AbortablePromiseCache({
|
|
28
26
|
cache: new QuickLRU({ maxSize: 1000 }),
|
|
29
27
|
fill: async (requestData, signal) => {
|
|
30
|
-
|
|
31
|
-
const off = requestData.offset;
|
|
32
|
-
const { buffer } = await this.bbi.read(Buffer.alloc(len), 0, len, off, {
|
|
28
|
+
return this.bbi.read(requestData.length, requestData.offset, {
|
|
33
29
|
signal,
|
|
34
30
|
});
|
|
35
|
-
return buffer;
|
|
36
31
|
},
|
|
37
32
|
});
|
|
38
33
|
if (!(cirTreeOffset >= 0)) {
|
|
@@ -41,22 +36,20 @@ export class BlockView {
|
|
|
41
36
|
}
|
|
42
37
|
async readWigData(chrName, start, end, observer, opts) {
|
|
43
38
|
try {
|
|
44
|
-
const { refsByName, bbi, cirTreeOffset
|
|
39
|
+
const { refsByName, bbi, cirTreeOffset } = this;
|
|
45
40
|
const chrId = refsByName[chrName];
|
|
46
41
|
if (chrId === undefined) {
|
|
47
42
|
observer.complete();
|
|
48
43
|
}
|
|
49
44
|
const request = { chrId, start, end };
|
|
50
45
|
if (!this.cirTreePromise) {
|
|
51
|
-
this.cirTreePromise = bbi.read(
|
|
46
|
+
this.cirTreePromise = bbi.read(48, cirTreeOffset, opts);
|
|
52
47
|
}
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
: buffer.readUInt32LE(4);
|
|
48
|
+
const buffer = await this.cirTreePromise;
|
|
49
|
+
const dataView = new DataView(buffer.buffer);
|
|
50
|
+
const cirBlockSize = dataView.getUint32(4, true);
|
|
57
51
|
let blocksToFetch = [];
|
|
58
52
|
let outstanding = 0;
|
|
59
|
-
const le = true;
|
|
60
53
|
const cirFobRecur2 = (cirBlockData, offset2, level) => {
|
|
61
54
|
try {
|
|
62
55
|
const data = cirBlockData.subarray(offset2);
|
|
@@ -65,22 +58,22 @@ export class BlockView {
|
|
|
65
58
|
let offset = 0;
|
|
66
59
|
const isLeaf = dataView.getUint8(offset);
|
|
67
60
|
offset += 2; // 1 skip
|
|
68
|
-
const cnt = dataView.getUint16(offset,
|
|
61
|
+
const cnt = dataView.getUint16(offset, true);
|
|
69
62
|
offset += 2;
|
|
70
63
|
if (isLeaf === 1) {
|
|
71
64
|
const blocksToFetch2 = [];
|
|
72
65
|
for (let i = 0; i < cnt; i++) {
|
|
73
|
-
const startChrom = dataView.getUint32(offset,
|
|
66
|
+
const startChrom = dataView.getUint32(offset, true);
|
|
74
67
|
offset += 4;
|
|
75
|
-
const startBase = dataView.getUint32(offset,
|
|
68
|
+
const startBase = dataView.getUint32(offset, true);
|
|
76
69
|
offset += 4;
|
|
77
|
-
const endChrom = dataView.getUint32(offset,
|
|
70
|
+
const endChrom = dataView.getUint32(offset, true);
|
|
78
71
|
offset += 4;
|
|
79
|
-
const endBase = dataView.getUint32(offset,
|
|
72
|
+
const endBase = dataView.getUint32(offset, true);
|
|
80
73
|
offset += 4;
|
|
81
|
-
const blockOffset = Number(dataView.getBigUint64(offset,
|
|
74
|
+
const blockOffset = Number(dataView.getBigUint64(offset, true));
|
|
82
75
|
offset += 8;
|
|
83
|
-
const blockSize = Number(dataView.getBigUint64(offset,
|
|
76
|
+
const blockSize = Number(dataView.getBigUint64(offset, true));
|
|
84
77
|
offset += 8;
|
|
85
78
|
blocksToFetch2.push({
|
|
86
79
|
startChrom,
|
|
@@ -102,15 +95,15 @@ export class BlockView {
|
|
|
102
95
|
else if (isLeaf === 0) {
|
|
103
96
|
const recurOffsets = [];
|
|
104
97
|
for (let i = 0; i < cnt; i++) {
|
|
105
|
-
const startChrom = dataView.getUint32(offset,
|
|
98
|
+
const startChrom = dataView.getUint32(offset, true);
|
|
106
99
|
offset += 4;
|
|
107
|
-
const startBase = dataView.getUint32(offset,
|
|
100
|
+
const startBase = dataView.getUint32(offset, true);
|
|
108
101
|
offset += 4;
|
|
109
|
-
const endChrom = dataView.getUint32(offset,
|
|
102
|
+
const endChrom = dataView.getUint32(offset, true);
|
|
110
103
|
offset += 4;
|
|
111
|
-
const endBase = dataView.getUint32(offset,
|
|
104
|
+
const endBase = dataView.getUint32(offset, true);
|
|
112
105
|
offset += 4;
|
|
113
|
-
const blockOffset = Number(dataView.getBigUint64(offset,
|
|
106
|
+
const blockOffset = Number(dataView.getBigUint64(offset, true));
|
|
114
107
|
offset += 8;
|
|
115
108
|
recurOffsets.push({
|
|
116
109
|
startChrom,
|
|
@@ -142,7 +135,7 @@ export class BlockView {
|
|
|
142
135
|
try {
|
|
143
136
|
const length = fr.max - fr.min;
|
|
144
137
|
const offset = fr.min;
|
|
145
|
-
const resultBuffer = await this.featureCache.get(`${length}_${offset}`, { length, offset }, opts
|
|
138
|
+
const resultBuffer = await this.featureCache.get(`${length}_${offset}`, { length, offset }, opts?.signal);
|
|
146
139
|
for (const element of off) {
|
|
147
140
|
if (fr.contains(element)) {
|
|
148
141
|
cirFobRecur2(resultBuffer, element - offset, level);
|
|
@@ -237,19 +230,17 @@ export class BlockView {
|
|
|
237
230
|
return features;
|
|
238
231
|
}
|
|
239
232
|
parseBigBedBlock(data, startOffset, offset, request) {
|
|
240
|
-
var _a;
|
|
241
233
|
const items = [];
|
|
242
234
|
let currOffset = startOffset;
|
|
243
|
-
const le = true;
|
|
244
235
|
const b = data;
|
|
245
236
|
const dataView = new DataView(b.buffer, b.byteOffset, b.length);
|
|
246
237
|
while (currOffset < data.byteLength) {
|
|
247
238
|
const c2 = currOffset;
|
|
248
|
-
const chromId = dataView.getUint32(currOffset,
|
|
239
|
+
const chromId = dataView.getUint32(currOffset, true);
|
|
249
240
|
currOffset += 4;
|
|
250
|
-
const start = dataView.getInt32(currOffset,
|
|
241
|
+
const start = dataView.getInt32(currOffset, true);
|
|
251
242
|
currOffset += 4;
|
|
252
|
-
const end = dataView.getInt32(currOffset,
|
|
243
|
+
const end = dataView.getInt32(currOffset, true);
|
|
253
244
|
currOffset += 4;
|
|
254
245
|
let i = currOffset;
|
|
255
246
|
for (; i < data.length; i++) {
|
|
@@ -258,7 +249,7 @@ export class BlockView {
|
|
|
258
249
|
}
|
|
259
250
|
}
|
|
260
251
|
const b = data.subarray(currOffset, i);
|
|
261
|
-
const rest =
|
|
252
|
+
const rest = decoder?.decode(b) ?? b.toString();
|
|
262
253
|
currOffset = i + 1;
|
|
263
254
|
items.push({
|
|
264
255
|
chromId,
|
|
@@ -349,24 +340,22 @@ export class BlockView {
|
|
|
349
340
|
const data = await this.featureCache.get(`${length}_${offset}`, blockGroup, signal);
|
|
350
341
|
for (const block of blockGroup.blocks) {
|
|
351
342
|
checkAbortSignal(signal);
|
|
352
|
-
let
|
|
353
|
-
let resultData = data;
|
|
343
|
+
let resultData = data.subarray(Number(block.offset) - Number(blockGroup.offset));
|
|
354
344
|
if (isCompressed) {
|
|
355
|
-
resultData = unzip(
|
|
356
|
-
blockOffset = 0;
|
|
345
|
+
resultData = unzip(resultData);
|
|
357
346
|
}
|
|
358
347
|
checkAbortSignal(signal);
|
|
359
348
|
switch (blockType) {
|
|
360
349
|
case 'summary': {
|
|
361
|
-
observer.next(this.parseSummaryBlock(resultData,
|
|
350
|
+
observer.next(this.parseSummaryBlock(resultData, 0, request));
|
|
362
351
|
break;
|
|
363
352
|
}
|
|
364
353
|
case 'bigwig': {
|
|
365
|
-
observer.next(this.parseBigWigBlock(resultData,
|
|
354
|
+
observer.next(this.parseBigWigBlock(resultData, 0, request));
|
|
366
355
|
break;
|
|
367
356
|
}
|
|
368
357
|
case 'bigbed': {
|
|
369
|
-
observer.next(this.parseBigBedBlock(resultData,
|
|
358
|
+
observer.next(this.parseBigBedBlock(resultData, 0, Number(block.offset) * (1 << 8), request));
|
|
370
359
|
break;
|
|
371
360
|
}
|
|
372
361
|
default: {
|
package/esm/block-view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-view.js","sourceRoot":"","sources":["../src/block-view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"block-view.js","sourceRoot":"","sources":["../src/block-view.ts"],"names":[],"mappings":"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"}
|
package/esm/unzip-pako.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function unzip(input: Buffer): Uint8Array;
|
|
1
|
+
export declare function unzip(input: Uint8Array): Uint8Array;
|
package/esm/unzip-pako.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unzip-pako.js","sourceRoot":"","sources":["../src/unzip-pako.ts"],"names":[],"mappings":"
|
|
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,KAAiB;IACrC,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gmod/bbi",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "Parser for BigWig/BigBed files",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "GMOD/bbi-js",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"format": "prettier",
|
|
26
26
|
"clean": "rimraf dist esm",
|
|
27
27
|
"prebuild": "npm run clean",
|
|
28
|
-
"build:esm": "tsc --
|
|
29
|
-
"build:es5": "tsc --
|
|
28
|
+
"build:esm": "tsc --outDir esm",
|
|
29
|
+
"build:es5": "tsc --module commonjs --outDir dist",
|
|
30
30
|
"build": "npm run build:esm && npm run build:es5",
|
|
31
31
|
"preversion": "npm run lint && npm test run && npm run build",
|
|
32
32
|
"version": "standard-changelog && git add CHANGELOG.md",
|
|
@@ -42,22 +42,20 @@
|
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@gmod/abortable-promise-cache": "^2.0.0",
|
|
45
|
-
"
|
|
46
|
-
"generic-filehandle": "^3.0.0",
|
|
45
|
+
"generic-filehandle2": "^0.0.1",
|
|
47
46
|
"pako": "^2.0.0",
|
|
48
47
|
"quick-lru": "^4.0.0",
|
|
49
48
|
"rxjs": "^7.8.0"
|
|
50
49
|
},
|
|
51
50
|
"devDependencies": {
|
|
52
51
|
"@gmod/bed": "^2.1.2",
|
|
53
|
-
"@types/jest": "^29.5.12",
|
|
54
52
|
"@types/node": "^20.11.16",
|
|
55
53
|
"@types/pako": "^2.0.0",
|
|
56
54
|
"@typescript-eslint/eslint-plugin": "^8.4.0",
|
|
57
55
|
"@typescript-eslint/parser": "^8.4.0",
|
|
58
56
|
"@vitest/coverage-v8": "^2.0.5",
|
|
59
57
|
"eslint": "^9.9.1",
|
|
60
|
-
"eslint-plugin-unicorn": "^
|
|
58
|
+
"eslint-plugin-unicorn": "^56.0.0",
|
|
61
59
|
"prettier": "^3.2.5",
|
|
62
60
|
"rimraf": "^6.0.1",
|
|
63
61
|
"standard-changelog": "^6.0.0",
|
package/src/bbi.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LocalFile, RemoteFile, GenericFilehandle } from 'generic-filehandle'
|
|
1
|
+
import { LocalFile, RemoteFile, GenericFilehandle } from 'generic-filehandle2'
|
|
3
2
|
import { firstValueFrom, Observable } from 'rxjs'
|
|
4
3
|
import { toArray } from 'rxjs/operators'
|
|
5
4
|
import { BlockView } from './block-view'
|
|
@@ -7,7 +6,7 @@ import { BlockView } from './block-view'
|
|
|
7
6
|
const BIG_WIG_MAGIC = -2003829722
|
|
8
7
|
const BIG_BED_MAGIC = -2021002517
|
|
9
8
|
|
|
10
|
-
interface ZoomLevel {
|
|
9
|
+
export interface ZoomLevel {
|
|
11
10
|
reductionLevel: number
|
|
12
11
|
reserved: number
|
|
13
12
|
dataOffset: number
|
|
@@ -27,7 +26,7 @@ export interface Feature {
|
|
|
27
26
|
uniqueId?: string // for bigbed contains uniqueId calculated from file offset
|
|
28
27
|
field?: number // used in bigbed searching
|
|
29
28
|
}
|
|
30
|
-
interface Statistics {
|
|
29
|
+
export interface Statistics {
|
|
31
30
|
scoreSum: number
|
|
32
31
|
basesCovered: number
|
|
33
32
|
scoreSumSquares: number
|
|
@@ -35,7 +34,7 @@ interface Statistics {
|
|
|
35
34
|
scoreMax: number
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
interface RefInfo {
|
|
37
|
+
export interface RefInfo {
|
|
39
38
|
name: string
|
|
40
39
|
id: number
|
|
41
40
|
length: number
|
|
@@ -57,7 +56,6 @@ export interface MainHeader {
|
|
|
57
56
|
uncompressBufSize: number
|
|
58
57
|
chromTreeOffset: number
|
|
59
58
|
extHeaderOffset: number
|
|
60
|
-
isBigEndian: boolean
|
|
61
59
|
fileType: string
|
|
62
60
|
}
|
|
63
61
|
export interface Header extends MainHeader {
|
|
@@ -71,6 +69,11 @@ export interface RequestOptions {
|
|
|
71
69
|
[key: string]: unknown
|
|
72
70
|
}
|
|
73
71
|
|
|
72
|
+
export interface RequestOptions2 extends RequestOptions {
|
|
73
|
+
scale?: number
|
|
74
|
+
basesPerSpan?: number
|
|
75
|
+
}
|
|
76
|
+
|
|
74
77
|
export abstract class BBI {
|
|
75
78
|
protected bbi: GenericFilehandle
|
|
76
79
|
|
|
@@ -89,8 +92,7 @@ export abstract class BBI {
|
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
/*
|
|
92
|
-
* @param filehandle - a filehandle from generic-
|
|
93
|
-
* something similar to the node10 fs.promises API
|
|
95
|
+
* @param filehandle - a filehandle from generic-filehandle2
|
|
94
96
|
*
|
|
95
97
|
* @param path - a Local file path as a string
|
|
96
98
|
*
|
|
@@ -121,58 +123,57 @@ export abstract class BBI {
|
|
|
121
123
|
private async _getHeader(opts?: RequestOptions) {
|
|
122
124
|
const header = await this._getMainHeader(opts)
|
|
123
125
|
const chroms = await this._readChromTree(header, opts)
|
|
124
|
-
return {
|
|
126
|
+
return {
|
|
127
|
+
...header,
|
|
128
|
+
...chroms,
|
|
129
|
+
}
|
|
125
130
|
}
|
|
126
131
|
|
|
127
132
|
private async _getMainHeader(
|
|
128
133
|
opts?: RequestOptions,
|
|
129
134
|
requestSize = 2000,
|
|
130
135
|
): Promise<MainHeader> {
|
|
131
|
-
const
|
|
132
|
-
const { buffer } = await this.bbi.read(
|
|
133
|
-
Buffer.alloc(requestSize),
|
|
134
|
-
0,
|
|
135
|
-
requestSize,
|
|
136
|
-
0,
|
|
137
|
-
opts,
|
|
138
|
-
)
|
|
139
|
-
const isBigEndian = this._isBigEndian(buffer)
|
|
140
|
-
const b = buffer
|
|
136
|
+
const b = await this.bbi.read(requestSize, 0, opts)
|
|
141
137
|
const dataView = new DataView(b.buffer, b.byteOffset, b.length)
|
|
138
|
+
|
|
139
|
+
const r1 = dataView.getInt32(0, true)
|
|
140
|
+
if (r1 !== BIG_WIG_MAGIC && r1 !== BIG_BED_MAGIC) {
|
|
141
|
+
throw new Error('not a BigWig/BigBed file')
|
|
142
|
+
}
|
|
142
143
|
let offset = 0
|
|
143
|
-
const magic = dataView.getInt32(offset,
|
|
144
|
+
const magic = dataView.getInt32(offset, true)
|
|
144
145
|
offset += 4
|
|
145
|
-
const version = dataView.getUint16(offset,
|
|
146
|
+
const version = dataView.getUint16(offset, true)
|
|
146
147
|
offset += 2
|
|
147
|
-
const numZoomLevels = dataView.getUint16(offset,
|
|
148
|
+
const numZoomLevels = dataView.getUint16(offset, true)
|
|
148
149
|
offset += 2
|
|
149
|
-
const chromTreeOffset = Number(dataView.getBigUint64(offset,
|
|
150
|
+
const chromTreeOffset = Number(dataView.getBigUint64(offset, true))
|
|
150
151
|
offset += 8
|
|
151
|
-
const unzoomedDataOffset = Number(dataView.getBigUint64(offset,
|
|
152
|
+
const unzoomedDataOffset = Number(dataView.getBigUint64(offset, true))
|
|
152
153
|
offset += 8
|
|
153
|
-
const unzoomedIndexOffset = Number(dataView.getBigUint64(offset,
|
|
154
|
+
const unzoomedIndexOffset = Number(dataView.getBigUint64(offset, true))
|
|
154
155
|
offset += 8
|
|
155
|
-
const fieldCount = dataView.getUint16(offset,
|
|
156
|
+
const fieldCount = dataView.getUint16(offset, true)
|
|
156
157
|
offset += 2
|
|
157
|
-
const definedFieldCount = dataView.getUint16(offset,
|
|
158
|
+
const definedFieldCount = dataView.getUint16(offset, true)
|
|
158
159
|
offset += 2
|
|
159
|
-
const asOffset = Number(dataView.getBigUint64(offset,
|
|
160
|
+
const asOffset = Number(dataView.getBigUint64(offset, true))
|
|
160
161
|
offset += 8
|
|
161
|
-
const totalSummaryOffset = Number(dataView.getBigUint64(offset,
|
|
162
|
+
const totalSummaryOffset = Number(dataView.getBigUint64(offset, true))
|
|
162
163
|
offset += 8
|
|
163
|
-
const uncompressBufSize = dataView.getUint32(offset,
|
|
164
|
+
const uncompressBufSize = dataView.getUint32(offset, true)
|
|
164
165
|
offset += 4
|
|
165
|
-
const extHeaderOffset = Number(dataView.getBigUint64(offset,
|
|
166
|
+
const extHeaderOffset = Number(dataView.getBigUint64(offset, true))
|
|
166
167
|
offset += 8
|
|
167
168
|
const zoomLevels = [] as ZoomLevel[]
|
|
168
169
|
for (let i = 0; i < numZoomLevels; i++) {
|
|
169
|
-
const reductionLevel = dataView.getUint32(offset,
|
|
170
|
+
const reductionLevel = dataView.getUint32(offset, true)
|
|
170
171
|
offset += 4
|
|
171
|
-
const reserved = dataView.getUint32(offset,
|
|
172
|
+
const reserved = dataView.getUint32(offset, true)
|
|
172
173
|
offset += 4
|
|
173
|
-
const dataOffset = Number(dataView.getBigUint64(offset,
|
|
174
|
+
const dataOffset = Number(dataView.getBigUint64(offset, true))
|
|
174
175
|
offset += 8
|
|
175
|
-
const indexOffset = Number(dataView.getBigUint64(offset,
|
|
176
|
+
const indexOffset = Number(dataView.getBigUint64(offset, true))
|
|
176
177
|
offset += 8
|
|
177
178
|
zoomLevels.push({ reductionLevel, reserved, dataOffset, indexOffset })
|
|
178
179
|
}
|
|
@@ -187,18 +188,18 @@ export abstract class BBI {
|
|
|
187
188
|
|
|
188
189
|
let totalSummary: Statistics
|
|
189
190
|
if (totalSummaryOffset) {
|
|
190
|
-
const
|
|
191
|
+
const b2 = b.subarray(Number(totalSummaryOffset))
|
|
191
192
|
let offset = 0
|
|
192
|
-
const dataView = new DataView(
|
|
193
|
-
const basesCovered = Number(dataView.getBigUint64(offset,
|
|
193
|
+
const dataView = new DataView(b2.buffer, b2.byteOffset, b2.length)
|
|
194
|
+
const basesCovered = Number(dataView.getBigUint64(offset, true))
|
|
194
195
|
offset += 8
|
|
195
|
-
const scoreMin = dataView.getFloat64(offset,
|
|
196
|
+
const scoreMin = dataView.getFloat64(offset, true)
|
|
196
197
|
offset += 8
|
|
197
|
-
const scoreMax = dataView.getFloat64(offset,
|
|
198
|
+
const scoreMax = dataView.getFloat64(offset, true)
|
|
198
199
|
offset += 8
|
|
199
|
-
const scoreSum = dataView.getFloat64(offset,
|
|
200
|
+
const scoreSum = dataView.getFloat64(offset, true)
|
|
200
201
|
offset += 8
|
|
201
|
-
const scoreSumSquares = dataView.getFloat64(offset,
|
|
202
|
+
const scoreSumSquares = dataView.getFloat64(offset, true)
|
|
202
203
|
offset += 8
|
|
203
204
|
|
|
204
205
|
totalSummary = {
|
|
@@ -211,6 +212,7 @@ export abstract class BBI {
|
|
|
211
212
|
} else {
|
|
212
213
|
throw new Error('no stats')
|
|
213
214
|
}
|
|
215
|
+
const decoder = new TextDecoder('utf8')
|
|
214
216
|
|
|
215
217
|
return {
|
|
216
218
|
zoomLevels,
|
|
@@ -228,36 +230,17 @@ export abstract class BBI {
|
|
|
228
230
|
unzoomedIndexOffset,
|
|
229
231
|
fileType,
|
|
230
232
|
version,
|
|
231
|
-
isBigEndian,
|
|
232
233
|
autoSql: asOffset
|
|
233
|
-
?
|
|
234
|
+
? decoder.decode(b.subarray(asOffset, b.indexOf(0, asOffset)))
|
|
234
235
|
: '',
|
|
235
236
|
}
|
|
236
237
|
}
|
|
237
238
|
|
|
238
|
-
private _isBigEndian(buffer: Buffer) {
|
|
239
|
-
let ret = buffer.readInt32LE(0)
|
|
240
|
-
if (ret === BIG_WIG_MAGIC || ret === BIG_BED_MAGIC) {
|
|
241
|
-
return false
|
|
242
|
-
}
|
|
243
|
-
ret = buffer.readInt32BE(0)
|
|
244
|
-
if (ret === BIG_WIG_MAGIC || ret === BIG_BED_MAGIC) {
|
|
245
|
-
return true
|
|
246
|
-
}
|
|
247
|
-
throw new Error('not a BigWig/BigBed file')
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
// todo: add progress if long running
|
|
251
239
|
private async _readChromTree(
|
|
252
240
|
header: MainHeader,
|
|
253
241
|
opts?: { signal?: AbortSignal },
|
|
254
242
|
) {
|
|
255
|
-
const
|
|
256
|
-
const le = !isBE
|
|
257
|
-
const refsByNumber: Record<
|
|
258
|
-
number,
|
|
259
|
-
{ name: string; id: number; length: number }
|
|
260
|
-
> = []
|
|
243
|
+
const refsByNumber: Record<number, RefInfo> = []
|
|
261
244
|
const refsByName: Record<string, number> = {}
|
|
262
245
|
|
|
263
246
|
let unzoomedDataOffset = header.unzoomedDataOffset
|
|
@@ -266,60 +249,56 @@ export abstract class BBI {
|
|
|
266
249
|
unzoomedDataOffset += 1
|
|
267
250
|
}
|
|
268
251
|
const off = unzoomedDataOffset - chromTreeOffset
|
|
269
|
-
const
|
|
270
|
-
Buffer.alloc(off),
|
|
271
|
-
0,
|
|
272
|
-
off,
|
|
273
|
-
Number(chromTreeOffset),
|
|
274
|
-
opts,
|
|
275
|
-
)
|
|
252
|
+
const b = await this.bbi.read(off, Number(chromTreeOffset), opts)
|
|
276
253
|
|
|
277
|
-
const b = buffer
|
|
278
254
|
const dataView = new DataView(b.buffer, b.byteOffset, b.length)
|
|
279
255
|
let offset = 0
|
|
280
|
-
// const magic = dataView.getUint32(offset,
|
|
256
|
+
// const magic = dataView.getUint32(offset, true)
|
|
281
257
|
offset += 4
|
|
282
|
-
// const blockSize = dataView.getUint32(offset,
|
|
258
|
+
// const blockSize = dataView.getUint32(offset, true)
|
|
283
259
|
offset += 4
|
|
284
|
-
const keySize = dataView.getUint32(offset,
|
|
260
|
+
const keySize = dataView.getUint32(offset, true)
|
|
285
261
|
offset += 4
|
|
286
|
-
// const valSize = dataView.getUint32(offset,
|
|
262
|
+
// const valSize = dataView.getUint32(offset, true)
|
|
287
263
|
offset += 4
|
|
288
|
-
// const itemCount = dataView.getBigUint64(offset,
|
|
264
|
+
// const itemCount = dataView.getBigUint64(offset, true)
|
|
289
265
|
offset += 8
|
|
290
266
|
|
|
291
267
|
const rootNodeOffset = 32
|
|
268
|
+
const decoder = new TextDecoder('utf8')
|
|
292
269
|
const bptReadNode = async (currentOffset: number) => {
|
|
293
270
|
let offset = currentOffset
|
|
294
|
-
if (offset >=
|
|
271
|
+
if (offset >= b.length) {
|
|
295
272
|
throw new Error('reading beyond end of buffer')
|
|
296
273
|
}
|
|
297
274
|
const isLeafNode = dataView.getUint8(offset)
|
|
298
275
|
offset += 2 //skip 1
|
|
299
|
-
const cnt = dataView.getUint16(offset,
|
|
276
|
+
const cnt = dataView.getUint16(offset, true)
|
|
300
277
|
offset += 2
|
|
301
278
|
if (isLeafNode) {
|
|
302
279
|
for (let n = 0; n < cnt; n++) {
|
|
303
|
-
const key =
|
|
304
|
-
.subarray(offset, offset + keySize)
|
|
305
|
-
.toString()
|
|
280
|
+
const key = decoder
|
|
281
|
+
.decode(b.subarray(offset, offset + keySize))
|
|
306
282
|
.replaceAll('\0', '')
|
|
307
283
|
offset += keySize
|
|
308
|
-
const refId = dataView.getUint32(offset,
|
|
284
|
+
const refId = dataView.getUint32(offset, true)
|
|
309
285
|
offset += 4
|
|
310
|
-
const refSize = dataView.getUint32(offset,
|
|
286
|
+
const refSize = dataView.getUint32(offset, true)
|
|
311
287
|
offset += 4
|
|
312
288
|
|
|
313
|
-
const refRec = { name: key, id: refId, length: refSize }
|
|
314
289
|
refsByName[this.renameRefSeqs(key)] = refId
|
|
315
|
-
refsByNumber[refId] =
|
|
290
|
+
refsByNumber[refId] = {
|
|
291
|
+
name: key,
|
|
292
|
+
id: refId,
|
|
293
|
+
length: refSize,
|
|
294
|
+
}
|
|
316
295
|
}
|
|
317
296
|
} else {
|
|
318
297
|
// parse index node
|
|
319
298
|
const nextNodes = []
|
|
320
299
|
for (let n = 0; n < cnt; n++) {
|
|
321
300
|
offset += keySize
|
|
322
|
-
const childOffset = Number(dataView.getBigUint64(offset,
|
|
301
|
+
const childOffset = Number(dataView.getBigUint64(offset, true))
|
|
323
302
|
offset += 8
|
|
324
303
|
nextNodes.push(
|
|
325
304
|
bptReadNode(Number(childOffset) - Number(chromTreeOffset)),
|
|
@@ -340,18 +319,12 @@ export abstract class BBI {
|
|
|
340
319
|
* @param abortSignal - a signal to optionally abort this operation
|
|
341
320
|
*/
|
|
342
321
|
protected async getUnzoomedView(opts?: RequestOptions) {
|
|
343
|
-
const {
|
|
344
|
-
|
|
345
|
-
refsByName,
|
|
346
|
-
uncompressBufSize,
|
|
347
|
-
isBigEndian,
|
|
348
|
-
fileType,
|
|
349
|
-
} = await this.getHeader(opts)
|
|
322
|
+
const { unzoomedIndexOffset, refsByName, uncompressBufSize, fileType } =
|
|
323
|
+
await this.getHeader(opts)
|
|
350
324
|
return new BlockView(
|
|
351
325
|
this.bbi,
|
|
352
326
|
refsByName,
|
|
353
327
|
unzoomedIndexOffset,
|
|
354
|
-
isBigEndian,
|
|
355
328
|
uncompressBufSize > 0,
|
|
356
329
|
fileType,
|
|
357
330
|
)
|
|
@@ -369,15 +342,19 @@ export abstract class BBI {
|
|
|
369
342
|
* Gets features from a BigWig file
|
|
370
343
|
*
|
|
371
344
|
* @param refName - The chromosome name
|
|
345
|
+
*
|
|
372
346
|
* @param start - The start of a region
|
|
347
|
+
*
|
|
373
348
|
* @param end - The end of a region
|
|
374
|
-
*
|
|
349
|
+
*
|
|
350
|
+
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair)
|
|
351
|
+
* or scale used to infer the zoomLevel to use
|
|
375
352
|
*/
|
|
376
353
|
public async getFeatureStream(
|
|
377
354
|
refName: string,
|
|
378
355
|
start: number,
|
|
379
356
|
end: number,
|
|
380
|
-
opts?:
|
|
357
|
+
opts?: RequestOptions2,
|
|
381
358
|
) {
|
|
382
359
|
await this.getHeader(opts)
|
|
383
360
|
const chrName = this.renameRefSeqs(refName)
|
|
@@ -405,7 +382,7 @@ export abstract class BBI {
|
|
|
405
382
|
refName: string,
|
|
406
383
|
start: number,
|
|
407
384
|
end: number,
|
|
408
|
-
opts?:
|
|
385
|
+
opts?: RequestOptions2,
|
|
409
386
|
) {
|
|
410
387
|
const ob = await this.getFeatureStream(refName, start, end, opts)
|
|
411
388
|
|