@gmod/bbi 7.1.0 → 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.
Files changed (90) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +59 -0
  3. package/dist/bbi.d.ts +13 -3
  4. package/dist/bbi.js +77 -17
  5. package/dist/bbi.js.map +1 -1
  6. package/dist/bigbed.d.ts +14 -2
  7. package/dist/bigbed.js +115 -76
  8. package/dist/bigbed.js.map +1 -1
  9. package/dist/bigwig.js +1 -2
  10. package/dist/bigwig.js.map +1 -1
  11. package/dist/block-view.d.ts +13 -4
  12. package/dist/block-view.js +324 -148
  13. package/dist/block-view.js.map +1 -1
  14. package/dist/index.d.ts +2 -1
  15. package/dist/index.js +3 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/parse-bigwig.d.ts +3 -0
  18. package/dist/parse-bigwig.js +15 -0
  19. package/dist/parse-bigwig.js.map +1 -0
  20. package/dist/range.js +11 -24
  21. package/dist/range.js.map +1 -1
  22. package/dist/types.d.ts +14 -2
  23. package/dist/unzip.d.ts +18 -1
  24. package/dist/unzip.js +33 -4
  25. package/dist/unzip.js.map +1 -1
  26. package/dist/util.d.ts +2 -4
  27. package/dist/util.js +6 -5
  28. package/dist/util.js.map +1 -1
  29. package/dist/wasm/inflate-wasm-inlined.d.ts +19 -0
  30. package/dist/wasm/inflate-wasm-inlined.js +117 -0
  31. package/dist/wasm/inflate-wasm-inlined.js.map +1 -0
  32. package/dist/wasm/inflate_wasm.d.ts +1 -0
  33. package/dist/wasm/inflate_wasm.js +43 -0
  34. package/dist/wasm/inflate_wasm.js.map +1 -0
  35. package/dist/wasm/inflate_wasm_bg.d.ts +68 -0
  36. package/dist/wasm/inflate_wasm_bg.js +307 -0
  37. package/dist/wasm/inflate_wasm_bg.js.map +1 -0
  38. package/esm/bbi.d.ts +13 -3
  39. package/esm/bbi.js +77 -17
  40. package/esm/bbi.js.map +1 -1
  41. package/esm/bigbed.d.ts +14 -2
  42. package/esm/bigbed.js +115 -76
  43. package/esm/bigbed.js.map +1 -1
  44. package/esm/bigwig.js +1 -2
  45. package/esm/bigwig.js.map +1 -1
  46. package/esm/block-view.d.ts +13 -4
  47. package/esm/block-view.js +326 -150
  48. package/esm/block-view.js.map +1 -1
  49. package/esm/index.d.ts +2 -1
  50. package/esm/index.js +1 -0
  51. package/esm/index.js.map +1 -1
  52. package/esm/parse-bigwig.d.ts +3 -0
  53. package/esm/parse-bigwig.js +12 -0
  54. package/esm/parse-bigwig.js.map +1 -0
  55. package/esm/range.js +11 -24
  56. package/esm/range.js.map +1 -1
  57. package/esm/types.d.ts +14 -2
  58. package/esm/unzip.d.ts +18 -1
  59. package/esm/unzip.js +30 -3
  60. package/esm/unzip.js.map +1 -1
  61. package/esm/util.d.ts +2 -4
  62. package/esm/util.js +6 -5
  63. package/esm/util.js.map +1 -1
  64. package/esm/wasm/inflate-wasm-inlined.d.ts +19 -0
  65. package/esm/wasm/inflate-wasm-inlined.js +111 -0
  66. package/esm/wasm/inflate-wasm-inlined.js.map +1 -0
  67. package/esm/wasm/inflate_wasm.d.ts +1 -0
  68. package/esm/wasm/inflate_wasm.js +5 -0
  69. package/esm/wasm/inflate_wasm.js.map +1 -0
  70. package/esm/wasm/inflate_wasm_bg.d.ts +68 -0
  71. package/esm/wasm/inflate_wasm_bg.js +296 -0
  72. package/esm/wasm/inflate_wasm_bg.js.map +1 -0
  73. package/package.json +15 -10
  74. package/src/bbi.ts +100 -20
  75. package/src/bigbed.ts +157 -80
  76. package/src/bigwig.ts +1 -2
  77. package/src/block-view.ts +415 -156
  78. package/src/index.ts +8 -1
  79. package/src/parse-bigwig.ts +19 -0
  80. package/src/range.ts +13 -21
  81. package/src/types.ts +19 -2
  82. package/src/unzip.ts +88 -3
  83. package/src/util.ts +9 -10
  84. package/src/wasm/inflate-wasm-inlined.d.ts +49 -0
  85. package/src/wasm/inflate-wasm-inlined.js +1 -0
  86. package/src/wasm/inflate_wasm.d.ts +35 -0
  87. package/src/wasm/inflate_wasm.js +4 -0
  88. package/src/wasm/inflate_wasm_bg.js +309 -0
  89. package/src/wasm/inflate_wasm_bg.wasm +0 -0
  90. package/src/wasm/inflate_wasm_bg.wasm.d.ts +13 -0
package/esm/bigbed.js CHANGED
@@ -3,9 +3,108 @@ import QuickLRU from 'quick-lru';
3
3
  import { Observable, firstValueFrom, merge } from 'rxjs';
4
4
  import { map, reduce } from 'rxjs/operators';
5
5
  import { BBI } from "./bbi.js";
6
+ const decoder = new TextDecoder('utf8');
6
7
  export function filterUndef(ts) {
7
8
  return ts.filter((t) => !!t);
8
9
  }
10
+ function getTabField(str, fieldIndex) {
11
+ if (fieldIndex < 0) {
12
+ return undefined;
13
+ }
14
+ let start = 0;
15
+ for (let i = 0; i < fieldIndex; i++) {
16
+ start = str.indexOf('\t', start);
17
+ if (start === -1) {
18
+ return undefined;
19
+ }
20
+ start++;
21
+ }
22
+ const end = str.indexOf('\t', start);
23
+ return end === -1 ? str.slice(start) : str.slice(start, end);
24
+ }
25
+ // Parses a null-terminated string key from a B+ tree node
26
+ function parseKey(buffer, offset, keySize) {
27
+ const keyEnd = buffer.indexOf(0, offset);
28
+ return decoder.decode(buffer.subarray(offset, keyEnd !== -1 ? keyEnd : offset + keySize));
29
+ }
30
+ // Recursively traverses a B+ tree to search for a specific name in the BigBed extraIndex
31
+ // B+ trees are balanced tree structures optimized for disk-based searches
32
+ async function readBPlusTreeNode(bbi, nodeOffset, blockSize, keySize, valSize, name, field, opts) {
33
+ const len = 4 + blockSize * (keySize + valSize);
34
+ const buffer = await bbi.read(len, nodeOffset, opts);
35
+ const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);
36
+ let offset = 0;
37
+ const nodeType = dataView.getInt8(offset);
38
+ offset += 2; // skip nodeType byte + 1 reserved byte
39
+ const cnt = dataView.getInt16(offset, true);
40
+ offset += 2;
41
+ // Non-leaf node (nodeType === 0): contains keys and child node pointers for navigation
42
+ if (nodeType === 0) {
43
+ const leafkeys = [];
44
+ for (let i = 0; i < cnt; i++) {
45
+ const key = parseKey(buffer, offset, keySize);
46
+ offset += keySize;
47
+ const dataOffset = Number(dataView.getBigUint64(offset, true));
48
+ offset += 8;
49
+ leafkeys.push({
50
+ key,
51
+ offset: dataOffset,
52
+ });
53
+ }
54
+ // Binary search to find the appropriate child node
55
+ let left = 0;
56
+ let right = leafkeys.length - 1;
57
+ let targetIndex = leafkeys.length - 1;
58
+ while (left <= right) {
59
+ const mid = Math.floor((left + right) / 2);
60
+ const cmp = name.localeCompare(leafkeys[mid].key);
61
+ if (cmp < 0) {
62
+ targetIndex = mid - 1;
63
+ right = mid - 1;
64
+ }
65
+ else {
66
+ left = mid + 1;
67
+ }
68
+ }
69
+ const childOffset = targetIndex >= 0 ? leafkeys[targetIndex].offset : leafkeys[0].offset;
70
+ return readBPlusTreeNode(bbi, childOffset, blockSize, keySize, valSize, name, field, opts);
71
+ }
72
+ else if (nodeType === 1) {
73
+ // Leaf node (nodeType === 1): contains actual key-value data
74
+ const keys = [];
75
+ for (let i = 0; i < cnt; i++) {
76
+ const key = parseKey(buffer, offset, keySize);
77
+ offset += keySize;
78
+ const dataOffset = Number(dataView.getBigUint64(offset, true));
79
+ offset += 8;
80
+ const length = dataView.getUint32(offset, true);
81
+ offset += 4;
82
+ offset += 4; // skip reserved
83
+ keys.push({
84
+ key,
85
+ offset: dataOffset,
86
+ length,
87
+ });
88
+ }
89
+ // Binary search for exact key match in sorted leaf node
90
+ let left = 0;
91
+ let right = keys.length - 1;
92
+ while (left <= right) {
93
+ const mid = Math.floor((left + right) / 2);
94
+ const cmp = name.localeCompare(keys[mid].key);
95
+ if (cmp === 0) {
96
+ return { ...keys[mid], field };
97
+ }
98
+ else if (cmp < 0) {
99
+ right = mid - 1;
100
+ }
101
+ else {
102
+ left = mid + 1;
103
+ }
104
+ }
105
+ return undefined;
106
+ }
107
+ }
9
108
  export class BigBed extends BBI {
10
109
  readIndicesCache = new AbortablePromiseCache({
11
110
  cache: new QuickLRU({ maxSize: 1 }),
@@ -56,7 +155,7 @@ export class BigBed extends BBI {
56
155
  const fieldcount = dataView.getInt16(offset, true);
57
156
  offset += 2;
58
157
  const dataOffset = Number(dataView.getBigUint64(offset, true));
59
- offset += 8 + 4; //4 skip
158
+ offset += 8 + 4; // skip 8-byte offset + 4 reserved bytes
60
159
  const field = dataView.getInt16(offset, true);
61
160
  indices.push({
62
161
  type,
@@ -82,7 +181,6 @@ export class BigBed extends BBI {
82
181
  if (indices.length === 0) {
83
182
  return [];
84
183
  }
85
- const decoder = new TextDecoder('utf8');
86
184
  const locs = indices.map(async (index) => {
87
185
  const { offset: offset2, field } = index;
88
186
  const b = await this.bbi.read(32, offset2, opts);
@@ -98,72 +196,7 @@ export class BigBed extends BBI {
98
196
  offset += 4;
99
197
  // const _itemCount = Number(dataView.getBigUint64(offset, true))
100
198
  offset += 8;
101
- const bptReadNode = async (nodeOffset) => {
102
- const val = nodeOffset;
103
- const len = 4 + blockSize * (keySize + valSize);
104
- const buffer = await this.bbi.read(len, val, opts);
105
- const b = buffer;
106
- const dataView = new DataView(b.buffer, b.byteOffset, b.length);
107
- let offset = 0;
108
- const nodeType = dataView.getInt8(offset);
109
- offset += 2; //skip 1
110
- const cnt = dataView.getInt16(offset, true);
111
- offset += 2;
112
- const keys = [];
113
- if (nodeType === 0) {
114
- const leafkeys = [];
115
- for (let i = 0; i < cnt; i++) {
116
- const key = decoder
117
- .decode(b.subarray(offset, offset + keySize))
118
- .replaceAll('\0', '');
119
- offset += keySize;
120
- const dataOffset = Number(dataView.getBigUint64(offset, true));
121
- offset += 8;
122
- leafkeys.push({
123
- key,
124
- offset: dataOffset,
125
- });
126
- }
127
- let lastOffset = 0;
128
- for (const { key, offset } of leafkeys) {
129
- if (name.localeCompare(key) < 0 && lastOffset) {
130
- return bptReadNode(lastOffset);
131
- }
132
- lastOffset = offset;
133
- }
134
- return bptReadNode(lastOffset);
135
- }
136
- else if (nodeType === 1) {
137
- for (let i = 0; i < cnt; i++) {
138
- const key = decoder
139
- .decode(b.subarray(offset, offset + keySize))
140
- .replaceAll('\0', '');
141
- offset += keySize;
142
- const dataOffset = Number(dataView.getBigUint64(offset, true));
143
- offset += 8;
144
- const length = dataView.getUint32(offset, true);
145
- offset += 4;
146
- const reserved = dataView.getUint32(offset, true);
147
- offset += 4;
148
- keys.push({
149
- key,
150
- offset: dataOffset,
151
- length,
152
- reserved,
153
- });
154
- }
155
- for (const n of keys) {
156
- if (n.key === name) {
157
- return {
158
- ...n,
159
- field,
160
- };
161
- }
162
- }
163
- return undefined;
164
- }
165
- };
166
- return bptReadNode(offset2 + 32);
199
+ return readBPlusTreeNode(this.bbi, offset2 + 32, blockSize, keySize, valSize, name, field, opts);
167
200
  });
168
201
  return filterUndef(await Promise.all(locs));
169
202
  }
@@ -174,7 +207,7 @@ export class BigBed extends BBI {
174
207
  *
175
208
  * @param name - the name to search for
176
209
  *
177
- * @param opts - options object with optional AboutSignal
210
+ * @param opts - options object with optional AbortSignal
178
211
  *
179
212
  * @return array of Feature
180
213
  */
@@ -189,15 +222,21 @@ export class BigBed extends BBI {
189
222
  view.readFeatures(observer, [block], opts).catch((e) => {
190
223
  observer.error(e);
191
224
  });
192
- }).pipe(reduce((acc, curr) => acc.concat(curr)), map(x => {
193
- for (const element of x) {
194
- element.field = block.field;
195
- }
196
- return x;
197
- }));
225
+ }).pipe(reduce((acc, curr) => {
226
+ acc.push(...curr);
227
+ return acc;
228
+ }, []), map(features => features.map(f => ({ ...f, field: block.field }))));
198
229
  });
199
230
  const ret = await firstValueFrom(merge(...res));
200
- return ret.filter(f => f.rest?.split('\t')[(f.field || 0) - 3] === name);
231
+ // Filter to features where the indexed field matches the search name
232
+ // field offset is adjusted by -3 to account for chrom, chromStart, chromEnd columns
233
+ return ret.filter(f => {
234
+ if (!f.rest) {
235
+ return false;
236
+ }
237
+ const fieldIndex = (f.field || 0) - 3;
238
+ return getTabField(f.rest, fieldIndex) === name;
239
+ });
201
240
  }
202
241
  }
203
242
  //# sourceMappingURL=bigbed.js.map
package/esm/bigbed.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bigbed.js","sourceRoot":"","sources":["../src/bigbed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bigbed.js","sourceRoot":"","sources":["../src/bigbed.ts"],"names":[],"mappings":"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"}
package/esm/bigwig.js CHANGED
@@ -15,9 +15,8 @@ export class BigWig extends BBI {
15
15
  const maxLevel = zoomLevels.length - 1;
16
16
  for (let i = maxLevel; i >= 0; i -= 1) {
17
17
  const zh = zoomLevels[i];
18
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
19
18
  if (zh && zh.reductionLevel <= 2 * basesPerPx) {
20
- return new BlockView(this.bbi, refsByName, zh.indexOffset, uncompressBufSize > 0, 'summary');
19
+ return new BlockView(this.bbi, refsByName, zh.indexOffset, uncompressBufSize, 'summary');
21
20
  }
22
21
  }
23
22
  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;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,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,uEAAuE;YACvE,IAAI,EAAE,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;gBAC9C,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,GAAG,EACR,UAAU,EACV,EAAE,CAAC,WAAW,EACd,iBAAiB,GAAG,CAAC,EACrB,SAAS,CACV,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"bigwig.js","sourceRoot":"","sources":["../src/bigwig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,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,SAAS,CAClB,IAAI,CAAC,GAAG,EACR,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"}
@@ -1,4 +1,5 @@
1
1
  import type { Feature } from './types.ts';
2
+ import type { BigWigFeatureArrays, SummaryFeatureArrays } from './unzip.ts';
2
3
  import type { GenericFilehandle } from 'generic-filehandle2';
3
4
  import type { Observer } from 'rxjs';
4
5
  interface CoordRequest {
@@ -19,12 +20,12 @@ interface Options {
19
20
  export declare class BlockView {
20
21
  private bbi;
21
22
  private refsByName;
22
- private cirTreeOffset;
23
- private isCompressed;
23
+ private rTreeOffset;
24
+ private uncompressBufSize;
24
25
  private blockType;
25
- private cirTreePromise?;
26
+ private rTreePromise?;
26
27
  private featureCache;
27
- constructor(bbi: GenericFilehandle, refsByName: any, cirTreeOffset: number, isCompressed: boolean, blockType: string);
28
+ constructor(bbi: GenericFilehandle, refsByName: Record<string, number>, rTreeOffset: number, uncompressBufSize: number, blockType: string);
28
29
  readWigData(chrName: string, start: number, end: number, observer: Observer<Feature[]>, opts?: Options): Promise<void>;
29
30
  private parseSummaryBlock;
30
31
  private parseBigBedBlock;
@@ -33,5 +34,13 @@ export declare class BlockView {
33
34
  offset: number;
34
35
  length: number;
35
36
  }[], opts?: Options): Promise<void>;
37
+ readBigWigFeaturesAsArrays(blocks: {
38
+ offset: number;
39
+ length: number;
40
+ }[], opts?: Options): Promise<BigWigFeatureArrays>;
41
+ readSummaryFeaturesAsArrays(blocks: {
42
+ offset: number;
43
+ length: number;
44
+ }[], opts?: Options): Promise<SummaryFeatureArrays>;
36
45
  }
37
46
  export {};