@gmod/tabix 1.5.15 → 1.6.1
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 +10 -6
- package/README.md +175 -37
- package/dist/chunk.js.map +1 -1
- package/dist/csi.js +115 -121
- package/dist/csi.js.map +1 -1
- package/dist/indexFile.js +15 -41
- package/dist/indexFile.js.map +1 -1
- package/dist/tabix-bundle.js +1 -1
- package/dist/tabixIndexedFile.d.ts +6 -5
- package/dist/tabixIndexedFile.js +155 -161
- package/dist/tabixIndexedFile.js.map +1 -1
- package/dist/tbi.js +150 -165
- package/dist/tbi.js.map +1 -1
- package/dist/util.js +3 -14
- package/dist/util.js.map +1 -1
- package/esm/chunk.js.map +1 -1
- package/esm/tabixIndexedFile.d.ts +6 -5
- package/esm/tabixIndexedFile.js +70 -51
- package/esm/tabixIndexedFile.js.map +1 -1
- package/package.json +7 -5
- package/src/chunk.ts +0 -1
- package/src/tabixIndexedFile.ts +70 -58
|
@@ -11,7 +11,6 @@ interface GetLinesOpts {
|
|
|
11
11
|
export default class TabixIndexedFile {
|
|
12
12
|
private filehandle;
|
|
13
13
|
private index;
|
|
14
|
-
private yieldTime;
|
|
15
14
|
private renameRefSeq;
|
|
16
15
|
private chunkCache;
|
|
17
16
|
/**
|
|
@@ -29,15 +28,18 @@ export default class TabixIndexedFile {
|
|
|
29
28
|
*
|
|
30
29
|
* @param {filehandle} [args.csiFilehandle]
|
|
31
30
|
*
|
|
32
|
-
* @param {
|
|
33
|
-
*
|
|
31
|
+
* @param {url} [args.url]
|
|
32
|
+
*
|
|
33
|
+
* @param {csiUrl} [args.csiUrl]
|
|
34
|
+
*
|
|
35
|
+
* @param {tbiUrl} [args.tbiUrl]
|
|
34
36
|
*
|
|
35
37
|
* @param {function} [args.renameRefSeqs] optional function with sig `string
|
|
36
38
|
* => string` to transform reference sequence names for the purpose of
|
|
37
39
|
* indexing and querying. note that the data that is returned is not altered,
|
|
38
40
|
* just the names of the reference sequences that are used for querying.
|
|
39
41
|
*/
|
|
40
|
-
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle,
|
|
42
|
+
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, renameRefSeqs, chunkCacheSize, }: {
|
|
41
43
|
path?: string;
|
|
42
44
|
filehandle?: GenericFilehandle;
|
|
43
45
|
url?: string;
|
|
@@ -47,7 +49,6 @@ export default class TabixIndexedFile {
|
|
|
47
49
|
csiPath?: string;
|
|
48
50
|
csiUrl?: string;
|
|
49
51
|
csiFilehandle?: GenericFilehandle;
|
|
50
|
-
yieldTime?: number;
|
|
51
52
|
renameRefSeqs?: (n: string) => string;
|
|
52
53
|
chunkCacheSize?: number;
|
|
53
54
|
});
|
package/dist/tabixIndexedFile.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -20,10 +11,11 @@ const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
|
|
|
20
11
|
const util_1 = require("./util");
|
|
21
12
|
const tbi_1 = __importDefault(require("./tbi"));
|
|
22
13
|
const csi_1 = __importDefault(require("./csi"));
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return
|
|
14
|
+
function isASCII(str) {
|
|
15
|
+
// eslint-disable-next-line no-control-regex
|
|
16
|
+
return /^[\u0000-\u007F]*$/.test(str);
|
|
26
17
|
}
|
|
18
|
+
const decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;
|
|
27
19
|
class TabixIndexedFile {
|
|
28
20
|
/**
|
|
29
21
|
* @param {object} args
|
|
@@ -40,15 +32,18 @@ class TabixIndexedFile {
|
|
|
40
32
|
*
|
|
41
33
|
* @param {filehandle} [args.csiFilehandle]
|
|
42
34
|
*
|
|
43
|
-
* @param {
|
|
44
|
-
*
|
|
35
|
+
* @param {url} [args.url]
|
|
36
|
+
*
|
|
37
|
+
* @param {csiUrl} [args.csiUrl]
|
|
38
|
+
*
|
|
39
|
+
* @param {tbiUrl} [args.tbiUrl]
|
|
45
40
|
*
|
|
46
41
|
* @param {function} [args.renameRefSeqs] optional function with sig `string
|
|
47
42
|
* => string` to transform reference sequence names for the purpose of
|
|
48
43
|
* indexing and querying. note that the data that is returned is not altered,
|
|
49
44
|
* just the names of the reference sequences that are used for querying.
|
|
50
45
|
*/
|
|
51
|
-
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle,
|
|
46
|
+
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, renameRefSeqs = n => n, chunkCacheSize = 5 * 2 ** 20, }) {
|
|
52
47
|
if (filehandle) {
|
|
53
48
|
this.filehandle = filehandle;
|
|
54
49
|
}
|
|
@@ -110,7 +105,6 @@ class TabixIndexedFile {
|
|
|
110
105
|
throw new TypeError('must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl');
|
|
111
106
|
}
|
|
112
107
|
this.renameRefSeq = renameRefSeqs;
|
|
113
|
-
this.yieldTime = yieldTime;
|
|
114
108
|
this.chunkCache = new abortable_promise_cache_1.default({
|
|
115
109
|
cache: new quick_lru_1.default({ maxSize: Math.floor(chunkCacheSize / (1 << 16)) }),
|
|
116
110
|
fill: (args, signal) => this.readChunk(args, { signal }),
|
|
@@ -129,131 +123,127 @@ class TabixIndexedFile {
|
|
|
129
123
|
* @returns promise that is resolved when the whole read is finished,
|
|
130
124
|
* rejected on error
|
|
131
125
|
*/
|
|
132
|
-
getLines(refName, s, e, opts) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
126
|
+
async getLines(refName, s, e, opts) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
let signal;
|
|
129
|
+
let options = {};
|
|
130
|
+
let callback;
|
|
131
|
+
if (typeof opts === 'function') {
|
|
132
|
+
callback = opts;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
options = opts;
|
|
136
|
+
callback = opts.lineCallback;
|
|
137
|
+
signal = opts.signal;
|
|
138
|
+
}
|
|
139
|
+
const metadata = await this.index.getMetadata(options);
|
|
140
|
+
(0, util_1.checkAbortSignal)(signal);
|
|
141
|
+
const start = s !== null && s !== void 0 ? s : 0;
|
|
142
|
+
const end = e !== null && e !== void 0 ? e : metadata.maxRefLength;
|
|
143
|
+
if (!(start <= end)) {
|
|
144
|
+
throw new TypeError('invalid start and end coordinates. start must be less than or equal to end');
|
|
145
|
+
}
|
|
146
|
+
if (start === end) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const chunks = await this.index.blocksForRange(refName, start, end, options);
|
|
150
|
+
(0, util_1.checkAbortSignal)(signal);
|
|
151
|
+
// now go through each chunk and parse and filter the lines out of it
|
|
152
|
+
for (const c of chunks) {
|
|
153
|
+
const { buffer, cpositions, dpositions } = await this.chunkCache.get(c.toString(), c, signal);
|
|
157
154
|
(0, util_1.checkAbortSignal)(signal);
|
|
158
|
-
|
|
159
|
-
let
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
155
|
+
let blockStart = 0;
|
|
156
|
+
let pos = 0;
|
|
157
|
+
const str = (_a = decoder === null || decoder === void 0 ? void 0 : decoder.decode(buffer)) !== null && _a !== void 0 ? _a : buffer.toString();
|
|
158
|
+
// fast path, Buffer is just ASCII chars and not gigantor, can be
|
|
159
|
+
// converted to string and processed directly. if it is not ASCII or
|
|
160
|
+
// gigantic (chrome max str len is 512Mb), we have to decode line by line
|
|
161
|
+
const strIsASCII = buffer.length < 500000000 && isASCII(str);
|
|
162
|
+
while (blockStart < str.length) {
|
|
163
|
+
let line;
|
|
164
|
+
let n;
|
|
165
|
+
if (strIsASCII) {
|
|
166
|
+
n = str.indexOf('\n', blockStart);
|
|
168
167
|
if (n === -1) {
|
|
169
168
|
break;
|
|
170
169
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
// filter the line for whether it is within the requested range
|
|
179
|
-
const { startCoordinate, overlaps } = this.checkLine(metadata, refName, start, end, line);
|
|
180
|
-
// do a small check just to make sure that the lines are really sorted
|
|
181
|
-
// by start coordinate
|
|
182
|
-
if (previousStartCoordinate !== undefined &&
|
|
183
|
-
startCoordinate !== undefined &&
|
|
184
|
-
previousStartCoordinate > startCoordinate) {
|
|
185
|
-
throw new Error(`Lines not sorted by start coordinate (${previousStartCoordinate} > ${startCoordinate}), this file is not usable with Tabix.`);
|
|
186
|
-
}
|
|
187
|
-
previousStartCoordinate = startCoordinate;
|
|
188
|
-
if (overlaps) {
|
|
189
|
-
callback(line.trim(),
|
|
190
|
-
// cpositions[pos] refers to actual file offset of a bgzip block boundaries
|
|
191
|
-
//
|
|
192
|
-
// we multiply by (1 <<8) in order to make sure each block has a "unique"
|
|
193
|
-
// address space so that data in that block could never overlap
|
|
194
|
-
//
|
|
195
|
-
// then the blockStart-dpositions is an uncompressed file offset from
|
|
196
|
-
// that bgzip block boundary, and since the cpositions are multiplied by
|
|
197
|
-
// (1 << 8) these uncompressed offsets get a unique space
|
|
198
|
-
cpositions[pos] * (1 << 8) +
|
|
199
|
-
(blockStart - dpositions[pos]) +
|
|
200
|
-
c.minv.dataPosition +
|
|
201
|
-
1);
|
|
202
|
-
}
|
|
203
|
-
else if (startCoordinate !== undefined && startCoordinate >= end) {
|
|
204
|
-
// the lines were overlapping the region, but now have stopped, so
|
|
205
|
-
// we must be at the end of the relevant data and we can stop
|
|
206
|
-
// processing data now
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
// yield if we have emitted beyond the yield limit
|
|
210
|
-
if (this.yieldTime && last - Date.now() > this.yieldTime) {
|
|
211
|
-
last = Date.now();
|
|
212
|
-
(0, util_1.checkAbortSignal)(signal);
|
|
213
|
-
yield timeout(1);
|
|
170
|
+
line = str.slice(blockStart, n);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
n = buffer.indexOf('\n', blockStart);
|
|
174
|
+
if (n === -1) {
|
|
175
|
+
break;
|
|
214
176
|
}
|
|
215
|
-
|
|
177
|
+
const b = buffer.slice(blockStart, n);
|
|
178
|
+
line = (_b = decoder === null || decoder === void 0 ? void 0 : decoder.decode(b)) !== null && _b !== void 0 ? _b : b.toString();
|
|
179
|
+
}
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
181
|
+
if (dpositions) {
|
|
182
|
+
while (blockStart + c.minv.dataPosition >= dpositions[pos++]) { }
|
|
183
|
+
pos--;
|
|
184
|
+
}
|
|
185
|
+
// filter the line for whether it is within the requested range
|
|
186
|
+
const { startCoordinate, overlaps } = this.checkLine(metadata, refName, start, end, line);
|
|
187
|
+
if (overlaps) {
|
|
188
|
+
callback(line,
|
|
189
|
+
// cpositions[pos] refers to actual file offset of a bgzip block
|
|
190
|
+
// boundaries
|
|
191
|
+
//
|
|
192
|
+
// we multiply by (1 <<8) in order to make sure each block has a
|
|
193
|
+
// "unique" address space so that data in that block could never
|
|
194
|
+
// overlap
|
|
195
|
+
//
|
|
196
|
+
// then the blockStart-dpositions is an uncompressed file offset
|
|
197
|
+
// from that bgzip block boundary, and since the cpositions are
|
|
198
|
+
// multiplied by (1 << 8) these uncompressed offsets get a unique
|
|
199
|
+
// space
|
|
200
|
+
cpositions[pos] * (1 << 8) +
|
|
201
|
+
(blockStart - dpositions[pos]) +
|
|
202
|
+
c.minv.dataPosition +
|
|
203
|
+
1);
|
|
204
|
+
}
|
|
205
|
+
else if (startCoordinate !== undefined && startCoordinate >= end) {
|
|
206
|
+
// the lines were overlapping the region, but now have stopped, so we
|
|
207
|
+
// must be at the end of the relevant data and we can stop processing
|
|
208
|
+
// data now
|
|
209
|
+
return;
|
|
216
210
|
}
|
|
211
|
+
blockStart = n + 1;
|
|
217
212
|
}
|
|
218
|
-
}
|
|
213
|
+
}
|
|
219
214
|
}
|
|
220
|
-
getMetadata() {
|
|
221
|
-
return
|
|
222
|
-
return this.index.getMetadata(opts);
|
|
223
|
-
});
|
|
215
|
+
async getMetadata(opts = {}) {
|
|
216
|
+
return this.index.getMetadata(opts);
|
|
224
217
|
}
|
|
225
218
|
/**
|
|
226
219
|
* get a buffer containing the "header" region of the file, which are the
|
|
227
220
|
* bytes up to the first non-meta line
|
|
228
221
|
*/
|
|
229
|
-
getHeaderBuffer() {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
// trim
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
if (bytes[i] === newlineByte) {
|
|
250
|
-
lastNewline = i;
|
|
251
|
-
}
|
|
222
|
+
async getHeaderBuffer(opts = {}) {
|
|
223
|
+
const { firstDataLine, metaChar, maxBlockSize } = await this.getMetadata(opts);
|
|
224
|
+
(0, util_1.checkAbortSignal)(opts.signal);
|
|
225
|
+
const maxFetch = ((firstDataLine === null || firstDataLine === void 0 ? void 0 : firstDataLine.blockPosition) || 0) + maxBlockSize;
|
|
226
|
+
// TODO: what if we don't have a firstDataLine, and the header
|
|
227
|
+
// actually takes up more than one block? this case is not covered here
|
|
228
|
+
const buf = await this._readRegion(0, maxFetch, opts);
|
|
229
|
+
const bytes = await (0, bgzf_filehandle_1.unzip)(buf);
|
|
230
|
+
// trim off lines after the last non-meta line
|
|
231
|
+
if (metaChar) {
|
|
232
|
+
// trim backward from the end
|
|
233
|
+
let lastNewline = -1;
|
|
234
|
+
const newlineByte = '\n'.charCodeAt(0);
|
|
235
|
+
const metaByte = metaChar.charCodeAt(0);
|
|
236
|
+
for (let i = 0; i < bytes.length; i += 1) {
|
|
237
|
+
if (i === lastNewline + 1 && bytes[i] !== metaByte) {
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
if (bytes[i] === newlineByte) {
|
|
241
|
+
lastNewline = i;
|
|
252
242
|
}
|
|
253
|
-
return bytes.slice(0, lastNewline + 1);
|
|
254
243
|
}
|
|
255
|
-
return bytes;
|
|
256
|
-
}
|
|
244
|
+
return bytes.subarray(0, lastNewline + 1);
|
|
245
|
+
}
|
|
246
|
+
return bytes;
|
|
257
247
|
}
|
|
258
248
|
/**
|
|
259
249
|
* get a string containing the "header" region of the file, is the portion up
|
|
@@ -261,21 +251,17 @@ class TabixIndexedFile {
|
|
|
261
251
|
*
|
|
262
252
|
* @returns {Promise} for a string
|
|
263
253
|
*/
|
|
264
|
-
getHeader() {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
return bytes.toString('utf8');
|
|
268
|
-
});
|
|
254
|
+
async getHeader(opts = {}) {
|
|
255
|
+
const bytes = await this.getHeaderBuffer(opts);
|
|
256
|
+
return bytes.toString('utf8');
|
|
269
257
|
}
|
|
270
258
|
/**
|
|
271
259
|
* get an array of reference sequence names, in the order in which they occur
|
|
272
260
|
* in the file. reference sequence renaming is not applied to these names.
|
|
273
261
|
*/
|
|
274
|
-
getReferenceSequenceNames() {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
return metadata.refIdToName;
|
|
278
|
-
});
|
|
262
|
+
async getReferenceSequenceNames(opts = {}) {
|
|
263
|
+
const metadata = await this.getMetadata(opts);
|
|
264
|
+
return metadata.refIdToName;
|
|
279
265
|
}
|
|
280
266
|
/**
|
|
281
267
|
* @param {object} metadata metadata object from the parsed index, containing
|
|
@@ -320,12 +306,15 @@ class TabixIndexedFile {
|
|
|
320
306
|
let currentColumnStart = 0;
|
|
321
307
|
let refSeq = '';
|
|
322
308
|
let startCoordinate = -Infinity;
|
|
323
|
-
|
|
324
|
-
|
|
309
|
+
const l = line.length;
|
|
310
|
+
for (let i = 0; i < l + 1; i++) {
|
|
311
|
+
if (line[i] === '\t' || i === l) {
|
|
325
312
|
if (currentColumnNumber === ref) {
|
|
326
313
|
if (this.renameRefSeq(line.slice(currentColumnStart, i)) !==
|
|
327
314
|
regionRefName) {
|
|
328
|
-
return {
|
|
315
|
+
return {
|
|
316
|
+
overlaps: false,
|
|
317
|
+
};
|
|
329
318
|
}
|
|
330
319
|
}
|
|
331
320
|
else if (currentColumnNumber === start) {
|
|
@@ -335,12 +324,18 @@ class TabixIndexedFile {
|
|
|
335
324
|
startCoordinate -= 1;
|
|
336
325
|
}
|
|
337
326
|
if (startCoordinate >= regionEnd) {
|
|
338
|
-
return {
|
|
327
|
+
return {
|
|
328
|
+
startCoordinate,
|
|
329
|
+
overlaps: false,
|
|
330
|
+
};
|
|
339
331
|
}
|
|
340
332
|
if (end === 0 || end === start) {
|
|
341
333
|
// if we have no end, we assume the feature is 1 bp long
|
|
342
334
|
if (startCoordinate + 1 <= regionStart) {
|
|
343
|
-
return {
|
|
335
|
+
return {
|
|
336
|
+
startCoordinate,
|
|
337
|
+
overlaps: false,
|
|
338
|
+
};
|
|
344
339
|
}
|
|
345
340
|
}
|
|
346
341
|
}
|
|
@@ -351,9 +346,11 @@ class TabixIndexedFile {
|
|
|
351
346
|
// this will never match if there is no end column
|
|
352
347
|
const endCoordinate = format === 'VCF'
|
|
353
348
|
? this._getVcfEnd(startCoordinate, refSeq, line.slice(currentColumnStart, i))
|
|
354
|
-
: parseInt(line.slice(currentColumnStart, i), 10);
|
|
349
|
+
: Number.parseInt(line.slice(currentColumnStart, i), 10);
|
|
355
350
|
if (endCoordinate <= regionStart) {
|
|
356
|
-
return {
|
|
351
|
+
return {
|
|
352
|
+
overlaps: false,
|
|
353
|
+
};
|
|
357
354
|
}
|
|
358
355
|
}
|
|
359
356
|
currentColumnStart = i + 1;
|
|
@@ -363,7 +360,10 @@ class TabixIndexedFile {
|
|
|
363
360
|
}
|
|
364
361
|
}
|
|
365
362
|
}
|
|
366
|
-
return {
|
|
363
|
+
return {
|
|
364
|
+
startCoordinate,
|
|
365
|
+
overlaps: true,
|
|
366
|
+
};
|
|
367
367
|
}
|
|
368
368
|
_getVcfEnd(startCoordinate, refSeq, info) {
|
|
369
369
|
let endCoordinate = startCoordinate + refSeq.length;
|
|
@@ -400,29 +400,23 @@ class TabixIndexedFile {
|
|
|
400
400
|
*
|
|
401
401
|
* @returns number of data lines present on that reference sequence
|
|
402
402
|
*/
|
|
403
|
-
lineCount(
|
|
404
|
-
return
|
|
405
|
-
return this.index.lineCount(refName, opts);
|
|
406
|
-
});
|
|
403
|
+
async lineCount(refName, opts = {}) {
|
|
404
|
+
return this.index.lineCount(refName, opts);
|
|
407
405
|
}
|
|
408
|
-
_readRegion(
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
return buffer.slice(0, bytesRead);
|
|
413
|
-
});
|
|
406
|
+
async _readRegion(pos, size, opts = {}) {
|
|
407
|
+
const b = buffer_1.Buffer.alloc(size);
|
|
408
|
+
const { bytesRead, buffer } = await this.filehandle.read(b, 0, size, pos, opts);
|
|
409
|
+
return buffer.subarray(0, bytesRead);
|
|
414
410
|
}
|
|
415
411
|
/**
|
|
416
412
|
* read and uncompress the data in a chunk (composed of one or more
|
|
417
413
|
* contiguous bgzip blocks) of the file
|
|
418
414
|
*/
|
|
419
|
-
readChunk(
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
return (0, bgzf_filehandle_1.unzipChunkSlice)(data, c);
|
|
425
|
-
});
|
|
415
|
+
async readChunk(c, opts = {}) {
|
|
416
|
+
// fetch the uncompressed data, uncompress carefully a block at a time, and
|
|
417
|
+
// stop when done
|
|
418
|
+
const data = await this._readRegion(c.minv.blockPosition, c.fetchedSize(), opts);
|
|
419
|
+
return (0, bgzf_filehandle_1.unzipChunkSlice)(data, c);
|
|
426
420
|
}
|
|
427
421
|
}
|
|
428
422
|
exports.default = TabixIndexedFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":"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"}
|