@gmod/bam 4.0.1 → 5.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 +3 -7
- package/README.md +7 -11
- package/dist/bai.d.ts +1 -1
- package/dist/bai.js +151 -169
- package/dist/bai.js.map +1 -1
- package/dist/bamFile.d.ts +4 -5
- package/dist/bamFile.js +271 -350
- package/dist/bamFile.js.map +1 -1
- package/dist/chunk.d.ts +1 -1
- package/dist/chunk.js +5 -0
- package/dist/chunk.js.map +1 -1
- package/dist/csi.d.ts +1 -1
- package/dist/csi.js +140 -145
- package/dist/csi.js.map +1 -1
- package/dist/htsget.d.ts +1 -2
- package/dist/htsget.js +131 -161
- package/dist/htsget.js.map +1 -1
- package/dist/indexFile.d.ts +1 -1
- package/dist/indexFile.js +2 -0
- package/dist/indexFile.js.map +1 -1
- package/dist/nullIndex.js +2 -13
- package/dist/nullIndex.js.map +1 -1
- package/dist/record.d.ts +4 -4
- package/dist/record.js +43 -36
- package/dist/record.js.map +1 -1
- package/dist/util.d.ts +4 -2
- package/dist/util.js +25 -15
- package/dist/util.js.map +1 -1
- package/dist/virtualOffset.d.ts +1 -1
- package/dist/virtualOffset.js +2 -0
- package/dist/virtualOffset.js.map +1 -1
- package/esm/bai.d.ts +1 -1
- package/esm/bai.js +13 -13
- package/esm/bai.js.map +1 -1
- package/esm/bamFile.d.ts +4 -5
- package/esm/bamFile.js +49 -50
- package/esm/bamFile.js.map +1 -1
- package/esm/chunk.d.ts +1 -1
- package/esm/chunk.js +5 -0
- package/esm/chunk.js.map +1 -1
- package/esm/csi.d.ts +1 -1
- package/esm/csi.js +26 -28
- package/esm/csi.js.map +1 -1
- package/esm/htsget.d.ts +1 -2
- package/esm/htsget.js +21 -11
- package/esm/htsget.js.map +1 -1
- package/esm/indexFile.d.ts +1 -1
- package/esm/indexFile.js +2 -0
- package/esm/indexFile.js.map +1 -1
- package/esm/record.d.ts +4 -4
- package/esm/record.js +43 -36
- package/esm/record.js.map +1 -1
- package/esm/util.d.ts +4 -2
- package/esm/util.js +20 -1
- package/esm/util.js.map +1 -1
- package/esm/virtualOffset.d.ts +1 -1
- package/esm/virtualOffset.js +2 -0
- package/esm/virtualOffset.js.map +1 -1
- package/package.json +6 -6
- package/src/bai.ts +11 -8
- package/src/bamFile.ts +22 -41
- package/src/chunk.ts +1 -1
- package/src/csi.ts +22 -19
- package/src/htsget.ts +18 -9
- package/src/indexFile.ts +1 -1
- package/src/record.ts +43 -42
- package/src/util.ts +23 -3
- package/src/virtualOffset.ts +1 -1
package/esm/record.js
CHANGED
|
@@ -2,21 +2,25 @@ import Constants from './constants';
|
|
|
2
2
|
const SEQRET_DECODER = '=ACMGRSVTWYHKDBN'.split('');
|
|
3
3
|
const CIGAR_DECODER = 'MIDNSHP=X???????'.split('');
|
|
4
4
|
export default class BamRecord {
|
|
5
|
+
fileOffset;
|
|
6
|
+
bytes;
|
|
7
|
+
#dataView;
|
|
5
8
|
constructor(args) {
|
|
6
9
|
this.bytes = args.bytes;
|
|
7
10
|
this.fileOffset = args.fileOffset;
|
|
11
|
+
this.#dataView = new DataView(this.bytes.byteArray.buffer);
|
|
8
12
|
}
|
|
9
13
|
get byteArray() {
|
|
10
14
|
return this.bytes.byteArray;
|
|
11
15
|
}
|
|
12
16
|
get flags() {
|
|
13
|
-
return ((this.
|
|
17
|
+
return ((this.#dataView.getInt32(this.bytes.start + 16, true) & 0xffff0000) >> 16);
|
|
14
18
|
}
|
|
15
19
|
get ref_id() {
|
|
16
|
-
return this.
|
|
20
|
+
return this.#dataView.getInt32(this.bytes.start + 4, true);
|
|
17
21
|
}
|
|
18
22
|
get start() {
|
|
19
|
-
return this.
|
|
23
|
+
return this.#dataView.getInt32(this.bytes.start + 8, true);
|
|
20
24
|
}
|
|
21
25
|
get end() {
|
|
22
26
|
return this.start + this.length_on_ref;
|
|
@@ -48,10 +52,13 @@ export default class BamRecord {
|
|
|
48
52
|
return this.bytes.start + 36;
|
|
49
53
|
}
|
|
50
54
|
get name() {
|
|
51
|
-
|
|
55
|
+
let str = '';
|
|
56
|
+
for (let i = 0; i < this.read_name_length - 1; i++) {
|
|
57
|
+
str += String.fromCharCode(this.byteArray[this.b0 + i]);
|
|
58
|
+
}
|
|
59
|
+
return str;
|
|
52
60
|
}
|
|
53
61
|
get tags() {
|
|
54
|
-
const { byteArray } = this.bytes;
|
|
55
62
|
let p = this.b0 +
|
|
56
63
|
this.read_name_length +
|
|
57
64
|
this.num_cigar_ops * 4 +
|
|
@@ -60,45 +67,45 @@ export default class BamRecord {
|
|
|
60
67
|
const blockEnd = this.bytes.end;
|
|
61
68
|
const tags = {};
|
|
62
69
|
while (p < blockEnd) {
|
|
63
|
-
const tag = String.fromCharCode(byteArray[p], byteArray[p + 1]);
|
|
64
|
-
const type = String.fromCharCode(byteArray[p + 2]);
|
|
70
|
+
const tag = String.fromCharCode(this.byteArray[p], this.byteArray[p + 1]);
|
|
71
|
+
const type = String.fromCharCode(this.byteArray[p + 2]);
|
|
65
72
|
p += 3;
|
|
66
73
|
if (type === 'A') {
|
|
67
|
-
tags[tag] = String.fromCharCode(byteArray[p]);
|
|
74
|
+
tags[tag] = String.fromCharCode(this.byteArray[p]);
|
|
68
75
|
p += 1;
|
|
69
76
|
}
|
|
70
77
|
else if (type === 'i') {
|
|
71
|
-
tags[tag] =
|
|
78
|
+
tags[tag] = this.#dataView.getInt32(p, true);
|
|
72
79
|
p += 4;
|
|
73
80
|
}
|
|
74
81
|
else if (type === 'I') {
|
|
75
|
-
tags[tag] =
|
|
82
|
+
tags[tag] = this.#dataView.getUint32(p, true);
|
|
76
83
|
p += 4;
|
|
77
84
|
}
|
|
78
85
|
else if (type === 'c') {
|
|
79
|
-
tags[tag] =
|
|
86
|
+
tags[tag] = this.#dataView.getInt8(p);
|
|
80
87
|
p += 1;
|
|
81
88
|
}
|
|
82
89
|
else if (type === 'C') {
|
|
83
|
-
tags[tag] =
|
|
90
|
+
tags[tag] = this.#dataView.getUint8(p);
|
|
84
91
|
p += 1;
|
|
85
92
|
}
|
|
86
93
|
else if (type === 's') {
|
|
87
|
-
tags[tag] =
|
|
94
|
+
tags[tag] = this.#dataView.getInt16(p, true);
|
|
88
95
|
p += 2;
|
|
89
96
|
}
|
|
90
97
|
else if (type === 'S') {
|
|
91
|
-
tags[tag] =
|
|
98
|
+
tags[tag] = this.#dataView.getUint16(p, true);
|
|
92
99
|
p += 2;
|
|
93
100
|
}
|
|
94
101
|
else if (type === 'f') {
|
|
95
|
-
tags[tag] =
|
|
102
|
+
tags[tag] = this.#dataView.getFloat32(p, true);
|
|
96
103
|
p += 4;
|
|
97
104
|
}
|
|
98
105
|
else if (type === 'Z' || type === 'H') {
|
|
99
106
|
const value = [];
|
|
100
107
|
while (p <= blockEnd) {
|
|
101
|
-
const cc = byteArray[p++];
|
|
108
|
+
const cc = this.byteArray[p++];
|
|
102
109
|
if (cc !== 0) {
|
|
103
110
|
value.push(String.fromCharCode(cc));
|
|
104
111
|
}
|
|
@@ -109,15 +116,15 @@ export default class BamRecord {
|
|
|
109
116
|
tags[tag] = value.join('');
|
|
110
117
|
}
|
|
111
118
|
else if (type === 'B') {
|
|
112
|
-
const cc = byteArray[p++];
|
|
119
|
+
const cc = this.byteArray[p++];
|
|
113
120
|
const Btype = String.fromCharCode(cc);
|
|
114
|
-
const limit =
|
|
121
|
+
const limit = this.#dataView.getInt32(p, true);
|
|
115
122
|
p += 4;
|
|
116
123
|
if (Btype === 'i') {
|
|
117
124
|
if (tag === 'CG') {
|
|
118
125
|
const value = [];
|
|
119
126
|
for (let k = 0; k < limit; k++) {
|
|
120
|
-
const cigop =
|
|
127
|
+
const cigop = this.#dataView.getInt32(p, true);
|
|
121
128
|
const lop = cigop >> 4;
|
|
122
129
|
const op = CIGAR_DECODER[cigop & 0xf];
|
|
123
130
|
value.push(lop + op);
|
|
@@ -128,7 +135,7 @@ export default class BamRecord {
|
|
|
128
135
|
else {
|
|
129
136
|
const value = [];
|
|
130
137
|
for (let k = 0; k < limit; k++) {
|
|
131
|
-
value.push(
|
|
138
|
+
value.push(this.#dataView.getInt32(p, true));
|
|
132
139
|
p += 4;
|
|
133
140
|
}
|
|
134
141
|
tags[tag] = value;
|
|
@@ -138,7 +145,7 @@ export default class BamRecord {
|
|
|
138
145
|
if (tag === 'CG') {
|
|
139
146
|
const value = [];
|
|
140
147
|
for (let k = 0; k < limit; k++) {
|
|
141
|
-
const cigop =
|
|
148
|
+
const cigop = this.#dataView.getUint32(p, true);
|
|
142
149
|
const lop = cigop >> 4;
|
|
143
150
|
const op = CIGAR_DECODER[cigop & 0xf];
|
|
144
151
|
value.push(lop + op);
|
|
@@ -149,7 +156,7 @@ export default class BamRecord {
|
|
|
149
156
|
else {
|
|
150
157
|
const value = [];
|
|
151
158
|
for (let k = 0; k < limit; k++) {
|
|
152
|
-
value.push(
|
|
159
|
+
value.push(this.#dataView.getUint32(p, true));
|
|
153
160
|
p += 4;
|
|
154
161
|
}
|
|
155
162
|
tags[tag] = value;
|
|
@@ -158,7 +165,7 @@ export default class BamRecord {
|
|
|
158
165
|
else if (Btype === 's') {
|
|
159
166
|
const value = [];
|
|
160
167
|
for (let k = 0; k < limit; k++) {
|
|
161
|
-
value.push(
|
|
168
|
+
value.push(this.#dataView.getInt16(p, true));
|
|
162
169
|
p += 2;
|
|
163
170
|
}
|
|
164
171
|
tags[tag] = value;
|
|
@@ -166,7 +173,7 @@ export default class BamRecord {
|
|
|
166
173
|
else if (Btype === 'S') {
|
|
167
174
|
const value = [];
|
|
168
175
|
for (let k = 0; k < limit; k++) {
|
|
169
|
-
value.push(
|
|
176
|
+
value.push(this.#dataView.getUint16(p, true));
|
|
170
177
|
p += 2;
|
|
171
178
|
}
|
|
172
179
|
tags[tag] = value;
|
|
@@ -174,7 +181,7 @@ export default class BamRecord {
|
|
|
174
181
|
else if (Btype === 'c') {
|
|
175
182
|
const value = [];
|
|
176
183
|
for (let k = 0; k < limit; k++) {
|
|
177
|
-
value.push(
|
|
184
|
+
value.push(this.#dataView.getInt8(p));
|
|
178
185
|
p += 1;
|
|
179
186
|
}
|
|
180
187
|
tags[tag] = value;
|
|
@@ -182,7 +189,7 @@ export default class BamRecord {
|
|
|
182
189
|
else if (Btype === 'C') {
|
|
183
190
|
const value = [];
|
|
184
191
|
for (let k = 0; k < limit; k++) {
|
|
185
|
-
value.push(
|
|
192
|
+
value.push(this.#dataView.getUint8(p));
|
|
186
193
|
p += 1;
|
|
187
194
|
}
|
|
188
195
|
tags[tag] = value;
|
|
@@ -190,7 +197,7 @@ export default class BamRecord {
|
|
|
190
197
|
else if (Btype === 'f') {
|
|
191
198
|
const value = [];
|
|
192
199
|
for (let k = 0; k < limit; k++) {
|
|
193
|
-
value.push(
|
|
200
|
+
value.push(this.#dataView.getFloat32(p, true));
|
|
194
201
|
p += 4;
|
|
195
202
|
}
|
|
196
203
|
tags[tag] = value;
|
|
@@ -266,14 +273,14 @@ export default class BamRecord {
|
|
|
266
273
|
const CIGAR = [];
|
|
267
274
|
// check for CG tag by inspecting whether the CIGAR field contains a clip
|
|
268
275
|
// that consumes entire seqLen
|
|
269
|
-
let cigop = this.
|
|
276
|
+
let cigop = this.#dataView.getInt32(p, true);
|
|
270
277
|
let lop = cigop >> 4;
|
|
271
278
|
let op = CIGAR_DECODER[cigop & 0xf];
|
|
272
279
|
if (op === 'S' && lop === this.seq_length) {
|
|
273
280
|
// if there is a CG the second CIGAR field will be a N tag the represents
|
|
274
281
|
// the length on ref
|
|
275
282
|
p += 4;
|
|
276
|
-
cigop = this.
|
|
283
|
+
cigop = this.#dataView.getInt32(p, true);
|
|
277
284
|
lop = cigop >> 4;
|
|
278
285
|
op = CIGAR_DECODER[cigop & 0xf];
|
|
279
286
|
if (op !== 'N') {
|
|
@@ -287,7 +294,7 @@ export default class BamRecord {
|
|
|
287
294
|
else {
|
|
288
295
|
let lref = 0;
|
|
289
296
|
for (let c = 0; c < numCigarOps; ++c) {
|
|
290
|
-
cigop = this.
|
|
297
|
+
cigop = this.#dataView.getInt32(p, true);
|
|
291
298
|
lop = cigop >> 4;
|
|
292
299
|
op = CIGAR_DECODER[cigop & 0xf];
|
|
293
300
|
CIGAR.push(lop + op);
|
|
@@ -373,22 +380,22 @@ export default class BamRecord {
|
|
|
373
380
|
return undefined;
|
|
374
381
|
}
|
|
375
382
|
get bin_mq_nl() {
|
|
376
|
-
return this.
|
|
383
|
+
return this.#dataView.getInt32(this.bytes.start + 12, true);
|
|
377
384
|
}
|
|
378
385
|
get flag_nc() {
|
|
379
|
-
return this.
|
|
386
|
+
return this.#dataView.getInt32(this.bytes.start + 16, true);
|
|
380
387
|
}
|
|
381
388
|
get seq_length() {
|
|
382
|
-
return this.
|
|
389
|
+
return this.#dataView.getInt32(this.bytes.start + 20, true);
|
|
383
390
|
}
|
|
384
391
|
get next_refid() {
|
|
385
|
-
return this.
|
|
392
|
+
return this.#dataView.getInt32(this.bytes.start + 24, true);
|
|
386
393
|
}
|
|
387
394
|
get next_pos() {
|
|
388
|
-
return this.
|
|
395
|
+
return this.#dataView.getInt32(this.bytes.start + 28, true);
|
|
389
396
|
}
|
|
390
397
|
get template_length() {
|
|
391
|
-
return this.
|
|
398
|
+
return this.#dataView.getInt32(this.bytes.start + 32, true);
|
|
392
399
|
}
|
|
393
400
|
toJSON() {
|
|
394
401
|
const data = {};
|
package/esm/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
|
package/esm/util.d.ts
CHANGED
|
@@ -32,11 +32,13 @@ export interface BaseOpts {
|
|
|
32
32
|
}
|
|
33
33
|
export declare function makeOpts(obj?: AbortSignal | BaseOpts): BaseOpts;
|
|
34
34
|
export declare function optimizeChunks(chunks: Chunk[], lowest?: VirtualOffset): Chunk[];
|
|
35
|
-
export declare function parsePseudoBin(bytes:
|
|
35
|
+
export declare function parsePseudoBin(bytes: Uint8Array, offset: number): {
|
|
36
36
|
lineCount: number;
|
|
37
37
|
};
|
|
38
38
|
export declare function findFirstData(firstDataLine: VirtualOffset | undefined, virtualOffset: VirtualOffset): VirtualOffset;
|
|
39
|
-
export declare function parseNameBytes(namesBytes:
|
|
39
|
+
export declare function parseNameBytes(namesBytes: Uint8Array, renameRefSeq?: (arg: string) => string): {
|
|
40
40
|
refNameToId: Record<string, number>;
|
|
41
41
|
refIdToName: string[];
|
|
42
42
|
};
|
|
43
|
+
export declare function sum(array: Uint8Array[]): number;
|
|
44
|
+
export declare function concatUint8Array(args: Uint8Array[]): Uint8Array<ArrayBuffer>;
|
package/esm/util.js
CHANGED
|
@@ -98,7 +98,10 @@ export function parseNameBytes(namesBytes, renameRefSeq = s => s) {
|
|
|
98
98
|
for (let i = 0; i < namesBytes.length; i += 1) {
|
|
99
99
|
if (!namesBytes[i]) {
|
|
100
100
|
if (currNameStart < i) {
|
|
101
|
-
let refName =
|
|
101
|
+
let refName = '';
|
|
102
|
+
for (let j = currNameStart; j < i; j++) {
|
|
103
|
+
refName += String.fromCharCode(namesBytes[j]);
|
|
104
|
+
}
|
|
102
105
|
refName = renameRefSeq(refName);
|
|
103
106
|
refIdToName[currRefId] = refName;
|
|
104
107
|
refNameToId[refName] = currRefId;
|
|
@@ -109,4 +112,20 @@ export function parseNameBytes(namesBytes, renameRefSeq = s => s) {
|
|
|
109
112
|
}
|
|
110
113
|
return { refNameToId, refIdToName };
|
|
111
114
|
}
|
|
115
|
+
export function sum(array) {
|
|
116
|
+
let sum = 0;
|
|
117
|
+
for (const entry of array) {
|
|
118
|
+
sum += entry.length;
|
|
119
|
+
}
|
|
120
|
+
return sum;
|
|
121
|
+
}
|
|
122
|
+
export function concatUint8Array(args) {
|
|
123
|
+
const mergedArray = new Uint8Array(sum(args));
|
|
124
|
+
let offset = 0;
|
|
125
|
+
for (const entry of args) {
|
|
126
|
+
mergedArray.set(entry, offset);
|
|
127
|
+
offset += entry.length;
|
|
128
|
+
}
|
|
129
|
+
return mergedArray;
|
|
130
|
+
}
|
|
112
131
|
//# sourceMappingURL=util.js.map
|
package/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/esm/virtualOffset.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export default class VirtualOffset {
|
|
|
6
6
|
compareTo(b: VirtualOffset): number;
|
|
7
7
|
static min(...args: VirtualOffset[]): VirtualOffset;
|
|
8
8
|
}
|
|
9
|
-
export declare function fromBytes(bytes:
|
|
9
|
+
export declare function fromBytes(bytes: Uint8Array, offset?: number, bigendian?: boolean): VirtualOffset;
|
package/esm/virtualOffset.js
CHANGED
package/esm/virtualOffset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualOffset.js","sourceRoot":"","sources":["../src/virtualOffset.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"virtualOffset.js","sourceRoot":"","sources":["../src/virtualOffset.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,aAAa;IACzB,aAAa,CAAQ;IACrB,YAAY,CAAQ;IAC3B,YAAY,aAAqB,EAAE,YAAoB;QACrD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA,CAAC,wCAAwC;QAC3E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA,CAAC,sCAAsC;IACzE,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;IACrD,CAAC;IAED,SAAS,CAAC,CAAgB;QACxB,OAAO,CACL,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAC3E,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,IAAqB;QACjC,IAAI,GAAG,CAAA;QACP,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AACD,MAAM,UAAU,SAAS,CAAC,KAAiB,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK;IACxE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,IAAI,aAAa,CACtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa;QAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW;QAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS;QAC7B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO;QAC3B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK;QACzB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EACnB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CACzC,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gmod/bam",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Parser for BAM and BAM index (bai) files",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "GMOD/bam-js",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"test": "vitest",
|
|
24
24
|
"lint": "eslint --report-unused-disable-directives --max-warnings 0",
|
|
25
25
|
"clean": "rimraf dist esm",
|
|
26
|
-
"build:esm": "tsc --
|
|
27
|
-
"build:es5": "tsc --
|
|
26
|
+
"build:esm": "tsc --outDir esm",
|
|
27
|
+
"build:es5": "tsc --module commonjs --outDir dist",
|
|
28
28
|
"build": "npm run build:esm && npm run build:es5",
|
|
29
29
|
"prebuild": "npm run clean && npm run lint",
|
|
30
30
|
"preversion": "npm run lint && npm test run && npm run build",
|
|
@@ -39,10 +39,9 @@
|
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@gmod/abortable-promise-cache": "^2.0.0",
|
|
42
|
-
"@gmod/bgzf-filehandle": "^
|
|
43
|
-
"buffer": "^6.0.3",
|
|
42
|
+
"@gmod/bgzf-filehandle": "^2.0.1",
|
|
44
43
|
"crc": "^4.3.2",
|
|
45
|
-
"generic-
|
|
44
|
+
"generic-filehandle2": "^0.0.2",
|
|
46
45
|
"long": "^4.0.0",
|
|
47
46
|
"quick-lru": "^4.0.0"
|
|
48
47
|
},
|
|
@@ -52,6 +51,7 @@
|
|
|
52
51
|
"@typescript-eslint/eslint-plugin": "^8.1.0",
|
|
53
52
|
"@typescript-eslint/parser": "^8.1.0",
|
|
54
53
|
"@vitest/coverage-v8": "^2.0.5",
|
|
54
|
+
"buffer": "^6.0.3",
|
|
55
55
|
"eslint": "^9.9.0",
|
|
56
56
|
"eslint-config-prettier": "^9.1.0",
|
|
57
57
|
"eslint-plugin-prettier": "^5.1.3",
|
package/src/bai.ts
CHANGED
|
@@ -34,15 +34,16 @@ export default class BAI extends IndexFile {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
// fetch and parse the index
|
|
37
|
-
async _parse(
|
|
38
|
-
const bytes =
|
|
37
|
+
async _parse(_opts?: BaseOpts) {
|
|
38
|
+
const bytes = await this.filehandle.readFile()
|
|
39
|
+
const dataView = new DataView(bytes.buffer)
|
|
39
40
|
|
|
40
41
|
// check BAI magic numbers
|
|
41
|
-
if (
|
|
42
|
+
if (dataView.getUint32(0, true) !== BAI_MAGIC) {
|
|
42
43
|
throw new Error('Not a BAI file')
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
const refCount =
|
|
46
|
+
const refCount = dataView.getInt32(4, true)
|
|
46
47
|
const depth = 5
|
|
47
48
|
const binLimit = ((1 << ((depth + 1) * 3)) - 1) / 7
|
|
48
49
|
|
|
@@ -57,16 +58,18 @@ export default class BAI extends IndexFile {
|
|
|
57
58
|
linearIndex: LinearIndex
|
|
58
59
|
stats?: { lineCount: number }
|
|
59
60
|
}>(refCount)
|
|
61
|
+
|
|
60
62
|
for (let i = 0; i < refCount; i++) {
|
|
61
63
|
// the binning index
|
|
62
|
-
|
|
64
|
+
|
|
65
|
+
const binCount = dataView.getInt32(curr, true)
|
|
63
66
|
let stats
|
|
64
67
|
|
|
65
68
|
curr += 4
|
|
66
69
|
const binIndex: Record<number, Chunk[]> = {}
|
|
67
70
|
|
|
68
71
|
for (let j = 0; j < binCount; j += 1) {
|
|
69
|
-
const bin =
|
|
72
|
+
const bin = dataView.getUint32(curr, true)
|
|
70
73
|
curr += 4
|
|
71
74
|
if (bin === binLimit + 1) {
|
|
72
75
|
curr += 4
|
|
@@ -75,7 +78,7 @@ export default class BAI extends IndexFile {
|
|
|
75
78
|
} else if (bin > binLimit + 1) {
|
|
76
79
|
throw new Error('bai index contains too many bins, please use CSI')
|
|
77
80
|
} else {
|
|
78
|
-
const chunkCount =
|
|
81
|
+
const chunkCount = dataView.getInt32(curr, true)
|
|
79
82
|
curr += 4
|
|
80
83
|
const chunks = new Array<Chunk>(chunkCount)
|
|
81
84
|
for (let k = 0; k < chunkCount; k++) {
|
|
@@ -90,7 +93,7 @@ export default class BAI extends IndexFile {
|
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
95
|
|
|
93
|
-
const linearCount =
|
|
96
|
+
const linearCount = dataView.getInt32(curr, true)
|
|
94
97
|
curr += 4
|
|
95
98
|
// as we're going through the linear index, figure out the smallest
|
|
96
99
|
// virtual offset in the indexes, which tells us where the BAM header
|
package/src/bamFile.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Buffer } from 'buffer'
|
|
2
1
|
import crc32 from 'crc/crc32'
|
|
3
2
|
import { unzip, unzipChunkSlice } from '@gmod/bgzf-filehandle'
|
|
4
|
-
import { LocalFile, RemoteFile, GenericFilehandle } from 'generic-
|
|
3
|
+
import { LocalFile, RemoteFile, GenericFilehandle } from 'generic-filehandle2'
|
|
5
4
|
import AbortablePromiseCache from '@gmod/abortable-promise-cache'
|
|
6
5
|
import QuickLRU from 'quick-lru'
|
|
7
6
|
|
|
@@ -148,23 +147,21 @@ export default class BamFile {
|
|
|
148
147
|
let buffer
|
|
149
148
|
if (ret) {
|
|
150
149
|
const s = ret + blockLen
|
|
151
|
-
|
|
152
|
-
if (!res.bytesRead) {
|
|
153
|
-
throw new Error('Error reading header')
|
|
154
|
-
}
|
|
155
|
-
buffer = res.buffer.subarray(0, Math.min(res.bytesRead, ret))
|
|
150
|
+
buffer = await this.bam.read(s, 0)
|
|
156
151
|
} else {
|
|
157
152
|
buffer = await this.bam.readFile(opts)
|
|
158
153
|
}
|
|
159
154
|
|
|
160
155
|
const uncba = await unzip(buffer)
|
|
156
|
+
const dataView = new DataView(uncba.buffer)
|
|
161
157
|
|
|
162
|
-
if (
|
|
158
|
+
if (dataView.getInt32(0, true) !== BAM_MAGIC) {
|
|
163
159
|
throw new Error('Not a BAM file')
|
|
164
160
|
}
|
|
165
|
-
const headLen =
|
|
161
|
+
const headLen = dataView.getInt32(4, true)
|
|
166
162
|
|
|
167
|
-
|
|
163
|
+
const decoder = new TextDecoder('utf8')
|
|
164
|
+
this.header = decoder.decode(uncba.subarray(8, 8 + headLen))
|
|
168
165
|
const { chrToIndex, indexToChr } = await this._readRefSeqs(
|
|
169
166
|
headLen + 8,
|
|
170
167
|
65535,
|
|
@@ -204,30 +201,21 @@ export default class BamFile {
|
|
|
204
201
|
if (start > refSeqBytes) {
|
|
205
202
|
return this._readRefSeqs(start, refSeqBytes * 2, opts)
|
|
206
203
|
}
|
|
207
|
-
const size = refSeqBytes + blockLen
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
0,
|
|
213
|
-
opts,
|
|
214
|
-
)
|
|
215
|
-
if (!bytesRead) {
|
|
216
|
-
throw new Error('Error reading refseqs from header')
|
|
217
|
-
}
|
|
218
|
-
const uncba = await unzip(
|
|
219
|
-
buffer.subarray(0, Math.min(bytesRead, refSeqBytes)),
|
|
220
|
-
)
|
|
221
|
-
const nRef = uncba.readInt32LE(start)
|
|
204
|
+
// const size = refSeqBytes + blockLen <-- use this?
|
|
205
|
+
const buffer = await this.bam.read(refSeqBytes, 0, opts)
|
|
206
|
+
const uncba = await unzip(buffer)
|
|
207
|
+
const dataView = new DataView(uncba.buffer)
|
|
208
|
+
const nRef = dataView.getInt32(start, true)
|
|
222
209
|
let p = start + 4
|
|
223
210
|
const chrToIndex: Record<string, number> = {}
|
|
224
211
|
const indexToChr: { refName: string; length: number }[] = []
|
|
212
|
+
const decoder = new TextDecoder('utf8')
|
|
225
213
|
for (let i = 0; i < nRef; i += 1) {
|
|
226
|
-
const lName =
|
|
214
|
+
const lName = dataView.getInt32(p, true)
|
|
227
215
|
const refName = this.renameRefSeq(
|
|
228
|
-
uncba.
|
|
216
|
+
decoder.decode(uncba.subarray(p + 4, p + 4 + lName - 1)),
|
|
229
217
|
)
|
|
230
|
-
const lRef =
|
|
218
|
+
const lRef = dataView.getInt32(p + lName + 4, true)
|
|
231
219
|
|
|
232
220
|
chrToIndex[refName] = i
|
|
233
221
|
indexToChr.push({ refName, length: lRef })
|
|
@@ -388,15 +376,7 @@ export default class BamFile {
|
|
|
388
376
|
}
|
|
389
377
|
|
|
390
378
|
async _readRegion(position: number, size: number, opts: BaseOpts = {}) {
|
|
391
|
-
|
|
392
|
-
Buffer.alloc(size),
|
|
393
|
-
0,
|
|
394
|
-
size,
|
|
395
|
-
position,
|
|
396
|
-
opts,
|
|
397
|
-
)
|
|
398
|
-
|
|
399
|
-
return buffer.subarray(0, Math.min(bytesRead, size))
|
|
379
|
+
return this.bam.read(size, position, opts)
|
|
400
380
|
}
|
|
401
381
|
|
|
402
382
|
async _readChunk({ chunk, opts }: { chunk: Chunk; opts: BaseOpts }) {
|
|
@@ -415,7 +395,7 @@ export default class BamFile {
|
|
|
415
395
|
}
|
|
416
396
|
|
|
417
397
|
async readBamFeatures(
|
|
418
|
-
ba:
|
|
398
|
+
ba: Uint8Array,
|
|
419
399
|
cpositions: number[],
|
|
420
400
|
dpositions: number[],
|
|
421
401
|
chunk: Chunk,
|
|
@@ -425,8 +405,9 @@ export default class BamFile {
|
|
|
425
405
|
let pos = 0
|
|
426
406
|
let last = +Date.now()
|
|
427
407
|
|
|
408
|
+
const dataView = new DataView(ba.buffer)
|
|
428
409
|
while (blockStart + 4 < ba.length) {
|
|
429
|
-
const blockSize =
|
|
410
|
+
const blockSize = dataView.getInt32(blockStart, true)
|
|
430
411
|
const blockEnd = blockStart + 4 + blockSize - 1
|
|
431
412
|
|
|
432
413
|
// increment position to the current decompressed status
|
|
@@ -471,8 +452,8 @@ export default class BamFile {
|
|
|
471
452
|
chunk.minv.dataPosition +
|
|
472
453
|
1
|
|
473
454
|
: // must be slice, not subarray for buffer polyfill on web
|
|
474
|
-
//
|
|
475
|
-
crc32.signed(ba.
|
|
455
|
+
// @ts-expect-error
|
|
456
|
+
crc32.signed(ba.subarray(blockStart, blockEnd)),
|
|
476
457
|
})
|
|
477
458
|
|
|
478
459
|
sink.push(feature)
|