@gmod/bam 1.1.18 → 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.
Files changed (79) hide show
  1. package/CHANGELOG.md +61 -25
  2. package/README.md +95 -57
  3. package/dist/bai.d.ts +34 -15
  4. package/dist/bai.js +87 -91
  5. package/dist/bai.js.map +1 -1
  6. package/dist/bamFile.d.ts +33 -27
  7. package/dist/bamFile.js +127 -121
  8. package/dist/bamFile.js.map +1 -1
  9. package/dist/chunk.d.ts +4 -8
  10. package/dist/chunk.js +2 -8
  11. package/dist/chunk.js.map +1 -1
  12. package/dist/csi.d.ts +74 -10
  13. package/dist/csi.js +78 -90
  14. package/dist/csi.js.map +1 -1
  15. package/dist/htsget.d.ts +5 -8
  16. package/dist/htsget.js +72 -47
  17. package/dist/htsget.js.map +1 -1
  18. package/dist/index.d.ts +5 -6
  19. package/dist/index.js +11 -11
  20. package/dist/index.js.map +1 -1
  21. package/dist/indexFile.d.ts +0 -6
  22. package/dist/indexFile.js +0 -35
  23. package/dist/indexFile.js.map +1 -1
  24. package/dist/nullIndex.d.ts +7 -0
  25. package/dist/nullIndex.js +33 -0
  26. package/dist/nullIndex.js.map +1 -0
  27. package/dist/record.d.ts +2 -2
  28. package/dist/record.js +34 -24
  29. package/dist/record.js.map +1 -1
  30. package/dist/sam.js +9 -7
  31. package/dist/sam.js.map +1 -1
  32. package/dist/util.d.ts +13 -1
  33. package/dist/util.js +47 -15
  34. package/dist/util.js.map +1 -1
  35. package/esm/bai.d.ts +34 -15
  36. package/esm/bai.js +86 -91
  37. package/esm/bai.js.map +1 -1
  38. package/esm/bamFile.d.ts +33 -27
  39. package/esm/bamFile.js +124 -120
  40. package/esm/bamFile.js.map +1 -1
  41. package/esm/chunk.d.ts +4 -8
  42. package/esm/chunk.js +2 -8
  43. package/esm/chunk.js.map +1 -1
  44. package/esm/csi.d.ts +74 -10
  45. package/esm/csi.js +85 -93
  46. package/esm/csi.js.map +1 -1
  47. package/esm/htsget.d.ts +5 -8
  48. package/esm/htsget.js +68 -43
  49. package/esm/htsget.js.map +1 -1
  50. package/esm/index.d.ts +5 -6
  51. package/esm/index.js +5 -6
  52. package/esm/index.js.map +1 -1
  53. package/esm/indexFile.d.ts +0 -6
  54. package/esm/indexFile.js +0 -22
  55. package/esm/indexFile.js.map +1 -1
  56. package/esm/nullIndex.d.ts +7 -0
  57. package/esm/nullIndex.js +16 -0
  58. package/esm/nullIndex.js.map +1 -0
  59. package/esm/record.d.ts +2 -2
  60. package/esm/record.js +34 -24
  61. package/esm/record.js.map +1 -1
  62. package/esm/sam.js +9 -7
  63. package/esm/sam.js.map +1 -1
  64. package/esm/util.d.ts +13 -1
  65. package/esm/util.js +40 -14
  66. package/esm/util.js.map +1 -1
  67. package/package.json +16 -17
  68. package/src/bai.ts +99 -102
  69. package/src/bamFile.ts +174 -198
  70. package/src/chunk.ts +6 -20
  71. package/src/csi.ts +102 -111
  72. package/src/htsget.ts +81 -61
  73. package/src/index.ts +5 -7
  74. package/src/indexFile.ts +0 -27
  75. package/src/nullIndex.ts +18 -0
  76. package/src/record.ts +34 -24
  77. package/src/sam.ts +9 -7
  78. package/src/util.ts +54 -13
  79. package/src/declare.d.ts +0 -2
package/dist/bamFile.js CHANGED
@@ -19,7 +19,7 @@ var __await = (this && this.__await) || function (v) { return this instanceof __
19
19
  var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
20
20
  var i, p;
21
21
  return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
22
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
22
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
23
23
  };
24
24
  var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
25
25
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -37,13 +37,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.BAM_MAGIC = void 0;
40
+ const buffer_1 = require("buffer");
40
41
  const buffer_crc32_1 = __importDefault(require("buffer-crc32"));
41
42
  const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
42
- const object_entries_ponyfill_1 = __importDefault(require("object.entries-ponyfill"));
43
43
  const generic_filehandle_1 = require("generic-filehandle");
44
44
  const abortable_promise_cache_1 = __importDefault(require("abortable-promise-cache"));
45
45
  const quick_lru_1 = __importDefault(require("quick-lru"));
46
- //locals
46
+ // locals
47
47
  const bai_1 = __importDefault(require("./bai"));
48
48
  const csi_1 = __importDefault(require("./csi"));
49
49
  const record_1 = __importDefault(require("./record"));
@@ -51,21 +51,18 @@ const sam_1 = require("./sam");
51
51
  const util_1 = require("./util");
52
52
  exports.BAM_MAGIC = 21840194;
53
53
  const blockLen = 1 << 16;
54
- function flat(arr) {
55
- return [].concat(...arr);
56
- }
57
54
  function gen2array(gen) {
58
55
  var _a, gen_1, gen_1_1;
59
56
  var _b, e_1, _c, _d;
60
57
  return __awaiter(this, void 0, void 0, function* () {
61
- const out = [];
58
+ let out = [];
62
59
  try {
63
60
  for (_a = true, gen_1 = __asyncValues(gen); gen_1_1 = yield gen_1.next(), _b = gen_1_1.done, !_b;) {
64
61
  _d = gen_1_1.value;
65
62
  _a = false;
66
63
  try {
67
64
  const x = _d;
68
- out.push(x);
65
+ out = out.concat(x);
69
66
  }
70
67
  finally {
71
68
  _a = true;
@@ -82,28 +79,34 @@ function gen2array(gen) {
82
79
  return out;
83
80
  });
84
81
  }
82
+ class NullFilehandle {
83
+ read() {
84
+ throw new Error('never called');
85
+ }
86
+ stat() {
87
+ throw new Error('never called');
88
+ }
89
+ readFile() {
90
+ throw new Error('never called');
91
+ }
92
+ close() {
93
+ throw new Error('never called');
94
+ }
95
+ }
85
96
  class BamFile {
86
- /**
87
- * @param {object} args
88
- * @param {string} [args.bamPath]
89
- * @param {FileHandle} [args.bamFilehandle]
90
- * @param {string} [args.baiPath]
91
- * @param {FileHandle} [args.baiFilehandle]
92
- */
93
- constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, fetchSizeLimit, chunkSizeLimit, yieldThreadTime = 100, renameRefSeqs = n => n, }) {
97
+ constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, yieldThreadTime = 100, renameRefSeqs = n => n, }) {
98
+ this.htsget = false;
94
99
  this.featureCache = new abortable_promise_cache_1.default({
95
- //@ts-ignore
96
100
  cache: new quick_lru_1.default({
97
101
  maxSize: 50,
98
102
  }),
99
- //@ts-ignore
100
- fill: ({ chunk, opts }, signal) => __awaiter(this, void 0, void 0, function* () {
103
+ fill: (args, signal) => __awaiter(this, void 0, void 0, function* () {
104
+ const { chunk, opts } = args;
101
105
  const { data, cpositions, dpositions } = yield this._readChunk({
102
106
  chunk,
103
107
  opts: Object.assign(Object.assign({}, opts), { signal }),
104
108
  });
105
- const feats = yield this.readBamFeatures(data, cpositions, dpositions, chunk);
106
- return feats;
109
+ return this.readBamFeatures(data, cpositions, dpositions, chunk);
107
110
  }),
108
111
  });
109
112
  this.renameRefSeq = renameRefSeqs;
@@ -116,6 +119,10 @@ class BamFile {
116
119
  else if (bamUrl) {
117
120
  this.bam = new generic_filehandle_1.RemoteFile(bamUrl);
118
121
  }
122
+ else if (htsget) {
123
+ this.htsget = true;
124
+ this.bam = new NullFilehandle();
125
+ }
119
126
  else {
120
127
  throw new Error('unable to initialize bam');
121
128
  }
@@ -143,34 +150,32 @@ class BamFile {
143
150
  else if (bamUrl) {
144
151
  this.index = new bai_1.default({ filehandle: new generic_filehandle_1.RemoteFile(`${bamUrl}.bai`) });
145
152
  }
153
+ else if (htsget) {
154
+ this.htsget = true;
155
+ }
146
156
  else {
147
157
  throw new Error('unable to infer index format');
148
158
  }
149
- this.fetchSizeLimit = fetchSizeLimit || 500000000; // 500MB
150
- this.chunkSizeLimit = chunkSizeLimit || 300000000; // 300MB
151
159
  this.yieldThreadTime = yieldThreadTime;
152
160
  }
153
- getHeader(origOpts = {}) {
161
+ getHeaderPre(origOpts) {
154
162
  return __awaiter(this, void 0, void 0, function* () {
155
163
  const opts = (0, util_1.makeOpts)(origOpts);
164
+ if (!this.index) {
165
+ return;
166
+ }
156
167
  const indexData = yield this.index.parse(opts);
157
168
  const ret = indexData.firstDataLine
158
169
  ? indexData.firstDataLine.blockPosition + 65535
159
170
  : undefined;
160
171
  let buffer;
161
172
  if (ret) {
162
- const res = yield this.bam.read(Buffer.alloc(ret + blockLen), 0, ret + blockLen, 0, opts);
163
- const { bytesRead } = res;
164
- ({ buffer } = res);
165
- if (!bytesRead) {
173
+ const s = ret + blockLen;
174
+ const res = yield this.bam.read(buffer_1.Buffer.alloc(s), 0, s, 0, opts);
175
+ if (!res.bytesRead) {
166
176
  throw new Error('Error reading header');
167
177
  }
168
- if (bytesRead < ret) {
169
- buffer = buffer.subarray(0, bytesRead);
170
- }
171
- else {
172
- buffer = buffer.subarray(0, ret);
173
- }
178
+ buffer = res.buffer.subarray(0, Math.min(res.bytesRead, ret));
174
179
  }
175
180
  else {
176
181
  buffer = (yield this.bam.readFile(opts));
@@ -187,6 +192,15 @@ class BamFile {
187
192
  return (0, sam_1.parseHeaderText)(this.header);
188
193
  });
189
194
  }
195
+ getHeader(opts) {
196
+ if (!this.headerP) {
197
+ this.headerP = this.getHeaderPre(opts).catch(e => {
198
+ this.headerP = undefined;
199
+ throw e;
200
+ });
201
+ }
202
+ return this.headerP;
203
+ }
190
204
  getHeaderText(opts = {}) {
191
205
  return __awaiter(this, void 0, void 0, function* () {
192
206
  yield this.getHeader(opts);
@@ -195,13 +209,13 @@ class BamFile {
195
209
  }
196
210
  // the full length of the refseq block is not given in advance so this grabs
197
211
  // a chunk and doubles it if all refseqs haven't been processed
198
- _readRefSeqs(start, refSeqBytes, opts = {}) {
212
+ _readRefSeqs(start, refSeqBytes, opts) {
199
213
  return __awaiter(this, void 0, void 0, function* () {
200
214
  if (start > refSeqBytes) {
201
215
  return this._readRefSeqs(start, refSeqBytes * 2, opts);
202
216
  }
203
217
  const size = refSeqBytes + blockLen;
204
- const { bytesRead, buffer } = yield this.bam.read(Buffer.alloc(size), 0, refSeqBytes, 0, opts);
218
+ const { bytesRead, buffer } = yield this.bam.read(buffer_1.Buffer.alloc(size), 0, refSeqBytes, 0, opts);
205
219
  if (!bytesRead) {
206
220
  throw new Error('Error reading refseqs from header');
207
221
  }
@@ -225,59 +239,34 @@ class BamFile {
225
239
  return { chrToIndex, indexToChr };
226
240
  });
227
241
  }
228
- getRecordsForRange(chr, min, max, opts = {
229
- viewAsPairs: false,
230
- pairAcrossChr: false,
231
- maxInsertSize: 200000,
232
- }) {
242
+ getRecordsForRange(chr, min, max, opts) {
233
243
  return __awaiter(this, void 0, void 0, function* () {
234
- return flat(yield gen2array(this.streamRecordsForRange(chr, min, max, opts)));
244
+ return gen2array(this.streamRecordsForRange(chr, min, max, opts));
235
245
  });
236
246
  }
237
- streamRecordsForRange(chr, min, max, opts = {}) {
247
+ streamRecordsForRange(chr, min, max, opts) {
248
+ var _a;
238
249
  return __asyncGenerator(this, arguments, function* streamRecordsForRange_1() {
239
- const { signal } = opts;
240
- const chrId = this.chrToIndex && this.chrToIndex[chr];
241
- let chunks;
242
- if (!(chrId >= 0)) {
243
- chunks = [];
250
+ yield __await(this.getHeader(opts));
251
+ const chrId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[chr];
252
+ if (chrId === undefined || !this.index) {
253
+ yield yield __await([]);
244
254
  }
245
255
  else {
246
- chunks = yield __await(this.index.blocksForRange(chrId, min - 1, max, opts));
247
- if (!chunks) {
248
- throw new Error('Error in index fetch');
249
- }
250
- }
251
- for (let i = 0; i < chunks.length; i += 1) {
252
- yield __await((0, util_1.abortBreakPoint)(signal));
253
- const size = chunks[i].fetchedSize();
254
- if (size > this.chunkSizeLimit) {
255
- throw new Error(`Too many BAM features. BAM chunk size ${size} bytes exceeds chunkSizeLimit of ${this.chunkSizeLimit}`);
256
- }
257
- }
258
- const totalSize = chunks
259
- .map(s => s.fetchedSize())
260
- .reduce((a, b) => a + b, 0);
261
- if (totalSize > this.fetchSizeLimit) {
262
- throw new Error(`data size of ${totalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);
256
+ const chunks = yield __await(this.index.blocksForRange(chrId, min - 1, max, opts));
257
+ yield __await(yield* __asyncDelegator(__asyncValues(this._fetchChunkFeatures(chunks, chrId, min, max, opts))));
263
258
  }
264
- yield __await(yield* __asyncDelegator(__asyncValues(this._fetchChunkFeatures(chunks, chrId, min, max, opts))));
265
259
  });
266
260
  }
267
- _fetchChunkFeatures(chunks, chrId, min, max, opts) {
261
+ _fetchChunkFeatures(chunks, chrId, min, max, opts = {}) {
268
262
  return __asyncGenerator(this, arguments, function* _fetchChunkFeatures_1() {
269
- const { viewAsPairs = false } = opts;
263
+ const { viewAsPairs } = opts;
270
264
  const feats = [];
271
265
  let done = false;
272
- for (let i = 0; i < chunks.length; i++) {
273
- const c = chunks[i];
274
- const records = (yield __await(this.featureCache.get(c.toString(), {
275
- chunk: c,
276
- opts,
277
- }, opts.signal)));
266
+ for (const chunk of chunks) {
267
+ const records = yield __await(this.featureCache.get(chunk.toString(), { chunk, opts }, opts.signal));
278
268
  const recs = [];
279
- for (let i = 0; i < records.length; i += 1) {
280
- const feature = records[i];
269
+ for (const feature of records) {
281
270
  if (feature.seq_id() === chrId) {
282
271
  if (feature.get('start') >= max) {
283
272
  // past end of range, can stop iterating
@@ -304,35 +293,35 @@ class BamFile {
304
293
  }
305
294
  fetchPairs(chrId, feats, opts) {
306
295
  return __awaiter(this, void 0, void 0, function* () {
307
- const { pairAcrossChr = false, maxInsertSize = 200000 } = opts;
296
+ const { pairAcrossChr, maxInsertSize = 200000 } = opts;
308
297
  const unmatedPairs = {};
309
298
  const readIds = {};
310
299
  feats.map(ret => {
311
300
  const readNames = {};
312
- for (let i = 0; i < ret.length; i++) {
313
- const name = ret[i].name();
314
- const id = ret[i].id();
301
+ for (const element of ret) {
302
+ const name = element.name();
303
+ const id = element.id();
315
304
  if (!readNames[name]) {
316
305
  readNames[name] = 0;
317
306
  }
318
307
  readNames[name]++;
319
308
  readIds[id] = 1;
320
309
  }
321
- (0, object_entries_ponyfill_1.default)(readNames).forEach(([k, v]) => {
310
+ for (const [k, v] of Object.entries(readNames)) {
322
311
  if (v === 1) {
323
312
  unmatedPairs[k] = true;
324
313
  }
325
- });
314
+ }
326
315
  });
327
316
  const matePromises = [];
328
317
  feats.map(ret => {
329
- for (let i = 0; i < ret.length; i++) {
330
- const f = ret[i];
318
+ for (const f of ret) {
331
319
  const name = f.name();
332
320
  const start = f.get('start');
333
321
  const pnext = f._next_pos();
334
322
  const rnext = f._next_refid();
335
- if (unmatedPairs[name] &&
323
+ if (this.index &&
324
+ unmatedPairs[name] &&
336
325
  (pairAcrossChr ||
337
326
  (rnext === chrId && Math.abs(start - pnext) < maxInsertSize))) {
338
327
  matePromises.push(this.index.blocksForRange(rnext, pnext, pnext + 1, opts));
@@ -341,38 +330,39 @@ class BamFile {
341
330
  });
342
331
  // filter out duplicate chunks (the blocks are lists of chunks, blocks are
343
332
  // concatenated, then filter dup chunks)
344
- const mateChunks = flat(yield Promise.all(matePromises))
345
- .sort()
346
- .filter((item, pos, ary) => !pos || item.toString() !== ary[pos - 1].toString());
347
- const mateTotalSize = mateChunks
348
- .map(s => s.fetchedSize())
349
- .reduce((a, b) => a + b, 0);
350
- if (mateTotalSize > this.fetchSizeLimit) {
351
- throw new Error(`data size of ${mateTotalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);
333
+ const map = new Map();
334
+ const res = yield Promise.all(matePromises);
335
+ for (const m of res.flat()) {
336
+ if (!map.has(m.toString())) {
337
+ map.set(m.toString(), m);
338
+ }
352
339
  }
353
- const mateFeatPromises = mateChunks.map((c) => __awaiter(this, void 0, void 0, function* () {
340
+ const mateFeatPromises = yield Promise.all([...map.values()].map((c) => __awaiter(this, void 0, void 0, function* () {
354
341
  const { data, cpositions, dpositions, chunk } = yield this._readChunk({
355
342
  chunk: c,
356
343
  opts,
357
344
  });
358
- const feats = yield this.readBamFeatures(data, cpositions, dpositions, chunk);
359
345
  const mateRecs = [];
360
- for (let i = 0; i < feats.length; i += 1) {
361
- const feature = feats[i];
346
+ for (const feature of yield this.readBamFeatures(data, cpositions, dpositions, chunk)) {
362
347
  if (unmatedPairs[feature.get('name')] && !readIds[feature.id()]) {
363
348
  mateRecs.push(feature);
364
349
  }
365
350
  }
366
351
  return mateRecs;
367
- }));
368
- return flat(yield Promise.all(mateFeatPromises));
352
+ })));
353
+ return mateFeatPromises.flat();
354
+ });
355
+ }
356
+ _readRegion(position, size, opts = {}) {
357
+ return __awaiter(this, void 0, void 0, function* () {
358
+ const { bytesRead, buffer } = yield this.bam.read(buffer_1.Buffer.alloc(size), 0, size, position, opts);
359
+ return buffer.subarray(0, Math.min(bytesRead, size));
369
360
  });
370
361
  }
371
362
  _readChunk({ chunk, opts }) {
372
363
  return __awaiter(this, void 0, void 0, function* () {
373
- const size = chunk.fetchedSize();
374
- const { buffer, bytesRead } = yield this.bam.read(Buffer.alloc(size), 0, size, chunk.minv.blockPosition, opts);
375
- const { buffer: data, cpositions, dpositions, } = yield (0, bgzf_filehandle_1.unzipChunkSlice)(buffer.subarray(0, Math.min(bytesRead, size)), chunk);
364
+ const buffer = yield this._readRegion(chunk.minv.blockPosition, chunk.fetchedSize(), opts);
365
+ const { buffer: data, cpositions, dpositions, } = yield (0, bgzf_filehandle_1.unzipChunkSlice)(buffer, chunk);
376
366
  return { data, cpositions, dpositions, chunk };
377
367
  });
378
368
  }
@@ -398,23 +388,27 @@ class BamFile {
398
388
  start: blockStart,
399
389
  end: blockEnd,
400
390
  },
401
- // the below results in an automatically calculated file-offset based ID
402
- // if the info for that is available, otherwise crc32 of the features
391
+ // the below results in an automatically calculated file-offset based
392
+ // ID if the info for that is available, otherwise crc32 of the
393
+ // features
403
394
  //
404
- // cpositions[pos] refers to actual file offset of a bgzip block boundaries
395
+ // cpositions[pos] refers to actual file offset of a bgzip block
396
+ // boundaries
405
397
  //
406
- // we multiply by (1 <<8) in order to make sure each block has a "unique"
407
- // address space so that data in that block could never overlap
398
+ // we multiply by (1 <<8) in order to make sure each block has a
399
+ // "unique" address space so that data in that block could never
400
+ // overlap
408
401
  //
409
402
  // then the blockStart-dpositions is an uncompressed file offset from
410
- // that bgzip block boundary, and since the cpositions are multiplied by
411
- // (1 << 8) these uncompressed offsets get a unique space
403
+ // that bgzip block boundary, and since the cpositions are multiplied
404
+ // by (1 << 8) these uncompressed offsets get a unique space
412
405
  //
413
- // this has an extra chunk.minv.dataPosition added on because it blockStart
414
- // starts at 0 instead of chunk.minv.dataPosition
406
+ // this has an extra chunk.minv.dataPosition added on because it
407
+ // blockStart starts at 0 instead of chunk.minv.dataPosition
415
408
  //
416
- // the +1 is just to avoid any possible uniqueId 0 but this does not realistically happen
417
- fileOffset: cpositions
409
+ // the +1 is just to avoid any possible uniqueId 0 but this does not
410
+ // realistically happen
411
+ fileOffset: cpositions.length > 0
418
412
  ? cpositions[pos] * (1 << 8) +
419
413
  (blockStart - dpositions[pos]) +
420
414
  chunk.minv.dataPosition +
@@ -434,29 +428,41 @@ class BamFile {
434
428
  });
435
429
  }
436
430
  hasRefSeq(seqName) {
431
+ var _a, _b;
437
432
  return __awaiter(this, void 0, void 0, function* () {
438
- const refId = this.chrToIndex && this.chrToIndex[seqName];
439
- return this.index.hasRefSeq(refId);
433
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
434
+ return seqId === undefined ? false : (_b = this.index) === null || _b === void 0 ? void 0 : _b.hasRefSeq(seqId);
440
435
  });
441
436
  }
442
437
  lineCount(seqName) {
438
+ var _a;
443
439
  return __awaiter(this, void 0, void 0, function* () {
444
- const refId = this.chrToIndex && this.chrToIndex[seqName];
445
- return this.index.lineCount(refId);
440
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
441
+ return seqId === undefined || !this.index ? 0 : this.index.lineCount(seqId);
446
442
  });
447
443
  }
448
444
  indexCov(seqName, start, end) {
445
+ var _a;
449
446
  return __awaiter(this, void 0, void 0, function* () {
447
+ if (!this.index) {
448
+ return [];
449
+ }
450
450
  yield this.index.parse();
451
- const seqId = this.chrToIndex && this.chrToIndex[seqName];
452
- return this.index.indexCov(seqId, start, end);
451
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
452
+ return seqId === undefined ? [] : this.index.indexCov(seqId, start, end);
453
453
  });
454
454
  }
455
455
  blocksForRange(seqName, start, end, opts) {
456
+ var _a;
456
457
  return __awaiter(this, void 0, void 0, function* () {
458
+ if (!this.index) {
459
+ return [];
460
+ }
457
461
  yield this.index.parse();
458
- const seqId = this.chrToIndex && this.chrToIndex[seqName];
459
- return this.index.blocksForRange(seqId, start, end, opts);
462
+ const seqId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[seqName];
463
+ return seqId === undefined
464
+ ? []
465
+ : this.index.blocksForRange(seqId, start, end, opts);
460
466
  });
461
467
  }
462
468
  }
@@ -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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"}
package/dist/chunk.d.ts CHANGED
@@ -1,16 +1,12 @@
1
+ /// <reference types="node" />
1
2
  import VirtualOffset from './virtualOffset';
2
3
  export default class Chunk {
3
4
  minv: VirtualOffset;
4
5
  maxv: VirtualOffset;
5
6
  bin: number;
6
- _fetchedSize?: number;
7
- /**
8
- * @param {VirtualOffset} minv
9
- * @param {VirtualOffset} maxv
10
- * @param {number} bin
11
- * @param {number} [fetchedSize]
12
- */
13
- constructor(minv: VirtualOffset, maxv: VirtualOffset, bin: number, fetchedSize?: undefined);
7
+ _fetchedSize?: number | undefined;
8
+ buffer?: Buffer;
9
+ constructor(minv: VirtualOffset, maxv: VirtualOffset, bin: number, _fetchedSize?: number | undefined);
14
10
  toUniqueString(): string;
15
11
  toString(): string;
16
12
  compareTo(b: Chunk): number;
package/dist/chunk.js CHANGED
@@ -2,17 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // little class representing a chunk in the index
4
4
  class Chunk {
5
- /**
6
- * @param {VirtualOffset} minv
7
- * @param {VirtualOffset} maxv
8
- * @param {number} bin
9
- * @param {number} [fetchedSize]
10
- */
11
- constructor(minv, maxv, bin, fetchedSize = undefined) {
5
+ constructor(minv, maxv, bin, _fetchedSize) {
12
6
  this.minv = minv;
13
7
  this.maxv = maxv;
14
8
  this.bin = bin;
15
- this._fetchedSize = fetchedSize;
9
+ this._fetchedSize = _fetchedSize;
16
10
  }
17
11
  toUniqueString() {
18
12
  return `${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`;
package/dist/chunk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":";;AAEA,iDAAiD;AACjD,MAAqB,KAAK;IAMxB;;;;;OAKG;IACH,YACE,IAAmB,EACnB,IAAmB,EACnB,GAAW,EACX,WAAW,GAAG,SAAS;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,cAAc;QACZ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,SAC/B,IAAI,CAAC,GACP,iBAAiB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CACjB,CAAA;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC,YAAY,CAAA;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;IACtE,CAAC;CACF;AAhDD,wBAgDC"}
1
+ {"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":";;AAEA,iDAAiD;AACjD,MAAqB,KAAK;IAGxB,YACS,IAAmB,EACnB,IAAmB,EACnB,GAAW,EACX,YAAqB;QAHrB,SAAI,GAAJ,IAAI,CAAe;QACnB,SAAI,GAAJ,IAAI,CAAe;QACnB,QAAG,GAAH,GAAG,CAAQ;QACX,iBAAY,GAAZ,YAAY,CAAS;IAC3B,CAAC;IAEJ,cAAc;QACZ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,SAC/B,IAAI,CAAC,GACP,iBAAiB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CACjB,CAAA;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC,YAAY,CAAA;SACzB;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;IACtE,CAAC;CACF;AAlCD,wBAkCC"}