@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/htsget.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
+ import { Buffer } from 'buffer';
2
3
  import { BaseOpts, BamOpts } from './util';
3
4
  import BamFile from './bamFile';
4
- import 'cross-fetch/polyfill';
5
5
  import Chunk from './chunk';
6
6
  export default class HtsgetFile extends BamFile {
7
7
  private baseUrl;
@@ -11,16 +11,13 @@ export default class HtsgetFile extends BamFile {
11
11
  baseUrl: string;
12
12
  });
13
13
  streamRecordsForRange(chr: string, min: number, max: number, opts?: BamOpts): AsyncGenerator<import("./record").default[], void, unknown>;
14
- _readChunk(params: {
15
- chunk: {
16
- buffer: Buffer;
17
- chunk: Chunk;
18
- };
14
+ _readChunk({ chunk }: {
15
+ chunk: Chunk;
19
16
  opts: BaseOpts;
20
17
  }): Promise<{
21
18
  data: Buffer;
22
- cpositions: null;
23
- dpositions: null;
19
+ cpositions: never[];
20
+ dpositions: never[];
24
21
  chunk: Chunk;
25
22
  }>;
26
23
  getHeader(opts?: BaseOpts): Promise<{
package/dist/htsget.js CHANGED
@@ -1,30 +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
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
3
  if (k2 === undefined) k2 = k;
30
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -57,33 +31,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
57
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
58
32
  });
59
33
  };
60
- var __generator = (this && this.__generator) || function (thisArg, body) {
61
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
62
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
63
- function verb(n) { return function (v) { return step([n, v]); }; }
64
- function step(op) {
65
- if (f) throw new TypeError("Generator is already executing.");
66
- while (_) try {
67
- 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;
68
- if (y = 0, t) op = [op[0] & 2, t.value];
69
- switch (op[0]) {
70
- case 0: case 1: t = op; break;
71
- case 4: _.label++; return { value: op[1], done: false };
72
- case 5: _.label++; y = op[1]; op = [0]; continue;
73
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
74
- default:
75
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
76
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
77
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
78
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
79
- if (t[2]) _.ops.pop();
80
- _.trys.pop(); continue;
81
- }
82
- op = body.call(thisArg, _);
83
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
84
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
85
- }
86
- };
87
34
  var __rest = (this && this.__rest) || function (s, e) {
88
35
  var t = {};
89
36
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -106,7 +53,7 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
106
53
  var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
107
54
  var i, p;
108
55
  return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
109
- 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; }
56
+ 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; }
110
57
  };
111
58
  var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
112
59
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
@@ -119,171 +66,135 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
119
66
  function reject(value) { resume("throw", value); }
120
67
  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
121
68
  };
122
- var __values = (this && this.__values) || function(o) {
123
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
124
- if (m) return m.call(o);
125
- if (o && typeof o.length === "number") return {
126
- next: function () {
127
- if (o && i >= o.length) o = void 0;
128
- return { value: o && o[i++], done: !o };
129
- }
130
- };
131
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
132
- };
133
69
  Object.defineProperty(exports, "__esModule", { value: true });
134
- var bamFile_1 = __importStar(require("./bamFile"));
135
- require("cross-fetch/polyfill");
136
- var bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
137
- var sam_1 = require("./sam");
70
+ const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
71
+ const buffer_1 = require("buffer");
72
+ const bamFile_1 = __importStar(require("./bamFile"));
73
+ const sam_1 = require("./sam");
138
74
  function concat(arr, opts) {
139
- return __awaiter(this, void 0, void 0, function () {
140
- var res, _a, _b;
141
- var _this = this;
142
- return __generator(this, function (_c) {
143
- switch (_c.label) {
144
- case 0: return [4 /*yield*/, Promise.all(arr.map(function (chunk) { return __awaiter(_this, void 0, void 0, function () {
145
- var url, headers, referer, rest, res_1, _a, _b;
146
- return __generator(this, function (_c) {
147
- switch (_c.label) {
148
- case 0:
149
- url = chunk.url, headers = chunk.headers;
150
- if (!url.startsWith('data:')) return [3 /*break*/, 1];
151
- return [2 /*return*/, Buffer.from(url.split(',')[1], 'base64')];
152
- case 1:
153
- referer = headers.referer, rest = __rest(headers, ["referer"]);
154
- return [4 /*yield*/, fetch(url, __assign(__assign({}, opts), { headers: __assign(__assign({}, opts.headers), rest) }))];
155
- case 2:
156
- res_1 = _c.sent();
157
- if (!res_1.ok) {
158
- throw new Error("Failed to fetch ".concat(res_1.statusText));
159
- }
160
- _b = (_a = Buffer).from;
161
- return [4 /*yield*/, res_1.arrayBuffer()];
162
- case 3: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
163
- }
164
- });
165
- }); }))];
166
- case 1:
167
- res = _c.sent();
168
- _b = (_a = Buffer).concat;
169
- return [4 /*yield*/, Promise.all(res.map(function (elt) { return (0, bgzf_filehandle_1.unzip)(elt); }))];
170
- case 2: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const res = yield Promise.all(arr.map((chunk) => __awaiter(this, void 0, void 0, function* () {
77
+ const { url, headers } = chunk;
78
+ if (url.startsWith('data:')) {
79
+ return buffer_1.Buffer.from(url.split(',')[1], 'base64');
171
80
  }
172
- });
81
+ else {
82
+ //remove referer header, it is not even allowed to be specified
83
+ // @ts-expect-error
84
+ //eslint-disable-next-line @typescript-eslint/no-unused-vars
85
+ const { referer } = headers, rest = __rest(headers, ["referer"]);
86
+ const res = yield fetch(url, Object.assign(Object.assign({}, opts), { headers: Object.assign(Object.assign({}, opts === null || opts === void 0 ? void 0 : opts.headers), rest) }));
87
+ if (!res.ok) {
88
+ throw new Error(`HTTP ${res.status} fetching ${url}: ${yield res.text()}`);
89
+ }
90
+ return buffer_1.Buffer.from(yield res.arrayBuffer());
91
+ }
92
+ })));
93
+ return buffer_1.Buffer.concat(yield Promise.all(res.map(elt => (0, bgzf_filehandle_1.unzip)(elt))));
173
94
  });
174
95
  }
175
- var HtsgetFile = /** @class */ (function (_super) {
176
- __extends(HtsgetFile, _super);
177
- function HtsgetFile(args) {
178
- var _this =
179
- // @ts-ignore override bam defaults
180
- _super.call(this, { bamFilehandle: '?', baiFilehandle: '?' }) || this;
181
- _this.baseUrl = args.baseUrl;
182
- _this.trackId = args.trackId;
183
- return _this;
96
+ class HtsgetFile extends bamFile_1.default {
97
+ constructor(args) {
98
+ super({ htsget: true });
99
+ this.baseUrl = args.baseUrl;
100
+ this.trackId = args.trackId;
184
101
  }
185
- HtsgetFile.prototype.streamRecordsForRange = function (chr, min, max, opts) {
186
- if (opts === void 0) { opts = {
187
- viewAsPairs: false,
188
- pairAcrossChr: false,
189
- maxInsertSize: 200000,
190
- }; }
191
- return __asyncGenerator(this, arguments, function streamRecordsForRange_1() {
192
- var base, url, chrId, result, data, uncba, chunk;
193
- return __generator(this, function (_a) {
194
- switch (_a.label) {
195
- case 0:
196
- base = "".concat(this.baseUrl, "/").concat(this.trackId);
197
- url = "".concat(base, "?referenceName=").concat(chr, "&start=").concat(min, "&end=").concat(max, "&format=BAM");
198
- chrId = this.chrToIndex && this.chrToIndex[chr];
199
- return [4 /*yield*/, __await(fetch(url, __assign({}, opts)))];
200
- case 1:
201
- result = _a.sent();
202
- if (!result.ok) {
203
- throw new Error(result.statusText);
204
- }
205
- return [4 /*yield*/, __await(result.json())];
206
- case 2:
207
- data = _a.sent();
208
- return [4 /*yield*/, __await(concat(data.htsget.urls.slice(1), opts))];
209
- case 3:
210
- uncba = _a.sent();
211
- chunk = {
212
- buffer: uncba,
213
- chunk: { minv: { dataPosition: 0 } },
214
- toString: function () {
215
- return "".concat(chr, "_").concat(min, "_").concat(max);
216
- },
217
- };
218
- return [5 /*yield**/, __values(__asyncDelegator(__asyncValues(this._fetchChunkFeatures(
219
- // @ts-ignore
220
- [chunk], chrId, min, max, opts))))];
221
- case 4: return [4 /*yield*/, __await.apply(void 0, [_a.sent()])];
222
- case 5:
223
- _a.sent();
224
- return [2 /*return*/];
102
+ streamRecordsForRange(chr, min, max, opts) {
103
+ var _a;
104
+ return __asyncGenerator(this, arguments, function* streamRecordsForRange_1() {
105
+ const base = `${this.baseUrl}/${this.trackId}`;
106
+ const url = `${base}?referenceName=${chr}&start=${min}&end=${max}&format=BAM`;
107
+ const chrId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[chr];
108
+ if (chrId === undefined) {
109
+ yield yield __await([]);
110
+ }
111
+ else {
112
+ const result = yield __await(fetch(url, Object.assign({}, opts)));
113
+ if (!result.ok) {
114
+ throw new Error(`HTTP ${result.status} fetching ${url}: ${yield __await(result.text())}`);
225
115
  }
226
- });
116
+ const data = yield __await(result.json());
117
+ const uncba = yield __await(concat(data.htsget.urls.slice(1), opts));
118
+ yield __await(yield* __asyncDelegator(__asyncValues(this._fetchChunkFeatures([
119
+ // fake stuff to pretend to be a Chunk
120
+ {
121
+ buffer: uncba,
122
+ _fetchedSize: undefined,
123
+ bin: 0,
124
+ compareTo() {
125
+ return 0;
126
+ },
127
+ toUniqueString() {
128
+ return `${chr}_${min}_${max}`;
129
+ },
130
+ fetchedSize() {
131
+ return 0;
132
+ },
133
+ minv: {
134
+ dataPosition: 0,
135
+ blockPosition: 0,
136
+ compareTo: () => 0,
137
+ },
138
+ maxv: {
139
+ dataPosition: Number.MAX_SAFE_INTEGER,
140
+ blockPosition: 0,
141
+ compareTo: () => 0,
142
+ },
143
+ toString() {
144
+ return `${chr}_${min}_${max}`;
145
+ },
146
+ },
147
+ ], chrId, min, max, opts))));
148
+ }
227
149
  });
228
- };
229
- //@ts-ignore
230
- HtsgetFile.prototype._readChunk = function (params) {
231
- return __awaiter(this, void 0, void 0, function () {
232
- var chunk, buffer, c2;
233
- return __generator(this, function (_a) {
234
- chunk = params.chunk;
235
- buffer = chunk.buffer, c2 = chunk.chunk;
236
- return [2 /*return*/, { data: buffer, cpositions: null, dpositions: null, chunk: c2 }];
237
- });
150
+ }
151
+ _readChunk({ chunk }) {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ if (!chunk.buffer) {
154
+ throw new Error('expected chunk.buffer in htsget');
155
+ }
156
+ return { data: chunk.buffer, cpositions: [], dpositions: [], chunk };
238
157
  });
239
- };
240
- HtsgetFile.prototype.getHeader = function (opts) {
241
- if (opts === void 0) { opts = {}; }
242
- return __awaiter(this, void 0, void 0, function () {
243
- var url, result, data, uncba, headLen, headerText, samHeader, idToName, nameToId, sqLines;
244
- return __generator(this, function (_a) {
245
- switch (_a.label) {
246
- case 0:
247
- url = "".concat(this.baseUrl, "/").concat(this.trackId, "?referenceName=na&class=header");
248
- return [4 /*yield*/, fetch(url, opts)];
249
- case 1:
250
- result = _a.sent();
251
- if (!result.ok) {
252
- throw new Error("Failed to fetch ".concat(result.statusText));
253
- }
254
- return [4 /*yield*/, result.json()];
255
- case 2:
256
- data = _a.sent();
257
- return [4 /*yield*/, concat(data.htsget.urls, opts)];
258
- case 3:
259
- uncba = _a.sent();
260
- if (uncba.readInt32LE(0) !== bamFile_1.BAM_MAGIC) {
261
- throw new Error('Not a BAM file');
262
- }
263
- headLen = uncba.readInt32LE(4);
264
- headerText = uncba.toString('utf8', 8, 8 + headLen);
265
- samHeader = (0, sam_1.parseHeaderText)(headerText);
266
- idToName = [];
267
- nameToId = {};
268
- sqLines = samHeader.filter(function (l) { return l.tag === 'SQ'; });
269
- sqLines.forEach(function (sqLine, refId) {
270
- sqLine.data.forEach(function (item) {
271
- if (item.tag === 'SN') {
272
- // this is the ref name
273
- var refName = item.value;
274
- nameToId[refName] = refId;
275
- idToName[refId] = refName;
276
- }
277
- });
278
- });
279
- this.chrToIndex = nameToId;
280
- this.indexToChr = idToName;
281
- return [2 /*return*/, samHeader];
158
+ }
159
+ getHeader(opts = {}) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ const url = `${this.baseUrl}/${this.trackId}?referenceName=na&class=header`;
162
+ const result = yield fetch(url, opts);
163
+ if (!result.ok) {
164
+ throw new Error(`HTTP ${result.status} fetching ${url}: ${yield result.text()}`);
165
+ }
166
+ const data = yield result.json();
167
+ const uncba = yield concat(data.htsget.urls, opts);
168
+ if (uncba.readInt32LE(0) !== bamFile_1.BAM_MAGIC) {
169
+ throw new Error('Not a BAM file');
170
+ }
171
+ const headLen = uncba.readInt32LE(4);
172
+ const headerText = uncba.toString('utf8', 8, 8 + headLen);
173
+ const samHeader = (0, sam_1.parseHeaderText)(headerText);
174
+ // use the @SQ lines in the header to figure out the
175
+ // mapping between ref ref ID numbers and names
176
+ const idToName = [];
177
+ const nameToId = {};
178
+ const sqLines = samHeader.filter(l => l.tag === 'SQ');
179
+ for (const [refId, sqLine] of sqLines.entries()) {
180
+ let refName = '';
181
+ let length = 0;
182
+ for (const item of sqLine.data) {
183
+ if (item.tag === 'SN') {
184
+ refName = item.value;
185
+ }
186
+ else if (item.tag === 'LN') {
187
+ length = +item.value;
188
+ }
282
189
  }
283
- });
190
+ nameToId[refName] = refId;
191
+ idToName[refId] = { refName, length };
192
+ }
193
+ this.chrToIndex = nameToId;
194
+ this.indexToChr = idToName;
195
+ return samHeader;
284
196
  });
285
- };
286
- return HtsgetFile;
287
- }(bamFile_1.default));
197
+ }
198
+ }
288
199
  exports.default = HtsgetFile;
289
200
  //# sourceMappingURL=htsget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"htsget.js","sourceRoot":"","sources":["../src/htsget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"htsget.js","sourceRoot":"","sources":["../src/htsget.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import BAI from './bai';
2
- import CSI from './csi';
3
- import BamFile from './bamFile';
4
- import HtsgetFile from './htsget';
5
- import BamRecord from './record';
6
- export { BAI, CSI, BamFile, BamRecord, HtsgetFile };
1
+ export { default as BAI } from './bai';
2
+ export { default as BamFile } from './bamFile';
3
+ export { default as CSI } from './csi';
4
+ export { default as BamRecord } from './record';
5
+ export { default as HtsgetFile } from './htsget';
package/dist/index.js CHANGED
@@ -3,15 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.HtsgetFile = exports.BamRecord = exports.BamFile = exports.CSI = exports.BAI = void 0;
7
- var bai_1 = __importDefault(require("./bai"));
8
- exports.BAI = bai_1.default;
9
- var csi_1 = __importDefault(require("./csi"));
10
- exports.CSI = csi_1.default;
11
- var bamFile_1 = __importDefault(require("./bamFile"));
12
- exports.BamFile = bamFile_1.default;
13
- var htsget_1 = __importDefault(require("./htsget"));
14
- exports.HtsgetFile = htsget_1.default;
15
- var record_1 = __importDefault(require("./record"));
16
- exports.BamRecord = record_1.default;
6
+ exports.HtsgetFile = exports.BamRecord = exports.CSI = exports.BamFile = exports.BAI = void 0;
7
+ var bai_1 = require("./bai");
8
+ Object.defineProperty(exports, "BAI", { enumerable: true, get: function () { return __importDefault(bai_1).default; } });
9
+ var bamFile_1 = require("./bamFile");
10
+ Object.defineProperty(exports, "BamFile", { enumerable: true, get: function () { return __importDefault(bamFile_1).default; } });
11
+ var csi_1 = require("./csi");
12
+ Object.defineProperty(exports, "CSI", { enumerable: true, get: function () { return __importDefault(csi_1).default; } });
13
+ var record_1 = require("./record");
14
+ Object.defineProperty(exports, "BamRecord", { enumerable: true, get: function () { return __importDefault(record_1).default; } });
15
+ var htsget_1 = require("./htsget");
16
+ Object.defineProperty(exports, "HtsgetFile", { enumerable: true, get: function () { return __importDefault(htsget_1).default; } });
17
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAuB;AAMd,cANF,aAAG,CAME;AALZ,8CAAuB;AAKT,cALP,aAAG,CAKO;AAJjB,sDAA+B;AAIZ,kBAJZ,iBAAO,CAIY;AAH1B,oDAAiC;AAGM,qBAHhC,gBAAU,CAGgC;AAFjD,oDAAgC;AAEJ,oBAFrB,gBAAS,CAEqB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAsC;AAA7B,2GAAA,OAAO,OAAO;AACvB,qCAA8C;AAArC,mHAAA,OAAO,OAAW;AAC3B,6BAAsC;AAA7B,2GAAA,OAAO,OAAO;AACvB,mCAA+C;AAAtC,oHAAA,OAAO,OAAa;AAC7B,mCAAgD;AAAvC,qHAAA,OAAO,OAAc"}
@@ -1,11 +1,9 @@
1
1
  import { GenericFilehandle } from 'generic-filehandle';
2
- import VirtualOffset from './virtualOffset';
3
2
  import Chunk from './chunk';
4
3
  import { BaseOpts } from './util';
5
4
  export default abstract class IndexFile {
6
5
  filehandle: GenericFilehandle;
7
6
  renameRefSeq: (s: string) => string;
8
- setupP?: Promise<any>;
9
7
  /**
10
8
  * @param {filehandle} filehandle
11
9
  * @param {function} [renameRefSeqs]
@@ -15,14 +13,10 @@ export default abstract class IndexFile {
15
13
  renameRefSeq?: (a: string) => string;
16
14
  });
17
15
  abstract lineCount(refId: number): Promise<number>;
18
- protected abstract _parse(opts?: BaseOpts): Promise<any>;
19
16
  abstract indexCov(refId: number, start?: number, end?: number): Promise<{
20
17
  start: number;
21
18
  end: number;
22
19
  score: number;
23
20
  }[]>;
24
21
  abstract blocksForRange(chrId: number, start: number, end: number, opts?: BaseOpts): Promise<Chunk[]>;
25
- _findFirstData(data: any, virtualOffset: VirtualOffset): void;
26
- parse(opts?: BaseOpts): Promise<any>;
27
- hasRefSeq(seqId: number, opts?: BaseOpts): Promise<boolean>;
28
22
  }
package/dist/indexFile.js CHANGED
@@ -1,88 +1,14 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
- var IndexFile = /** @class */ (function () {
3
+ class IndexFile {
40
4
  /**
41
5
  * @param {filehandle} filehandle
42
6
  * @param {function} [renameRefSeqs]
43
7
  */
44
- function IndexFile(_a) {
45
- var filehandle = _a.filehandle, _b = _a.renameRefSeq, renameRefSeq = _b === void 0 ? function (n) { return n; } : _b;
8
+ constructor({ filehandle, renameRefSeq = (n) => n, }) {
46
9
  this.filehandle = filehandle;
47
10
  this.renameRefSeq = renameRefSeq;
48
11
  }
49
- IndexFile.prototype._findFirstData = function (data, virtualOffset) {
50
- var currentFdl = data.firstDataLine;
51
- if (currentFdl) {
52
- data.firstDataLine =
53
- currentFdl.compareTo(virtualOffset) > 0 ? virtualOffset : currentFdl;
54
- }
55
- else {
56
- data.firstDataLine = virtualOffset;
57
- }
58
- };
59
- IndexFile.prototype.parse = function (opts) {
60
- if (opts === void 0) { opts = {}; }
61
- return __awaiter(this, void 0, void 0, function () {
62
- var _this = this;
63
- return __generator(this, function (_a) {
64
- if (!this.setupP) {
65
- this.setupP = this._parse(opts).catch(function (e) {
66
- _this.setupP = undefined;
67
- throw e;
68
- });
69
- }
70
- return [2 /*return*/, this.setupP];
71
- });
72
- });
73
- };
74
- IndexFile.prototype.hasRefSeq = function (seqId, opts) {
75
- if (opts === void 0) { opts = {}; }
76
- return __awaiter(this, void 0, void 0, function () {
77
- return __generator(this, function (_a) {
78
- switch (_a.label) {
79
- case 0: return [4 /*yield*/, this.parse(opts)];
80
- case 1: return [2 /*return*/, !!((_a.sent()).indices[seqId] || {}).binIndex];
81
- }
82
- });
83
- });
84
- };
85
- return IndexFile;
86
- }());
12
+ }
87
13
  exports.default = IndexFile;
88
14
  //# sourceMappingURL=indexFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexFile.js","sourceRoot":"","sources":["../src/indexFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;IAKE;;;OAGG;IACH,mBAAY,EAMX;YALC,UAAU,gBAAA,EACV,oBAA+B,EAA/B,YAAY,mBAAG,UAAC,CAAS,IAAK,OAAA,CAAC,EAAD,CAAC,KAAA;QAK/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;IAgBD,kCAAc,GAAd,UAAe,IAAS,EAAE,aAA4B;QACpD,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAA;QACrC,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,aAAa;gBAChB,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAA;SACvE;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;SACnC;IACH,CAAC;IAEK,yBAAK,GAAX,UAAY,IAAmB;QAAnB,qBAAA,EAAA,SAAmB;;;;gBAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC;wBACrC,KAAI,CAAC,MAAM,GAAG,SAAS,CAAA;wBACvB,MAAM,CAAC,CAAA;oBACT,CAAC,CAAC,CAAA;iBACH;gBACD,sBAAO,IAAI,CAAC,MAAM,EAAA;;;KACnB;IAEK,6BAAS,GAAf,UAAgB,KAAa,EAAE,IAAmB;QAAnB,qBAAA,EAAA,SAAmB;;;;4BACrC,qBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAA;4BAAjC,sBAAO,CAAC,CAAC,CAAC,CAAC,SAAsB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAA;;;;KAClE;IACH,gBAAC;AAAD,CAAC,AAzDD,IAyDC"}
1
+ {"version":3,"file":"indexFile.js","sourceRoot":"","sources":["../src/indexFile.ts"],"names":[],"mappings":";;AAIA,MAA8B,SAAS;IAIrC;;;OAGG;IACH,YAAY,EACV,UAAU,EACV,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAIhC;QACC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;CAcF;AA/BD,4BA+BC"}
@@ -0,0 +1,7 @@
1
+ import IndexFile from './indexFile';
2
+ export default class NullIndex extends IndexFile {
3
+ lineCount(): Promise<any>;
4
+ protected _parse(): Promise<any>;
5
+ indexCov(): Promise<any>;
6
+ blocksForRange(): Promise<any>;
7
+ }