@gmod/bam 7.9.1 → 8.1.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/README.md CHANGED
@@ -81,7 +81,11 @@ in each url's own `headers` field, which is applied either way.
81
81
  - `renameRefSeqs` - `(refName: string) => string` applied to header ref names
82
82
  - `recordClass` - custom class extending `BamRecord` (see below)
83
83
  - `maxCacheBytes` - budget for the parsed-chunk cache, in decompressed bytes.
84
- default: 100MB
84
+ default: 512MB. A retention bound rather than a bound on peak memory — reads
85
+ in flight and the last settled entry are never evicted. Size it to hold
86
+ several queries: below one query's working set the hit rate drops to zero
87
+ while the memory is retained anyway, so a number between the two is the worst
88
+ choice
85
89
 
86
90
  The `path`/`url` forms are convenience wrappers for generic-filehandle2's
87
91
  `LocalFile` and `RemoteFile`.
package/dist/bamFile.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { SharedReadCache } from '@gmod/shared-read-cache';
1
2
  import BAI from './bai.ts';
2
3
  import CSI from './csi.ts';
3
4
  import BAMFeature from './record.ts';
@@ -22,22 +23,6 @@ interface ChunkEntry<T> {
22
23
  features: T[];
23
24
  }
24
25
  export declare const DEFAULT_MAX_CACHE_BYTES: number;
25
- declare class ChunkFeatureCache<T> {
26
- private _maxBytes;
27
- private entries;
28
- private bytes;
29
- constructor(maxBytes: number);
30
- get maxBytes(): number;
31
- set maxBytes(maxBytes: number);
32
- get size(): number;
33
- get byteSize(): number;
34
- get(key: string): ChunkEntry<T> | undefined;
35
- set(key: string, entry: ChunkEntry<T>): void;
36
- private evict;
37
- delete(key: string): void;
38
- clear(): void;
39
- [Symbol.iterator](): MapIterator<[string, ChunkEntry<T>]>;
40
- }
41
26
  export default class BamFile<T extends BamRecordLike = BAMFeature> {
42
27
  renameRefSeq: (a: string) => string;
43
28
  bam: GenericFilehandle;
@@ -50,8 +35,14 @@ export default class BamFile<T extends BamRecordLike = BAMFeature> {
50
35
  index?: BAI | CSI;
51
36
  htsget: boolean;
52
37
  headerP?: ReturnType<BamFile<T>['getHeaderPre']>;
53
- chunkFeatureCache: ChunkFeatureCache<T>;
54
- private inFlightChunks;
38
+ /**
39
+ * The signal `headerP` was started under, while it is still in flight. The
40
+ * header is parsed once and every query awaits it, so without this the first
41
+ * query to arrive would own a read all the others depend on — see
42
+ * {@link getHeader}.
43
+ */
44
+ private headerSignal?;
45
+ chunkFeatureCache: SharedReadCache<Chunk, ChunkEntry<T>>;
55
46
  private RecordClass;
56
47
  constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, renameRefSeqs, recordClass, maxCacheBytes, }: {
57
48
  bamFilehandle?: GenericFilehandle;
@@ -66,7 +57,25 @@ export default class BamFile<T extends BamRecordLike = BAMFeature> {
66
57
  renameRefSeqs?: (a: string) => string;
67
58
  htsget?: boolean;
68
59
  recordClass?: BamRecordClass<T>;
69
- /** budget for the parsed-chunk cache, in decompressed bytes */
60
+ /**
61
+ * Budget for the parsed-chunk cache, in decompressed bytes. Defaults to
62
+ * {@link DEFAULT_MAX_CACHE_BYTES}.
63
+ *
64
+ * A **retention** bound, not a bound on peak memory, and the difference is
65
+ * not small on deep data. Three things sit outside it: a read still in
66
+ * flight is never evicted, and up to `MAX_CONCURRENT_CHUNK_READS` of those
67
+ * run at once; the last settled entry is kept whatever the budget; and a
68
+ * query holds every chunk it parsed until it returns, whether or not the
69
+ * cache still does. On 1000x long-read data a single chunk decompresses to
70
+ * 180MB and six in flight is 476MB, neither of which this number can bound.
71
+ *
72
+ * Set it too low and the cache does not degrade gracefully — it inverts. A
73
+ * budget under one query's working set evicts each chunk before the next pan
74
+ * reuses it, so the hit rate is zero, the full re-decompress is paid on every
75
+ * pan, and the memory is retained anyway. Size it to hold several queries or
76
+ * pass `Infinity` and bound memory some other way; do not pick a number
77
+ * between the two (ADR 0014).
78
+ */
70
79
  maxCacheBytes?: number;
71
80
  });
72
81
  getHeaderPre(opts?: BaseOpts): Promise<{
@@ -89,13 +98,28 @@ export default class BamFile<T extends BamRecordLike = BAMFeature> {
89
98
  value: string;
90
99
  }[];
91
100
  }[] | undefined;
92
- getHeader(opts?: BaseOpts): Promise<{
93
- tag: string;
94
- data: {
95
- tag: string;
96
- value: string;
97
- }[];
98
- }[]>;
101
+ /**
102
+ * Parse the header, or join the parse already running.
103
+ *
104
+ * The header is parsed once for the life of this object and every query goes
105
+ * through it — `getSeqId` awaits it before anything else — so it is a read
106
+ * shared between queries, and the third place in this file where a
107
+ * cancellation could leak from the query that asked for it to a query that
108
+ * did not. `getHeaderPre` threads `opts` into both the index parse and the
109
+ * BAM read, so without this the first query to arrive owns a read every other
110
+ * query depends on: when it pans away, every concurrent query fails with its
111
+ * abort even though its own signal is untouched.
112
+ *
113
+ * Same bounded retry as `IndexFile.parse`, for the same reason — the header
114
+ * is parsed once, so there is no repeated waste to recover — and bounded at
115
+ * one attempt so the pathological case is a duplicate parse rather than a
116
+ * recursion whose depth depends on how the aborts interleave.
117
+ *
118
+ * SYNC: ~/src/gmod/tabix-js/src/tabixIndexedFile.ts getParsedHeader — same
119
+ * shape for the same reason.
120
+ */
121
+ getHeader(opts?: BaseOpts, retried?: boolean): Promise<Awaited<ReturnType<BamFile<T>['getHeaderPre']>>>;
122
+ private startHeaderParse;
99
123
  getHeaderText(opts?: BaseOpts): Promise<string | undefined>;
100
124
  private getSeqId;
101
125
  /**
@@ -108,8 +132,6 @@ export default class BamFile<T extends BamRecordLike = BAMFeature> {
108
132
  * it for every other query still holding that read. See ADR 0006.
109
133
  */
110
134
  getRecordsForRange(chr: string, min: number, max: number, opts?: BamOpts): Promise<T[]>;
111
- private _startChunkRead;
112
- private joinChunkRead;
113
135
  private _cachedChunkFeatures;
114
136
  private _fetchChunkFeatures;
115
137
  fetchPairs(chrId: number, records: T[], opts: BamOpts): Promise<T[]>;
package/dist/bamFile.js CHANGED
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DEFAULT_MAX_CACHE_BYTES = exports.BAM_MAGIC = void 0;
7
7
  const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
8
+ const shared_read_cache_1 = require("@gmod/shared-read-cache");
8
9
  const crc32_1 = __importDefault(require("crc/calculators/crc32"));
9
10
  const generic_filehandle2_1 = require("generic-filehandle2");
10
11
  const bai_ts_1 = __importDefault(require("./bai.js"));
@@ -56,79 +57,29 @@ function chunkCacheKey(chunk) {
56
57
  return `${minv.blockPosition}:${minv.dataPosition}-${maxv.blockPosition}:${maxv.dataPosition}`;
57
58
  }
58
59
  // Every record in an entry is a view into its chunk's decompressed buffer, so
59
- // caching one entry pins that whole buffer — 8MB apiece on the nanopore and
60
- // 2kb-read test files, and optimizeChunks merges spans up to 5MB *compressed*,
61
- // so tens of MB is possible. A count-based LRU therefore gives no bound on
62
- // memory at all, which is why this budgets by decompressed bytes instead. It is
63
- // the *only* bound: a query keeps every chunk it parsed, since a chunk dropped
64
- // here costs a re-download and re-decompress the next time the view moves.
65
- exports.DEFAULT_MAX_CACHE_BYTES = 100 * 1024 * 1024;
60
+ // caching one entry pins that whole buffer. A count-based LRU therefore gives no
61
+ // bound on memory at all, which is why this budgets by decompressed bytes.
62
+ //
63
+ // Sized to hold SEVERAL of the largest query a consumer will issue, not one. A
64
+ // budget below a single query's working set does not merely cache less — it
65
+ // evicts each chunk before the next pan can reuse it, so the hit rate is zero
66
+ // and the re-decompress is paid every time (ADR 0014).
67
+ //
68
+ // What sets that scale is the caller's own byte gate, not how deep data can get.
69
+ // jbrowse compares `estimatedBytesForRegions` — COMPRESSED bytes, from the index
70
+ // — against its `fetchSizeLimit` and refuses to query above it. Default 5MB
71
+ // compressed; its own SV demo raises that to 30MB for PacBio HiFi. At the 2.1-7.3x
72
+ // BGZF ratios measured across the jb2bench corpus, that is 10-37MB decompressed
73
+ // per query at the stock gate and 63-219MB at the raised one, so six pan windows
74
+ // want ~219MB and ~378MB respectively. 512MB clears both.
75
+ //
76
+ // It costs a consumer on ordinary data nothing, being a ceiling rather than an
77
+ // allocation: 20x short-read data holds 7MB here whatever this is set to.
78
+ exports.DEFAULT_MAX_CACHE_BYTES = 512 * 1024 * 1024;
66
79
  // How many of a query's chunks to read at once. Six is the HTTP/1.1
67
80
  // per-host connection cap browsers enforce, so going much above it buys
68
81
  // nothing on the transport that matters and only widens peak memory.
69
82
  const MAX_CONCURRENT_CHUNK_READS = 6;
70
- class ChunkFeatureCache {
71
- _maxBytes;
72
- entries = new Map();
73
- bytes = 0;
74
- constructor(maxBytes) {
75
- this._maxBytes = maxBytes;
76
- }
77
- get maxBytes() {
78
- return this._maxBytes;
79
- }
80
- // Accessor rather than a plain field so lowering the budget frees memory now.
81
- // As a field, a caller trimming the cache under memory pressure got nothing
82
- // back until the next chunk read happened to call set().
83
- set maxBytes(maxBytes) {
84
- this._maxBytes = maxBytes;
85
- this.evict();
86
- }
87
- get size() {
88
- return this.entries.size;
89
- }
90
- get byteSize() {
91
- return this.bytes;
92
- }
93
- get(key) {
94
- const entry = this.entries.get(key);
95
- if (entry) {
96
- // re-insert so Map iteration order stays least-recently-used first
97
- this.entries.delete(key);
98
- this.entries.set(key, entry);
99
- }
100
- return entry;
101
- }
102
- set(key, entry) {
103
- this.delete(key);
104
- this.entries.set(key, entry);
105
- this.bytes += entry.bytes;
106
- this.evict();
107
- }
108
- // Evict from the least-recently-used end. The size > 1 guard means a single
109
- // chunk larger than the whole budget is still kept: the caller needs it for
110
- // the query in flight, and dropping it would only force a re-decompress.
111
- evict() {
112
- const lru = this.entries.keys();
113
- while (this.bytes > this._maxBytes && this.entries.size > 1) {
114
- this.delete(lru.next().value);
115
- }
116
- }
117
- delete(key) {
118
- const entry = this.entries.get(key);
119
- if (entry) {
120
- this.entries.delete(key);
121
- this.bytes -= entry.bytes;
122
- }
123
- }
124
- clear() {
125
- this.entries.clear();
126
- this.bytes = 0;
127
- }
128
- [Symbol.iterator]() {
129
- return this.entries[Symbol.iterator]();
130
- }
131
- }
132
83
  class BamFile {
133
84
  renameRefSeq;
134
85
  bam;
@@ -138,17 +89,30 @@ class BamFile {
138
89
  index;
139
90
  htsget = false;
140
91
  headerP;
141
- // Cache for parsed features by chunk, bounded by decompressed bytes
92
+ /**
93
+ * The signal `headerP` was started under, while it is still in flight. The
94
+ * header is parsed once and every query awaits it, so without this the first
95
+ * query to arrive would own a read all the others depend on — see
96
+ * {@link getHeader}.
97
+ */
98
+ headerSignal;
99
+ // Parsed features by chunk, bounded by decompressed bytes. Also the
100
+ // in-flight map: concurrent queries for the same chunk share one read rather
101
+ // than racing to decompress it twice.
142
102
  chunkFeatureCache;
143
- // Chunks currently being read, so concurrent queries share one decompress
144
- // instead of racing. Entries live only until the read settles; the resolved
145
- // features land in chunkFeatureCache.
146
- inFlightChunks = new Map();
147
103
  RecordClass;
148
104
  constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, renameRefSeqs = n => n, recordClass, maxCacheBytes = exports.DEFAULT_MAX_CACHE_BYTES, }) {
149
105
  this.renameRefSeq = renameRefSeqs;
150
106
  this.RecordClass = (recordClass ?? record_ts_1.default);
151
- this.chunkFeatureCache = new ChunkFeatureCache(maxCacheBytes);
107
+ this.chunkFeatureCache = new shared_read_cache_1.SharedReadCache({
108
+ maxSize: maxCacheBytes,
109
+ // decompressed bytes, not entry count: parsed records are views into
110
+ // their chunk's decompressed buffer, so a cached entry pins that whole
111
+ // buffer and entry count says nothing about memory
112
+ sizeOf: entry => entry.bytes,
113
+ cacheKey: chunkCacheKey,
114
+ fill: (chunk, signal) => this._readChunkFeatures(chunk, { signal }),
115
+ });
152
116
  const bamFh = resolveFilehandle(bamFilehandle, bamPath, bamUrl);
153
117
  if (bamFh) {
154
118
  this.bam = bamFh;
@@ -236,14 +200,63 @@ class BamFile {
236
200
  }
237
201
  return samHeader;
238
202
  }
239
- getHeader(opts) {
240
- if (!this.headerP) {
241
- this.headerP = this.getHeaderPre(opts).catch((e) => {
242
- this.headerP = undefined;
203
+ /**
204
+ * Parse the header, or join the parse already running.
205
+ *
206
+ * The header is parsed once for the life of this object and every query goes
207
+ * through it — `getSeqId` awaits it before anything else — so it is a read
208
+ * shared between queries, and the third place in this file where a
209
+ * cancellation could leak from the query that asked for it to a query that
210
+ * did not. `getHeaderPre` threads `opts` into both the index parse and the
211
+ * BAM read, so without this the first query to arrive owns a read every other
212
+ * query depends on: when it pans away, every concurrent query fails with its
213
+ * abort even though its own signal is untouched.
214
+ *
215
+ * Same bounded retry as `IndexFile.parse`, for the same reason — the header
216
+ * is parsed once, so there is no repeated waste to recover — and bounded at
217
+ * one attempt so the pathological case is a duplicate parse rather than a
218
+ * recursion whose depth depends on how the aborts interleave.
219
+ *
220
+ * SYNC: ~/src/gmod/tabix-js/src/tabixIndexedFile.ts getParsedHeader — same
221
+ * shape for the same reason.
222
+ */
223
+ async getHeader(opts, retried = false) {
224
+ (0, util_ts_1.throwIfAborted)(opts?.signal);
225
+ const pending = this.headerP;
226
+ if (!pending) {
227
+ return this.startHeaderParse(opts);
228
+ }
229
+ // read before awaiting: the owner is forgotten as soon as the parse settles
230
+ const ownerSignal = this.headerSignal;
231
+ try {
232
+ return await pending;
233
+ }
234
+ catch (e) {
235
+ if (retried || !ownerSignal?.aborted || opts?.signal?.aborted) {
243
236
  throw e;
244
- });
237
+ }
238
+ return this.getHeader(opts, true);
245
239
  }
246
- return this.headerP;
240
+ }
241
+ startHeaderParse(opts) {
242
+ const pending = this.getHeaderPre(opts);
243
+ this.headerP = pending;
244
+ this.headerSignal = opts?.signal;
245
+ // Drop a rejection rather than keeping it, so one transient failure does not
246
+ // poison the header for the lifetime of the file. Both branches are
247
+ // identity-checked so a retry started after this settles is not cleared by
248
+ // the attempt it already replaced.
249
+ pending.then(() => {
250
+ if (this.headerP === pending) {
251
+ this.headerSignal = undefined;
252
+ }
253
+ }, () => {
254
+ if (this.headerP === pending) {
255
+ this.headerP = undefined;
256
+ this.headerSignal = undefined;
257
+ }
258
+ });
259
+ return pending;
247
260
  }
248
261
  async getHeaderText(opts = {}) {
249
262
  await this.getHeader(opts);
@@ -273,86 +286,6 @@ class BamFile {
273
286
  const chunks = await this.index.blocksForRange(chrId, min - 1, max, opts);
274
287
  return this._fetchChunkFeatures(chunks, chrId, min, max, opts);
275
288
  }
276
- // Read a chunk, publish it to the cache, and keep the in-flight promise
277
- // discoverable while it runs.
278
- //
279
- // The read runs under this entry's own controller rather than any one
280
- // caller's signal, because the read is shared: it must survive until every
281
- // caller waiting on it has given up. joinChunkRead is what registers them.
282
- _startChunkRead(cacheKey, chunk) {
283
- const controller = new AbortController();
284
- const promise = this._readChunkFeatures(chunk, {
285
- signal: controller.signal,
286
- }).then(entry => {
287
- this.chunkFeatureCache.set(cacheKey, entry);
288
- return entry;
289
- });
290
- const inFlight = {
291
- promise,
292
- signals: new Set(),
293
- pinned: false,
294
- controller,
295
- dispose: new AbortController(),
296
- settled: false,
297
- };
298
- this.inFlightChunks.set(cacheKey, inFlight);
299
- // `.then(f, f)` rather than `.finally(f)` so the handler's own promise never
300
- // carries an unhandled rejection.
301
- const clear = () => {
302
- inFlight.settled = true;
303
- // nothing reads these once the read has settled, and holding them would
304
- // pin each caller's AbortController behind this entry
305
- inFlight.dispose.abort();
306
- inFlight.signals.clear();
307
- // only clear our own entry: a later read for this chunk may have replaced it
308
- if (this.inFlightChunks.get(cacheKey) === inFlight) {
309
- this.inFlightChunks.delete(cacheKey);
310
- }
311
- };
312
- promise.then(clear, clear);
313
- return inFlight;
314
- }
315
- // Register a caller's interest, so the read survives until that caller has
316
- // given up too.
317
- //
318
- // A caller with no signal cannot give up, so it pins the read: there is no
319
- // longer any set of aborts that should stop it. That is the honest reading of
320
- // a caller that never asked to be cancellable, and it means one signal-free
321
- // query makes that chunk's read uncancellable for everyone joined to it.
322
- joinChunkRead(inFlight, signal) {
323
- if (signal === undefined) {
324
- inFlight.pinned = true;
325
- }
326
- else if (signal.aborted) {
327
- // A caller that has already given up is not a waiter, and must not be
328
- // counted as one: an `abort` listener never fires on a signal that
329
- // aborted before it was added, so nothing would ever take this signal
330
- // back out of the set. The count would never reach zero and the read
331
- // would be uncancellable for everyone joined to it, silently.
332
- //
333
- // `_cachedChunkFeatures` rejects such a caller before it reaches here,
334
- // with no `await` in between, so this is unreachable today. It is here
335
- // because this is the bug that shipped, and an invariant that fails this
336
- // quietly should not rest on a check twenty lines away. `@gmod/cram`
337
- // guards the same spot for the same reason; see its ADR 0003.
338
- if (!inFlight.pinned && inFlight.signals.size === 0) {
339
- inFlight.controller.abort(signal.reason);
340
- }
341
- }
342
- else if (!inFlight.signals.has(signal)) {
343
- // guarded so one signal joining twice — a viewAsPairs query reaching the
344
- // same chunk for a read and for its mate — does not add two listeners
345
- inFlight.signals.add(signal);
346
- signal.addEventListener('abort', () => {
347
- inFlight.signals.delete(signal);
348
- if (!inFlight.pinned && inFlight.signals.size === 0) {
349
- inFlight.controller.abort(signal.reason);
350
- }
351
- },
352
- // `once` covers the abort firing; `dispose` covers it never firing
353
- { once: true, signal: inFlight.dispose.signal });
354
- }
355
- }
356
289
  // Parsed records for a chunk, reading and decompressing it only on a miss.
357
290
  // Every path that wants a chunk's features goes through here — mate lookups
358
291
  // included, since a viewAsPairs query revisits the same mate chunks each time
@@ -364,54 +297,11 @@ class BamFile {
364
297
  // each caller its own objects, but roughly doubles a warm query on dense data
365
298
  // — measured, and rejected, in that ADR.
366
299
  async _cachedChunkFeatures(chunk, opts) {
367
- // Before anything else, including the cache hit. A caller reaches here with
368
- // a signal that has already fired on the ordinary pan — the abort lands
369
- // while blocksForRange is still reading the index, and nothing between
370
- // there and here looks at it, since bai.ts and csi.ts never read the
371
- // signal. Such a caller must not start a read it has no interest in, and
372
- // must not be registered as a waiter on someone else's: see joinChunkRead.
373
- // @gmod/cram checks in exactly this position, in SliceRecordCache.getOrFill.
374
- (0, util_ts_1.throwIfAborted)(opts.signal);
375
- const cacheKey = chunkCacheKey(chunk);
376
- const cached = this.chunkFeatureCache.get(cacheKey);
377
- if (cached) {
378
- return cached.features;
379
- }
380
- // Join a read already running for this chunk rather than decompressing it a
381
- // second time. jbrowse fetches a row of adjacent blocks concurrently and
382
- // they collapse onto very few chunk keys, so without this a query pays for
383
- // the same inflate several times over — the dominant cost of a cold query
384
- // (ADR 0003).
385
- let pending = this.inFlightChunks.get(cacheKey);
386
- // A read every caller has abandoned is on its way out but may not have
387
- // noticed yet. Start a fresh one rather than joining one already doomed.
388
- if (pending?.controller.signal.aborted && !pending.settled) {
389
- if (this.inFlightChunks.get(cacheKey) === pending) {
390
- this.inFlightChunks.delete(cacheKey);
391
- }
392
- pending = undefined;
393
- }
394
- pending ??= this._startChunkRead(cacheKey, chunk);
395
- // Only a read still running has anything to cancel. Joining a settled one
396
- // would add this caller to a set nothing will ever take it out of, since
397
- // the entry drops its abort listeners when it settles.
398
- if (!pending.settled) {
399
- this.joinChunkRead(pending, opts.signal);
400
- }
401
- try {
402
- const entry = await pending.promise;
403
- // the read finished, but this caller gave up while waiting for it
404
- (0, util_ts_1.throwIfAborted)(opts.signal);
405
- return entry.features;
406
- }
407
- catch (e) {
408
- // Prefer this caller's own cancellation to whatever the shared read
409
- // reported. If we asked to stop, that is the answer we want — and when
410
- // the read itself was cancelled it is because we, and everyone else,
411
- // asked it to.
412
- (0, util_ts_1.throwIfAborted)(opts.signal);
413
- throw e;
414
- }
300
+ // The cache does the rest: one read per chunk shared by every caller that
301
+ // asks for it while it is in flight, cancelled only once every one of them
302
+ // has given up (ADR 0007), and bounded by decompressed bytes.
303
+ const entry = await this.chunkFeatureCache.get(chunk, opts.signal);
304
+ return entry.features;
415
305
  }
416
306
  async _fetchChunkFeatures(chunks, chrId, min, max, opts = {}) {
417
307
  const { viewAsPairs, onProgress } = opts;
@@ -1 +1 @@
1
- {"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":"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"}
@@ -22,14 +22,14 @@ export declare function memoizeByRefId<T>(getIndices: (refId: number) => T | und
22
22
  export default abstract class IndexFile<TParsed extends ParsedIndexBase = ParsedIndexBase> {
23
23
  filehandle: GenericFilehandle;
24
24
  renameRefSeq: (s: string) => string;
25
- private setupP?;
25
+ private parseP?;
26
26
  /**
27
- * The signal `setupP` was started under, while it is still in flight. The
27
+ * The signal `parseP` was started under, while it is still in flight. The
28
28
  * index is parsed once and shared by every query against the file, so without
29
29
  * this the first query to arrive would own a read all the others depend on —
30
30
  * see {@link parse}.
31
31
  */
32
- private setupSignal?;
32
+ private parseSignal?;
33
33
  constructor({ filehandle, renameRefSeq, }: {
34
34
  filehandle: GenericFilehandle;
35
35
  renameRefSeq?: (a: string) => string;