@gmod/tabix 3.2.0 → 3.2.2
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 +5 -1
- package/dist/tabix-bundle.js +1 -1
- package/dist/tabixIndexedFile.d.ts +28 -20
- package/dist/tabixIndexedFile.js +120 -122
- package/dist/tabixIndexedFile.js.map +1 -1
- package/dist/tbi.js +0 -1
- package/dist/tbi.js.map +1 -1
- package/dist/util.d.ts +0 -20
- package/dist/util.js +0 -41
- package/dist/util.js.map +1 -1
- package/esm/tabixIndexedFile.d.ts +28 -20
- package/esm/tabixIndexedFile.js +120 -122
- package/esm/tabixIndexedFile.js.map +1 -1
- package/esm/tbi.js +1 -2
- package/esm/tbi.js.map +1 -1
- package/esm/util.d.ts +0 -20
- package/esm/util.js +0 -39
- package/esm/util.js.map +1 -1
- package/package.json +11 -9
- package/src/tabixIndexedFile.ts +175 -136
- package/src/tbi.ts +1 -2
- package/src/util.ts +0 -42
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import LRU from 'quick-lru';
|
|
1
|
+
import LRU from '@jbrowse/quick-lru';
|
|
2
2
|
import Chunk from './chunk.ts';
|
|
3
|
-
import {
|
|
3
|
+
import { Options } from './indexFile.ts';
|
|
4
4
|
import type { GenericFilehandle } from 'generic-filehandle2';
|
|
5
|
-
type GetLinesCallback = (line: string, fileOffset: number) => void;
|
|
5
|
+
type GetLinesCallback = (line: string, fileOffset: number, start: number, end: number) => void;
|
|
6
6
|
interface GetLinesOpts {
|
|
7
7
|
[key: string]: unknown;
|
|
8
8
|
signal?: AbortSignal;
|
|
@@ -12,6 +12,7 @@ export default class TabixIndexedFile {
|
|
|
12
12
|
private filehandle;
|
|
13
13
|
private index;
|
|
14
14
|
private renameRefSeq;
|
|
15
|
+
private hasCustomRenameRefSeq;
|
|
15
16
|
private chunkCache;
|
|
16
17
|
cache: LRU<string, {
|
|
17
18
|
bytesRead: number;
|
|
@@ -44,7 +45,7 @@ export default class TabixIndexedFile {
|
|
|
44
45
|
* indexing and querying. note that the data that is returned is not altered,
|
|
45
46
|
* just the names of the reference sequences that are used for querying.
|
|
46
47
|
*/
|
|
47
|
-
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, renameRefSeqs, chunkCacheSize, }: {
|
|
48
|
+
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, renameRefSeqs: renameRefSeqsPre, chunkCacheSize, }: {
|
|
48
49
|
path?: string;
|
|
49
50
|
filehandle?: GenericFilehandle;
|
|
50
51
|
url?: string;
|
|
@@ -89,12 +90,10 @@ export default class TabixIndexedFile {
|
|
|
89
90
|
* get a buffer containing the "header" region of the file, which are the
|
|
90
91
|
* bytes up to the first non-meta line
|
|
91
92
|
*/
|
|
92
|
-
getHeaderBuffer(opts?: Options): Promise<
|
|
93
|
+
getHeaderBuffer(opts?: Options): Promise<any>;
|
|
93
94
|
/**
|
|
94
95
|
* get a string containing the "header" region of the file, is the portion up
|
|
95
96
|
* to the first non-meta line
|
|
96
|
-
*
|
|
97
|
-
* @returns {Promise} for a string
|
|
98
97
|
*/
|
|
99
98
|
getHeader(opts?: Options): Promise<string>;
|
|
100
99
|
/**
|
|
@@ -103,27 +102,36 @@ export default class TabixIndexedFile {
|
|
|
103
102
|
*/
|
|
104
103
|
getReferenceSequenceNames(opts?: Options): Promise<string[]>;
|
|
105
104
|
/**
|
|
106
|
-
* @param {object} metadata metadata object from the parsed index, containing
|
|
107
|
-
* columnNumbers, metaChar, and format
|
|
108
|
-
*
|
|
109
105
|
* @param {string} regionRefName
|
|
110
106
|
*
|
|
111
107
|
* @param {number} regionStart region start coordinate (0-based-half-open)
|
|
112
108
|
*
|
|
113
109
|
* @param {number} regionEnd region end coordinate (0-based-half-open)
|
|
114
110
|
*
|
|
115
|
-
* @param {
|
|
111
|
+
* @param {string} line
|
|
112
|
+
*
|
|
113
|
+
* @param {number} refColumn column number for ref
|
|
114
|
+
*
|
|
115
|
+
* @param {number} startColumn column number for start
|
|
116
|
+
*
|
|
117
|
+
* @param {number} endColumn column number for end
|
|
118
|
+
*
|
|
119
|
+
* @param {number} maxColumn pre-calculated max column
|
|
120
|
+
*
|
|
121
|
+
* @param {number} metaCharCode pre-calculated metaChar code
|
|
122
|
+
*
|
|
123
|
+
* @param {number} coordinateOffset 0 or -1 for coordinate adjustment
|
|
124
|
+
*
|
|
125
|
+
* @param {boolean} isVCF whether this is VCF format
|
|
126
|
+
*
|
|
127
|
+
* @param {boolean} isIdentityRename whether renameRefSeq is the identity function
|
|
116
128
|
*
|
|
117
|
-
* @returns {
|
|
118
|
-
* true if line is a data line that overlaps the given region
|
|
129
|
+
* @returns {{ start: number, end: number } | null | undefined} coordinates if overlapping, null if should stop processing, undefined otherwise
|
|
119
130
|
*/
|
|
120
|
-
checkLine(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
} |
|
|
124
|
-
startCoordinate: number;
|
|
125
|
-
overlaps: boolean;
|
|
126
|
-
};
|
|
131
|
+
checkLine(regionRefName: string, regionStart: number, regionEnd: number, line: string, refColumn: number, startColumn: number, endColumn: number, maxColumn: number, metaCharCode: number | undefined, coordinateOffset: number, isVCF: boolean, isIdentityRename: boolean): {
|
|
132
|
+
start: number;
|
|
133
|
+
end: number;
|
|
134
|
+
} | null | undefined;
|
|
127
135
|
_getVcfEnd(startCoordinate: number, refSeq: string, info: any): number;
|
|
128
136
|
/**
|
|
129
137
|
* return the approximate number of data lines in the given reference
|
package/esm/tabixIndexedFile.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import AbortablePromiseCache from '@gmod/abortable-promise-cache';
|
|
2
2
|
import { unzip, unzipChunkSlice } from '@gmod/bgzf-filehandle';
|
|
3
|
+
import LRU from '@jbrowse/quick-lru';
|
|
3
4
|
import { LocalFile, RemoteFile } from 'generic-filehandle2';
|
|
4
|
-
import LRU from 'quick-lru';
|
|
5
5
|
import CSI from "./csi.js";
|
|
6
6
|
import TBI from "./tbi.js";
|
|
7
|
-
import { checkAbortSignal } from "./util.js";
|
|
8
7
|
export default class TabixIndexedFile {
|
|
9
8
|
/**
|
|
10
9
|
* @param {object} args
|
|
@@ -32,10 +31,11 @@ export default class TabixIndexedFile {
|
|
|
32
31
|
* indexing and querying. note that the data that is returned is not altered,
|
|
33
32
|
* just the names of the reference sequences that are used for querying.
|
|
34
33
|
*/
|
|
35
|
-
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, renameRefSeqs
|
|
34
|
+
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, renameRefSeqs: renameRefSeqsPre, chunkCacheSize = 5 * 2 ** 20, }) {
|
|
36
35
|
this.cache = new LRU({
|
|
37
36
|
maxSize: 1000,
|
|
38
37
|
});
|
|
38
|
+
const renameRefSeqs = renameRefSeqsPre ?? (arg => arg);
|
|
39
39
|
if (filehandle) {
|
|
40
40
|
this.filehandle = filehandle;
|
|
41
41
|
}
|
|
@@ -97,6 +97,7 @@ export default class TabixIndexedFile {
|
|
|
97
97
|
throw new TypeError('must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl');
|
|
98
98
|
}
|
|
99
99
|
this.renameRefSeq = renameRefSeqs;
|
|
100
|
+
this.hasCustomRenameRefSeq = renameRefSeqsPre !== undefined;
|
|
100
101
|
this.chunkCache = new AbortablePromiseCache({
|
|
101
102
|
cache: new LRU({ maxSize: Math.floor(chunkCacheSize / (1 << 16)) }),
|
|
102
103
|
fill: (args, signal) => this.readChunk(args, { signal }),
|
|
@@ -134,7 +135,6 @@ export default class TabixIndexedFile {
|
|
|
134
135
|
signal = opts.signal;
|
|
135
136
|
}
|
|
136
137
|
const metadata = await this.index.getMetadata(options);
|
|
137
|
-
checkAbortSignal(signal);
|
|
138
138
|
const start = s ?? 0;
|
|
139
139
|
const end = e ?? metadata.maxRefLength;
|
|
140
140
|
if (!(start <= end)) {
|
|
@@ -144,12 +144,20 @@ export default class TabixIndexedFile {
|
|
|
144
144
|
return;
|
|
145
145
|
}
|
|
146
146
|
const chunks = await this.index.blocksForRange(refName, start, end, options);
|
|
147
|
-
checkAbortSignal(signal);
|
|
148
147
|
const decoder = new TextDecoder('utf8');
|
|
148
|
+
const isVCF = metadata.format === 'VCF';
|
|
149
|
+
const columnNumbersEffective = {
|
|
150
|
+
ref: metadata.columnNumbers.ref || 0,
|
|
151
|
+
start: metadata.columnNumbers.start || 0,
|
|
152
|
+
end: isVCF ? 8 : metadata.columnNumbers.end || 0,
|
|
153
|
+
};
|
|
154
|
+
const maxColumn = Math.max(columnNumbersEffective.ref, columnNumbersEffective.start, columnNumbersEffective.end);
|
|
155
|
+
const metaCharCode = metadata.metaChar?.charCodeAt(0);
|
|
156
|
+
const coordinateOffset = metadata.coordinateType === '1-based-closed' ? -1 : 0;
|
|
157
|
+
const isIdentityRename = !this.hasCustomRenameRefSeq;
|
|
149
158
|
// now go through each chunk and parse and filter the lines out of it
|
|
150
159
|
for (const c of chunks) {
|
|
151
160
|
const { buffer, cpositions, dpositions } = await this.chunkCache.get(c.toString(), c, signal);
|
|
152
|
-
checkAbortSignal(signal);
|
|
153
161
|
let blockStart = 0;
|
|
154
162
|
let pos = 0;
|
|
155
163
|
// fast path, Buffer is just ASCII chars and not gigantor, can be
|
|
@@ -177,16 +185,13 @@ export default class TabixIndexedFile {
|
|
|
177
185
|
}
|
|
178
186
|
}
|
|
179
187
|
// filter the line for whether it is within the requested range
|
|
180
|
-
const
|
|
181
|
-
if (
|
|
182
|
-
callback(line, this.calculateFileOffset(cpositions, dpositions, pos, blockStart, c.minv.dataPosition));
|
|
183
|
-
}
|
|
184
|
-
else if (startCoordinate !== undefined && startCoordinate >= end) {
|
|
185
|
-
// the lines were overlapping the region, but now have stopped, so we
|
|
186
|
-
// must be at the end of the relevant data and we can stop processing
|
|
187
|
-
// data now
|
|
188
|
+
const result = this.checkLine(refName, start, end, line, columnNumbersEffective.ref, columnNumbersEffective.start, columnNumbersEffective.end, maxColumn, metaCharCode, coordinateOffset, isVCF, isIdentityRename);
|
|
189
|
+
if (result === null) {
|
|
188
190
|
return;
|
|
189
191
|
}
|
|
192
|
+
else if (result !== undefined) {
|
|
193
|
+
callback(line, this.calculateFileOffset(cpositions, dpositions, pos, blockStart, c.minv.dataPosition), result.start, result.end);
|
|
194
|
+
}
|
|
190
195
|
blockStart = n + 1;
|
|
191
196
|
}
|
|
192
197
|
}
|
|
@@ -206,16 +211,13 @@ export default class TabixIndexedFile {
|
|
|
206
211
|
}
|
|
207
212
|
}
|
|
208
213
|
// filter the line for whether it is within the requested range
|
|
209
|
-
const
|
|
210
|
-
if (
|
|
211
|
-
callback(line, this.calculateFileOffset(cpositions, dpositions, pos, blockStart, c.minv.dataPosition));
|
|
212
|
-
}
|
|
213
|
-
else if (startCoordinate !== undefined && startCoordinate >= end) {
|
|
214
|
-
// the lines were overlapping the region, but now have stopped, so we
|
|
215
|
-
// must be at the end of the relevant data and we can stop processing
|
|
216
|
-
// data now
|
|
214
|
+
const result = this.checkLine(refName, start, end, line, columnNumbersEffective.ref, columnNumbersEffective.start, columnNumbersEffective.end, maxColumn, metaCharCode, coordinateOffset, isVCF, isIdentityRename);
|
|
215
|
+
if (result === null) {
|
|
217
216
|
return;
|
|
218
217
|
}
|
|
218
|
+
else if (result !== undefined) {
|
|
219
|
+
callback(line, this.calculateFileOffset(cpositions, dpositions, pos, blockStart, c.minv.dataPosition), result.start, result.end);
|
|
220
|
+
}
|
|
219
221
|
blockStart = n + 1;
|
|
220
222
|
}
|
|
221
223
|
}
|
|
@@ -230,7 +232,6 @@ export default class TabixIndexedFile {
|
|
|
230
232
|
*/
|
|
231
233
|
async getHeaderBuffer(opts = {}) {
|
|
232
234
|
const { firstDataLine, metaChar, maxBlockSize } = await this.getMetadata(opts);
|
|
233
|
-
checkAbortSignal(opts.signal);
|
|
234
235
|
const maxFetch = (firstDataLine?.blockPosition || 0) + maxBlockSize;
|
|
235
236
|
// TODO: what if we don't have a firstDataLine, and the header actually
|
|
236
237
|
// takes up more than one block? this case is not covered here
|
|
@@ -258,8 +259,6 @@ export default class TabixIndexedFile {
|
|
|
258
259
|
/**
|
|
259
260
|
* get a string containing the "header" region of the file, is the portion up
|
|
260
261
|
* to the first non-meta line
|
|
261
|
-
*
|
|
262
|
-
* @returns {Promise} for a string
|
|
263
262
|
*/
|
|
264
263
|
async getHeader(opts = {}) {
|
|
265
264
|
const decoder = new TextDecoder('utf8');
|
|
@@ -275,123 +274,122 @@ export default class TabixIndexedFile {
|
|
|
275
274
|
return metadata.refIdToName;
|
|
276
275
|
}
|
|
277
276
|
/**
|
|
278
|
-
* @param {object} metadata metadata object from the parsed index, containing
|
|
279
|
-
* columnNumbers, metaChar, and format
|
|
280
|
-
*
|
|
281
277
|
* @param {string} regionRefName
|
|
282
278
|
*
|
|
283
279
|
* @param {number} regionStart region start coordinate (0-based-half-open)
|
|
284
280
|
*
|
|
285
281
|
* @param {number} regionEnd region end coordinate (0-based-half-open)
|
|
286
282
|
*
|
|
287
|
-
* @param {
|
|
283
|
+
* @param {string} line
|
|
284
|
+
*
|
|
285
|
+
* @param {number} refColumn column number for ref
|
|
286
|
+
*
|
|
287
|
+
* @param {number} startColumn column number for start
|
|
288
|
+
*
|
|
289
|
+
* @param {number} endColumn column number for end
|
|
290
|
+
*
|
|
291
|
+
* @param {number} maxColumn pre-calculated max column
|
|
292
|
+
*
|
|
293
|
+
* @param {number} metaCharCode pre-calculated metaChar code
|
|
288
294
|
*
|
|
289
|
-
* @
|
|
290
|
-
*
|
|
295
|
+
* @param {number} coordinateOffset 0 or -1 for coordinate adjustment
|
|
296
|
+
*
|
|
297
|
+
* @param {boolean} isVCF whether this is VCF format
|
|
298
|
+
*
|
|
299
|
+
* @param {boolean} isIdentityRename whether renameRefSeq is the identity function
|
|
300
|
+
*
|
|
301
|
+
* @returns {{ start: number, end: number } | null | undefined} coordinates if overlapping, null if should stop processing, undefined otherwise
|
|
291
302
|
*/
|
|
292
|
-
checkLine(
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
303
|
+
checkLine(regionRefName, regionStart, regionEnd, line, refColumn, startColumn, endColumn, maxColumn, metaCharCode, coordinateOffset, isVCF, isIdentityRename) {
|
|
304
|
+
if (metaCharCode !== undefined && line.charCodeAt(0) === metaCharCode) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
// Length-based fast path: split for short lines, indexOf for long lines
|
|
308
|
+
// Split is faster for short lines, but slow for long lines with big attribute columns
|
|
309
|
+
if (line.length < 500) {
|
|
310
|
+
const fields = line.split('\t');
|
|
311
|
+
const ref = fields[refColumn - 1];
|
|
312
|
+
const refMatch = isIdentityRename
|
|
313
|
+
? ref === regionRefName
|
|
314
|
+
: this.renameRefSeq(ref) === regionRefName;
|
|
315
|
+
if (!refMatch) {
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
const startCoordinate = +fields[startColumn - 1] + coordinateOffset;
|
|
319
|
+
if (startCoordinate >= regionEnd) {
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
let endCoordinate;
|
|
323
|
+
if (endColumn === 0 || endColumn === startColumn) {
|
|
324
|
+
endCoordinate = startCoordinate + 1;
|
|
325
|
+
}
|
|
326
|
+
else if (isVCF) {
|
|
327
|
+
endCoordinate = this._getVcfEnd(startCoordinate, fields[3], fields[endColumn - 1]);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
endCoordinate = +fields[endColumn - 1];
|
|
331
|
+
}
|
|
332
|
+
if (endCoordinate <= regionStart) {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
return { start: startCoordinate, end: endCoordinate };
|
|
297
336
|
}
|
|
298
|
-
//
|
|
299
|
-
let
|
|
300
|
-
|
|
301
|
-
|
|
337
|
+
// Long lines - use indexOf chain (avoids parsing long attribute column)
|
|
338
|
+
let prev = -1;
|
|
339
|
+
const tabs = [-1];
|
|
340
|
+
for (let i = 0; i < maxColumn; i++) {
|
|
341
|
+
const pos = line.indexOf('\t', prev + 1);
|
|
342
|
+
if (pos === -1) {
|
|
343
|
+
tabs.push(line.length);
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
tabs.push(pos);
|
|
347
|
+
prev = pos;
|
|
302
348
|
}
|
|
303
|
-
|
|
304
|
-
|
|
349
|
+
const ref = line.slice(tabs[refColumn - 1] + 1, tabs[refColumn]);
|
|
350
|
+
const refMatch = isIdentityRename
|
|
351
|
+
? ref === regionRefName
|
|
352
|
+
: this.renameRefSeq(ref) === regionRefName;
|
|
353
|
+
if (!refMatch) {
|
|
354
|
+
return;
|
|
305
355
|
}
|
|
306
|
-
|
|
307
|
-
|
|
356
|
+
const startCoordinate = +line.slice(tabs[startColumn - 1] + 1, tabs[startColumn]) +
|
|
357
|
+
coordinateOffset;
|
|
358
|
+
if (startCoordinate >= regionEnd) {
|
|
359
|
+
return null;
|
|
308
360
|
}
|
|
309
|
-
|
|
310
|
-
|
|
361
|
+
let endCoordinate;
|
|
362
|
+
if (endColumn === 0 || endColumn === startColumn) {
|
|
363
|
+
endCoordinate = startCoordinate + 1;
|
|
311
364
|
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
// to avoid doing a split, because if the lines are really long that could
|
|
315
|
-
// lead to us allocating a bunch of extra memory, which is slow
|
|
316
|
-
let currentColumnNumber = 1; // cols are numbered starting at 1 in the index metadata
|
|
317
|
-
let currentColumnStart = 0;
|
|
318
|
-
let refSeq = '';
|
|
319
|
-
let startCoordinate = -Infinity;
|
|
320
|
-
const l = line.length;
|
|
321
|
-
for (let i = 0; i < l + 1; i++) {
|
|
322
|
-
if (line[i] === '\t' || i === l) {
|
|
323
|
-
if (currentColumnNumber === ref) {
|
|
324
|
-
if (this.renameRefSeq(line.slice(currentColumnStart, i)) !==
|
|
325
|
-
regionRefName) {
|
|
326
|
-
return {
|
|
327
|
-
overlaps: false,
|
|
328
|
-
};
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
else if (currentColumnNumber === start) {
|
|
332
|
-
startCoordinate = Number.parseInt(line.slice(currentColumnStart, i), 10);
|
|
333
|
-
// we convert to 0-based-half-open
|
|
334
|
-
if (coordinateType === '1-based-closed') {
|
|
335
|
-
startCoordinate -= 1;
|
|
336
|
-
}
|
|
337
|
-
if (startCoordinate >= regionEnd) {
|
|
338
|
-
return {
|
|
339
|
-
startCoordinate,
|
|
340
|
-
overlaps: false,
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
if ((end === 0 || end === start) && // if we have no end, we assume the feature is 1 bp long
|
|
344
|
-
startCoordinate + 1 <= regionStart) {
|
|
345
|
-
return {
|
|
346
|
-
startCoordinate,
|
|
347
|
-
overlaps: false,
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
else if (format === 'VCF' && currentColumnNumber === 4) {
|
|
352
|
-
refSeq = line.slice(currentColumnStart, i);
|
|
353
|
-
}
|
|
354
|
-
else if (currentColumnNumber === end) {
|
|
355
|
-
// this will never match if there is no end column
|
|
356
|
-
const endCoordinate = format === 'VCF'
|
|
357
|
-
? this._getVcfEnd(startCoordinate, refSeq, line.slice(currentColumnStart, i))
|
|
358
|
-
: Number.parseInt(line.slice(currentColumnStart, i), 10);
|
|
359
|
-
if (endCoordinate <= regionStart) {
|
|
360
|
-
return {
|
|
361
|
-
overlaps: false,
|
|
362
|
-
};
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
if (currentColumnNumber === maxColumn) {
|
|
366
|
-
break;
|
|
367
|
-
}
|
|
368
|
-
currentColumnStart = i + 1;
|
|
369
|
-
currentColumnNumber += 1;
|
|
370
|
-
}
|
|
365
|
+
else if (isVCF) {
|
|
366
|
+
endCoordinate = this._getVcfEnd(startCoordinate, line.slice(tabs[3] + 1, tabs[4]), line.slice(tabs[endColumn - 1] + 1, tabs[endColumn]));
|
|
371
367
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
368
|
+
else {
|
|
369
|
+
endCoordinate = +line.slice(tabs[endColumn - 1] + 1, tabs[endColumn]);
|
|
370
|
+
}
|
|
371
|
+
if (endCoordinate <= regionStart) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
return { start: startCoordinate, end: endCoordinate };
|
|
376
375
|
}
|
|
377
376
|
_getVcfEnd(startCoordinate, refSeq, info) {
|
|
378
377
|
let endCoordinate = startCoordinate + refSeq.length;
|
|
379
|
-
// ignore TRA features as they specify CHR2 and END as being on a different
|
|
380
|
-
// chromosome
|
|
381
|
-
//
|
|
382
|
-
// if CHR2 is on the same chromosome, still ignore it because there should
|
|
383
|
-
// be another pairwise feature at the end of this one
|
|
384
378
|
const isTRA = info.includes('SVTYPE=TRA');
|
|
385
|
-
if (
|
|
386
|
-
const endRegex = /(?:^|;)END=([^;]+)/;
|
|
387
|
-
const match = endRegex.exec(info);
|
|
388
|
-
if (match) {
|
|
389
|
-
endCoordinate = Number.parseInt(match[1], 10);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
else if (isTRA) {
|
|
379
|
+
if (isTRA) {
|
|
393
380
|
return startCoordinate + 1;
|
|
394
381
|
}
|
|
382
|
+
if (info[0] !== '.') {
|
|
383
|
+
const endIdx = info.indexOf('END=');
|
|
384
|
+
if (endIdx !== -1 && (endIdx === 0 || info[endIdx - 1] === ';')) {
|
|
385
|
+
const start = endIdx + 4;
|
|
386
|
+
let end = info.indexOf(';', start);
|
|
387
|
+
if (end === -1) {
|
|
388
|
+
end = info.length;
|
|
389
|
+
}
|
|
390
|
+
endCoordinate = Number.parseInt(info.slice(start, end), 10);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
395
393
|
return endCoordinate;
|
|
396
394
|
}
|
|
397
395
|
/**
|
|
@@ -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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"}
|
package/esm/tbi.js
CHANGED
|
@@ -2,7 +2,7 @@ import { unzip } from '@gmod/bgzf-filehandle';
|
|
|
2
2
|
import Chunk from "./chunk.js";
|
|
3
3
|
import IndexFile from "./indexFile.js";
|
|
4
4
|
import { longFromBytesToUnsigned } from "./long.js";
|
|
5
|
-
import {
|
|
5
|
+
import { optimizeChunks } from "./util.js";
|
|
6
6
|
import VirtualOffset, { fromBytes } from "./virtualOffset.js";
|
|
7
7
|
const TBI_MAGIC = 21578324; // TBI\1
|
|
8
8
|
const TAD_LIDX_SHIFT = 14;
|
|
@@ -39,7 +39,6 @@ export default class TabixIndex extends IndexFile {
|
|
|
39
39
|
async _parse(opts = {}) {
|
|
40
40
|
const buf = await this.filehandle.readFile(opts);
|
|
41
41
|
const bytes = await unzip(buf);
|
|
42
|
-
checkAbortSignal(opts.signal);
|
|
43
42
|
const dataView = new DataView(bytes.buffer);
|
|
44
43
|
const magic = dataView.getUint32(0, true);
|
|
45
44
|
if (magic !== TBI_MAGIC /* "TBI\1" */) {
|
package/esm/tbi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tbi.js","sourceRoot":"","sources":["../src/tbi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE7C,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,SAAsB,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tbi.js","sourceRoot":"","sources":["../src/tbi.ts"],"names":[],"mappings":"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"}
|
package/esm/util.d.ts
CHANGED
|
@@ -1,24 +1,4 @@
|
|
|
1
1
|
import Chunk from './chunk.ts';
|
|
2
2
|
import VirtualOffset from './virtualOffset.ts';
|
|
3
|
-
/**
|
|
4
|
-
* Properly check if the given AbortSignal is aborted. Per the standard, if the
|
|
5
|
-
* signal reads as aborted, this function throws either a DOMException
|
|
6
|
-
* AbortError, or a regular error with a `code` attribute set to `ERR_ABORTED`.
|
|
7
|
-
*
|
|
8
|
-
* For convenience, passing `undefined` is a no-op
|
|
9
|
-
*
|
|
10
|
-
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted`
|
|
11
|
-
* attribute
|
|
12
|
-
*
|
|
13
|
-
* @returns nothing
|
|
14
|
-
*/
|
|
15
|
-
export declare function checkAbortSignal(signal?: AbortSignal): void;
|
|
16
|
-
/**
|
|
17
|
-
* Skips to the next tick, then runs `checkAbortSignal`.
|
|
18
|
-
* Await this to inside an otherwise synchronous loop to
|
|
19
|
-
* provide a place to break when an abort signal is received.
|
|
20
|
-
* @param {AbortSignal} signal
|
|
21
|
-
*/
|
|
22
|
-
export declare function abortBreakPoint(signal?: AbortSignal): Promise<void>;
|
|
23
3
|
export declare function canMergeBlocks(chunk1: Chunk, chunk2: Chunk): boolean;
|
|
24
4
|
export declare function optimizeChunks(chunks: Chunk[], lowest?: VirtualOffset): Chunk[];
|
package/esm/util.js
CHANGED
|
@@ -1,42 +1,3 @@
|
|
|
1
|
-
class AbortError extends Error {
|
|
2
|
-
}
|
|
3
|
-
/**
|
|
4
|
-
* Properly check if the given AbortSignal is aborted. Per the standard, if the
|
|
5
|
-
* signal reads as aborted, this function throws either a DOMException
|
|
6
|
-
* AbortError, or a regular error with a `code` attribute set to `ERR_ABORTED`.
|
|
7
|
-
*
|
|
8
|
-
* For convenience, passing `undefined` is a no-op
|
|
9
|
-
*
|
|
10
|
-
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted`
|
|
11
|
-
* attribute
|
|
12
|
-
*
|
|
13
|
-
* @returns nothing
|
|
14
|
-
*/
|
|
15
|
-
export function checkAbortSignal(signal) {
|
|
16
|
-
if (!signal) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
if (signal.aborted) {
|
|
20
|
-
if (typeof DOMException === 'undefined') {
|
|
21
|
-
const e = new AbortError('aborted');
|
|
22
|
-
e.code = 'ERR_ABORTED';
|
|
23
|
-
throw e;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
throw new DOMException('aborted', 'AbortError');
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Skips to the next tick, then runs `checkAbortSignal`.
|
|
32
|
-
* Await this to inside an otherwise synchronous loop to
|
|
33
|
-
* provide a place to break when an abort signal is received.
|
|
34
|
-
* @param {AbortSignal} signal
|
|
35
|
-
*/
|
|
36
|
-
export async function abortBreakPoint(signal) {
|
|
37
|
-
await Promise.resolve();
|
|
38
|
-
checkAbortSignal(signal);
|
|
39
|
-
}
|
|
40
1
|
export function canMergeBlocks(chunk1, chunk2) {
|
|
41
2
|
return (chunk2.minv.blockPosition - chunk1.maxv.blockPosition < 65000 &&
|
|
42
3
|
chunk2.maxv.blockPosition - chunk1.minv.blockPosition < 5000000);
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,MAAM,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAAC,MAAa,EAAE,MAAa;IACzD,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK;QAC7D,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAChE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAe,EAAE,MAAsB;IACpE,MAAM,YAAY,GAAY,EAAE,CAAA;IAChC,IAAI,SAA4B,CAAA;IAEhC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAA;QACzD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACxB,SAAS,GAAG,KAAK,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;oBACrC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7C,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;oBAC7B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACxB,SAAS,GAAG,KAAK,CAAA;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC"}
|