@gmod/bbi 9.0.9 → 9.0.11

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 (79) hide show
  1. package/README.md +70 -12
  2. package/dist/array-feature-view.d.ts +9 -11
  3. package/dist/array-feature-view.js +7 -13
  4. package/dist/array-feature-view.js.map +1 -1
  5. package/dist/bbi.js +22 -37
  6. package/dist/bbi.js.map +1 -1
  7. package/dist/bigbed.d.ts +1 -2
  8. package/dist/bigbed.js +24 -36
  9. package/dist/bigbed.js.map +1 -1
  10. package/dist/bigwig.js +1 -1
  11. package/dist/bigwig.js.map +1 -1
  12. package/dist/block-view.d.ts +1 -1
  13. package/dist/block-view.js +135 -97
  14. package/dist/block-view.js.map +1 -1
  15. package/dist/range.js +4 -1
  16. package/dist/range.js.map +1 -1
  17. package/dist/types.d.ts +0 -1
  18. package/dist/unzip.d.ts +2 -12
  19. package/dist/unzip.js +7 -15
  20. package/dist/unzip.js.map +1 -1
  21. package/dist/util.d.ts +3 -2
  22. package/dist/util.js +13 -1
  23. package/dist/util.js.map +1 -1
  24. package/esm/array-feature-view.d.ts +9 -11
  25. package/esm/array-feature-view.js +7 -13
  26. package/esm/array-feature-view.js.map +1 -1
  27. package/esm/bbi.js +19 -34
  28. package/esm/bbi.js.map +1 -1
  29. package/esm/bigbed.d.ts +1 -2
  30. package/esm/bigbed.js +22 -31
  31. package/esm/bigbed.js.map +1 -1
  32. package/esm/bigwig.js +1 -1
  33. package/esm/bigwig.js.map +1 -1
  34. package/esm/block-view.d.ts +1 -1
  35. package/esm/block-view.js +136 -98
  36. package/esm/block-view.js.map +1 -1
  37. package/esm/range.js +4 -1
  38. package/esm/range.js.map +1 -1
  39. package/esm/types.d.ts +0 -1
  40. package/esm/unzip.d.ts +2 -12
  41. package/esm/unzip.js +7 -15
  42. package/esm/unzip.js.map +1 -1
  43. package/esm/util.d.ts +3 -2
  44. package/esm/util.js +11 -1
  45. package/esm/util.js.map +1 -1
  46. package/package.json +18 -20
  47. package/src/array-feature-view.ts +11 -20
  48. package/src/bbi.ts +20 -36
  49. package/src/bigbed.ts +22 -38
  50. package/src/bigwig.ts +2 -2
  51. package/src/block-view.ts +189 -122
  52. package/src/range.ts +4 -3
  53. package/src/types.ts +0 -1
  54. package/src/unzip.ts +11 -24
  55. package/src/util.ts +21 -2
  56. package/src/wasm/inflate-wasm-inlined.d.ts +21 -0
  57. package/src/wasm/inflate-wasm-inlined.js +150 -170
  58. package/src/wasm/inflate_wasm.js +1 -1
  59. package/src/wasm/inflate_wasm_bg.js +2 -3
  60. package/src/wasm/inflate_wasm_bg.wasm +0 -0
  61. package/dist/wasm/inflate-wasm-inlined.d.ts +0 -18
  62. package/dist/wasm/inflate-wasm-inlined.js +0 -454
  63. package/dist/wasm/inflate-wasm-inlined.js.map +0 -1
  64. package/dist/wasm/inflate_wasm.d.ts +0 -1
  65. package/dist/wasm/inflate_wasm.js +0 -49
  66. package/dist/wasm/inflate_wasm.js.map +0 -1
  67. package/dist/wasm/inflate_wasm_bg.d.ts +0 -68
  68. package/dist/wasm/inflate_wasm_bg.js +0 -306
  69. package/dist/wasm/inflate_wasm_bg.js.map +0 -1
  70. package/esm/wasm/inflate-wasm-inlined.d.ts +0 -18
  71. package/esm/wasm/inflate-wasm-inlined.js +0 -448
  72. package/esm/wasm/inflate-wasm-inlined.js.map +0 -1
  73. package/esm/wasm/inflate_wasm.d.ts +0 -1
  74. package/esm/wasm/inflate_wasm.js +0 -6
  75. package/esm/wasm/inflate_wasm.js.map +0 -1
  76. package/esm/wasm/inflate_wasm_bg.d.ts +0 -68
  77. package/esm/wasm/inflate_wasm_bg.js +0 -295
  78. package/esm/wasm/inflate_wasm_bg.js.map +0 -1
  79. package/src/wasm/inflate_wasm_bg.wasm.d.ts +0 -13
package/README.md CHANGED
@@ -75,7 +75,7 @@ See the [example](./example/) folder for a complete working demo.
75
75
  Accepts an object containing either
76
76
 
77
77
  - path - path to a local file
78
- - url - path to a url
78
+ - url - URL of a remote file
79
79
  - filehandle - a filehandle instance that you can implement as a custom class
80
80
  yourself. path and url are based on
81
81
  https://www.npmjs.com/package/generic-filehandle2 but by implementing a class
@@ -94,7 +94,7 @@ Accepts an object containing either
94
94
  zoom level that is returned is the one which has reductionLevel<=2/opts.scale
95
95
  (reductionLevel is a property of the zoom level structure in the bigwig file
96
96
  data)
97
- - opts.basesPerScale - optional, inverse of opts.scale e.g. bpPerPx
97
+ - opts.basesPerSpan - optional, inverse of opts.scale (bp per pixel)
98
98
  - opts.signal - optional, an AbortSignal to halt processing
99
99
 
100
100
  Returns a promise to an array of features. If an incorrect refName or no
@@ -105,8 +105,8 @@ Example:
105
105
  ```typescript
106
106
  const feats = await bigwig.getFeatures('chr1', 0, 100)
107
107
  // returns array of features with start, end, score
108
- // coordinates on returned data are are 0-based half open
109
- // no conversion to 1-based as in wig is done)
108
+ // coordinates on returned data are 0-based half open
109
+ // no conversion to 1-based as in wig is done
110
110
  // note refseq is not returned on the object, it is clearly chr1 from the query though
111
111
  ```
112
112
 
@@ -116,13 +116,17 @@ Here is what the reductionLevel structure looks like in a file. The zoomLevel
116
116
  that is chosen is the first reductionLevel<2\*opts.basesPerScale (or
117
117
  reductionLevel<2/opts.scale) when scanning backwards through this list
118
118
 
119
- [ { reductionLevel: 40, ... },
120
- { reductionLevel: 160, ... },
121
- { reductionLevel: 640, ... },
122
- { reductionLevel: 2560, ... },
123
- { reductionLevel: 10240, ... },
124
- { reductionLevel: 40960, ... },
125
- { reductionLevel: 163840, ... } ]
119
+ ```json
120
+ [
121
+ { "reductionLevel": 40 },
122
+ { "reductionLevel": 160 },
123
+ { "reductionLevel": 640 },
124
+ { "reductionLevel": 2560 },
125
+ { "reductionLevel": 10240 },
126
+ { "reductionLevel": 40960 },
127
+ { "reductionLevel": 163840 }
128
+ ]
129
+ ```
126
130
 
127
131
  #### getFeaturesAsArrays(refName, start, end, opts)
128
132
 
@@ -199,7 +203,7 @@ they exist.
199
203
  - opts.signal - optional, an AbortSignal to halt processing
200
204
 
201
205
  returns a promise to an array of features. no concept of zoom levels is used
202
- with bigwig data
206
+ with bigbed data
203
207
 
204
208
  #### searchExtraIndex(name, opts)
205
209
 
@@ -273,6 +277,60 @@ Features after parsing with @gmod/bed:
273
277
  }
274
278
  ```
275
279
 
280
+ ### parseBigWig(bigwig, opts)
281
+
282
+ A convenience function that reads all features from every chromosome in a BigWig
283
+ file, returning non-empty base-resolution results only (no zoom levels).
284
+
285
+ - bigwig - a `BigWig` instance
286
+ - opts - optional `RequestOptions` (e.g. `opts.signal` for abort)
287
+
288
+ Returns a `Promise<BigWigFeatureArrays[]>`, one entry per chromosome that has
289
+ data.
290
+
291
+ ```typescript
292
+ import { BigWig, parseBigWig } from '@gmod/bbi'
293
+
294
+ const file = new BigWig({ path: 'volvox.bw' })
295
+ const results = await parseBigWig(file)
296
+ for (const { starts, ends, scores } of results) {
297
+ for (let i = 0; i < starts.length; i++) {
298
+ console.log(starts[i], ends[i], scores[i])
299
+ }
300
+ }
301
+ ```
302
+
303
+ ### ArrayFeatureView / BigWigFeature
304
+
305
+ `ArrayFeatureView` wraps a `BigWigFeatureArrays` or `SummaryFeatureArrays`
306
+ result and exposes a JBrowse-compatible `Feature`-style interface.
307
+ `BigWigFeature` is a single-feature view into an `ArrayFeatureView`.
308
+
309
+ ```typescript
310
+ import { BigWig, ArrayFeatureView } from '@gmod/bbi'
311
+
312
+ const file = new BigWig({ path: 'volvox.bw' })
313
+ const arrays = await file.getFeaturesAsArrays('chr1', 0, 100000)
314
+ const view = new ArrayFeatureView(arrays, 'mySource', 'chr1')
315
+
316
+ for (let i = 0; i < view.length; i++) {
317
+ console.log(view.start(i), view.end(i), view.score(i))
318
+ }
319
+ ```
320
+
321
+ `BigWigFeature` instances are also iterable via `view.get(i, key)` and expose a
322
+ `toJSON()` method. Keys: `start`, `end`, `score`, `refName`, `source`,
323
+ `summary`, `minScore`, `maxScore`.
324
+
325
+ ## Publishing
326
+
327
+ [Trusted publishing](https://docs.npmjs.com/about-trusted-publishing) via GitHub
328
+ Actions.
329
+
330
+ ```bash
331
+ pnpm version patch # or minor/major
332
+ ```
333
+
276
334
  ## Academic Use
277
335
 
278
336
  This package was written with funding from the [NHGRI](http://genome.gov) as
@@ -7,12 +7,12 @@ export declare class BigWigFeature {
7
7
  get(key: 'start' | 'end' | 'score'): number;
8
8
  get(key: 'minScore' | 'maxScore'): number | undefined;
9
9
  get(key: 'summary'): boolean;
10
- get(key: string): any;
10
+ get(key: string): string | number | boolean | undefined;
11
11
  id(): string;
12
12
  toJSON(): {
13
- start: number;
14
- end: number;
15
- score: number;
13
+ start: number | undefined;
14
+ end: number | undefined;
15
+ score: number | undefined;
16
16
  refName: string;
17
17
  source: string;
18
18
  uniqueId: string;
@@ -28,15 +28,13 @@ export declare class ArrayFeatureView {
28
28
  readonly minScores: Float32Array | undefined;
29
29
  readonly maxScores: Float32Array | undefined;
30
30
  readonly isSummary: boolean;
31
- private _source;
32
- private _refName;
31
+ readonly source: string;
32
+ readonly refName: string;
33
33
  constructor(arrays: BigWigFeatureArrays | SummaryFeatureArrays, source: string, refName: string);
34
34
  get length(): number;
35
- get source(): string;
36
- get refName(): string;
37
- start(i: number): number;
38
- end(i: number): number;
39
- score(i: number): number;
35
+ start(i: number): number | undefined;
36
+ end(i: number): number | undefined;
37
+ score(i: number): number | undefined;
40
38
  minScore(i: number): number | undefined;
41
39
  maxScore(i: number): number | undefined;
42
40
  id(i: number): string;
@@ -37,8 +37,8 @@ class ArrayFeatureView {
37
37
  minScores;
38
38
  maxScores;
39
39
  isSummary;
40
- _source;
41
- _refName;
40
+ source;
41
+ refName;
42
42
  constructor(arrays, source, refName) {
43
43
  this.starts = arrays.starts;
44
44
  this.ends = arrays.ends;
@@ -46,18 +46,12 @@ class ArrayFeatureView {
46
46
  this.isSummary = arrays.isSummary;
47
47
  this.minScores = arrays.isSummary ? arrays.minScores : undefined;
48
48
  this.maxScores = arrays.isSummary ? arrays.maxScores : undefined;
49
- this._source = source;
50
- this._refName = refName;
49
+ this.source = source;
50
+ this.refName = refName;
51
51
  }
52
52
  get length() {
53
53
  return this.starts.length;
54
54
  }
55
- get source() {
56
- return this._source;
57
- }
58
- get refName() {
59
- return this._refName;
60
- }
61
55
  start(i) {
62
56
  return this.starts[i];
63
57
  }
@@ -74,7 +68,7 @@ class ArrayFeatureView {
74
68
  return this.maxScores?.[i];
75
69
  }
76
70
  id(i) {
77
- return `${this._source}:${this._refName}:${this.starts[i]}-${this.ends[i]}`;
71
+ return `${this.source}:${this.refName}:${this.starts[i]}-${this.ends[i]}`;
78
72
  }
79
73
  get(i, key) {
80
74
  switch (key) {
@@ -85,9 +79,9 @@ class ArrayFeatureView {
85
79
  case 'score':
86
80
  return this.scores[i];
87
81
  case 'refName':
88
- return this._refName;
82
+ return this.refName;
89
83
  case 'source':
90
- return this._source;
84
+ return this.source;
91
85
  case 'minScore':
92
86
  return this.minScores?.[i];
93
87
  case 'maxScore':
@@ -1 +1 @@
1
- {"version":3,"file":"array-feature-view.js","sourceRoot":"","sources":["../src/array-feature-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-feature-view.js","sourceRoot":"","sources":["../src/array-feature-view.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAEd;IACA;IAFV,YACU,IAAsB,EACtB,CAAS;QADT,SAAI,GAAJ,IAAI,CAAkB;QACtB,MAAC,GAAD,CAAC,CAAQ;IAChB,CAAC;IAOJ,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,EAAE;QACA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAA;QACxB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACpB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC3B,CAAA;IACH,CAAC;CACF;AAjCD,sCAiCC;AAED,MAAa,gBAAgB;IACX,MAAM,CAAY;IAClB,IAAI,CAAY;IAChB,MAAM,CAAc;IACpB,SAAS,CAA0B;IACnC,SAAS,CAA0B;IACnC,SAAS,CAAS;IAClB,MAAM,CAAQ;IACd,OAAO,CAAQ;IAE/B,YACE,MAAkD,EAClD,MAAc,EACd,OAAe;QAEf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QACjC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QAChE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,CAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IAED,GAAG,CAAC,CAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,CAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IAED,QAAQ,CAAC,CAAS;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,QAAQ,CAAC,CAAS;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,EAAE,CAAC,CAAS;QACV,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3E,CAAC;IAUD,GAAG,CAAC,CAAS,EAAE,GAAW;QACxB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACrB,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAA;YACrB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,CAAA;YACpB,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5B,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5B,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,SAAS,CAAA;YACvB;gBACE,OAAO,SAAS,CAAA;QACpB,CAAC;IACH,CAAC;CACF;AAnFD,4CAmFC"}
package/dist/bbi.js CHANGED
@@ -3,12 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BBI = void 0;
4
4
  const generic_filehandle2_1 = require("generic-filehandle2");
5
5
  const block_view_ts_1 = require("./block-view.js");
6
+ const util_ts_1 = require("./util.js");
6
7
  const BIG_WIG_MAGIC = -2003829722;
7
8
  const BIG_BED_MAGIC = -2021002517;
8
9
  const decoder = new TextDecoder('utf8');
9
- function getDataView(buffer) {
10
- return new DataView(buffer.buffer, buffer.byteOffset, buffer.length);
11
- }
12
10
  class BBI {
13
11
  bbi;
14
12
  headerP;
@@ -58,7 +56,7 @@ class BBI {
58
56
  }
59
57
  async _getMainHeader(opts, requestSize = 2000) {
60
58
  const b = await this.bbi.read(requestSize, 0, opts);
61
- const dataView = getDataView(b);
59
+ const dataView = (0, util_ts_1.getDataView)(b);
62
60
  let offset = 0;
63
61
  const magic = dataView.getInt32(offset, true);
64
62
  offset += 4;
@@ -92,15 +90,13 @@ class BBI {
92
90
  for (let i = 0; i < numZoomLevels; i++) {
93
91
  const reductionLevel = dataView.getUint32(offset, true);
94
92
  offset += 4;
95
- const reserved = dataView.getUint32(offset, true);
96
- offset += 4;
93
+ offset += 4; // reserved
97
94
  const dataOffset = Number(dataView.getBigUint64(offset, true));
98
95
  offset += 8;
99
96
  const indexOffset = Number(dataView.getBigUint64(offset, true));
100
97
  offset += 8;
101
98
  zoomLevels.push({
102
99
  reductionLevel,
103
- reserved,
104
100
  dataOffset,
105
101
  indexOffset,
106
102
  });
@@ -113,29 +109,24 @@ class BBI {
113
109
  }
114
110
  let totalSummary;
115
111
  if (totalSummaryOffset) {
116
- const b2 = b.subarray(totalSummaryOffset);
117
- let offset = 0;
118
- const dataView = getDataView(b2);
119
- const basesCovered = Number(dataView.getBigUint64(offset, true));
120
- offset += 8;
121
- const scoreMin = dataView.getFloat64(offset, true);
122
- offset += 8;
123
- const scoreMax = dataView.getFloat64(offset, true);
124
- offset += 8;
125
- const scoreSum = dataView.getFloat64(offset, true);
126
- offset += 8;
127
- const scoreSumSquares = dataView.getFloat64(offset, true);
112
+ const summaryView = (0, util_ts_1.getDataView)(b, totalSummaryOffset);
128
113
  totalSummary = {
129
- scoreMin,
130
- scoreMax,
131
- scoreSum,
132
- scoreSumSquares,
133
- basesCovered,
114
+ basesCovered: Number(summaryView.getBigUint64(0, true)),
115
+ scoreMin: summaryView.getFloat64(8, true),
116
+ scoreMax: summaryView.getFloat64(16, true),
117
+ scoreSum: summaryView.getFloat64(24, true),
118
+ scoreSumSquares: summaryView.getFloat64(32, true),
134
119
  };
135
120
  }
136
121
  else {
137
122
  throw new Error('no stats');
138
123
  }
124
+ let autoSql = '';
125
+ if (asOffset) {
126
+ const nullPos = b.indexOf(0, asOffset);
127
+ const end = nullPos === -1 ? b.length : nullPos;
128
+ autoSql = decoder.decode(b.subarray(asOffset, end));
129
+ }
139
130
  return {
140
131
  zoomLevels,
141
132
  magic,
@@ -152,9 +143,7 @@ class BBI {
152
143
  unzoomedIndexOffset,
153
144
  fileType,
154
145
  version,
155
- autoSql: asOffset
156
- ? decoder.decode(b.subarray(asOffset, b.indexOf(0, asOffset)))
157
- : '',
146
+ autoSql,
158
147
  };
159
148
  }
160
149
  // Reads the B+ tree that maps chromosome names to integer IDs
@@ -164,25 +153,21 @@ class BBI {
164
153
  const refsByNumber = [];
165
154
  const refsByName = {};
166
155
  const chromosomeTreeOffset = header.chromosomeTreeOffset;
167
- const dataView = getDataView(await this.bbi.read(32, chromosomeTreeOffset, opts));
156
+ const dataView = (0, util_ts_1.getDataView)(await this.bbi.read(32, chromosomeTreeOffset, opts));
168
157
  const keySize = dataView.getUint32(8, true);
169
158
  const valSize = dataView.getUint32(12, true);
170
159
  // Recursively traverses the B+ tree to populate chromosome name-to-ID mappings
171
160
  const readBPlusTreeNode = async (currentOffset) => {
172
- const header = getDataView(await this.bbi.read(4, currentOffset));
161
+ const header = (0, util_ts_1.getDataView)(await this.bbi.read(4, currentOffset, opts));
173
162
  const isLeafNode = header.getUint8(0);
174
163
  const count = header.getUint16(2, true);
175
164
  // Leaf nodes contain the actual chromosome name-to-ID mappings
176
165
  if (isLeafNode) {
177
- const b = await this.bbi.read(count * (keySize + valSize), currentOffset + 4);
178
- const dataView = getDataView(b);
166
+ const b = await this.bbi.read(count * (keySize + valSize), currentOffset + 4, opts);
167
+ const dataView = (0, util_ts_1.getDataView)(b);
179
168
  let offset = 0;
180
169
  for (let n = 0; n < count; n++) {
181
- const keyEnd = b.indexOf(0, offset);
182
- const effectiveKeyEnd = keyEnd !== -1 && keyEnd < offset + keySize
183
- ? keyEnd
184
- : offset + keySize;
185
- const key = decoder.decode(b.subarray(offset, effectiveKeyEnd));
170
+ const key = (0, util_ts_1.parseKey)(b, offset, keySize);
186
171
  offset += keySize;
187
172
  const refId = dataView.getUint32(offset, true);
188
173
  offset += 4;
@@ -194,7 +179,7 @@ class BBI {
194
179
  }
195
180
  else {
196
181
  // Non-leaf nodes contain pointers to child nodes
197
- const dataView = getDataView(await this.bbi.read(count * (keySize + 8), currentOffset + 4));
182
+ const dataView = (0, util_ts_1.getDataView)(await this.bbi.read(count * (keySize + 8), currentOffset + 4, opts));
198
183
  const nextNodes = [];
199
184
  let offset = 0;
200
185
  for (let n = 0; n < count; n++) {
package/dist/bbi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bbi.js","sourceRoot":"","sources":["../src/bbi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bbi.js","sourceRoot":"","sources":["../src/bbi.ts"],"names":[],"mappings":"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"}
package/dist/bigbed.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import AbortablePromiseCache from '@gmod/abortable-promise-cache';
2
1
  import { BBI } from './bbi.ts';
3
2
  import type { RequestOptions } from './types.ts';
4
3
  interface Index {
@@ -8,7 +7,7 @@ interface Index {
8
7
  field: number;
9
8
  }
10
9
  export declare class BigBed extends BBI {
11
- readIndicesCache: AbortablePromiseCache<RequestOptions, Index[], string>;
10
+ private indicesP?;
12
11
  readIndices(opts?: RequestOptions): Promise<Index[]>;
13
12
  protected getView(_scale: number, opts?: RequestOptions): Promise<import("./block-view.ts").BlockView>;
14
13
  private _readIndices;
package/dist/bigbed.js CHANGED
@@ -1,13 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.BigBed = void 0;
7
- const abortable_promise_cache_1 = __importDefault(require("@gmod/abortable-promise-cache"));
8
- const quick_lru_1 = __importDefault(require("@jbrowse/quick-lru"));
9
4
  const bbi_ts_1 = require("./bbi.js");
10
- const decoder = new TextDecoder('utf8');
5
+ const util_ts_1 = require("./util.js");
11
6
  function getTabField(str, fieldIndex) {
12
7
  if (fieldIndex < 0) {
13
8
  return undefined;
@@ -23,18 +18,12 @@ function getTabField(str, fieldIndex) {
23
18
  const end = str.indexOf('\t', start);
24
19
  return end === -1 ? str.slice(start) : str.slice(start, end);
25
20
  }
26
- // Parses a null-terminated string key from a B+ tree node
27
- function parseKey(buffer, offset, keySize) {
28
- const keyEnd = buffer.indexOf(0, offset);
29
- const effectiveKeyEnd = keyEnd !== -1 && keyEnd < offset + keySize ? keyEnd : offset + keySize;
30
- return decoder.decode(buffer.subarray(offset, effectiveKeyEnd));
31
- }
32
21
  // Recursively traverses a B+ tree to search for a specific name in the BigBed extraIndex
33
22
  // B+ trees are balanced tree structures optimized for disk-based searches
34
23
  async function readBPlusTreeNode(bbi, nodeOffset, blockSize, keySize, valSize, name, field, opts) {
35
24
  const len = 4 + blockSize * (keySize + valSize);
36
25
  const buffer = await bbi.read(len, nodeOffset, opts);
37
- const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);
26
+ const dataView = (0, util_ts_1.getDataView)(buffer);
38
27
  const nodeType = dataView.getInt8(0);
39
28
  const cnt = dataView.getInt16(2, true);
40
29
  let offset = 4;
@@ -42,7 +31,7 @@ async function readBPlusTreeNode(bbi, nodeOffset, blockSize, keySize, valSize, n
42
31
  if (nodeType === 0) {
43
32
  const leafkeys = [];
44
33
  for (let i = 0; i < cnt; i++) {
45
- const key = parseKey(buffer, offset, keySize);
34
+ const key = (0, util_ts_1.parseKey)(buffer, offset, keySize);
46
35
  offset += keySize;
47
36
  const dataOffset = Number(dataView.getBigUint64(offset, true));
48
37
  offset += 8;
@@ -51,29 +40,27 @@ async function readBPlusTreeNode(bbi, nodeOffset, blockSize, keySize, valSize, n
51
40
  offset: dataOffset,
52
41
  });
53
42
  }
54
- // Binary search to find the appropriate child node
55
43
  let left = 0;
56
44
  let right = leafkeys.length - 1;
57
- let targetIndex = leafkeys.length - 1;
45
+ let targetIndex = -1;
58
46
  while (left <= right) {
59
47
  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;
48
+ if (name.localeCompare(leafkeys[mid].key) >= 0) {
49
+ targetIndex = mid;
50
+ left = mid + 1;
64
51
  }
65
52
  else {
66
- left = mid + 1;
53
+ right = mid - 1;
67
54
  }
68
55
  }
69
- const childOffset = targetIndex >= 0 ? leafkeys[targetIndex].offset : leafkeys[0].offset;
56
+ const childOffset = leafkeys[Math.max(targetIndex, 0)].offset;
70
57
  return readBPlusTreeNode(bbi, childOffset, blockSize, keySize, valSize, name, field, opts);
71
58
  }
72
59
  else if (nodeType === 1) {
73
60
  // Leaf node (nodeType === 1): contains actual key-value data
74
61
  const keys = [];
75
62
  for (let i = 0; i < cnt; i++) {
76
- const key = parseKey(buffer, offset, keySize);
63
+ const key = (0, util_ts_1.parseKey)(buffer, offset, keySize);
77
64
  offset += keySize;
78
65
  const dataOffset = Number(dataView.getBigUint64(offset, true));
79
66
  offset += 8;
@@ -107,13 +94,15 @@ async function readBPlusTreeNode(bbi, nodeOffset, blockSize, keySize, valSize, n
107
94
  return undefined;
108
95
  }
109
96
  class BigBed extends bbi_ts_1.BBI {
110
- readIndicesCache = new abortable_promise_cache_1.default({
111
- cache: new quick_lru_1.default({ maxSize: 1 }),
112
- fill: (args, signal) => this._readIndices({ ...args, signal }),
113
- });
97
+ indicesP;
114
98
  readIndices(opts = {}) {
115
- const { signal, ...rest } = opts;
116
- return this.readIndicesCache.get(JSON.stringify(rest), opts, signal);
99
+ if (!this.indicesP) {
100
+ this.indicesP = this._readIndices(opts).catch((e) => {
101
+ this.indicesP = undefined;
102
+ throw e;
103
+ });
104
+ }
105
+ return this.indicesP;
117
106
  }
118
107
  /*
119
108
  * retrieve unzoomed view for any scale
@@ -130,8 +119,8 @@ class BigBed extends bbi_ts_1.BBI {
130
119
  */
131
120
  async _readIndices(opts) {
132
121
  const { extHeaderOffset } = await this.getHeader(opts);
133
- const b = await this.bbi.read(64, extHeaderOffset);
134
- const dataView = new DataView(b.buffer, b.byteOffset, b.length);
122
+ const b = await this.bbi.read(64, extHeaderOffset, opts);
123
+ const dataView = (0, util_ts_1.getDataView)(b);
135
124
  const count = dataView.getUint16(2, true);
136
125
  const dataOffset = Number(dataView.getBigUint64(4, true));
137
126
  // no extra index is defined if count==0
@@ -140,11 +129,10 @@ class BigBed extends bbi_ts_1.BBI {
140
129
  }
141
130
  const blocklen = 20;
142
131
  const len = blocklen * count;
143
- const buffer = await this.bbi.read(len, dataOffset);
132
+ const buffer = await this.bbi.read(len, dataOffset, opts);
144
133
  const indices = [];
145
134
  for (let i = 0; i < count; i += 1) {
146
- const b = buffer.subarray(i * blocklen);
147
- const dataView = new DataView(b.buffer, b.byteOffset, b.length);
135
+ const dataView = (0, util_ts_1.getDataView)(buffer, i * blocklen);
148
136
  const type = dataView.getInt16(0, true);
149
137
  const fieldcount = dataView.getInt16(2, true);
150
138
  const dataOffset = Number(dataView.getBigUint64(4, true));
@@ -176,7 +164,7 @@ class BigBed extends bbi_ts_1.BBI {
176
164
  const locs = indices.map(async (index) => {
177
165
  const { offset: offset2, field } = index;
178
166
  const b = await this.bbi.read(32, offset2, opts);
179
- const dataView = new DataView(b.buffer, b.byteOffset, b.length);
167
+ const dataView = (0, util_ts_1.getDataView)(b);
180
168
  const blockSize = dataView.getInt32(4, true);
181
169
  const keySize = dataView.getInt32(8, true);
182
170
  const valSize = dataView.getInt32(12, true);
@@ -211,7 +199,7 @@ class BigBed extends bbi_ts_1.BBI {
211
199
  if (!f.rest) {
212
200
  return false;
213
201
  }
214
- const fieldIndex = (f.field || 0) - 3;
202
+ const fieldIndex = (f.field ?? 0) - 3;
215
203
  return getTabField(f.rest, fieldIndex) === name;
216
204
  });
217
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bigbed.js","sourceRoot":"","sources":["../src/bigbed.ts"],"names":[],"mappings":";;;;;;AAAA,4FAAiE;AACjE,mEAAyC;AAEzC,qCAA8B;AAK9B,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;AAgBvC,SAAS,WAAW,CAAC,GAAW,EAAE,UAAkB;IAClD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAChC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,KAAK,EAAE,CAAA;IACT,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC9D,CAAC;AAED,0DAA0D;AAC1D,SAAS,QAAQ,CAAC,MAAkB,EAAE,MAAc,EAAE,OAAe;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACxC,MAAM,eAAe,GACnB,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAA;IACxE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,yFAAyF;AACzF,0EAA0E;AAC1E,KAAK,UAAU,iBAAiB,CAC9B,GAAsB,EACtB,UAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,OAAe,EACf,IAAY,EACZ,KAAa,EACb,IAAoB;IAEpB,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IACpD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACtC,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,uFAAuF;IACvF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7C,MAAM,IAAI,OAAO,CAAA;YACjB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,CAAC,CAAA;YACX,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG;gBACH,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;QACJ,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAErC,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAAA;YAElD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,WAAW,GAAG,GAAG,GAAG,CAAC,CAAA;gBACrB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GACf,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,MAAM,CAAA;QACxE,OAAO,iBAAiB,CACtB,GAAG,EACH,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,CACL,CAAA;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,6DAA6D;QAC7D,MAAM,IAAI,GAAG,EAAE,CAAA;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7C,MAAM,IAAI,OAAO,CAAA;YACjB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YAC9D,MAAM,IAAI,CAAC,CAAA;YACX,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAC/C,MAAM,IAAI,CAAC,CAAA;YACX,MAAM,IAAI,CAAC,CAAA,CAAC,gBAAgB;YAC5B,IAAI,CAAC,IAAI,CAAC;gBACR,GAAG;gBACH,MAAM,EAAE,UAAU;gBAClB,MAAM;aACP,CAAC,CAAA;QACJ,CAAC;QAED,wDAAwD;QACxD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QAE3B,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAAA;YAE9C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,KAAK,EAAE,CAAA;YACjC,CAAC;iBAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,GAAG,GAAG,CAAC,CAAA;YAChB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAa,MAAO,SAAQ,YAAG;IACtB,gBAAgB,GAAG,IAAI,iCAAqB,CAA0B;QAC3E,KAAK,EAAE,IAAI,mBAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,IAAoB,EAAE,MAAoB,EAAE,EAAE,CACnD,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;KACzC,CAAC,CAAA;IAEK,WAAW,CAAC,OAAuB,EAAE;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;QAChC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACtE,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAqB;QAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,IAAoB;QAC7C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAA;QAElD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAEzD,wCAAwC;QACxC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAA;QACnB,MAAM,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAEnD,MAAM,OAAO,GAAY,EAAE,CAAA;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;YACvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;YACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI;gBACJ,UAAU;gBACV,MAAM,EAAE,UAAU;gBAClB,KAAK;aACN,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,sBAAsB,CAClC,IAAY,EACZ,OAAuB,EAAE;QAEzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACrC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;YACxC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAEhD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;YAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAE3C,OAAO,iBAAiB,CACtB,IAAI,CAAC,GAAG,EACR,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,CACL,CAAA;QACH,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;IACzD,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,OAAuB,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;YACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC1D,CAAC,CAAC,CACH,CAAA;QACD,oFAAoF;QACpF,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAA;YACd,CAAC;YACD,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;YACrC,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAxID,wBAwIC"}
1
+ {"version":3,"file":"bigbed.js","sourceRoot":"","sources":["../src/bigbed.ts"],"names":[],"mappings":"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"}
package/dist/bigwig.js CHANGED
@@ -17,7 +17,7 @@ class BigWig extends bbi_ts_1.BBI {
17
17
  const maxLevel = zoomLevels.length - 1;
18
18
  for (let i = maxLevel; i >= 0; i -= 1) {
19
19
  const zh = zoomLevels[i];
20
- if (zh && zh.reductionLevel <= 2 * basesPerPx) {
20
+ if (zh.reductionLevel <= 2 * basesPerPx) {
21
21
  return this.getOrCreateBlockView(refsByName, zh.indexOffset, uncompressBufSize, 'summary');
22
22
  }
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bigwig.js","sourceRoot":"","sources":["../src/bigwig.ts"],"names":[],"mappings":";;;AAAA,qCAA8B;AAI9B,MAAa,MAAO,SAAQ,YAAG;IAC7B;;;;;;;OAOG;IACO,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,IAAoB;QACzD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,GACjD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAA;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAEtC,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,EAAE,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,oBAAoB,CAC9B,UAAU,EACV,EAAE,CAAC,WAAW,EACd,iBAAiB,EACjB,SAAS,CACV,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF;AA5BD,wBA4BC"}
1
+ {"version":3,"file":"bigwig.js","sourceRoot":"","sources":["../src/bigwig.ts"],"names":[],"mappings":";;;AAAA,qCAA8B;AAI9B,MAAa,MAAO,SAAQ,YAAG;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,CAAE,CAAA;YACzB,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,oBAAoB,CAC9B,UAAU,EACV,EAAE,CAAC,WAAW,EACd,iBAAiB,EACjB,SAAS,CACV,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF;AA5BD,wBA4BC"}
@@ -23,7 +23,7 @@ export declare class BlockView {
23
23
  private uncompressBufSize;
24
24
  private blockType;
25
25
  private rTreePromise?;
26
- private featureCache;
26
+ private rTreeNodeCache;
27
27
  constructor(bbi: GenericFilehandle, refsByName: Record<string, number>, rTreeOffset: number, uncompressBufSize: number, blockType: string);
28
28
  private _collectBlocks;
29
29
  readWigData(chrName: string, start: number, end: number, opts?: Options): Promise<Feature[]>;