@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.
- package/CHANGELOG.md +65 -25
- package/README.md +108 -57
- package/dist/bai.d.ts +34 -15
- package/dist/bai.js +180 -273
- package/dist/bai.js.map +1 -1
- package/dist/bamFile.d.ts +33 -27
- package/dist/bamFile.js +353 -572
- package/dist/bamFile.js.map +1 -1
- package/dist/chunk.d.ts +4 -8
- package/dist/chunk.js +13 -21
- package/dist/chunk.js.map +1 -1
- package/dist/csi.d.ts +74 -10
- package/dist/csi.js +157 -256
- package/dist/csi.js.map +1 -1
- package/dist/errors.js +12 -57
- package/dist/errors.js.map +1 -1
- package/dist/htsget.d.ts +5 -8
- package/dist/htsget.js +120 -209
- package/dist/htsget.js.map +1 -1
- package/dist/index.d.ts +5 -6
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/indexFile.d.ts +0 -6
- package/dist/indexFile.js +3 -77
- package/dist/indexFile.js.map +1 -1
- package/dist/nullIndex.d.ts +7 -0
- package/dist/nullIndex.js +33 -0
- package/dist/nullIndex.js.map +1 -0
- package/dist/record.d.ts +2 -2
- package/dist/record.js +200 -193
- package/dist/record.js.map +1 -1
- package/dist/sam.js +12 -10
- package/dist/sam.js.map +1 -1
- package/dist/util.d.ts +13 -1
- package/dist/util.js +55 -58
- package/dist/util.js.map +1 -1
- package/dist/virtualOffset.js +13 -20
- package/dist/virtualOffset.js.map +1 -1
- package/esm/bai.d.ts +34 -15
- package/esm/bai.js +86 -91
- package/esm/bai.js.map +1 -1
- package/esm/bamFile.d.ts +33 -27
- package/esm/bamFile.js +124 -120
- package/esm/bamFile.js.map +1 -1
- package/esm/chunk.d.ts +4 -8
- package/esm/chunk.js +2 -8
- package/esm/chunk.js.map +1 -1
- package/esm/csi.d.ts +74 -10
- package/esm/csi.js +85 -93
- package/esm/csi.js.map +1 -1
- package/esm/htsget.d.ts +5 -8
- package/esm/htsget.js +68 -43
- package/esm/htsget.js.map +1 -1
- package/esm/index.d.ts +5 -6
- package/esm/index.js +5 -6
- package/esm/index.js.map +1 -1
- package/esm/indexFile.d.ts +0 -6
- package/esm/indexFile.js +0 -22
- package/esm/indexFile.js.map +1 -1
- package/esm/nullIndex.d.ts +7 -0
- package/esm/nullIndex.js +16 -0
- package/esm/nullIndex.js.map +1 -0
- package/esm/record.d.ts +2 -2
- package/esm/record.js +34 -24
- package/esm/record.js.map +1 -1
- package/esm/sam.js +9 -7
- package/esm/sam.js.map +1 -1
- package/esm/util.d.ts +13 -1
- package/esm/util.js +40 -14
- package/esm/util.js.map +1 -1
- package/package.json +19 -20
- package/src/bai.ts +99 -102
- package/src/bamFile.ts +174 -198
- package/src/chunk.ts +6 -20
- package/src/csi.ts +102 -111
- package/src/htsget.ts +81 -61
- package/src/index.ts +5 -7
- package/src/indexFile.ts +0 -27
- package/src/nullIndex.ts +18 -0
- package/src/record.ts +34 -24
- package/src/sam.ts +9 -7
- package/src/util.ts +54 -13
- 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(
|
|
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:
|
|
23
|
-
dpositions:
|
|
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:
|
|
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
|
-
|
|
135
|
-
require("
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
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
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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
|
-
|
|
287
|
-
}(bamFile_1.default));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
288
199
|
exports.default = HtsgetFile;
|
|
289
200
|
//# sourceMappingURL=htsget.js.map
|
package/dist/htsget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htsget.js","sourceRoot":"","sources":["../src/htsget.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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.
|
|
7
|
-
var bai_1 =
|
|
8
|
-
exports
|
|
9
|
-
var
|
|
10
|
-
exports
|
|
11
|
-
var
|
|
12
|
-
exports
|
|
13
|
-
var
|
|
14
|
-
exports
|
|
15
|
-
var
|
|
16
|
-
exports
|
|
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,
|
|
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"}
|
package/dist/indexFile.d.ts
CHANGED
|
@@ -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
|
-
|
|
3
|
+
class IndexFile {
|
|
40
4
|
/**
|
|
41
5
|
* @param {filehandle} filehandle
|
|
42
6
|
* @param {function} [renameRefSeqs]
|
|
43
7
|
*/
|
|
44
|
-
|
|
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
|
-
|
|
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
|
package/dist/indexFile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexFile.js","sourceRoot":"","sources":["../src/indexFile.ts"],"names":[],"mappings":"
|
|
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"}
|