@gmod/bam 6.1.0 → 7.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 +5 -1
- package/dist/bamFile.d.ts +5 -6
- package/dist/bamFile.js +38 -74
- package/dist/bamFile.js.map +1 -1
- package/dist/package.json +1 -0
- package/dist/record.d.ts +4 -2
- package/dist/record.js +156 -179
- package/dist/record.js.map +1 -1
- package/dist/util.d.ts +0 -22
- package/dist/util.js +9 -56
- package/dist/util.js.map +1 -1
- package/esm/bamFile.d.ts +5 -6
- package/esm/bamFile.js +39 -75
- package/esm/bamFile.js.map +1 -1
- package/esm/record.d.ts +4 -2
- package/esm/record.js +157 -181
- package/esm/record.js.map +1 -1
- package/esm/util.d.ts +0 -22
- package/esm/util.js +9 -52
- package/esm/util.js.map +1 -1
- package/package.json +11 -10
- package/src/bamFile.ts +71 -89
- package/src/record.ts +177 -159
- package/src/util.ts +9 -55
package/dist/util.js
CHANGED
|
@@ -1,60 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.timeout = timeout;
|
|
4
|
-
exports.checkAbortSignal = checkAbortSignal;
|
|
5
|
-
exports.abortBreakPoint = abortBreakPoint;
|
|
6
3
|
exports.canMergeBlocks = canMergeBlocks;
|
|
7
4
|
exports.makeOpts = makeOpts;
|
|
8
5
|
exports.optimizeChunks = optimizeChunks;
|
|
9
6
|
exports.parsePseudoBin = parsePseudoBin;
|
|
10
7
|
exports.findFirstData = findFirstData;
|
|
11
8
|
exports.parseNameBytes = parseNameBytes;
|
|
12
|
-
exports.sum = sum;
|
|
13
9
|
exports.concatUint8Array = concatUint8Array;
|
|
14
10
|
exports.gen2array = gen2array;
|
|
15
11
|
const long_ts_1 = require("./long.js");
|
|
16
|
-
function timeout(ms) {
|
|
17
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Properly check if the given AbortSignal is aborted.
|
|
21
|
-
*
|
|
22
|
-
* Per the standard, if the signal reads as aborted, this function throws
|
|
23
|
-
* either a DOMException AbortError, or a regular error with a `code` attribute
|
|
24
|
-
* set to `ERR_ABORTED`.
|
|
25
|
-
*
|
|
26
|
-
* For convenience, passing `undefined` is a no-op
|
|
27
|
-
*
|
|
28
|
-
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted` attribute
|
|
29
|
-
* @returns nothing
|
|
30
|
-
*/
|
|
31
|
-
function checkAbortSignal(signal) {
|
|
32
|
-
if (!signal) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (signal.aborted) {
|
|
36
|
-
// console.log('bam aborted!')
|
|
37
|
-
if (typeof DOMException === 'undefined') {
|
|
38
|
-
const e = new Error('aborted');
|
|
39
|
-
// @ts-ignore
|
|
40
|
-
e.code = 'ERR_ABORTED';
|
|
41
|
-
throw e;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
throw new DOMException('aborted', 'AbortError');
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Skips to the next tick, then runs `checkAbortSignal`.
|
|
50
|
-
* Await this to inside an otherwise synchronous loop to
|
|
51
|
-
* provide a place to break when an abort signal is received.
|
|
52
|
-
* @param {AbortSignal} signal
|
|
53
|
-
*/
|
|
54
|
-
async function abortBreakPoint(signal) {
|
|
55
|
-
await Promise.resolve();
|
|
56
|
-
checkAbortSignal(signal);
|
|
57
|
-
}
|
|
58
12
|
function canMergeBlocks(chunk1, chunk2) {
|
|
59
13
|
return (chunk2.minv.blockPosition - chunk1.maxv.blockPosition < 65000 &&
|
|
60
14
|
chunk2.maxv.blockPosition - chunk1.minv.blockPosition < 5000000);
|
|
@@ -127,15 +81,12 @@ function parseNameBytes(namesBytes, renameRefSeq = s => s) {
|
|
|
127
81
|
}
|
|
128
82
|
return { refNameToId, refIdToName };
|
|
129
83
|
}
|
|
130
|
-
function sum(array) {
|
|
131
|
-
let sum = 0;
|
|
132
|
-
for (const entry of array) {
|
|
133
|
-
sum += entry.length;
|
|
134
|
-
}
|
|
135
|
-
return sum;
|
|
136
|
-
}
|
|
137
84
|
function concatUint8Array(args) {
|
|
138
|
-
|
|
85
|
+
let totalLength = 0;
|
|
86
|
+
for (const entry of args) {
|
|
87
|
+
totalLength += entry.length;
|
|
88
|
+
}
|
|
89
|
+
const mergedArray = new Uint8Array(totalLength);
|
|
139
90
|
let offset = 0;
|
|
140
91
|
for (const entry of args) {
|
|
141
92
|
mergedArray.set(entry, offset);
|
|
@@ -144,9 +95,11 @@ function concatUint8Array(args) {
|
|
|
144
95
|
return mergedArray;
|
|
145
96
|
}
|
|
146
97
|
async function gen2array(gen) {
|
|
147
|
-
|
|
98
|
+
const out = [];
|
|
148
99
|
for await (const x of gen) {
|
|
149
|
-
|
|
100
|
+
for (const item of x) {
|
|
101
|
+
out.push(item);
|
|
102
|
+
}
|
|
150
103
|
}
|
|
151
104
|
return out;
|
|
152
105
|
}
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/esm/bamFile.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ export default class BamFile {
|
|
|
15
15
|
refName: string;
|
|
16
16
|
length: number;
|
|
17
17
|
}[];
|
|
18
|
-
yieldThreadTime: number;
|
|
19
18
|
index?: BAI | CSI;
|
|
20
19
|
htsget: boolean;
|
|
21
20
|
headerP?: ReturnType<BamFile['getHeaderPre']>;
|
|
@@ -23,7 +22,7 @@ export default class BamFile {
|
|
|
23
22
|
buffer: Uint8Array;
|
|
24
23
|
nextIn: number;
|
|
25
24
|
}>;
|
|
26
|
-
constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget,
|
|
25
|
+
constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, renameRefSeqs, }: {
|
|
27
26
|
bamFilehandle?: GenericFilehandle;
|
|
28
27
|
bamPath?: string;
|
|
29
28
|
bamUrl?: string;
|
|
@@ -34,7 +33,6 @@ export default class BamFile {
|
|
|
34
33
|
csiFilehandle?: GenericFilehandle;
|
|
35
34
|
csiUrl?: string;
|
|
36
35
|
renameRefSeqs?: (a: string) => string;
|
|
37
|
-
yieldThreadTime?: number;
|
|
38
36
|
htsget?: boolean;
|
|
39
37
|
});
|
|
40
38
|
getHeaderPre(origOpts?: BaseOpts): Promise<{
|
|
@@ -52,13 +50,13 @@ export default class BamFile {
|
|
|
52
50
|
}[];
|
|
53
51
|
}[] | undefined>;
|
|
54
52
|
getHeaderText(opts?: BaseOpts): Promise<string | undefined>;
|
|
55
|
-
|
|
53
|
+
_parseRefSeqs(uncba: Uint8Array, start: number): {
|
|
56
54
|
chrToIndex: Record<string, number>;
|
|
57
55
|
indexToChr: {
|
|
58
56
|
refName: string;
|
|
59
57
|
length: number;
|
|
60
58
|
}[];
|
|
61
|
-
}
|
|
59
|
+
};
|
|
62
60
|
getRecordsForRange(chr: string, min: number, max: number, opts?: BamOpts): Promise<BAMFeature[]>;
|
|
63
61
|
streamRecordsForRange(chr: string, min: number, max: number, opts?: BamOpts): AsyncGenerator<BAMFeature[], void, unknown>;
|
|
64
62
|
_fetchChunkFeatures(chunks: Chunk[], chrId: number, min: number, max: number, opts?: BamOpts): AsyncGenerator<BAMFeature[], void, unknown>;
|
|
@@ -72,7 +70,8 @@ export default class BamFile {
|
|
|
72
70
|
dpositions: number[];
|
|
73
71
|
chunk: Chunk;
|
|
74
72
|
}>;
|
|
75
|
-
readBamFeatures(ba: Uint8Array, cpositions: number[], dpositions: number[], chunk: Chunk): Promise<BAMFeature[]>;
|
|
73
|
+
readBamFeatures(ba: Uint8Array, cpositions: number[], dpositions: number[], chunk: Chunk, chrId?: number, min?: number, max?: number): Promise<BAMFeature[]>;
|
|
74
|
+
_shouldIncludeFeature(dataView: DataView, blockStart: number, chrId: number, max: number): boolean;
|
|
76
75
|
hasRefSeq(seqName: string): Promise<boolean | undefined>;
|
|
77
76
|
lineCount(seqName: string): Promise<number>;
|
|
78
77
|
indexCov(seqName: string, start?: number, end?: number): Promise<import("./bai.ts").IndexCovEntry[]>;
|
package/esm/bamFile.js
CHANGED
|
@@ -7,11 +7,11 @@ import CSI from "./csi.js";
|
|
|
7
7
|
import NullFilehandle from "./nullFilehandle.js";
|
|
8
8
|
import BAMFeature from "./record.js";
|
|
9
9
|
import { parseHeaderText } from "./sam.js";
|
|
10
|
-
import {
|
|
10
|
+
import { gen2array, makeOpts } from "./util.js";
|
|
11
11
|
export const BAM_MAGIC = 21840194;
|
|
12
12
|
const blockLen = 1 << 16;
|
|
13
13
|
export default class BamFile {
|
|
14
|
-
constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget,
|
|
14
|
+
constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, renameRefSeqs = n => n, }) {
|
|
15
15
|
this.htsget = false;
|
|
16
16
|
this.cache = new QuickLRU({
|
|
17
17
|
maxSize: 1000,
|
|
@@ -63,25 +63,18 @@ export default class BamFile {
|
|
|
63
63
|
else {
|
|
64
64
|
throw new Error('unable to infer index format');
|
|
65
65
|
}
|
|
66
|
-
this.yieldThreadTime = yieldThreadTime;
|
|
67
66
|
}
|
|
68
67
|
async getHeaderPre(origOpts) {
|
|
69
68
|
const opts = makeOpts(origOpts);
|
|
70
69
|
if (!this.index) {
|
|
71
|
-
return;
|
|
70
|
+
return undefined;
|
|
72
71
|
}
|
|
73
72
|
const indexData = await this.index.parse(opts);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const s = ret + blockLen;
|
|
80
|
-
buffer = await this.bam.read(s, 0);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
buffer = await this.bam.readFile(opts);
|
|
84
|
-
}
|
|
73
|
+
// firstDataLine is not defined in cases where there is no data in the file
|
|
74
|
+
// (just bam header and nothing else)
|
|
75
|
+
const buffer = indexData.firstDataLine === undefined
|
|
76
|
+
? await this.bam.readFile()
|
|
77
|
+
: await this.bam.read(indexData.firstDataLine.blockPosition + blockLen, 0);
|
|
85
78
|
const uncba = await unzip(buffer);
|
|
86
79
|
const dataView = new DataView(uncba.buffer);
|
|
87
80
|
if (dataView.getInt32(0, true) !== BAM_MAGIC) {
|
|
@@ -90,7 +83,7 @@ export default class BamFile {
|
|
|
90
83
|
const headLen = dataView.getInt32(4, true);
|
|
91
84
|
const decoder = new TextDecoder('utf8');
|
|
92
85
|
this.header = decoder.decode(uncba.subarray(8, 8 + headLen));
|
|
93
|
-
const { chrToIndex, indexToChr } =
|
|
86
|
+
const { chrToIndex, indexToChr } = this._parseRefSeqs(uncba, headLen + 8);
|
|
94
87
|
this.chrToIndex = chrToIndex;
|
|
95
88
|
this.indexToChr = indexToChr;
|
|
96
89
|
return parseHeaderText(this.header);
|
|
@@ -108,15 +101,7 @@ export default class BamFile {
|
|
|
108
101
|
await this.getHeader(opts);
|
|
109
102
|
return this.header;
|
|
110
103
|
}
|
|
111
|
-
|
|
112
|
-
// a chunk and doubles it if all refseqs haven't been processed
|
|
113
|
-
async _readRefSeqs(start, refSeqBytes, opts) {
|
|
114
|
-
if (start > refSeqBytes) {
|
|
115
|
-
return this._readRefSeqs(start, refSeqBytes * 2, opts);
|
|
116
|
-
}
|
|
117
|
-
// const size = refSeqBytes + blockLen <-- use this?
|
|
118
|
-
const buffer = await this.bam.read(refSeqBytes, 0, opts);
|
|
119
|
-
const uncba = await unzip(buffer);
|
|
104
|
+
_parseRefSeqs(uncba, start) {
|
|
120
105
|
const dataView = new DataView(uncba.buffer);
|
|
121
106
|
const nRef = dataView.getInt32(start, true);
|
|
122
107
|
let p = start + 4;
|
|
@@ -124,16 +109,15 @@ export default class BamFile {
|
|
|
124
109
|
const indexToChr = [];
|
|
125
110
|
const decoder = new TextDecoder('utf8');
|
|
126
111
|
for (let i = 0; i < nRef; i += 1) {
|
|
112
|
+
if (p + 8 > uncba.length) {
|
|
113
|
+
throw new Error(`Insufficient data for reference sequences: need more than ${uncba.length} bytes`);
|
|
114
|
+
}
|
|
127
115
|
const lName = dataView.getInt32(p, true);
|
|
128
116
|
const refName = this.renameRefSeq(decoder.decode(uncba.subarray(p + 4, p + 4 + lName - 1)));
|
|
129
117
|
const lRef = dataView.getInt32(p + lName + 4, true);
|
|
130
118
|
chrToIndex[refName] = i;
|
|
131
119
|
indexToChr.push({ refName, length: lRef });
|
|
132
120
|
p = p + 8 + lName;
|
|
133
|
-
if (p > uncba.length) {
|
|
134
|
-
console.warn(`BAM header is very big. Re-fetching ${refSeqBytes} bytes.`);
|
|
135
|
-
return this._readRefSeqs(start, refSeqBytes * 2, opts);
|
|
136
|
-
}
|
|
137
121
|
}
|
|
138
122
|
return { chrToIndex, indexToChr };
|
|
139
123
|
}
|
|
@@ -144,12 +128,10 @@ export default class BamFile {
|
|
|
144
128
|
await this.getHeader(opts);
|
|
145
129
|
const chrId = this.chrToIndex?.[chr];
|
|
146
130
|
if (chrId === undefined || !this.index) {
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
const chunks = await this.index.blocksForRange(chrId, min - 1, max, opts);
|
|
151
|
-
yield* this._fetchChunkFeatures(chunks, chrId, min, max, opts);
|
|
131
|
+
return;
|
|
152
132
|
}
|
|
133
|
+
const chunks = await this.index.blocksForRange(chrId, min - 1, max, opts);
|
|
134
|
+
yield* this._fetchChunkFeatures(chunks, chrId, min, max, opts);
|
|
153
135
|
}
|
|
154
136
|
async *_fetchChunkFeatures(chunks, chrId, min, max, opts = {}) {
|
|
155
137
|
const { viewAsPairs } = opts;
|
|
@@ -160,7 +142,7 @@ export default class BamFile {
|
|
|
160
142
|
chunk,
|
|
161
143
|
opts,
|
|
162
144
|
});
|
|
163
|
-
const records = await this.readBamFeatures(data, cpositions, dpositions, chunk);
|
|
145
|
+
const records = await this.readBamFeatures(data, cpositions, dpositions, chunk, chrId, min, max);
|
|
164
146
|
const recs = [];
|
|
165
147
|
for (const feature of records) {
|
|
166
148
|
if (feature.ref_id === chrId) {
|
|
@@ -181,7 +163,6 @@ export default class BamFile {
|
|
|
181
163
|
break;
|
|
182
164
|
}
|
|
183
165
|
}
|
|
184
|
-
checkAbortSignal(opts.signal);
|
|
185
166
|
if (viewAsPairs) {
|
|
186
167
|
yield this.fetchPairs(chrId, feats, opts);
|
|
187
168
|
}
|
|
@@ -190,7 +171,7 @@ export default class BamFile {
|
|
|
190
171
|
const { pairAcrossChr, maxInsertSize = 200000 } = opts;
|
|
191
172
|
const unmatedPairs = {};
|
|
192
173
|
const readIds = {};
|
|
193
|
-
|
|
174
|
+
for (const ret of feats) {
|
|
194
175
|
const readNames = {};
|
|
195
176
|
for (const element of ret) {
|
|
196
177
|
const name = element.name;
|
|
@@ -206,9 +187,9 @@ export default class BamFile {
|
|
|
206
187
|
unmatedPairs[k] = true;
|
|
207
188
|
}
|
|
208
189
|
}
|
|
209
|
-
}
|
|
190
|
+
}
|
|
210
191
|
const matePromises = [];
|
|
211
|
-
|
|
192
|
+
for (const ret of feats) {
|
|
212
193
|
for (const f of ret) {
|
|
213
194
|
const name = f.name;
|
|
214
195
|
const start = f.start;
|
|
@@ -221,7 +202,7 @@ export default class BamFile {
|
|
|
221
202
|
matePromises.push(this.index.blocksForRange(rnext, pnext, pnext + 1, opts));
|
|
222
203
|
}
|
|
223
204
|
}
|
|
224
|
-
}
|
|
205
|
+
}
|
|
225
206
|
// filter out duplicate chunks (the blocks are lists of chunks, blocks are
|
|
226
207
|
// concatenated, then filter dup chunks)
|
|
227
208
|
const map = new Map();
|
|
@@ -251,69 +232,52 @@ export default class BamFile {
|
|
|
251
232
|
const { buffer: data, cpositions, dpositions, } = await unzipChunkSlice(buf, chunk, this.cache);
|
|
252
233
|
return { data, cpositions, dpositions, chunk };
|
|
253
234
|
}
|
|
254
|
-
async readBamFeatures(ba, cpositions, dpositions, chunk) {
|
|
235
|
+
async readBamFeatures(ba, cpositions, dpositions, chunk, chrId, min, max) {
|
|
255
236
|
let blockStart = 0;
|
|
256
237
|
const sink = [];
|
|
257
238
|
let pos = 0;
|
|
258
|
-
let last = Date.now();
|
|
259
239
|
const dataView = new DataView(ba.buffer);
|
|
240
|
+
const hasDpositions = dpositions.length > 0;
|
|
241
|
+
const hasCpositions = cpositions.length > 0;
|
|
242
|
+
const hasFilter = chrId !== undefined && min !== undefined && max !== undefined;
|
|
260
243
|
while (blockStart + 4 < ba.length) {
|
|
261
244
|
const blockSize = dataView.getInt32(blockStart, true);
|
|
262
245
|
const blockEnd = blockStart + 4 + blockSize - 1;
|
|
263
|
-
|
|
264
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
265
|
-
if (dpositions) {
|
|
246
|
+
if (hasDpositions) {
|
|
266
247
|
while (blockStart + chunk.minv.dataPosition >= dpositions[pos++]) { }
|
|
267
248
|
pos--;
|
|
268
249
|
}
|
|
269
|
-
// only try to read the feature if we have all the bytes for it
|
|
270
250
|
if (blockEnd < ba.length) {
|
|
251
|
+
if (hasFilter &&
|
|
252
|
+
blockStart + 12 < ba.length &&
|
|
253
|
+
!this._shouldIncludeFeature(dataView, blockStart, chrId, max)) {
|
|
254
|
+
blockStart = blockEnd + 1;
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
271
257
|
const feature = new BAMFeature({
|
|
272
258
|
bytes: {
|
|
273
259
|
byteArray: ba,
|
|
274
260
|
start: blockStart,
|
|
275
261
|
end: blockEnd,
|
|
276
262
|
},
|
|
277
|
-
|
|
278
|
-
// ID if the info for that is available, otherwise crc32 of the
|
|
279
|
-
// features
|
|
280
|
-
//
|
|
281
|
-
// cpositions[pos] refers to actual file offset of a bgzip block
|
|
282
|
-
// boundaries
|
|
283
|
-
//
|
|
284
|
-
// we multiply by (1 <<8) in order to make sure each block has a
|
|
285
|
-
// "unique" address space so that data in that block could never
|
|
286
|
-
// overlap
|
|
287
|
-
//
|
|
288
|
-
// then the blockStart-dpositions is an uncompressed file offset from
|
|
289
|
-
// that bgzip block boundary, and since the cpositions are multiplied
|
|
290
|
-
// by (1 << 8) these uncompressed offsets get a unique space
|
|
291
|
-
//
|
|
292
|
-
// this has an extra chunk.minv.dataPosition added on because it
|
|
293
|
-
// blockStart starts at 0 instead of chunk.minv.dataPosition
|
|
294
|
-
//
|
|
295
|
-
// the +1 is just to avoid any possible uniqueId 0 but this does not
|
|
296
|
-
// realistically happen
|
|
297
|
-
fileOffset: cpositions.length > 0
|
|
263
|
+
fileOffset: hasCpositions
|
|
298
264
|
? cpositions[pos] * (1 << 8) +
|
|
299
265
|
(blockStart - dpositions[pos]) +
|
|
300
266
|
chunk.minv.dataPosition +
|
|
301
267
|
1
|
|
302
|
-
:
|
|
303
|
-
// internal calculator of crc32 to avoid accidentally importing buffer
|
|
304
|
-
// https://github.com/alexgorbatchev/crc/blob/31fc3853e417b5fb5ec83335428805842575f699/src/define_crc.ts#L5
|
|
305
|
-
crc32(ba.subarray(blockStart, blockEnd)) >>> 0,
|
|
268
|
+
: crc32(ba.subarray(blockStart, blockEnd)) >>> 0,
|
|
306
269
|
});
|
|
307
270
|
sink.push(feature);
|
|
308
|
-
if (this.yieldThreadTime && Date.now() - last > this.yieldThreadTime) {
|
|
309
|
-
await timeout(1);
|
|
310
|
-
last = Date.now();
|
|
311
|
-
}
|
|
312
271
|
}
|
|
313
272
|
blockStart = blockEnd + 1;
|
|
314
273
|
}
|
|
315
274
|
return sink;
|
|
316
275
|
}
|
|
276
|
+
_shouldIncludeFeature(dataView, blockStart, chrId, max) {
|
|
277
|
+
const ref_id = dataView.getInt32(blockStart + 4, true);
|
|
278
|
+
const start = dataView.getInt32(blockStart + 8, true);
|
|
279
|
+
return ref_id === chrId && start < max;
|
|
280
|
+
}
|
|
317
281
|
async hasRefSeq(seqName) {
|
|
318
282
|
const seqId = this.chrToIndex?.[seqName];
|
|
319
283
|
return seqId === undefined ? false : this.index?.hasRefSeq(seqId);
|
package/esm/bamFile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":"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"}
|
package/esm/record.d.ts
CHANGED
|
@@ -4,9 +4,9 @@ interface Bytes {
|
|
|
4
4
|
byteArray: Uint8Array;
|
|
5
5
|
}
|
|
6
6
|
export default class BamRecord {
|
|
7
|
-
#private;
|
|
8
7
|
fileOffset: number;
|
|
9
8
|
private bytes;
|
|
9
|
+
private _dataView;
|
|
10
10
|
constructor(args: {
|
|
11
11
|
bytes: Bytes;
|
|
12
12
|
fileOffset: number;
|
|
@@ -52,10 +52,11 @@ export default class BamRecord {
|
|
|
52
52
|
/** @returns {boolean} true if this is a supplementary alignment */
|
|
53
53
|
isSupplementary(): boolean;
|
|
54
54
|
get cigarAndLength(): {
|
|
55
|
+
NUMERIC_CIGAR: Uint32Array<ArrayBufferLike>;
|
|
55
56
|
length_on_ref: number;
|
|
56
|
-
CIGAR: string;
|
|
57
57
|
};
|
|
58
58
|
get length_on_ref(): number;
|
|
59
|
+
get NUMERIC_CIGAR(): Uint32Array<ArrayBufferLike>;
|
|
59
60
|
get CIGAR(): string;
|
|
60
61
|
get num_cigar_ops(): number;
|
|
61
62
|
get read_name_length(): number;
|
|
@@ -68,6 +69,7 @@ export default class BamRecord {
|
|
|
68
69
|
get next_refid(): number;
|
|
69
70
|
get next_pos(): number;
|
|
70
71
|
get template_length(): number;
|
|
72
|
+
seqAt(idx: number): string | undefined;
|
|
71
73
|
toJSON(): Record<string, any>;
|
|
72
74
|
}
|
|
73
75
|
export {};
|