@gmod/bbi 7.1.0 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +59 -0
- package/dist/bbi.d.ts +13 -3
- package/dist/bbi.js +80 -17
- package/dist/bbi.js.map +1 -1
- package/dist/bigbed.d.ts +14 -2
- package/dist/bigbed.js +116 -76
- package/dist/bigbed.js.map +1 -1
- package/dist/bigwig.js +1 -2
- package/dist/bigwig.js.map +1 -1
- package/dist/block-view.d.ts +13 -4
- package/dist/block-view.js +324 -148
- package/dist/block-view.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/parse-bigwig.d.ts +3 -0
- package/dist/parse-bigwig.js +15 -0
- package/dist/parse-bigwig.js.map +1 -0
- package/dist/range.js +11 -24
- package/dist/range.js.map +1 -1
- package/dist/types.d.ts +14 -2
- package/dist/unzip.d.ts +18 -1
- package/dist/unzip.js +33 -4
- package/dist/unzip.js.map +1 -1
- package/dist/util.d.ts +2 -4
- package/dist/util.js +6 -5
- package/dist/util.js.map +1 -1
- package/dist/wasm/inflate-wasm-inlined.d.ts +18 -0
- package/dist/wasm/inflate-wasm-inlined.js +455 -0
- package/dist/wasm/inflate-wasm-inlined.js.map +1 -0
- package/dist/wasm/inflate_wasm.d.ts +1 -0
- package/dist/wasm/inflate_wasm.js +43 -0
- package/dist/wasm/inflate_wasm.js.map +1 -0
- package/dist/wasm/inflate_wasm_bg.d.ts +68 -0
- package/dist/wasm/inflate_wasm_bg.js +307 -0
- package/dist/wasm/inflate_wasm_bg.js.map +1 -0
- package/esm/bbi.d.ts +13 -3
- package/esm/bbi.js +80 -17
- package/esm/bbi.js.map +1 -1
- package/esm/bigbed.d.ts +14 -2
- package/esm/bigbed.js +116 -76
- package/esm/bigbed.js.map +1 -1
- package/esm/bigwig.js +1 -2
- package/esm/bigwig.js.map +1 -1
- package/esm/block-view.d.ts +13 -4
- package/esm/block-view.js +326 -150
- package/esm/block-view.js.map +1 -1
- package/esm/index.d.ts +2 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/parse-bigwig.d.ts +3 -0
- package/esm/parse-bigwig.js +12 -0
- package/esm/parse-bigwig.js.map +1 -0
- package/esm/range.js +11 -24
- package/esm/range.js.map +1 -1
- package/esm/types.d.ts +14 -2
- package/esm/unzip.d.ts +18 -1
- package/esm/unzip.js +30 -3
- package/esm/unzip.js.map +1 -1
- package/esm/util.d.ts +2 -4
- package/esm/util.js +6 -5
- package/esm/util.js.map +1 -1
- package/esm/wasm/inflate-wasm-inlined.d.ts +18 -0
- package/esm/wasm/inflate-wasm-inlined.js +449 -0
- package/esm/wasm/inflate-wasm-inlined.js.map +1 -0
- package/esm/wasm/inflate_wasm.d.ts +1 -0
- package/esm/wasm/inflate_wasm.js +5 -0
- package/esm/wasm/inflate_wasm.js.map +1 -0
- package/esm/wasm/inflate_wasm_bg.d.ts +68 -0
- package/esm/wasm/inflate_wasm_bg.js +296 -0
- package/esm/wasm/inflate_wasm_bg.js.map +1 -0
- package/package.json +17 -12
- package/src/bbi.ts +102 -20
- package/src/bigbed.ts +157 -80
- package/src/bigwig.ts +1 -2
- package/src/block-view.ts +418 -156
- package/src/index.ts +8 -1
- package/src/parse-bigwig.ts +19 -0
- package/src/range.ts +13 -21
- package/src/types.ts +19 -2
- package/src/unzip.ts +86 -3
- package/src/util.ts +9 -10
- package/src/wasm/inflate-wasm-inlined.d.ts +49 -0
- package/src/wasm/inflate-wasm-inlined.js +547 -0
- package/src/wasm/inflate_wasm.d.ts +35 -0
- package/src/wasm/inflate_wasm.js +4 -0
- package/src/wasm/inflate_wasm_bg.js +309 -0
- package/src/wasm/inflate_wasm_bg.wasm +0 -0
- package/src/wasm/inflate_wasm_bg.wasm.d.ts +13 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const wasm = __importStar(require("./inflate_wasm_bg.wasm"));
|
|
40
|
+
__exportStar(require("./inflate_wasm_bg.js"), exports);
|
|
41
|
+
const inflate_wasm_bg_js_1 = require("./inflate_wasm_bg.js");
|
|
42
|
+
(0, inflate_wasm_bg_js_1.__wbg_set_wasm)(wasm);
|
|
43
|
+
//# sourceMappingURL=inflate_wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inflate_wasm.js","sourceRoot":"","sources":["../../src/wasm/inflate_wasm.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA+C;AAC/C,uDAAqC;AACrC,6DAAsD;AACtD,IAAA,mCAAc,EAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export function __wbg_set_wasm(val: any): void;
|
|
2
|
+
/**
|
|
3
|
+
* Combined decompress + parse for BigWig blocks
|
|
4
|
+
* Returns same format as parse_bigwig_block but handles multiple compressed blocks
|
|
5
|
+
* @param {Uint8Array} inputs
|
|
6
|
+
* @param {Uint32Array} input_offsets
|
|
7
|
+
* @param {Uint32Array} input_lengths
|
|
8
|
+
* @param {number} max_block_size
|
|
9
|
+
* @param {number} req_start
|
|
10
|
+
* @param {number} req_end
|
|
11
|
+
* @returns {Uint8Array}
|
|
12
|
+
*/
|
|
13
|
+
export function decompress_and_parse_bigwig(inputs: Uint8Array, input_offsets: Uint32Array, input_lengths: Uint32Array, max_block_size: number, req_start: number, req_end: number): Uint8Array;
|
|
14
|
+
/**
|
|
15
|
+
* Combined decompress + parse for summary blocks
|
|
16
|
+
* @param {Uint8Array} inputs
|
|
17
|
+
* @param {Uint32Array} input_offsets
|
|
18
|
+
* @param {Uint32Array} input_lengths
|
|
19
|
+
* @param {number} max_block_size
|
|
20
|
+
* @param {number} req_chr_id
|
|
21
|
+
* @param {number} req_start
|
|
22
|
+
* @param {number} req_end
|
|
23
|
+
* @returns {Uint8Array}
|
|
24
|
+
*/
|
|
25
|
+
export function decompress_and_parse_summary(inputs: Uint8Array, input_offsets: Uint32Array, input_lengths: Uint32Array, max_block_size: number, req_chr_id: number, req_start: number, req_end: number): Uint8Array;
|
|
26
|
+
/**
|
|
27
|
+
* @param {Uint8Array} input
|
|
28
|
+
* @param {number} output_size
|
|
29
|
+
* @returns {Uint8Array}
|
|
30
|
+
*/
|
|
31
|
+
export function inflate_raw(input: Uint8Array, output_size: number): Uint8Array;
|
|
32
|
+
/**
|
|
33
|
+
* @param {Uint8Array} inputs
|
|
34
|
+
* @param {Uint32Array} input_offsets
|
|
35
|
+
* @param {Uint32Array} input_lengths
|
|
36
|
+
* @param {number} max_block_size
|
|
37
|
+
* @returns {Uint8Array}
|
|
38
|
+
*/
|
|
39
|
+
export function inflate_raw_batch(inputs: Uint8Array, input_offsets: Uint32Array, input_lengths: Uint32Array, max_block_size: number): Uint8Array;
|
|
40
|
+
/**
|
|
41
|
+
* @param {Uint8Array} input
|
|
42
|
+
* @returns {Uint8Array}
|
|
43
|
+
*/
|
|
44
|
+
export function inflate_raw_unknown_size(input: Uint8Array): Uint8Array;
|
|
45
|
+
/**
|
|
46
|
+
* Parse a BigWig data block and return packed typed arrays
|
|
47
|
+
* Block types: 1 = bedGraph, 2 = varstep, 3 = fixedstep
|
|
48
|
+
*
|
|
49
|
+
* Returns packed binary: [count: u32][starts: i32*count][ends: i32*count][scores: f32*count]
|
|
50
|
+
* @param {Uint8Array} data
|
|
51
|
+
* @param {number} req_start
|
|
52
|
+
* @param {number} req_end
|
|
53
|
+
* @returns {Uint8Array}
|
|
54
|
+
*/
|
|
55
|
+
export function parse_bigwig_block(data: Uint8Array, req_start: number, req_end: number): Uint8Array;
|
|
56
|
+
/**
|
|
57
|
+
* Parse a BigWig summary block and return packed typed arrays
|
|
58
|
+
* Summary blocks contain: chromId, start, end, validCnt, minScore, maxScore, sumData, sumSqData
|
|
59
|
+
*
|
|
60
|
+
* Returns: [count: u32][starts: i32*n][ends: i32*n][scores: f32*n][minScores: f32*n][maxScores: f32*n]
|
|
61
|
+
* @param {Uint8Array} data
|
|
62
|
+
* @param {number} req_chr_id
|
|
63
|
+
* @param {number} req_start
|
|
64
|
+
* @param {number} req_end
|
|
65
|
+
* @returns {Uint8Array}
|
|
66
|
+
*/
|
|
67
|
+
export function parse_summary_block(data: Uint8Array, req_chr_id: number, req_start: number, req_end: number): Uint8Array;
|
|
68
|
+
export function __wbg_Error_52673b7de5a0ca89(arg0: any, arg1: any): number;
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.__wbg_set_wasm = __wbg_set_wasm;
|
|
4
|
+
exports.decompress_and_parse_bigwig = decompress_and_parse_bigwig;
|
|
5
|
+
exports.decompress_and_parse_summary = decompress_and_parse_summary;
|
|
6
|
+
exports.inflate_raw = inflate_raw;
|
|
7
|
+
exports.inflate_raw_batch = inflate_raw_batch;
|
|
8
|
+
exports.inflate_raw_unknown_size = inflate_raw_unknown_size;
|
|
9
|
+
exports.parse_bigwig_block = parse_bigwig_block;
|
|
10
|
+
exports.parse_summary_block = parse_summary_block;
|
|
11
|
+
exports.__wbg_Error_52673b7de5a0ca89 = __wbg_Error_52673b7de5a0ca89;
|
|
12
|
+
let wasm;
|
|
13
|
+
function __wbg_set_wasm(val) {
|
|
14
|
+
wasm = val;
|
|
15
|
+
}
|
|
16
|
+
function addHeapObject(obj) {
|
|
17
|
+
if (heap_next === heap.length)
|
|
18
|
+
heap.push(heap.length + 1);
|
|
19
|
+
const idx = heap_next;
|
|
20
|
+
heap_next = heap[idx];
|
|
21
|
+
heap[idx] = obj;
|
|
22
|
+
return idx;
|
|
23
|
+
}
|
|
24
|
+
function dropObject(idx) {
|
|
25
|
+
if (idx < 132)
|
|
26
|
+
return;
|
|
27
|
+
heap[idx] = heap_next;
|
|
28
|
+
heap_next = idx;
|
|
29
|
+
}
|
|
30
|
+
function getArrayU8FromWasm0(ptr, len) {
|
|
31
|
+
ptr = ptr >>> 0;
|
|
32
|
+
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
33
|
+
}
|
|
34
|
+
let cachedDataViewMemory0 = null;
|
|
35
|
+
function getDataViewMemory0() {
|
|
36
|
+
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
|
|
37
|
+
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
|
|
38
|
+
}
|
|
39
|
+
return cachedDataViewMemory0;
|
|
40
|
+
}
|
|
41
|
+
function getStringFromWasm0(ptr, len) {
|
|
42
|
+
ptr = ptr >>> 0;
|
|
43
|
+
return decodeText(ptr, len);
|
|
44
|
+
}
|
|
45
|
+
let cachedUint32ArrayMemory0 = null;
|
|
46
|
+
function getUint32ArrayMemory0() {
|
|
47
|
+
if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
|
|
48
|
+
cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
|
|
49
|
+
}
|
|
50
|
+
return cachedUint32ArrayMemory0;
|
|
51
|
+
}
|
|
52
|
+
let cachedUint8ArrayMemory0 = null;
|
|
53
|
+
function getUint8ArrayMemory0() {
|
|
54
|
+
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
55
|
+
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
|
|
56
|
+
}
|
|
57
|
+
return cachedUint8ArrayMemory0;
|
|
58
|
+
}
|
|
59
|
+
function getObject(idx) { return heap[idx]; }
|
|
60
|
+
let heap = new Array(128).fill(undefined);
|
|
61
|
+
heap.push(undefined, null, true, false);
|
|
62
|
+
let heap_next = heap.length;
|
|
63
|
+
function passArray32ToWasm0(arg, malloc) {
|
|
64
|
+
const ptr = malloc(arg.length * 4, 4) >>> 0;
|
|
65
|
+
getUint32ArrayMemory0().set(arg, ptr / 4);
|
|
66
|
+
WASM_VECTOR_LEN = arg.length;
|
|
67
|
+
return ptr;
|
|
68
|
+
}
|
|
69
|
+
function passArray8ToWasm0(arg, malloc) {
|
|
70
|
+
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
|
71
|
+
getUint8ArrayMemory0().set(arg, ptr / 1);
|
|
72
|
+
WASM_VECTOR_LEN = arg.length;
|
|
73
|
+
return ptr;
|
|
74
|
+
}
|
|
75
|
+
function takeObject(idx) {
|
|
76
|
+
const ret = getObject(idx);
|
|
77
|
+
dropObject(idx);
|
|
78
|
+
return ret;
|
|
79
|
+
}
|
|
80
|
+
let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
|
81
|
+
cachedTextDecoder.decode();
|
|
82
|
+
const MAX_SAFARI_DECODE_BYTES = 2146435072;
|
|
83
|
+
let numBytesDecoded = 0;
|
|
84
|
+
function decodeText(ptr, len) {
|
|
85
|
+
numBytesDecoded += len;
|
|
86
|
+
if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
|
|
87
|
+
cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
|
88
|
+
cachedTextDecoder.decode();
|
|
89
|
+
numBytesDecoded = len;
|
|
90
|
+
}
|
|
91
|
+
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
|
|
92
|
+
}
|
|
93
|
+
let WASM_VECTOR_LEN = 0;
|
|
94
|
+
/**
|
|
95
|
+
* Combined decompress + parse for BigWig blocks
|
|
96
|
+
* Returns same format as parse_bigwig_block but handles multiple compressed blocks
|
|
97
|
+
* @param {Uint8Array} inputs
|
|
98
|
+
* @param {Uint32Array} input_offsets
|
|
99
|
+
* @param {Uint32Array} input_lengths
|
|
100
|
+
* @param {number} max_block_size
|
|
101
|
+
* @param {number} req_start
|
|
102
|
+
* @param {number} req_end
|
|
103
|
+
* @returns {Uint8Array}
|
|
104
|
+
*/
|
|
105
|
+
function decompress_and_parse_bigwig(inputs, input_offsets, input_lengths, max_block_size, req_start, req_end) {
|
|
106
|
+
try {
|
|
107
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
108
|
+
const ptr0 = passArray8ToWasm0(inputs, wasm.__wbindgen_export);
|
|
109
|
+
const len0 = WASM_VECTOR_LEN;
|
|
110
|
+
const ptr1 = passArray32ToWasm0(input_offsets, wasm.__wbindgen_export);
|
|
111
|
+
const len1 = WASM_VECTOR_LEN;
|
|
112
|
+
const ptr2 = passArray32ToWasm0(input_lengths, wasm.__wbindgen_export);
|
|
113
|
+
const len2 = WASM_VECTOR_LEN;
|
|
114
|
+
wasm.decompress_and_parse_bigwig(retptr, ptr0, len0, ptr1, len1, ptr2, len2, max_block_size, req_start, req_end);
|
|
115
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
116
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
117
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
118
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
119
|
+
if (r3) {
|
|
120
|
+
throw takeObject(r2);
|
|
121
|
+
}
|
|
122
|
+
var v4 = getArrayU8FromWasm0(r0, r1).slice();
|
|
123
|
+
wasm.__wbindgen_export2(r0, r1 * 1, 1);
|
|
124
|
+
return v4;
|
|
125
|
+
}
|
|
126
|
+
finally {
|
|
127
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Combined decompress + parse for summary blocks
|
|
132
|
+
* @param {Uint8Array} inputs
|
|
133
|
+
* @param {Uint32Array} input_offsets
|
|
134
|
+
* @param {Uint32Array} input_lengths
|
|
135
|
+
* @param {number} max_block_size
|
|
136
|
+
* @param {number} req_chr_id
|
|
137
|
+
* @param {number} req_start
|
|
138
|
+
* @param {number} req_end
|
|
139
|
+
* @returns {Uint8Array}
|
|
140
|
+
*/
|
|
141
|
+
function decompress_and_parse_summary(inputs, input_offsets, input_lengths, max_block_size, req_chr_id, req_start, req_end) {
|
|
142
|
+
try {
|
|
143
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
144
|
+
const ptr0 = passArray8ToWasm0(inputs, wasm.__wbindgen_export);
|
|
145
|
+
const len0 = WASM_VECTOR_LEN;
|
|
146
|
+
const ptr1 = passArray32ToWasm0(input_offsets, wasm.__wbindgen_export);
|
|
147
|
+
const len1 = WASM_VECTOR_LEN;
|
|
148
|
+
const ptr2 = passArray32ToWasm0(input_lengths, wasm.__wbindgen_export);
|
|
149
|
+
const len2 = WASM_VECTOR_LEN;
|
|
150
|
+
wasm.decompress_and_parse_summary(retptr, ptr0, len0, ptr1, len1, ptr2, len2, max_block_size, req_chr_id, req_start, req_end);
|
|
151
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
152
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
153
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
154
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
155
|
+
if (r3) {
|
|
156
|
+
throw takeObject(r2);
|
|
157
|
+
}
|
|
158
|
+
var v4 = getArrayU8FromWasm0(r0, r1).slice();
|
|
159
|
+
wasm.__wbindgen_export2(r0, r1 * 1, 1);
|
|
160
|
+
return v4;
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* @param {Uint8Array} input
|
|
168
|
+
* @param {number} output_size
|
|
169
|
+
* @returns {Uint8Array}
|
|
170
|
+
*/
|
|
171
|
+
function inflate_raw(input, output_size) {
|
|
172
|
+
try {
|
|
173
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
174
|
+
const ptr0 = passArray8ToWasm0(input, wasm.__wbindgen_export);
|
|
175
|
+
const len0 = WASM_VECTOR_LEN;
|
|
176
|
+
wasm.inflate_raw(retptr, ptr0, len0, output_size);
|
|
177
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
178
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
179
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
180
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
181
|
+
if (r3) {
|
|
182
|
+
throw takeObject(r2);
|
|
183
|
+
}
|
|
184
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
185
|
+
wasm.__wbindgen_export2(r0, r1 * 1, 1);
|
|
186
|
+
return v2;
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* @param {Uint8Array} inputs
|
|
194
|
+
* @param {Uint32Array} input_offsets
|
|
195
|
+
* @param {Uint32Array} input_lengths
|
|
196
|
+
* @param {number} max_block_size
|
|
197
|
+
* @returns {Uint8Array}
|
|
198
|
+
*/
|
|
199
|
+
function inflate_raw_batch(inputs, input_offsets, input_lengths, max_block_size) {
|
|
200
|
+
try {
|
|
201
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
202
|
+
const ptr0 = passArray8ToWasm0(inputs, wasm.__wbindgen_export);
|
|
203
|
+
const len0 = WASM_VECTOR_LEN;
|
|
204
|
+
const ptr1 = passArray32ToWasm0(input_offsets, wasm.__wbindgen_export);
|
|
205
|
+
const len1 = WASM_VECTOR_LEN;
|
|
206
|
+
const ptr2 = passArray32ToWasm0(input_lengths, wasm.__wbindgen_export);
|
|
207
|
+
const len2 = WASM_VECTOR_LEN;
|
|
208
|
+
wasm.inflate_raw_batch(retptr, ptr0, len0, ptr1, len1, ptr2, len2, max_block_size);
|
|
209
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
210
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
211
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
212
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
213
|
+
if (r3) {
|
|
214
|
+
throw takeObject(r2);
|
|
215
|
+
}
|
|
216
|
+
var v4 = getArrayU8FromWasm0(r0, r1).slice();
|
|
217
|
+
wasm.__wbindgen_export2(r0, r1 * 1, 1);
|
|
218
|
+
return v4;
|
|
219
|
+
}
|
|
220
|
+
finally {
|
|
221
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* @param {Uint8Array} input
|
|
226
|
+
* @returns {Uint8Array}
|
|
227
|
+
*/
|
|
228
|
+
function inflate_raw_unknown_size(input) {
|
|
229
|
+
try {
|
|
230
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
231
|
+
const ptr0 = passArray8ToWasm0(input, wasm.__wbindgen_export);
|
|
232
|
+
const len0 = WASM_VECTOR_LEN;
|
|
233
|
+
wasm.inflate_raw_unknown_size(retptr, ptr0, len0);
|
|
234
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
235
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
236
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
237
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
238
|
+
if (r3) {
|
|
239
|
+
throw takeObject(r2);
|
|
240
|
+
}
|
|
241
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
242
|
+
wasm.__wbindgen_export2(r0, r1 * 1, 1);
|
|
243
|
+
return v2;
|
|
244
|
+
}
|
|
245
|
+
finally {
|
|
246
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Parse a BigWig data block and return packed typed arrays
|
|
251
|
+
* Block types: 1 = bedGraph, 2 = varstep, 3 = fixedstep
|
|
252
|
+
*
|
|
253
|
+
* Returns packed binary: [count: u32][starts: i32*count][ends: i32*count][scores: f32*count]
|
|
254
|
+
* @param {Uint8Array} data
|
|
255
|
+
* @param {number} req_start
|
|
256
|
+
* @param {number} req_end
|
|
257
|
+
* @returns {Uint8Array}
|
|
258
|
+
*/
|
|
259
|
+
function parse_bigwig_block(data, req_start, req_end) {
|
|
260
|
+
try {
|
|
261
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
262
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
|
|
263
|
+
const len0 = WASM_VECTOR_LEN;
|
|
264
|
+
wasm.parse_bigwig_block(retptr, ptr0, len0, req_start, req_end);
|
|
265
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
266
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
267
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
268
|
+
wasm.__wbindgen_export2(r0, r1 * 1, 1);
|
|
269
|
+
return v2;
|
|
270
|
+
}
|
|
271
|
+
finally {
|
|
272
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Parse a BigWig summary block and return packed typed arrays
|
|
277
|
+
* Summary blocks contain: chromId, start, end, validCnt, minScore, maxScore, sumData, sumSqData
|
|
278
|
+
*
|
|
279
|
+
* Returns: [count: u32][starts: i32*n][ends: i32*n][scores: f32*n][minScores: f32*n][maxScores: f32*n]
|
|
280
|
+
* @param {Uint8Array} data
|
|
281
|
+
* @param {number} req_chr_id
|
|
282
|
+
* @param {number} req_start
|
|
283
|
+
* @param {number} req_end
|
|
284
|
+
* @returns {Uint8Array}
|
|
285
|
+
*/
|
|
286
|
+
function parse_summary_block(data, req_chr_id, req_start, req_end) {
|
|
287
|
+
try {
|
|
288
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
289
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
|
|
290
|
+
const len0 = WASM_VECTOR_LEN;
|
|
291
|
+
wasm.parse_summary_block(retptr, ptr0, len0, req_chr_id, req_start, req_end);
|
|
292
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
293
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
294
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
295
|
+
wasm.__wbindgen_export2(r0, r1 * 1, 1);
|
|
296
|
+
return v2;
|
|
297
|
+
}
|
|
298
|
+
finally {
|
|
299
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
function __wbg_Error_52673b7de5a0ca89(arg0, arg1) {
|
|
303
|
+
const ret = Error(getStringFromWasm0(arg0, arg1));
|
|
304
|
+
return addHeapObject(ret);
|
|
305
|
+
}
|
|
306
|
+
;
|
|
307
|
+
//# sourceMappingURL=inflate_wasm_bg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inflate_wasm_bg.js","sourceRoot":"","sources":["../../src/wasm/inflate_wasm_bg.js"],"names":[],"mappings":"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"}
|
package/esm/bbi.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { BlockView } from './block-view.ts';
|
|
3
|
-
import type { BigWigHeaderWithRefNames, Feature, RequestOptions2, RequestOptions } from './types.ts';
|
|
3
|
+
import type { BigWigFeatureArrays, BigWigHeaderWithRefNames, Feature, RequestOptions2, RequestOptions, SummaryFeatureArrays } from './types.ts';
|
|
4
4
|
import type { GenericFilehandle } from 'generic-filehandle2';
|
|
5
5
|
export declare abstract class BBI {
|
|
6
6
|
protected bbi: GenericFilehandle;
|
|
@@ -15,7 +15,7 @@ export declare abstract class BBI {
|
|
|
15
15
|
});
|
|
16
16
|
private _getHeader;
|
|
17
17
|
private _getMainHeader;
|
|
18
|
-
private
|
|
18
|
+
private _readChromosomeTree;
|
|
19
19
|
protected getUnzoomedView(opts?: RequestOptions): Promise<BlockView>;
|
|
20
20
|
protected abstract getView(scale: number, opts?: RequestOptions): Promise<BlockView>;
|
|
21
21
|
/**
|
|
@@ -31,5 +31,15 @@ export declare abstract class BBI {
|
|
|
31
31
|
* or scale used to infer the zoomLevel to use
|
|
32
32
|
*/
|
|
33
33
|
getFeatureStream(refName: string, start: number, end: number, opts?: RequestOptions2): Promise<Observable<Feature[]>>;
|
|
34
|
-
getFeatures(refName: string, start: number, end: number, opts?: RequestOptions2): Promise<
|
|
34
|
+
getFeatures(refName: string, start: number, end: number, opts?: RequestOptions2): Promise<any[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Gets features from a BigWig file as typed arrays (more efficient than getFeatures)
|
|
37
|
+
*
|
|
38
|
+
* @param refName - The chromosome name
|
|
39
|
+
* @param start - The start of a region
|
|
40
|
+
* @param end - The end of a region
|
|
41
|
+
* @param opts - Options including basesPerSpan or scale
|
|
42
|
+
* @returns Promise with typed arrays: starts, ends, scores (and minScores/maxScores for summary data)
|
|
43
|
+
*/
|
|
44
|
+
getFeaturesAsArrays(refName: string, start: number, end: number, opts?: RequestOptions2): Promise<BigWigFeatureArrays | SummaryFeatureArrays>;
|
|
35
45
|
}
|
package/esm/bbi.js
CHANGED
|
@@ -4,6 +4,7 @@ import { toArray } from 'rxjs/operators';
|
|
|
4
4
|
import { BlockView } from "./block-view.js";
|
|
5
5
|
const BIG_WIG_MAGIC = -2003829722;
|
|
6
6
|
const BIG_BED_MAGIC = -2021002517;
|
|
7
|
+
const decoder = new TextDecoder('utf8');
|
|
7
8
|
function getDataView(buffer) {
|
|
8
9
|
return new DataView(buffer.buffer, buffer.byteOffset, buffer.length);
|
|
9
10
|
}
|
|
@@ -48,7 +49,7 @@ export class BBI {
|
|
|
48
49
|
}
|
|
49
50
|
async _getHeader(opts) {
|
|
50
51
|
const header = await this._getMainHeader(opts);
|
|
51
|
-
const chroms = await this.
|
|
52
|
+
const chroms = await this._readChromosomeTree(header, opts);
|
|
52
53
|
return {
|
|
53
54
|
...header,
|
|
54
55
|
...chroms,
|
|
@@ -68,7 +69,8 @@ export class BBI {
|
|
|
68
69
|
offset += 2;
|
|
69
70
|
const numZoomLevels = dataView.getUint16(offset, true);
|
|
70
71
|
offset += 2;
|
|
71
|
-
|
|
72
|
+
// Offset to the B+ tree that maps chromosome names to integer IDs
|
|
73
|
+
const chromosomeTreeOffset = Number(dataView.getBigUint64(offset, true));
|
|
72
74
|
offset += 8;
|
|
73
75
|
const unzoomedDataOffset = Number(dataView.getBigUint64(offset, true));
|
|
74
76
|
offset += 8;
|
|
@@ -135,7 +137,6 @@ export class BBI {
|
|
|
135
137
|
else {
|
|
136
138
|
throw new Error('no stats');
|
|
137
139
|
}
|
|
138
|
-
const decoder = new TextDecoder('utf8');
|
|
139
140
|
return {
|
|
140
141
|
zoomLevels,
|
|
141
142
|
magic,
|
|
@@ -146,7 +147,7 @@ export class BBI {
|
|
|
146
147
|
definedFieldCount,
|
|
147
148
|
uncompressBufSize,
|
|
148
149
|
asOffset,
|
|
149
|
-
|
|
150
|
+
chromosomeTreeOffset,
|
|
150
151
|
totalSummaryOffset,
|
|
151
152
|
unzoomedDataOffset,
|
|
152
153
|
unzoomedIndexOffset,
|
|
@@ -157,11 +158,14 @@ export class BBI {
|
|
|
157
158
|
: '',
|
|
158
159
|
};
|
|
159
160
|
}
|
|
160
|
-
|
|
161
|
+
// Reads the B+ tree that maps chromosome names to integer IDs
|
|
162
|
+
// This is part of the "cirTree" (combined ID R-tree) structure, which uses
|
|
163
|
+
// integer chromosome IDs instead of strings for more efficient spatial indexing
|
|
164
|
+
async _readChromosomeTree(header, opts) {
|
|
161
165
|
const refsByNumber = [];
|
|
162
166
|
const refsByName = {};
|
|
163
|
-
const
|
|
164
|
-
const dataView = getDataView(await this.bbi.read(32,
|
|
167
|
+
const chromosomeTreeOffset = header.chromosomeTreeOffset;
|
|
168
|
+
const dataView = getDataView(await this.bbi.read(32, chromosomeTreeOffset, opts));
|
|
165
169
|
let offset = 0;
|
|
166
170
|
// const magic = dataView.getUint32(offset, true) // unused
|
|
167
171
|
offset += 4;
|
|
@@ -173,8 +177,8 @@ export class BBI {
|
|
|
173
177
|
offset += 4;
|
|
174
178
|
// const itemCount = dataView.getBigUint64(offset, true) // unused
|
|
175
179
|
offset += 8;
|
|
176
|
-
|
|
177
|
-
const
|
|
180
|
+
// Recursively traverses the B+ tree to populate chromosome name-to-ID mappings
|
|
181
|
+
const readBPlusTreeNode = async (currentOffset) => {
|
|
178
182
|
const b = await this.bbi.read(4, currentOffset);
|
|
179
183
|
const dataView = getDataView(b);
|
|
180
184
|
let offset = 0;
|
|
@@ -184,14 +188,17 @@ export class BBI {
|
|
|
184
188
|
offset += 1;
|
|
185
189
|
const count = dataView.getUint16(offset, true);
|
|
186
190
|
offset += 2;
|
|
191
|
+
// Leaf nodes contain the actual chromosome name-to-ID mappings
|
|
187
192
|
if (isLeafNode) {
|
|
188
193
|
const b = await this.bbi.read(count * (keySize + valSize), currentOffset + offset);
|
|
189
194
|
const dataView = getDataView(b);
|
|
190
195
|
offset = 0;
|
|
191
196
|
for (let n = 0; n < count; n++) {
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
197
|
+
const keyEnd = b.indexOf(0, offset);
|
|
198
|
+
const effectiveKeyEnd = keyEnd !== -1 && keyEnd < offset + keySize
|
|
199
|
+
? keyEnd
|
|
200
|
+
: offset + keySize;
|
|
201
|
+
const key = decoder.decode(b.subarray(offset, effectiveKeyEnd));
|
|
195
202
|
offset += keySize;
|
|
196
203
|
const refId = dataView.getUint32(offset, true);
|
|
197
204
|
offset += 4;
|
|
@@ -206,6 +213,7 @@ export class BBI {
|
|
|
206
213
|
}
|
|
207
214
|
}
|
|
208
215
|
else {
|
|
216
|
+
// Non-leaf nodes contain pointers to child nodes
|
|
209
217
|
const nextNodes = [];
|
|
210
218
|
const dataView = getDataView(await this.bbi.read(count * (keySize + 8), currentOffset + offset));
|
|
211
219
|
offset = 0;
|
|
@@ -213,12 +221,12 @@ export class BBI {
|
|
|
213
221
|
offset += keySize;
|
|
214
222
|
const childOffset = Number(dataView.getBigUint64(offset, true));
|
|
215
223
|
offset += 8;
|
|
216
|
-
nextNodes.push(
|
|
224
|
+
nextNodes.push(readBPlusTreeNode(childOffset));
|
|
217
225
|
}
|
|
218
226
|
await Promise.all(nextNodes);
|
|
219
227
|
}
|
|
220
228
|
};
|
|
221
|
-
await
|
|
229
|
+
await readBPlusTreeNode(chromosomeTreeOffset + 32);
|
|
222
230
|
return {
|
|
223
231
|
refsByName,
|
|
224
232
|
refsByNumber,
|
|
@@ -230,7 +238,7 @@ export class BBI {
|
|
|
230
238
|
*/
|
|
231
239
|
async getUnzoomedView(opts) {
|
|
232
240
|
const { unzoomedIndexOffset, refsByName, uncompressBufSize, fileType } = await this.getHeader(opts);
|
|
233
|
-
return new BlockView(this.bbi, refsByName, unzoomedIndexOffset, uncompressBufSize
|
|
241
|
+
return new BlockView(this.bbi, refsByName, unzoomedIndexOffset, uncompressBufSize, fileType);
|
|
234
242
|
}
|
|
235
243
|
/**
|
|
236
244
|
* Gets features from a BigWig file
|
|
@@ -268,8 +276,63 @@ export class BBI {
|
|
|
268
276
|
}
|
|
269
277
|
async getFeatures(refName, start, end, opts) {
|
|
270
278
|
const ob = await this.getFeatureStream(refName, start, end, opts);
|
|
271
|
-
const
|
|
272
|
-
|
|
279
|
+
const arrays = await firstValueFrom(ob.pipe(toArray()));
|
|
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;
|
|
289
|
+
}
|
|
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
|
+
async getFeaturesAsArrays(refName, start, end, opts) {
|
|
300
|
+
const features = await this.getFeatures(refName, start, end, opts);
|
|
301
|
+
const count = features.length;
|
|
302
|
+
if (count === 0) {
|
|
303
|
+
return {
|
|
304
|
+
starts: new Int32Array(0),
|
|
305
|
+
ends: new Int32Array(0),
|
|
306
|
+
scores: new Float32Array(0),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
const hasSummary = features[0]?.summary === true;
|
|
310
|
+
if (hasSummary) {
|
|
311
|
+
const starts = new Int32Array(count);
|
|
312
|
+
const ends = new Int32Array(count);
|
|
313
|
+
const scores = new Float32Array(count);
|
|
314
|
+
const minScores = new Float32Array(count);
|
|
315
|
+
const maxScores = new Float32Array(count);
|
|
316
|
+
for (let i = 0; i < count; i++) {
|
|
317
|
+
const f = features[i];
|
|
318
|
+
starts[i] = f.start;
|
|
319
|
+
ends[i] = f.end;
|
|
320
|
+
scores[i] = f.score ?? 0;
|
|
321
|
+
minScores[i] = f.minScore ?? 0;
|
|
322
|
+
maxScores[i] = f.maxScore ?? 0;
|
|
323
|
+
}
|
|
324
|
+
return { starts, ends, scores, minScores, maxScores };
|
|
325
|
+
}
|
|
326
|
+
const starts = new Int32Array(count);
|
|
327
|
+
const ends = new Int32Array(count);
|
|
328
|
+
const scores = new Float32Array(count);
|
|
329
|
+
for (let i = 0; i < count; i++) {
|
|
330
|
+
const f = features[i];
|
|
331
|
+
starts[i] = f.start;
|
|
332
|
+
ends[i] = f.end;
|
|
333
|
+
scores[i] = f.score ?? 0;
|
|
334
|
+
}
|
|
335
|
+
return { starts, ends, scores };
|
|
273
336
|
}
|
|
274
337
|
}
|
|
275
338
|
//# sourceMappingURL=bbi.js.map
|