@gmod/bam 1.1.17 → 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 (83) hide show
  1. package/CHANGELOG.md +65 -25
  2. package/README.md +108 -57
  3. package/dist/bai.d.ts +34 -15
  4. package/dist/bai.js +180 -273
  5. package/dist/bai.js.map +1 -1
  6. package/dist/bamFile.d.ts +33 -27
  7. package/dist/bamFile.js +353 -572
  8. package/dist/bamFile.js.map +1 -1
  9. package/dist/chunk.d.ts +4 -8
  10. package/dist/chunk.js +13 -21
  11. package/dist/chunk.js.map +1 -1
  12. package/dist/csi.d.ts +74 -10
  13. package/dist/csi.js +157 -256
  14. package/dist/csi.js.map +1 -1
  15. package/dist/errors.js +12 -57
  16. package/dist/errors.js.map +1 -1
  17. package/dist/htsget.d.ts +5 -8
  18. package/dist/htsget.js +120 -209
  19. package/dist/htsget.js.map +1 -1
  20. package/dist/index.d.ts +5 -6
  21. package/dist/index.js +11 -11
  22. package/dist/index.js.map +1 -1
  23. package/dist/indexFile.d.ts +0 -6
  24. package/dist/indexFile.js +3 -77
  25. package/dist/indexFile.js.map +1 -1
  26. package/dist/nullIndex.d.ts +7 -0
  27. package/dist/nullIndex.js +33 -0
  28. package/dist/nullIndex.js.map +1 -0
  29. package/dist/record.d.ts +2 -2
  30. package/dist/record.js +200 -193
  31. package/dist/record.js.map +1 -1
  32. package/dist/sam.js +12 -10
  33. package/dist/sam.js.map +1 -1
  34. package/dist/util.d.ts +13 -1
  35. package/dist/util.js +55 -58
  36. package/dist/util.js.map +1 -1
  37. package/dist/virtualOffset.js +13 -20
  38. package/dist/virtualOffset.js.map +1 -1
  39. package/esm/bai.d.ts +34 -15
  40. package/esm/bai.js +86 -91
  41. package/esm/bai.js.map +1 -1
  42. package/esm/bamFile.d.ts +33 -27
  43. package/esm/bamFile.js +124 -120
  44. package/esm/bamFile.js.map +1 -1
  45. package/esm/chunk.d.ts +4 -8
  46. package/esm/chunk.js +2 -8
  47. package/esm/chunk.js.map +1 -1
  48. package/esm/csi.d.ts +74 -10
  49. package/esm/csi.js +85 -93
  50. package/esm/csi.js.map +1 -1
  51. package/esm/htsget.d.ts +5 -8
  52. package/esm/htsget.js +68 -43
  53. package/esm/htsget.js.map +1 -1
  54. package/esm/index.d.ts +5 -6
  55. package/esm/index.js +5 -6
  56. package/esm/index.js.map +1 -1
  57. package/esm/indexFile.d.ts +0 -6
  58. package/esm/indexFile.js +0 -22
  59. package/esm/indexFile.js.map +1 -1
  60. package/esm/nullIndex.d.ts +7 -0
  61. package/esm/nullIndex.js +16 -0
  62. package/esm/nullIndex.js.map +1 -0
  63. package/esm/record.d.ts +2 -2
  64. package/esm/record.js +34 -24
  65. package/esm/record.js.map +1 -1
  66. package/esm/sam.js +9 -7
  67. package/esm/sam.js.map +1 -1
  68. package/esm/util.d.ts +13 -1
  69. package/esm/util.js +40 -14
  70. package/esm/util.js.map +1 -1
  71. package/package.json +19 -20
  72. package/src/bai.ts +99 -102
  73. package/src/bamFile.ts +174 -198
  74. package/src/chunk.ts +6 -20
  75. package/src/csi.ts +102 -111
  76. package/src/htsget.ts +81 -61
  77. package/src/index.ts +5 -7
  78. package/src/indexFile.ts +0 -27
  79. package/src/nullIndex.ts +18 -0
  80. package/src/record.ts +34 -24
  81. package/src/sam.ts +9 -7
  82. package/src/util.ts +54 -13
  83. package/src/declare.d.ts +0 -2
package/dist/csi.js CHANGED
@@ -1,19 +1,4 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
3
  if (k2 === undefined) k2 = k;
19
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -46,266 +31,165 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
46
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
47
32
  });
48
33
  };
49
- var __generator = (this && this.__generator) || function (thisArg, body) {
50
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
51
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
52
- function verb(n) { return function (v) { return step([n, v]); }; }
53
- function step(op) {
54
- if (f) throw new TypeError("Generator is already executing.");
55
- while (_) try {
56
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
57
- if (y = 0, t) op = [op[0] & 2, t.value];
58
- switch (op[0]) {
59
- case 0: case 1: t = op; break;
60
- case 4: _.label++; return { value: op[1], done: false };
61
- case 5: _.label++; y = op[1]; op = [0]; continue;
62
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
63
- default:
64
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
65
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
66
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
67
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
68
- if (t[2]) _.ops.pop();
69
- _.trys.pop(); continue;
70
- }
71
- op = body.call(thisArg, _);
72
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
73
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
74
- }
75
- };
76
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
77
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
78
36
  };
79
37
  Object.defineProperty(exports, "__esModule", { value: true });
80
- var long_1 = __importDefault(require("long"));
81
- var bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
82
- var virtualOffset_1 = __importStar(require("./virtualOffset"));
83
- var chunk_1 = __importDefault(require("./chunk"));
84
- var util_1 = require("./util");
85
- var indexFile_1 = __importDefault(require("./indexFile"));
86
- var CSI1_MAGIC = 21582659; // CSI\1
87
- var CSI2_MAGIC = 38359875; // CSI\2
38
+ const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
39
+ const virtualOffset_1 = __importStar(require("./virtualOffset"));
40
+ const chunk_1 = __importDefault(require("./chunk"));
41
+ const util_1 = require("./util");
42
+ const indexFile_1 = __importDefault(require("./indexFile"));
43
+ const CSI1_MAGIC = 21582659; // CSI\1
44
+ const CSI2_MAGIC = 38359875; // CSI\2
88
45
  function lshift(num, bits) {
89
46
  return num * Math.pow(2, bits);
90
47
  }
91
48
  function rshift(num, bits) {
92
49
  return Math.floor(num / Math.pow(2, bits));
93
50
  }
94
- var CSI = /** @class */ (function (_super) {
95
- __extends(CSI, _super);
96
- function CSI(args) {
97
- var _this = _super.call(this, args) || this;
98
- _this.maxBinNumber = 0;
99
- _this.depth = 0;
100
- _this.minShift = 0;
101
- return _this;
51
+ class CSI extends indexFile_1.default {
52
+ constructor() {
53
+ super(...arguments);
54
+ this.maxBinNumber = 0;
55
+ this.depth = 0;
56
+ this.minShift = 0;
102
57
  }
103
- CSI.prototype.lineCount = function (refId) {
104
- return __awaiter(this, void 0, void 0, function () {
105
- var indexData, idx, stats;
106
- return __generator(this, function (_a) {
107
- switch (_a.label) {
108
- case 0: return [4 /*yield*/, this.parse()];
109
- case 1:
110
- indexData = _a.sent();
111
- if (!indexData) {
112
- return [2 /*return*/, -1];
113
- }
114
- idx = indexData.indices[refId];
115
- if (!idx) {
116
- return [2 /*return*/, -1];
117
- }
118
- stats = indexData.indices[refId].stats;
119
- if (stats) {
120
- return [2 /*return*/, stats.lineCount];
121
- }
122
- return [2 /*return*/, -1];
123
- }
124
- });
58
+ lineCount(refId, opts) {
59
+ var _a, _b;
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const indexData = yield this.parse(opts);
62
+ return ((_b = (_a = indexData.indices[refId]) === null || _a === void 0 ? void 0 : _a.stats) === null || _b === void 0 ? void 0 : _b.lineCount) || 0;
125
63
  });
126
- };
127
- CSI.prototype.indexCov = function () {
128
- return __awaiter(this, void 0, void 0, function () {
129
- return __generator(this, function (_a) {
130
- return [2 /*return*/, []];
131
- });
64
+ }
65
+ indexCov() {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ return [];
132
68
  });
133
- };
134
- CSI.prototype.parseAuxData = function (bytes, offset, auxLength) {
135
- if (auxLength < 30) {
136
- return {};
137
- }
138
- var data = {};
139
- data.formatFlags = bytes.readInt32LE(offset);
140
- data.coordinateType =
141
- data.formatFlags & 0x10000 ? 'zero-based-half-open' : '1-based-closed';
142
- data.format = { 0: 'generic', 1: 'SAM', 2: 'VCF' }[data.formatFlags & 0xf];
143
- if (!data.format) {
144
- throw new Error("invalid Tabix preset format flags ".concat(data.formatFlags));
69
+ }
70
+ parseAuxData(bytes, offset) {
71
+ const formatFlags = bytes.readInt32LE(offset);
72
+ const coordinateType = formatFlags & 0x10000 ? 'zero-based-half-open' : '1-based-closed';
73
+ const format = { 0: 'generic', 1: 'SAM', 2: 'VCF' }[formatFlags & 0xf];
74
+ if (!format) {
75
+ throw new Error(`invalid Tabix preset format flags ${formatFlags}`);
145
76
  }
146
- data.columnNumbers = {
77
+ const columnNumbers = {
147
78
  ref: bytes.readInt32LE(offset + 4),
148
79
  start: bytes.readInt32LE(offset + 8),
149
80
  end: bytes.readInt32LE(offset + 12),
150
81
  };
151
- data.metaValue = bytes.readInt32LE(offset + 16);
152
- data.metaChar = data.metaValue ? String.fromCharCode(data.metaValue) : '';
153
- data.skipLines = bytes.readInt32LE(offset + 20);
154
- var nameSectionLength = bytes.readInt32LE(offset + 24);
155
- Object.assign(data, this._parseNameBytes(bytes.subarray(offset + 28, offset + 28 + nameSectionLength)));
156
- return data;
157
- };
158
- CSI.prototype._parseNameBytes = function (namesBytes) {
159
- var currRefId = 0;
160
- var currNameStart = 0;
161
- var refIdToName = [];
162
- var refNameToId = {};
163
- for (var i = 0; i < namesBytes.length; i += 1) {
164
- if (!namesBytes[i]) {
165
- if (currNameStart < i) {
166
- var refName = namesBytes.toString('utf8', currNameStart, i);
167
- refName = this.renameRefSeq(refName);
168
- refIdToName[currRefId] = refName;
169
- refNameToId[refName] = currRefId;
170
- }
171
- currNameStart = i + 1;
172
- currRefId += 1;
173
- }
174
- }
175
- return { refNameToId: refNameToId, refIdToName: refIdToName };
176
- };
82
+ const metaValue = bytes.readInt32LE(offset + 16);
83
+ const metaChar = metaValue ? String.fromCharCode(metaValue) : '';
84
+ const skipLines = bytes.readInt32LE(offset + 20);
85
+ const nameSectionLength = bytes.readInt32LE(offset + 24);
86
+ return Object.assign({ columnNumbers,
87
+ coordinateType,
88
+ metaValue,
89
+ metaChar,
90
+ skipLines,
91
+ format,
92
+ formatFlags }, (0, util_1.parseNameBytes)(bytes.subarray(offset + 28, offset + 28 + nameSectionLength), this.renameRefSeq));
93
+ }
177
94
  // fetch and parse the index
178
- CSI.prototype._parse = function (opts) {
179
- return __awaiter(this, void 0, void 0, function () {
180
- var data, buffer, bytes, auxLength, currOffset, i, binCount, binIndex, stats // < provided by parsing a pseudo-bin, if present
181
- , j, bin, loffset, chunkCount, chunks, k, u, v;
182
- return __generator(this, function (_a) {
183
- switch (_a.label) {
184
- case 0:
185
- data = { csi: true, maxBlockSize: 1 << 16 };
186
- return [4 /*yield*/, this.filehandle.readFile(opts)];
187
- case 1:
188
- buffer = (_a.sent());
189
- return [4 /*yield*/, (0, bgzf_filehandle_1.unzip)(buffer)
190
- // check TBI magic numbers
191
- ];
192
- case 2:
193
- bytes = _a.sent();
194
- // check TBI magic numbers
195
- if (bytes.readUInt32LE(0) === CSI1_MAGIC) {
196
- data.csiVersion = 1;
197
- }
198
- else if (bytes.readUInt32LE(0) === CSI2_MAGIC) {
199
- data.csiVersion = 2;
200
- }
201
- else {
202
- throw new Error('Not a CSI file');
203
- // TODO: do we need to support big-endian CSI files?
204
- }
205
- this.minShift = bytes.readInt32LE(4);
206
- this.depth = bytes.readInt32LE(8);
207
- this.maxBinNumber = ((1 << ((this.depth + 1) * 3)) - 1) / 7;
208
- auxLength = bytes.readInt32LE(12);
209
- if (auxLength) {
210
- Object.assign(data, this.parseAuxData(bytes, 16, auxLength));
211
- }
212
- data.refCount = bytes.readInt32LE(16 + auxLength);
213
- // read the indexes for each reference sequence
214
- data.indices = new Array(data.refCount);
215
- currOffset = 16 + auxLength + 4;
216
- i = 0;
217
- _a.label = 3;
218
- case 3:
219
- if (!(i < data.refCount)) return [3 /*break*/, 6];
220
- return [4 /*yield*/, (0, util_1.abortBreakPoint)(opts.signal)
221
- // the binning index
222
- ];
223
- case 4:
224
- _a.sent();
225
- binCount = bytes.readInt32LE(currOffset);
226
- currOffset += 4;
227
- binIndex = {};
228
- stats = void 0;
229
- for (j = 0; j < binCount; j += 1) {
230
- bin = bytes.readUInt32LE(currOffset);
231
- if (bin > this.maxBinNumber) {
232
- // this is a fake bin that actually has stats information
233
- // about the reference sequence in it
234
- stats = this.parsePseudoBin(bytes, currOffset + 4);
235
- currOffset += 4 + 8 + 4 + 16 + 16;
236
- }
237
- else {
238
- loffset = (0, virtualOffset_1.fromBytes)(bytes, currOffset + 4);
239
- this._findFirstData(data, loffset);
240
- chunkCount = bytes.readInt32LE(currOffset + 12);
241
- currOffset += 16;
242
- chunks = new Array(chunkCount);
243
- for (k = 0; k < chunkCount; k += 1) {
244
- u = (0, virtualOffset_1.fromBytes)(bytes, currOffset);
245
- v = (0, virtualOffset_1.fromBytes)(bytes, currOffset + 8);
246
- currOffset += 16;
247
- // this._findFirstData(data, u)
248
- chunks[k] = new chunk_1.default(u, v, bin);
249
- }
250
- binIndex[bin] = chunks;
251
- }
95
+ _parse(opts) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ const buffer = yield this.filehandle.readFile(opts);
98
+ const bytes = yield (0, bgzf_filehandle_1.unzip)(buffer);
99
+ let csiVersion;
100
+ // check TBI magic numbers
101
+ if (bytes.readUInt32LE(0) === CSI1_MAGIC) {
102
+ csiVersion = 1;
103
+ }
104
+ else if (bytes.readUInt32LE(0) === CSI2_MAGIC) {
105
+ csiVersion = 2;
106
+ }
107
+ else {
108
+ throw new Error('Not a CSI file');
109
+ // TODO: do we need to support big-endian CSI files?
110
+ }
111
+ this.minShift = bytes.readInt32LE(4);
112
+ this.depth = bytes.readInt32LE(8);
113
+ this.maxBinNumber = ((1 << ((this.depth + 1) * 3)) - 1) / 7;
114
+ const auxLength = bytes.readInt32LE(12);
115
+ const aux = auxLength >= 30 ? this.parseAuxData(bytes, 16) : undefined;
116
+ const refCount = bytes.readInt32LE(16 + auxLength);
117
+ // read the indexes for each reference sequence
118
+ let curr = 16 + auxLength + 4;
119
+ let firstDataLine;
120
+ const indices = new Array(refCount);
121
+ for (let i = 0; i < refCount; i++) {
122
+ // the binning index
123
+ const binCount = bytes.readInt32LE(curr);
124
+ curr += 4;
125
+ const binIndex = {};
126
+ let stats; // < provided by parsing a pseudo-bin, if present
127
+ for (let j = 0; j < binCount; j++) {
128
+ const bin = bytes.readUInt32LE(curr);
129
+ curr += 4;
130
+ if (bin > this.maxBinNumber) {
131
+ stats = (0, util_1.parsePseudoBin)(bytes, curr + 28);
132
+ curr += 28 + 16;
133
+ }
134
+ else {
135
+ firstDataLine = (0, util_1.findFirstData)(firstDataLine, (0, virtualOffset_1.fromBytes)(bytes, curr));
136
+ curr += 8;
137
+ const chunkCount = bytes.readInt32LE(curr);
138
+ curr += 4;
139
+ const chunks = new Array(chunkCount);
140
+ for (let k = 0; k < chunkCount; k += 1) {
141
+ const u = (0, virtualOffset_1.fromBytes)(bytes, curr);
142
+ curr += 8;
143
+ const v = (0, virtualOffset_1.fromBytes)(bytes, curr);
144
+ curr += 8;
145
+ firstDataLine = (0, util_1.findFirstData)(firstDataLine, u);
146
+ chunks[k] = new chunk_1.default(u, v, bin);
252
147
  }
253
- data.indices[i] = { binIndex: binIndex, stats: stats };
254
- _a.label = 5;
255
- case 5:
256
- i += 1;
257
- return [3 /*break*/, 3];
258
- case 6: return [2 /*return*/, data];
148
+ binIndex[bin] = chunks;
149
+ }
259
150
  }
260
- });
151
+ indices[i] = { binIndex, stats };
152
+ }
153
+ return Object.assign({ csiVersion,
154
+ firstDataLine,
155
+ indices,
156
+ refCount, csi: true, maxBlockSize: 1 << 16 }, aux);
261
157
  });
262
- };
263
- CSI.prototype.parsePseudoBin = function (bytes, offset) {
264
- var lineCount = (0, util_1.longToNumber)(long_1.default.fromBytesLE(Array.prototype.slice.call(bytes, offset + 28, offset + 36), true));
265
- return { lineCount: lineCount };
266
- };
267
- CSI.prototype.blocksForRange = function (refId, min, max, opts) {
268
- if (opts === void 0) { opts = {}; }
269
- return __awaiter(this, void 0, void 0, function () {
270
- var indexData, ba, overlappingBins, chunks, _i, overlappingBins_1, _a, start, end, bin, binChunks, c;
271
- return __generator(this, function (_b) {
272
- switch (_b.label) {
273
- case 0:
274
- if (min < 0) {
275
- min = 0;
276
- }
277
- return [4 /*yield*/, this.parse(opts)];
278
- case 1:
279
- indexData = _b.sent();
280
- ba = indexData === null || indexData === void 0 ? void 0 : indexData.indices[refId];
281
- if (!ba) {
282
- return [2 /*return*/, []];
283
- }
284
- overlappingBins = this.reg2bins(min, max) // List of bin #s that overlap min, max
285
- ;
286
- chunks = [];
287
- // Find chunks in overlapping bins. Leaf bins (< 4681) are not pruned
288
- for (_i = 0, overlappingBins_1 = overlappingBins; _i < overlappingBins_1.length; _i++) {
289
- _a = overlappingBins_1[_i], start = _a[0], end = _a[1];
290
- for (bin = start; bin <= end; bin++) {
291
- if (ba.binIndex[bin]) {
292
- binChunks = ba.binIndex[bin];
293
- for (c = 0; c < binChunks.length; ++c) {
294
- chunks.push(new chunk_1.default(binChunks[c].minv, binChunks[c].maxv, bin));
295
- }
296
- }
297
- }
158
+ }
159
+ blocksForRange(refId, min, max, opts = {}) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ if (min < 0) {
162
+ min = 0;
163
+ }
164
+ const indexData = yield this.parse(opts);
165
+ const ba = indexData === null || indexData === void 0 ? void 0 : indexData.indices[refId];
166
+ if (!ba) {
167
+ return [];
168
+ }
169
+ const overlappingBins = this.reg2bins(min, max);
170
+ if (overlappingBins.length === 0) {
171
+ return [];
172
+ }
173
+ const chunks = [];
174
+ // Find chunks in overlapping bins. Leaf bins (< 4681) are not pruned
175
+ for (const [start, end] of overlappingBins) {
176
+ for (let bin = start; bin <= end; bin++) {
177
+ if (ba.binIndex[bin]) {
178
+ const binChunks = ba.binIndex[bin];
179
+ for (const c of binChunks) {
180
+ chunks.push(c);
298
181
  }
299
- return [2 /*return*/, (0, util_1.optimizeChunks)(chunks, new virtualOffset_1.default(0, 0))];
182
+ }
300
183
  }
301
- });
184
+ }
185
+ return (0, util_1.optimizeChunks)(chunks, new virtualOffset_1.default(0, 0));
302
186
  });
303
- };
187
+ }
304
188
  /**
305
189
  * calculate the list of bins that may overlap with region [beg,end)
306
190
  * (zero-based half-open)
307
191
  */
308
- CSI.prototype.reg2bins = function (beg, end) {
192
+ reg2bins(beg, end) {
309
193
  beg -= 1; // < convert to 1-based closed
310
194
  if (beg < 1) {
311
195
  beg = 1;
@@ -314,21 +198,38 @@ var CSI = /** @class */ (function (_super) {
314
198
  end = Math.pow(2, 34);
315
199
  } // 17 GiB ought to be enough for anybody
316
200
  end -= 1;
317
- var l = 0;
318
- var t = 0;
319
- var s = this.minShift + this.depth * 3;
320
- var bins = [];
201
+ let l = 0;
202
+ let t = 0;
203
+ let s = this.minShift + this.depth * 3;
204
+ const bins = [];
321
205
  for (; l <= this.depth; s -= 3, t += lshift(1, l * 3), l += 1) {
322
- var b = t + rshift(beg, s);
323
- var e = t + rshift(end, s);
206
+ const b = t + rshift(beg, s);
207
+ const e = t + rshift(end, s);
324
208
  if (e - b + bins.length > this.maxBinNumber) {
325
- throw new Error("query ".concat(beg, "-").concat(end, " is too large for current binning scheme (shift ").concat(this.minShift, ", depth ").concat(this.depth, "), try a smaller query or a coarser index binning scheme"));
209
+ throw new Error(`query ${beg}-${end} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);
326
210
  }
327
211
  bins.push([b, e]);
328
212
  }
329
213
  return bins;
330
- };
331
- return CSI;
332
- }(indexFile_1.default));
214
+ }
215
+ parse(opts = {}) {
216
+ return __awaiter(this, void 0, void 0, function* () {
217
+ if (!this.setupP) {
218
+ this.setupP = this._parse(opts).catch(e => {
219
+ this.setupP = undefined;
220
+ throw e;
221
+ });
222
+ }
223
+ return this.setupP;
224
+ });
225
+ }
226
+ hasRefSeq(seqId, opts = {}) {
227
+ var _a;
228
+ return __awaiter(this, void 0, void 0, function* () {
229
+ const header = yield this.parse(opts);
230
+ return !!((_a = header.indices[seqId]) === null || _a === void 0 ? void 0 : _a.binIndex);
231
+ });
232
+ }
233
+ }
333
234
  exports.default = CSI;
334
235
  //# sourceMappingURL=csi.js.map
package/dist/csi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"csi.js","sourceRoot":"","sources":["../src/csi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csi.js","sourceRoot":"","sources":["../src/csi.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -1,78 +1,33 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  Object.defineProperty(exports, "__esModule", { value: true });
18
3
  exports.BamArgumentError = exports.BamSizeLimitError = exports.BamBufferOverrunError = exports.BamMalformedError = exports.BamUnimplementedError = exports.BamError = void 0;
19
- var BamError = /** @class */ (function (_super) {
20
- __extends(BamError, _super);
21
- function BamError() {
22
- return _super !== null && _super.apply(this, arguments) || this;
23
- }
24
- return BamError;
25
- }(Error));
4
+ class BamError extends Error {
5
+ }
26
6
  exports.BamError = BamError;
27
7
  /** Error caused by encountering a part of the BAM spec that has not yet been implemented */
28
- var BamUnimplementedError = /** @class */ (function (_super) {
29
- __extends(BamUnimplementedError, _super);
30
- function BamUnimplementedError() {
31
- return _super !== null && _super.apply(this, arguments) || this;
32
- }
33
- return BamUnimplementedError;
34
- }(Error));
8
+ class BamUnimplementedError extends Error {
9
+ }
35
10
  exports.BamUnimplementedError = BamUnimplementedError;
36
11
  /** An error caused by malformed data. */
37
- var BamMalformedError = /** @class */ (function (_super) {
38
- __extends(BamMalformedError, _super);
39
- function BamMalformedError() {
40
- return _super !== null && _super.apply(this, arguments) || this;
41
- }
42
- return BamMalformedError;
43
- }(BamError));
12
+ class BamMalformedError extends BamError {
13
+ }
44
14
  exports.BamMalformedError = BamMalformedError;
45
15
  /**
46
16
  * An error caused by attempting to read beyond the end of the defined data.
47
17
  */
48
- var BamBufferOverrunError = /** @class */ (function (_super) {
49
- __extends(BamBufferOverrunError, _super);
50
- function BamBufferOverrunError() {
51
- return _super !== null && _super.apply(this, arguments) || this;
52
- }
53
- return BamBufferOverrunError;
54
- }(BamMalformedError));
18
+ class BamBufferOverrunError extends BamMalformedError {
19
+ }
55
20
  exports.BamBufferOverrunError = BamBufferOverrunError;
56
21
  /**
57
22
  * An error caused by data being too big, exceeding a size limit.
58
23
  */
59
- var BamSizeLimitError = /** @class */ (function (_super) {
60
- __extends(BamSizeLimitError, _super);
61
- function BamSizeLimitError() {
62
- return _super !== null && _super.apply(this, arguments) || this;
63
- }
64
- return BamSizeLimitError;
65
- }(BamError));
24
+ class BamSizeLimitError extends BamError {
25
+ }
66
26
  exports.BamSizeLimitError = BamSizeLimitError;
67
27
  /**
68
28
  * An invalid argument was supplied to a bam-js method or object.
69
29
  */
70
- var BamArgumentError = /** @class */ (function (_super) {
71
- __extends(BamArgumentError, _super);
72
- function BamArgumentError() {
73
- return _super !== null && _super.apply(this, arguments) || this;
74
- }
75
- return BamArgumentError;
76
- }(BamError));
30
+ class BamArgumentError extends BamError {
31
+ }
77
32
  exports.BamArgumentError = BamArgumentError;
78
33
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAA8B,4BAAK;IAAnC;;IAAqC,CAAC;IAAD,eAAC;AAAD,CAAC,AAAtC,CAA8B,KAAK,GAAG;AAAzB,4BAAQ;AAErB,4FAA4F;AAC5F;IAA2C,yCAAK;IAAhD;;IAAkD,CAAC;IAAD,4BAAC;AAAD,CAAC,AAAnD,CAA2C,KAAK,GAAG;AAAtC,sDAAqB;AAElC,0CAA0C;AAC1C;IAAuC,qCAAQ;IAA/C;;IAAiD,CAAC;IAAD,wBAAC;AAAD,CAAC,AAAlD,CAAuC,QAAQ,GAAG;AAArC,8CAAiB;AAE9B;;GAEG;AACH;IAA2C,yCAAiB;IAA5D;;IAA8D,CAAC;IAAD,4BAAC;AAAD,CAAC,AAA/D,CAA2C,iBAAiB,GAAG;AAAlD,sDAAqB;AAElC;;GAEG;AACH;IAAuC,qCAAQ;IAA/C;;IAAiD,CAAC;IAAD,wBAAC;AAAD,CAAC,AAAlD,CAAuC,QAAQ,GAAG;AAArC,8CAAiB;AAE9B;;GAEG;AACH;IAAsC,oCAAQ;IAA9C;;IAAgD,CAAC;IAAD,uBAAC;AAAD,CAAC,AAAjD,CAAsC,QAAQ,GAAG;AAApC,4CAAgB"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAS,SAAQ,KAAK;CAAG;AAAtC,4BAAsC;AAEtC,4FAA4F;AAC5F,MAAa,qBAAsB,SAAQ,KAAK;CAAG;AAAnD,sDAAmD;AAEnD,0CAA0C;AAC1C,MAAa,iBAAkB,SAAQ,QAAQ;CAAG;AAAlD,8CAAkD;AAElD;;GAEG;AACH,MAAa,qBAAsB,SAAQ,iBAAiB;CAAG;AAA/D,sDAA+D;AAE/D;;GAEG;AACH,MAAa,iBAAkB,SAAQ,QAAQ;CAAG;AAAlD,8CAAkD;AAElD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,QAAQ;CAAG;AAAjD,4CAAiD"}