@gmod/bbi 1.0.35 → 2.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/esm/bbi.js CHANGED
@@ -1,9 +1,7 @@
1
- import { Parser } from '@gmod/binary-parser';
1
+ import { Parser } from 'binary-parser';
2
2
  import { LocalFile, RemoteFile } from 'generic-filehandle';
3
3
  import { Observable } from 'rxjs';
4
4
  import { reduce } from 'rxjs/operators';
5
- import AbortablePromiseCache from 'abortable-promise-cache';
6
- import QuickLRU from 'quick-lru';
7
5
  import { BlockView } from './blockView';
8
6
  const BIG_WIG_MAGIC = -2003829722;
9
7
  const BIG_BED_MAGIC = -2021002517;
@@ -31,6 +29,7 @@ function getParsers(isBE) {
31
29
  .array('zoomLevels', {
32
30
  length: 'numZoomLevels',
33
31
  type: new Parser()
32
+ .endianess(le)
34
33
  .uint32('reductionLevel')
35
34
  .uint32('reserved')
36
35
  .uint64('dataOffset')
@@ -39,10 +38,10 @@ function getParsers(isBE) {
39
38
  const totalSummaryParser = new Parser()
40
39
  .endianess(le)
41
40
  .uint64('basesCovered')
42
- .double('scoreMin')
43
- .double('scoreMax')
44
- .double('scoreSum')
45
- .double('scoreSumSquares');
41
+ .doublele('scoreMin')
42
+ .doublele('scoreMax')
43
+ .doublele('scoreSum')
44
+ .doublele('scoreSumSquares');
46
45
  const chromTreeParser = new Parser()
47
46
  .endianess(le)
48
47
  .uint32('magic')
@@ -54,7 +53,8 @@ function getParsers(isBE) {
54
53
  .endianess(le)
55
54
  .uint8('isLeafNode')
56
55
  .skip(1)
57
- .uint16('cnt');
56
+ .uint16('cnt')
57
+ .saveOffset('offset');
58
58
  return {
59
59
  chromTreeParser,
60
60
  totalSummaryParser,
@@ -70,14 +70,8 @@ export class BBI {
70
70
  * @param renameRefSeqs - an optional method to rename the internal reference sequences using a mapping function
71
71
  */
72
72
  constructor(options = {}) {
73
- this.headerCache = new AbortablePromiseCache({
74
- cache: new QuickLRU({ maxSize: 1 }),
75
- fill: async (params, signal) => {
76
- return this._getHeader({ ...params, signal });
77
- },
78
- });
79
- const { filehandle, renameRefSeqs, path, url } = options;
80
- this.renameRefSeqs = renameRefSeqs || ((s) => s);
73
+ const { filehandle, renameRefSeqs = s => s, path, url } = options;
74
+ this.renameRefSeqs = renameRefSeqs;
81
75
  if (filehandle) {
82
76
  this.bbi = filehandle;
83
77
  }
@@ -97,7 +91,13 @@ export class BBI {
97
91
  */
98
92
  getHeader(opts = {}) {
99
93
  const options = 'aborted' in opts ? { signal: opts } : opts;
100
- return this.headerCache.get(JSON.stringify(options), options, options.signal);
94
+ if (!this.headerP) {
95
+ this.headerP = this._getHeader(options).catch(e => {
96
+ this.headerP = undefined;
97
+ throw e;
98
+ });
99
+ }
100
+ return this.headerP;
101
101
  }
102
102
  async _getHeader(opts) {
103
103
  const header = await this._getMainHeader(opts);
@@ -108,23 +108,24 @@ export class BBI {
108
108
  const { buffer } = await this.bbi.read(Buffer.alloc(requestSize), 0, requestSize, 0, opts);
109
109
  const isBigEndian = this._isBigEndian(buffer);
110
110
  const ret = getParsers(isBigEndian);
111
- const header = ret.headerParser.parse(buffer).result;
112
- header.fileType = header.magic === BIG_BED_MAGIC ? 'bigbed' : 'bigwig';
113
- if (header.asOffset > requestSize ||
114
- header.totalSummaryOffset > requestSize) {
111
+ const header = ret.headerParser.parse(buffer);
112
+ const { magic, asOffset, totalSummaryOffset } = header;
113
+ header.fileType = magic === BIG_BED_MAGIC ? 'bigbed' : 'bigwig';
114
+ if (asOffset > requestSize || totalSummaryOffset > requestSize) {
115
115
  return this._getMainHeader(opts, requestSize * 2);
116
116
  }
117
- if (header.asOffset) {
117
+ if (asOffset) {
118
+ const off = Number(header.asOffset);
118
119
  header.autoSql = buffer
119
- .slice(header.asOffset, buffer.indexOf(0, header.asOffset))
120
+ .subarray(off, buffer.indexOf(0, off))
120
121
  .toString('utf8');
121
122
  }
122
123
  if (header.totalSummaryOffset > requestSize) {
123
124
  return this._getMainHeader(opts, requestSize * 2);
124
125
  }
125
126
  if (header.totalSummaryOffset) {
126
- const tail = buffer.slice(header.totalSummaryOffset);
127
- header.totalSummary = ret.totalSummaryParser.parse(tail).result;
127
+ const tail = buffer.subarray(Number(header.totalSummaryOffset));
128
+ header.totalSummary = ret.totalSummaryParser.parse(tail);
128
129
  }
129
130
  return { ...header, isBigEndian };
130
131
  }
@@ -145,37 +146,40 @@ export class BBI {
145
146
  const le = isBE ? 'big' : 'little';
146
147
  const refsByNumber = [];
147
148
  const refsByName = {};
148
- const { chromTreeOffset } = header;
149
- let { unzoomedDataOffset } = header;
149
+ let unzoomedDataOffset = Number(header.unzoomedDataOffset);
150
+ const chromTreeOffset = Number(header.chromTreeOffset);
150
151
  while (unzoomedDataOffset % 4 !== 0) {
151
152
  unzoomedDataOffset += 1;
152
153
  }
153
- const { buffer: data } = await this.bbi.read(Buffer.alloc(unzoomedDataOffset - chromTreeOffset), 0, unzoomedDataOffset - chromTreeOffset, chromTreeOffset, opts);
154
+ const off = unzoomedDataOffset - chromTreeOffset;
155
+ const { buffer } = await this.bbi.read(Buffer.alloc(off), 0, off, Number(chromTreeOffset), opts);
154
156
  const p = getParsers(isBE);
155
- const { keySize } = p.chromTreeParser.parse(data).result;
157
+ const { keySize } = p.chromTreeParser.parse(buffer);
156
158
  const leafNodeParser = new Parser()
157
159
  .endianess(le)
158
160
  .string('key', { stripNull: true, length: keySize })
159
161
  .uint32('refId')
160
- .uint32('refSize');
162
+ .uint32('refSize')
163
+ .saveOffset('offset');
161
164
  const nonleafNodeParser = new Parser()
162
165
  .endianess(le)
163
166
  .skip(keySize)
164
- .uint64('childOffset');
167
+ .uint64('childOffset')
168
+ .saveOffset('offset');
165
169
  const rootNodeOffset = 32;
166
170
  const bptReadNode = async (currentOffset) => {
167
171
  let offset = currentOffset;
168
- if (offset >= data.length) {
172
+ if (offset >= buffer.length) {
169
173
  throw new Error('reading beyond end of buffer');
170
174
  }
171
- const ret = p.isLeafNode.parse(data.slice(offset));
172
- const { isLeafNode, cnt } = ret.result;
175
+ const ret = p.isLeafNode.parse(buffer.subarray(offset));
176
+ const { isLeafNode, cnt } = ret;
173
177
  offset += ret.offset;
174
178
  if (isLeafNode) {
175
179
  for (let n = 0; n < cnt; n += 1) {
176
- const leafRet = leafNodeParser.parse(data.slice(offset));
180
+ const leafRet = leafNodeParser.parse(buffer.subarray(offset));
177
181
  offset += leafRet.offset;
178
- const { key, refId, refSize } = leafRet.result;
182
+ const { key, refId, refSize } = leafRet;
179
183
  const refRec = { name: key, id: refId, length: refSize };
180
184
  refsByName[this.renameRefSeqs(key)] = refId;
181
185
  refsByNumber[refId] = refRec;
@@ -185,11 +189,10 @@ export class BBI {
185
189
  // parse index node
186
190
  const nextNodes = [];
187
191
  for (let n = 0; n < cnt; n += 1) {
188
- const nonleafRet = nonleafNodeParser.parse(data.slice(offset));
189
- let { childOffset } = nonleafRet.result;
192
+ const nonleafRet = nonleafNodeParser.parse(buffer.subarray(offset));
193
+ const { childOffset } = nonleafRet;
190
194
  offset += nonleafRet.offset;
191
- childOffset -= chromTreeOffset;
192
- nextNodes.push(bptReadNode(childOffset));
195
+ nextNodes.push(bptReadNode(Number(childOffset) - Number(chromTreeOffset)));
193
196
  }
194
197
  await Promise.all(nextNodes);
195
198
  }
@@ -205,10 +208,8 @@ export class BBI {
205
208
  * @param abortSignal - a signal to optionally abort this operation
206
209
  */
207
210
  async getUnzoomedView(opts) {
208
- const { unzoomedIndexOffset, zoomLevels, refsByName, uncompressBufSize, isBigEndian, fileType, } = await this.getHeader(opts);
209
- const nzl = zoomLevels[0];
210
- const cirLen = nzl ? nzl.dataOffset - unzoomedIndexOffset : 4000;
211
- return new BlockView(this.bbi, refsByName, unzoomedIndexOffset, cirLen, isBigEndian, uncompressBufSize > 0, fileType);
211
+ const { unzoomedIndexOffset, refsByName, uncompressBufSize, isBigEndian, fileType, } = await this.getHeader(opts);
212
+ return new BlockView(this.bbi, refsByName, unzoomedIndexOffset, isBigEndian, uncompressBufSize > 0, fileType);
212
213
  }
213
214
  /**
214
215
  * Gets features from a BigWig file
package/esm/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/esm/bigbed.d.ts CHANGED
@@ -3,9 +3,8 @@ import { BlockView } from './blockView';
3
3
  export declare function filterUndef<T>(ts: (T | undefined)[]): T[];
4
4
  export declare class BigBed extends BBI {
5
5
  readIndicesCache: any;
6
- constructor(opts?: any);
7
6
  readIndices(opts?: AbortSignal | RequestOptions): any;
8
- protected getView(scale: number, opts: RequestOptions): Promise<BlockView>;
7
+ protected getView(_scale: number, opts: RequestOptions): Promise<BlockView>;
9
8
  private _readIndices;
10
9
  private searchExtraIndexBlocks;
11
10
  searchExtraIndex(name: string, opts?: RequestOptions): Promise<Feature[]>;
package/esm/bigbed.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Parser } from '@gmod/binary-parser';
1
+ import { Parser } from 'binary-parser';
2
2
  import { Observable, merge } from 'rxjs';
3
3
  import { map, reduce } from 'rxjs/operators';
4
4
  import AbortablePromiseCache from 'abortable-promise-cache';
@@ -8,8 +8,8 @@ export function filterUndef(ts) {
8
8
  return ts.filter((t) => !!t);
9
9
  }
10
10
  export class BigBed extends BBI {
11
- constructor(opts) {
12
- super(opts);
11
+ constructor() {
12
+ super(...arguments);
13
13
  this.readIndicesCache = new AbortablePromiseCache({
14
14
  cache: new QuickLRU({ maxSize: 1 }),
15
15
  fill: async (args, signal) => {
@@ -27,7 +27,7 @@ export class BigBed extends BBI {
27
27
  * @param abortSignal - an optional AbortSignal to kill operation
28
28
  * @return promise for a BlockView
29
29
  */
30
- async getView(scale, opts) {
30
+ async getView(_scale, opts) {
31
31
  return this.getUnzoomedView(opts);
32
32
  }
33
33
  /*
@@ -37,14 +37,14 @@ export class BigBed extends BBI {
37
37
  */
38
38
  async _readIndices(opts) {
39
39
  const { extHeaderOffset, isBigEndian } = await this.getHeader(opts);
40
- const { buffer: data } = await this.bbi.read(Buffer.alloc(64), 0, 64, extHeaderOffset);
40
+ const { buffer: data } = await this.bbi.read(Buffer.alloc(64), 0, 64, Number(extHeaderOffset));
41
41
  const le = isBigEndian ? 'big' : 'little';
42
42
  const ret = new Parser()
43
43
  .endianess(le)
44
44
  .uint16('size')
45
45
  .uint16('count')
46
46
  .uint64('offset')
47
- .parse(data).result;
47
+ .parse(data);
48
48
  const { count, offset } = ret;
49
49
  // no extra index is defined if count==0
50
50
  if (count === 0) {
@@ -52,7 +52,7 @@ export class BigBed extends BBI {
52
52
  }
53
53
  const blocklen = 20;
54
54
  const len = blocklen * count;
55
- const { buffer } = await this.bbi.read(Buffer.alloc(len), 0, len, offset);
55
+ const { buffer } = await this.bbi.read(Buffer.alloc(len), 0, len, Number(offset));
56
56
  const extParser = new Parser()
57
57
  .endianess(le)
58
58
  .int16('type')
@@ -62,7 +62,7 @@ export class BigBed extends BBI {
62
62
  .int16('field');
63
63
  const indices = [];
64
64
  for (let i = 0; i < count; i += 1) {
65
- indices.push(extParser.parse(buffer.slice(i * blocklen)).result);
65
+ indices.push(extParser.parse(buffer.subarray(i * blocklen)));
66
66
  }
67
67
  return indices;
68
68
  }
@@ -82,17 +82,19 @@ export class BigBed extends BBI {
82
82
  }
83
83
  const locs = indices.map(async (index) => {
84
84
  const { offset, field } = index;
85
- const { buffer: data } = await this.bbi.read(Buffer.alloc(32), 0, 32, offset, opts);
85
+ const { buffer: data } = await this.bbi.read(Buffer.alloc(32), 0, 32, Number(offset), opts);
86
+ const le = isBigEndian ? 'big' : 'little';
86
87
  const p = new Parser()
87
- .endianess(isBigEndian ? 'big' : 'little')
88
+ .endianess(le)
88
89
  .int32('magic')
89
90
  .int32('blockSize')
90
91
  .int32('keySize')
91
92
  .int32('valSize')
92
93
  .uint64('itemCount');
93
- const { blockSize, keySize, valSize } = p.parse(data).result;
94
+ const { blockSize, keySize, valSize } = p.parse(data);
95
+ // console.log({blockSize,keySize,valSize})
94
96
  const bpt = new Parser()
95
- .endianess(isBigEndian ? 'big' : 'little')
97
+ .endianess(le)
96
98
  .int8('nodeType')
97
99
  .skip(1)
98
100
  .int16('cnt')
@@ -102,12 +104,14 @@ export class BigBed extends BBI {
102
104
  0: new Parser().array('leafkeys', {
103
105
  length: 'cnt',
104
106
  type: new Parser()
107
+ .endianess(le)
105
108
  .string('key', { length: keySize, stripNull: true })
106
109
  .uint64('offset'),
107
110
  }),
108
111
  1: new Parser().array('keys', {
109
112
  length: 'cnt',
110
113
  type: new Parser()
114
+ .endianess(le)
111
115
  .string('key', { length: keySize, stripNull: true })
112
116
  .uint64('offset')
113
117
  .uint32('length')
@@ -116,9 +120,10 @@ export class BigBed extends BBI {
116
120
  },
117
121
  });
118
122
  const bptReadNode = async (nodeOffset) => {
123
+ const val = Number(nodeOffset);
119
124
  const len = 4 + blockSize * (keySize + valSize);
120
- const { buffer } = await this.bbi.read(Buffer.alloc(len), 0, len, nodeOffset, opts);
121
- const node = bpt.parse(buffer).result;
125
+ const { buffer } = await this.bbi.read(Buffer.alloc(len), 0, len, val, opts);
126
+ const node = bpt.parse(buffer);
122
127
  if (node.leafkeys) {
123
128
  let lastOffset;
124
129
  for (let i = 0; i < node.leafkeys.length; i += 1) {
@@ -138,7 +143,7 @@ export class BigBed extends BBI {
138
143
  return undefined;
139
144
  };
140
145
  const rootNodeOffset = 32;
141
- return bptReadNode(offset + rootNodeOffset);
146
+ return bptReadNode(Number(offset) + rootNodeOffset);
142
147
  });
143
148
  return filterUndef(await Promise.all(locs));
144
149
  }
@@ -157,7 +162,7 @@ export class BigBed extends BBI {
157
162
  }
158
163
  const view = await this.getUnzoomedView(opts);
159
164
  const res = blocks.map(block => {
160
- return new Observable((observer) => {
165
+ return new Observable(observer => {
161
166
  view.readFeatures(observer, [block], opts);
162
167
  }).pipe(reduce((acc, curr) => acc.concat(curr)), map(x => {
163
168
  for (let i = 0; i < x.length; i += 1) {
@@ -167,9 +172,7 @@ export class BigBed extends BBI {
167
172
  }));
168
173
  });
169
174
  const ret = await merge(...res).toPromise();
170
- return ret.filter((f) => {
171
- return f.rest.split('\t')[f.field - 3] === name;
172
- });
175
+ return ret.filter(f => { var _a; return ((_a = f.rest) === null || _a === void 0 ? void 0 : _a.split('\t')[(f.field || 0) - 3]) === name; });
173
176
  }
174
177
  }
175
178
  //# 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.d.ts CHANGED
@@ -4,9 +4,7 @@ export declare class BigWig extends BBI {
4
4
  /**
5
5
  * Retrieves a BlockView of a specific zoomLevel
6
6
  *
7
- * @param refName - The chromosome name
8
- * @param start - The start of a region
9
- * @param end - The end of a region
7
+ * @param scale - number
10
8
  * @param opts - An object containing basesPerSpan (e.g. pixels per basepair) or scale used to infer the zoomLevel to use
11
9
  */
12
10
  protected getView(scale: number, opts: RequestOptions): Promise<BlockView>;
package/esm/bigwig.js CHANGED
@@ -4,9 +4,7 @@ export class BigWig extends BBI {
4
4
  /**
5
5
  * Retrieves a BlockView of a specific zoomLevel
6
6
  *
7
- * @param refName - The chromosome name
8
- * @param start - The start of a region
9
- * @param end - The end of a region
7
+ * @param scale - number
10
8
  * @param opts - An object containing basesPerSpan (e.g. pixels per basepair) or scale used to infer the zoomLevel to use
11
9
  */
12
10
  async getView(scale, opts) {
@@ -20,10 +18,8 @@ export class BigWig extends BBI {
20
18
  for (let i = maxLevel; i >= 0; i -= 1) {
21
19
  const zh = zoomLevels[i];
22
20
  if (zh && zh.reductionLevel <= 2 * basesPerPx) {
23
- const indexLength = i < zoomLevels.length - 1
24
- ? zoomLevels[i + 1].dataOffset - zh.indexOffset
25
- : fileSize - 4 - zh.indexOffset;
26
- return new BlockView(this.bbi, refsByName, zh.indexOffset, indexLength, isBigEndian, uncompressBufSize > 0, 'summary');
21
+ const indexOffset = Number(zh.indexOffset);
22
+ return new BlockView(this.bbi, refsByName, indexOffset, isBigEndian, uncompressBufSize > 0, 'summary');
27
23
  }
28
24
  }
29
25
  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,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,GAAG,EAAkB,MAAM,OAAO,CAAA;AAE3C,MAAM,OAAO,MAAO,SAAQ,GAAG;IAC7B;;;;;;;OAOG;IACO,KAAK,CAAC,OAAO,CACrB,KAAa,EACb,IAAoB;QAEpB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,GACxE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAA;QAC5B,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAA;QAChC,IAAI,CAAC,QAAQ,EAAE;YACb,4EAA4E;YAC5E,QAAQ,IAAI,CAAC,CAAA;SACd;QAED,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YACrC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,EAAE,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,GAAG,UAAU,EAAE;gBAC7C,MAAM,WAAW,GACf,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;oBACvB,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,WAAW;oBAC/C,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAA;gBACnC,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,GAAG,EACR,UAAU,EACV,EAAE,CAAC,WAAW,EACd,WAAW,EACX,WAAW,EACX,iBAAiB,GAAG,CAAC,EACrB,SAAS,CACV,CAAA;aACF;SACF;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,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,GAAG,EAAkB,MAAM,OAAO,CAAA;AAE3C,MAAM,OAAO,MAAO,SAAQ,GAAG;IAC7B;;;;;OAKG;IACO,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,IAAoB;QACzD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,GACxE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAA;QAC5B,IAAI,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAA;QAChC,IAAI,CAAC,QAAQ,EAAE;YACb,4EAA4E;YAC5E,QAAQ,IAAI,CAAC,CAAA;SACd;QAED,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YACrC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,EAAE,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,GAAG,UAAU,EAAE;gBAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;gBAE1C,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,GAAG,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,GAAG,CAAC,EACrB,SAAS,CACV,CAAA;aACF;SACF;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACF"}
@@ -18,25 +18,24 @@ interface Options {
18
18
  * @constructs
19
19
  */
20
20
  export declare class BlockView {
21
- private cirTreeOffset;
22
- private cirTreeLength;
23
21
  private bbi;
24
- private isCompressed;
25
- private isBigEndian;
26
22
  private refsByName;
23
+ private cirTreeOffset;
24
+ private isBigEndian;
25
+ private isCompressed;
27
26
  private blockType;
28
27
  private cirTreePromise?;
29
28
  private featureCache;
30
29
  private leafParser;
31
- private bigWigParser;
32
30
  private bigBedParser;
33
- private summaryParser;
34
- constructor(bbi: GenericFilehandle, refsByName: any, cirTreeOffset: number, cirTreeLength: number, isBigEndian: boolean, isCompressed: boolean, blockType: string);
31
+ constructor(bbi: GenericFilehandle, refsByName: any, cirTreeOffset: number, isBigEndian: boolean, isCompressed: boolean, blockType: string);
35
32
  readWigData(chrName: string, start: number, end: number, observer: Observer<Feature[]>, opts: Options): Promise<void>;
36
33
  private parseSummaryBlock;
37
34
  private parseBigBedBlock;
38
35
  private parseBigWigBlock;
39
- private static coordFilter;
40
- readFeatures(observer: Observer<Feature[]>, blocks: any, opts?: Options): Promise<void>;
36
+ readFeatures(observer: Observer<Feature[]>, blocks: {
37
+ offset: bigint;
38
+ length: bigint;
39
+ }[], opts?: Options): Promise<void>;
41
40
  }
42
41
  export {};