@gmod/bbi 7.0.5 → 8.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 +8 -0
- package/README.md +59 -0
- package/dist/bbi.d.ts +13 -3
- package/dist/bbi.js +81 -18
- package/dist/bbi.js.map +1 -1
- package/dist/bigbed.d.ts +14 -2
- package/dist/bigbed.js +127 -86
- 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 +332 -150
- 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 +12 -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 +7 -5
- package/dist/util.js.map +1 -1
- package/dist/wasm/inflate-wasm-inlined.d.ts +19 -0
- package/dist/wasm/inflate-wasm-inlined.js +117 -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 +81 -18
- package/esm/bbi.js.map +1 -1
- package/esm/bigbed.d.ts +14 -2
- package/esm/bigbed.js +127 -86
- 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 +334 -152
- 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 +12 -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 +7 -5
- package/esm/util.js.map +1 -1
- package/esm/wasm/inflate-wasm-inlined.d.ts +19 -0
- package/esm/wasm/inflate-wasm-inlined.js +111 -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 +21 -17
- package/src/bbi.ts +101 -21
- package/src/bigbed.ts +165 -83
- package/src/bigwig.ts +1 -2
- package/src/block-view.ts +415 -158
- 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 +88 -3
- package/src/util.ts +9 -10
- package/src/wasm/inflate-wasm-inlined.d.ts +49 -0
- package/src/wasm/inflate-wasm-inlined.js +1 -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
package/src/index.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import './bigint-polyfill/polyfill.ts'
|
|
2
2
|
export { BigWig } from './bigwig.ts'
|
|
3
3
|
export { BigBed } from './bigbed.ts'
|
|
4
|
-
export
|
|
4
|
+
export { parseBigWig } from './parse-bigwig.ts'
|
|
5
|
+
export type {
|
|
6
|
+
BigWigFeatureArrays,
|
|
7
|
+
BigWigHeader,
|
|
8
|
+
Feature,
|
|
9
|
+
RequestOptions,
|
|
10
|
+
SummaryFeatureArrays,
|
|
11
|
+
} from './types.ts'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { BigWig } from './bigwig.ts'
|
|
2
|
+
import type { Feature, RequestOptions2 } from './types.ts'
|
|
3
|
+
|
|
4
|
+
export async function parseBigWig(
|
|
5
|
+
bigwig: BigWig,
|
|
6
|
+
opts?: RequestOptions2,
|
|
7
|
+
): Promise<Feature[]> {
|
|
8
|
+
const header = await bigwig.getHeader(opts)
|
|
9
|
+
const allFeatures: Feature[] = []
|
|
10
|
+
|
|
11
|
+
for (const ref of Object.values(header.refsByNumber)) {
|
|
12
|
+
const features = await bigwig.getFeatures(ref.name, 0, ref.length, opts)
|
|
13
|
+
for (const feature of features) {
|
|
14
|
+
allFeatures.push(feature)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return allFeatures
|
|
19
|
+
}
|
package/src/range.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class Range {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
get min() {
|
|
18
|
-
return this.ranges[0]
|
|
18
|
+
return this.ranges[0]!.min
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
get max() {
|
|
@@ -36,7 +36,7 @@ export default class Range {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
public getRanges() {
|
|
39
|
-
return this.ranges.map(r => new Range([
|
|
39
|
+
return this.ranges.map(r => new Range([r]))
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
public toString(): string {
|
|
@@ -44,32 +44,24 @@ export default class Range {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
public union(s1: Range) {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
return -1
|
|
50
|
-
} else if (a.min > b.min) {
|
|
51
|
-
return 1
|
|
52
|
-
} else if (a.max < b.max) {
|
|
53
|
-
return -1
|
|
54
|
-
} else if (b.max > a.max) {
|
|
55
|
-
return 1
|
|
56
|
-
} else {
|
|
57
|
-
return 0
|
|
58
|
-
}
|
|
47
|
+
const allRanges = [...this.ranges, ...s1.ranges].sort((a, b) => {
|
|
48
|
+
return a.min !== b.min ? a.min - b.min : a.max - b.max
|
|
59
49
|
})
|
|
60
|
-
const oranges = [] as Range[]
|
|
61
|
-
let current = ranges[0]
|
|
62
50
|
|
|
63
|
-
|
|
51
|
+
const merged: IRange[] = []
|
|
52
|
+
let current = allRanges[0]!
|
|
53
|
+
|
|
54
|
+
for (let i = 1; i < allRanges.length; i++) {
|
|
55
|
+
const nxt = allRanges[i]!
|
|
64
56
|
if (nxt.min > current.max + 1) {
|
|
65
|
-
|
|
57
|
+
merged.push(current)
|
|
66
58
|
current = nxt
|
|
67
59
|
} else if (nxt.max > current.max) {
|
|
68
|
-
current =
|
|
60
|
+
current = { min: current.min, max: nxt.max }
|
|
69
61
|
}
|
|
70
62
|
}
|
|
71
|
-
|
|
63
|
+
merged.push(current)
|
|
72
64
|
|
|
73
|
-
return
|
|
65
|
+
return new Range(merged)
|
|
74
66
|
}
|
|
75
67
|
}
|
package/src/types.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface ZoomLevel {
|
|
|
7
7
|
|
|
8
8
|
export interface Feature {
|
|
9
9
|
offset?: number
|
|
10
|
-
chromId
|
|
10
|
+
chromId?: number
|
|
11
11
|
start: number
|
|
12
12
|
end: number
|
|
13
13
|
score?: number
|
|
@@ -46,7 +46,10 @@ export interface BigWigHeader {
|
|
|
46
46
|
unzoomedDataOffset: number
|
|
47
47
|
definedFieldCount: number
|
|
48
48
|
uncompressBufSize: number
|
|
49
|
-
|
|
49
|
+
// Offset to the B+ tree that maps chromosome names to integer IDs.
|
|
50
|
+
// This is part of the "cirTree" (combined ID R-tree) - a structure that
|
|
51
|
+
// combines a B+ tree for chromosome names with an R-tree for spatial queries
|
|
52
|
+
chromosomeTreeOffset: number
|
|
50
53
|
extHeaderOffset: number
|
|
51
54
|
fileType: string
|
|
52
55
|
}
|
|
@@ -64,3 +67,17 @@ export interface RequestOptions2 extends RequestOptions {
|
|
|
64
67
|
scale?: number
|
|
65
68
|
basesPerSpan?: number
|
|
66
69
|
}
|
|
70
|
+
|
|
71
|
+
export interface BigWigFeatureArrays {
|
|
72
|
+
starts: Int32Array
|
|
73
|
+
ends: Int32Array
|
|
74
|
+
scores: Float32Array
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export interface SummaryFeatureArrays {
|
|
78
|
+
starts: Int32Array
|
|
79
|
+
ends: Int32Array
|
|
80
|
+
scores: Float32Array
|
|
81
|
+
minScores: Float32Array
|
|
82
|
+
maxScores: Float32Array
|
|
83
|
+
}
|
package/src/unzip.ts
CHANGED
|
@@ -1,5 +1,90 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
decompressAndParseBigWig,
|
|
3
|
+
decompressAndParseSummary,
|
|
4
|
+
inflateRawBatch,
|
|
5
|
+
} from './wasm/inflate-wasm-inlined.js'
|
|
2
6
|
|
|
3
|
-
|
|
4
|
-
|
|
7
|
+
import type {
|
|
8
|
+
BigWigFeatureArrays,
|
|
9
|
+
SummaryFeatureArrays,
|
|
10
|
+
} from './wasm/inflate-wasm-inlined.js'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
export interface UnzipBatchResult {
|
|
15
|
+
data: Uint8Array
|
|
16
|
+
offsets: number[]
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export async function unzipBatch(
|
|
20
|
+
data: Uint8Array,
|
|
21
|
+
blocks: { offset: number; length: number }[],
|
|
22
|
+
maxOutputSize: number,
|
|
23
|
+
): Promise<UnzipBatchResult> {
|
|
24
|
+
const inputOffsets = new Uint32Array(blocks.length)
|
|
25
|
+
const inputLengths = new Uint32Array(blocks.length)
|
|
26
|
+
|
|
27
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
28
|
+
const block = blocks[i]!
|
|
29
|
+
inputOffsets[i] = block.offset
|
|
30
|
+
inputLengths[i] = block.length
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return inflateRawBatch(data, inputOffsets, inputLengths, maxOutputSize)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export async function decompressAndParseBigWigBlocks(
|
|
37
|
+
data: Uint8Array,
|
|
38
|
+
blocks: { offset: number; length: number }[],
|
|
39
|
+
maxOutputSize: number,
|
|
40
|
+
reqStart: number,
|
|
41
|
+
reqEnd: number,
|
|
42
|
+
): Promise<BigWigFeatureArrays> {
|
|
43
|
+
const inputOffsets = new Uint32Array(blocks.length)
|
|
44
|
+
const inputLengths = new Uint32Array(blocks.length)
|
|
45
|
+
|
|
46
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
47
|
+
const block = blocks[i]!
|
|
48
|
+
inputOffsets[i] = block.offset
|
|
49
|
+
inputLengths[i] = block.length
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return decompressAndParseBigWig(
|
|
53
|
+
data,
|
|
54
|
+
inputOffsets,
|
|
55
|
+
inputLengths,
|
|
56
|
+
maxOutputSize,
|
|
57
|
+
reqStart,
|
|
58
|
+
reqEnd,
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export async function decompressAndParseSummaryBlocks(
|
|
63
|
+
data: Uint8Array,
|
|
64
|
+
blocks: { offset: number; length: number }[],
|
|
65
|
+
maxOutputSize: number,
|
|
66
|
+
reqChrId: number,
|
|
67
|
+
reqStart: number,
|
|
68
|
+
reqEnd: number,
|
|
69
|
+
): Promise<SummaryFeatureArrays> {
|
|
70
|
+
const inputOffsets = new Uint32Array(blocks.length)
|
|
71
|
+
const inputLengths = new Uint32Array(blocks.length)
|
|
72
|
+
|
|
73
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
74
|
+
const block = blocks[i]!
|
|
75
|
+
inputOffsets[i] = block.offset
|
|
76
|
+
inputLengths[i] = block.length
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return decompressAndParseSummary(
|
|
80
|
+
data,
|
|
81
|
+
inputOffsets,
|
|
82
|
+
inputLengths,
|
|
83
|
+
maxOutputSize,
|
|
84
|
+
reqChrId,
|
|
85
|
+
reqStart,
|
|
86
|
+
reqEnd,
|
|
87
|
+
)
|
|
5
88
|
}
|
|
89
|
+
|
|
90
|
+
export type { BigWigFeatureArrays, SummaryFeatureArrays } from './types.ts'
|
package/src/util.ts
CHANGED
|
@@ -21,19 +21,18 @@ export function groupBlocks(blocks: Block[]) {
|
|
|
21
21
|
let lastBlockEnd: number | undefined
|
|
22
22
|
for (const block of blocks) {
|
|
23
23
|
if (lastBlock && lastBlockEnd && block.offset - lastBlockEnd <= 2000) {
|
|
24
|
-
lastBlock.length =
|
|
25
|
-
lastBlock.length + block.length - lastBlockEnd + block.offset
|
|
24
|
+
lastBlock.length = block.offset + block.length - lastBlock.offset
|
|
26
25
|
lastBlock.blocks.push(block)
|
|
26
|
+
lastBlockEnd = block.offset + block.length
|
|
27
27
|
} else {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
lastBlock = {
|
|
29
|
+
blocks: [block],
|
|
30
|
+
length: block.length,
|
|
31
|
+
offset: block.offset,
|
|
32
|
+
}
|
|
33
|
+
blockGroups.push(lastBlock)
|
|
34
|
+
lastBlockEnd = block.offset + block.length
|
|
35
35
|
}
|
|
36
|
-
lastBlockEnd = lastBlock.offset + lastBlock.length
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
return blockGroups
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export function inflateRaw(
|
|
2
|
+
input: Uint8Array,
|
|
3
|
+
outputSize: number,
|
|
4
|
+
): Promise<Uint8Array>
|
|
5
|
+
export function inflateRawUnknownSize(input: Uint8Array): Promise<Uint8Array>
|
|
6
|
+
|
|
7
|
+
export interface BatchResult {
|
|
8
|
+
data: Uint8Array
|
|
9
|
+
offsets: number[]
|
|
10
|
+
}
|
|
11
|
+
export function inflateRawBatch(
|
|
12
|
+
inputs: Uint8Array,
|
|
13
|
+
inputOffsets: Uint32Array,
|
|
14
|
+
inputLengths: Uint32Array,
|
|
15
|
+
maxOutputSize: number,
|
|
16
|
+
): Promise<BatchResult>
|
|
17
|
+
|
|
18
|
+
export interface BigWigFeatureArrays {
|
|
19
|
+
starts: Int32Array
|
|
20
|
+
ends: Int32Array
|
|
21
|
+
scores: Float32Array
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface SummaryFeatureArrays {
|
|
25
|
+
starts: Int32Array
|
|
26
|
+
ends: Int32Array
|
|
27
|
+
scores: Float32Array
|
|
28
|
+
minScores: Float32Array
|
|
29
|
+
maxScores: Float32Array
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function decompressAndParseBigWig(
|
|
33
|
+
inputs: Uint8Array,
|
|
34
|
+
inputOffsets: Uint32Array,
|
|
35
|
+
inputLengths: Uint32Array,
|
|
36
|
+
maxBlockSize: number,
|
|
37
|
+
reqStart: number,
|
|
38
|
+
reqEnd: number,
|
|
39
|
+
): Promise<BigWigFeatureArrays>
|
|
40
|
+
|
|
41
|
+
export function decompressAndParseSummary(
|
|
42
|
+
inputs: Uint8Array,
|
|
43
|
+
inputOffsets: Uint32Array,
|
|
44
|
+
inputLengths: Uint32Array,
|
|
45
|
+
maxBlockSize: number,
|
|
46
|
+
reqChrId: number,
|
|
47
|
+
reqStart: number,
|
|
48
|
+
reqEnd: number,
|
|
49
|
+
): Promise<SummaryFeatureArrays>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var A={d:(Q,I)=>{for(var g in I)A.o(I,g)&&!A.o(Q,g)&&Object.defineProperty(Q,g,{enumerable:!0,get:I[g]})},o:(A,Q)=>Object.prototype.hasOwnProperty.call(A,Q),r:A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})}},Q={};let I;function g(A){I=A}function C(A,Q){return A>>>=0,o().subarray(A/1,A/1+Q)}A.r(Q),A.d(Q,{__wbg_Error_52673b7de5a0ca89:()=>K,__wbg_set_wasm:()=>g,decompress_and_parse_bigwig:()=>s,decompress_and_parse_summary:()=>Y,inflate_raw:()=>R,inflate_raw_batch:()=>c,inflate_raw_unknown_size:()=>U,parse_bigwig_block:()=>S,parse_summary_block:()=>L});let B=null;function E(){return(null===B||!0===B.buffer.detached||void 0===B.buffer.detached&&B.buffer!==I.memory.buffer)&&(B=new DataView(I.memory.buffer)),B}let D=null,i=null;function o(){return null!==i&&0!==i.byteLength||(i=new Uint8Array(I.memory.buffer)),i}let w=new Array(128).fill(void 0);w.push(void 0,null,!0,!1);let N=w.length;function G(A,Q){const g=Q(4*A.length,4)>>>0;return(null!==D&&0!==D.byteLength||(D=new Uint32Array(I.memory.buffer)),D).set(A,g/4),y=A.length,g}function F(A,Q){const I=Q(1*A.length,1)>>>0;return o().set(A,I/1),y=A.length,I}function h(A){const Q=function(A){return w[A]}(A);return function(A){A<132||(w[A]=N,N=A)}(A),Q}let k=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});k.decode();const J=2146435072;let a=0,y=0;function s(A,Q,g,B,D,i){try{const J=I.__wbindgen_add_to_stack_pointer(-16),a=F(A,I.__wbindgen_export),s=y,Y=G(Q,I.__wbindgen_export),R=y,c=G(g,I.__wbindgen_export),U=y;I.decompress_and_parse_bigwig(J,a,s,Y,R,c,U,B,D,i);var o=E().getInt32(J+0,!0),w=E().getInt32(J+4,!0),N=E().getInt32(J+8,!0);if(E().getInt32(J+12,!0))throw h(N);var k=C(o,w).slice();return I.__wbindgen_export2(o,1*w,1),k}finally{I.__wbindgen_add_to_stack_pointer(16)}}function Y(A,Q,g,B,D,i,o){try{const a=I.__wbindgen_add_to_stack_pointer(-16),s=F(A,I.__wbindgen_export),Y=y,R=G(Q,I.__wbindgen_export),c=y,U=G(g,I.__wbindgen_export),S=y;I.decompress_and_parse_summary(a,s,Y,R,c,U,S,B,D,i,o);var w=E().getInt32(a+0,!0),N=E().getInt32(a+4,!0),k=E().getInt32(a+8,!0);if(E().getInt32(a+12,!0))throw h(k);var J=C(w,N).slice();return I.__wbindgen_export2(w,1*N,1),J}finally{I.__wbindgen_add_to_stack_pointer(16)}}function R(A,Q){try{const o=I.__wbindgen_add_to_stack_pointer(-16),w=F(A,I.__wbindgen_export),N=y;I.inflate_raw(o,w,N,Q);var g=E().getInt32(o+0,!0),B=E().getInt32(o+4,!0),D=E().getInt32(o+8,!0);if(E().getInt32(o+12,!0))throw h(D);var i=C(g,B).slice();return I.__wbindgen_export2(g,1*B,1),i}finally{I.__wbindgen_add_to_stack_pointer(16)}}function c(A,Q,g,B){try{const N=I.__wbindgen_add_to_stack_pointer(-16),k=F(A,I.__wbindgen_export),J=y,a=G(Q,I.__wbindgen_export),s=y,Y=G(g,I.__wbindgen_export),R=y;I.inflate_raw_batch(N,k,J,a,s,Y,R,B);var D=E().getInt32(N+0,!0),i=E().getInt32(N+4,!0),o=E().getInt32(N+8,!0);if(E().getInt32(N+12,!0))throw h(o);var w=C(D,i).slice();return I.__wbindgen_export2(D,1*i,1),w}finally{I.__wbindgen_add_to_stack_pointer(16)}}function U(A){try{const i=I.__wbindgen_add_to_stack_pointer(-16),o=F(A,I.__wbindgen_export),w=y;I.inflate_raw_unknown_size(i,o,w);var Q=E().getInt32(i+0,!0),g=E().getInt32(i+4,!0),B=E().getInt32(i+8,!0);if(E().getInt32(i+12,!0))throw h(B);var D=C(Q,g).slice();return I.__wbindgen_export2(Q,1*g,1),D}finally{I.__wbindgen_add_to_stack_pointer(16)}}function S(A,Q,g){try{const o=I.__wbindgen_add_to_stack_pointer(-16),w=F(A,I.__wbindgen_export),N=y;I.parse_bigwig_block(o,w,N,Q,g);var B=E().getInt32(o+0,!0),D=E().getInt32(o+4,!0),i=C(B,D).slice();return I.__wbindgen_export2(B,1*D,1),i}finally{I.__wbindgen_add_to_stack_pointer(16)}}function L(A,Q,g,B){try{const w=I.__wbindgen_add_to_stack_pointer(-16),N=F(A,I.__wbindgen_export),G=y;I.parse_summary_block(w,N,G,Q,g,B);var D=E().getInt32(w+0,!0),i=E().getInt32(w+4,!0),o=C(D,i).slice();return I.__wbindgen_export2(D,1*i,1),o}finally{I.__wbindgen_add_to_stack_pointer(16)}}function K(A,Q){return function(A){N===w.length&&w.push(w.length+1);const Q=N;return N=w[Q],w[Q]=A,Q}(Error((I=A,function(A,Q){return a+=Q,a>=J&&(k=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),k.decode(),a=Q),k.decode(o().subarray(A,A+Q))}(I>>>=0,Q))));var I}let M=null,q=null;async function t(){return M||(q||(q=(async()=>{const A=await fetch("data:application/wasm;base64,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bGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9ob21lL2NkaWVzaC8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dhc20tYmluZGdlbi0wLjIuMTA2L3NyYy9jb252ZXJ0L3NsaWNlcy5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMDYvc3JjL2V4dGVybnJlZi5ycwAvaG9tZS9jZGllc2gvLnJ1c3R1cC90b29sY2hhaW5zL3N0YWJsZS14ODZfNjQtdW5rbm93bi1saW51eC1nbnUvbGliL3J1c3RsaWIvc3JjL3J1c3QvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3RjL2VkNjFlN2Q3ZTI0MjQ5NGZiNzA1N2YyNjU3MzAwZDllNzdiYjRmY2IvbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy9tb2QucnMAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuMTAvc3JjL2RsbWFsbG9jLnJzAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5ycwAvaG9tZS9jZGllc2gvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjAvc3JjL2xpYi5ycwAAAABqAhAACgAAAAkAAAAWAAAAZGVjb21wcmVzc2lvbiBmYWlsZWQ6IAAAiAIQABYAAABqAhAACgAAAGsAAAAZAAAAagIQAAoAAABrAAAAJwAAAGoCEAAKAAAAawAAADkAAABqAhAACgAAAGsAAABLAAAAagIQAAoAAABfAAAAGQAAAGoCEAAKAAAAXwAAACcAAABqAhAACgAAAF8AAAA5AAAAagIQAAoAAABfAAAASwAAAGoCEAAKAAAAYwAAABkAAABqAhAACgAAAGMAAAAnAAAAagIQAAoAAABjAAAAOQAAAGoCEAAKAAAAYwAAAEsAAABqAhAACgAAADwAAAAWAAAAagIQAAoAAAA/AAAA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"),I=await A.arrayBuffer(),{instance:C}=await WebAssembly.instantiate(I,{"./inflate_wasm_bg.js":Q});return M=C.exports,g(M),M})()),q)}async function n(A,Q){return await t(),R(A,Q)}async function H(A){return await t(),U(A)}async function e(A,Q,I,g){await t();const C=c(A,Q,I,g),B=new DataView(C.buffer,C.byteOffset,C.byteLength),E=B.getUint32(0,!0),D=4+4*(E+1),i=new Array(E+1);for(let A=0;A<=E;A++)i[A]=B.getUint32(4+4*A,!0);return{data:C.subarray(D),offsets:i}}async function d(A,Q,I,g,C,B){return await t(),function(A){const Q=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===Q)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0)};const I=4+4*Q,g=I+4*Q;return{starts:new Int32Array(A.buffer,A.byteOffset+4,Q),ends:new Int32Array(A.buffer,A.byteOffset+I,Q),scores:new Float32Array(A.buffer,A.byteOffset+g,Q)}}(s(A,Q,I,g,C,B))}async function r(A,Q,I,g,C,B,E){return await t(),function(A){const Q=new DataView(A.buffer,A.byteOffset,A.byteLength).getUint32(0,!0);if(0===Q)return{starts:new Int32Array(0),ends:new Int32Array(0),scores:new Float32Array(0),minScores:new Float32Array(0),maxScores:new Float32Array(0)};const I=4+4*Q,g=I+4*Q,C=g+4*Q,B=C+4*Q;return{starts:new Int32Array(A.buffer,A.byteOffset+4,Q),ends:new Int32Array(A.buffer,A.byteOffset+I,Q),scores:new Float32Array(A.buffer,A.byteOffset+g,Q),minScores:new Float32Array(A.buffer,A.byteOffset+C,Q),maxScores:new Float32Array(A.buffer,A.byteOffset+B,Q)}}(Y(A,Q,I,g,C,B,E))}export{d as decompressAndParseBigWig,r as decompressAndParseSummary,n as inflateRaw,e as inflateRawBatch,H as inflateRawUnknownSize};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Combined decompress + parse for BigWig blocks
|
|
6
|
+
* Returns same format as parse_bigwig_block but handles multiple compressed blocks
|
|
7
|
+
*/
|
|
8
|
+
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;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Combined decompress + parse for summary blocks
|
|
12
|
+
*/
|
|
13
|
+
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;
|
|
14
|
+
|
|
15
|
+
export function inflate_raw(input: Uint8Array, output_size: number): Uint8Array;
|
|
16
|
+
|
|
17
|
+
export function inflate_raw_batch(inputs: Uint8Array, input_offsets: Uint32Array, input_lengths: Uint32Array, max_block_size: number): Uint8Array;
|
|
18
|
+
|
|
19
|
+
export function inflate_raw_unknown_size(input: Uint8Array): Uint8Array;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Parse a BigWig data block and return packed typed arrays
|
|
23
|
+
* Block types: 1 = bedGraph, 2 = varstep, 3 = fixedstep
|
|
24
|
+
*
|
|
25
|
+
* Returns packed binary: [count: u32][starts: i32*count][ends: i32*count][scores: f32*count]
|
|
26
|
+
*/
|
|
27
|
+
export function parse_bigwig_block(data: Uint8Array, req_start: number, req_end: number): Uint8Array;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Parse a BigWig summary block and return packed typed arrays
|
|
31
|
+
* Summary blocks contain: chromId, start, end, validCnt, minScore, maxScore, sumData, sumSqData
|
|
32
|
+
*
|
|
33
|
+
* Returns: [count: u32][starts: i32*n][ends: i32*n][scores: f32*n][minScores: f32*n][maxScores: f32*n]
|
|
34
|
+
*/
|
|
35
|
+
export function parse_summary_block(data: Uint8Array, req_chr_id: number, req_start: number, req_end: number): Uint8Array;
|