@gmod/bam 7.1.3 → 7.1.5

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/esm/record.js CHANGED
@@ -1,15 +1,9 @@
1
+ import { CIGAR_HARD_CLIP, CIGAR_INS, CIGAR_REF_SKIP, CIGAR_SOFT_CLIP, } from "./cigar.js";
1
2
  import Constants from "./constants.js";
2
3
  const SEQRET_DECODER = '=ACMGRSVTWYHKDBN'.split('');
3
4
  const ASCII_CIGAR_CODES = [
4
5
  77, 73, 68, 78, 83, 72, 80, 61, 88, 63, 63, 63, 63, 63, 63, 63,
5
6
  ];
6
- // const CIGAR_MATCH = 0
7
- const CIGAR_INS = 1;
8
- // const CIGAR_DEL = 2
9
- const CIGAR_REF_SKIP = 3;
10
- const CIGAR_SOFT_CLIP = 4;
11
- const CIGAR_HARD_CLIP = 5;
12
- // const CIGAR_PAD = 6
13
7
  // ops that don't consume reference: INS, SOFT_CLIP, HARD_CLIP
14
8
  const CIGAR_SKIP_MASK = (1 << CIGAR_INS) | (1 << CIGAR_SOFT_CLIP) | (1 << CIGAR_HARD_CLIP);
15
9
  export default class BamRecord {
@@ -22,7 +16,12 @@ export default class BamRecord {
22
16
  return this.bytes.byteArray;
23
17
  }
24
18
  get flags() {
25
- return ((this._dataView.getInt32(this.bytes.start + 16, true) & 0xffff0000) >> 16);
19
+ if (this._cachedFlags === undefined) {
20
+ this._cachedFlags =
21
+ (this._dataView.getInt32(this.bytes.start + 16, true) & 0xffff0000) >>
22
+ 16;
23
+ }
24
+ return this._cachedFlags;
26
25
  }
27
26
  get ref_id() {
28
27
  return this._dataView.getInt32(this.bytes.start + 4, true);
@@ -45,13 +44,15 @@ export default class BamRecord {
45
44
  }
46
45
  get qual() {
47
46
  if (this.isSegmentUnmapped()) {
48
- return;
47
+ return null;
48
+ }
49
+ else {
50
+ const p = this.b0 +
51
+ this.read_name_length +
52
+ this.num_cigar_bytes +
53
+ this.num_seq_bytes;
54
+ return this.byteArray.subarray(p, p + this.seq_length);
49
55
  }
50
- const p = this.b0 +
51
- this.read_name_length +
52
- this.num_cigar_bytes +
53
- this.num_seq_bytes;
54
- return this.byteArray.subarray(p, p + this.seq_length);
55
56
  }
56
57
  get strand() {
57
58
  return this.isReverseComplemented() ? -1 : 1;
@@ -67,115 +68,127 @@ export default class BamRecord {
67
68
  return str;
68
69
  }
69
70
  get NUMERIC_MD() {
70
- let p = this.b0 +
71
- this.read_name_length +
72
- this.num_cigar_bytes +
73
- this.num_seq_bytes +
74
- this.seq_length;
75
- const blockEnd = this.bytes.end;
76
- while (p < blockEnd) {
77
- const tag = String.fromCharCode(this.byteArray[p]) +
78
- String.fromCharCode(this.byteArray[p + 1]);
79
- const type = String.fromCharCode(this.byteArray[p + 2]);
80
- p += 3;
81
- if (tag === 'MD' && type === 'Z') {
82
- const start = p;
83
- while (p < blockEnd && this.byteArray[p] !== 0) {
84
- p++;
85
- }
86
- return this.byteArray.subarray(start, p);
87
- }
88
- switch (type) {
89
- case 'A':
90
- p += 1;
91
- break;
92
- case 'i':
93
- case 'I':
94
- case 'f':
95
- p += 4;
96
- break;
97
- case 'c':
98
- case 'C':
99
- p += 1;
100
- break;
101
- case 's':
102
- case 'S':
103
- p += 2;
104
- break;
105
- case 'Z':
106
- case 'H':
107
- while (p <= blockEnd && this.byteArray[p++] !== 0) { }
108
- break;
109
- case 'B': {
110
- const Btype = String.fromCharCode(this.byteArray[p++]);
111
- const limit = this._dataView.getInt32(p, true);
112
- p += 4;
113
- if (Btype === 'i' || Btype === 'I' || Btype === 'f') {
114
- p += limit << 2;
115
- }
116
- else if (Btype === 's' || Btype === 'S') {
117
- p += limit << 1;
71
+ if (this._cachedNUMERIC_MD === undefined) {
72
+ let p = this.b0 +
73
+ this.read_name_length +
74
+ this.num_cigar_bytes +
75
+ this.num_seq_bytes +
76
+ this.seq_length;
77
+ const blockEnd = this.bytes.end;
78
+ const ba = this.byteArray;
79
+ while (p < blockEnd) {
80
+ const tag1 = ba[p];
81
+ const tag2 = ba[p + 1];
82
+ const type = ba[p + 2];
83
+ p += 3;
84
+ // 'M' = 0x4D, 'D' = 0x44, 'Z' = 0x5A
85
+ if (tag1 === 0x4d && tag2 === 0x44 && type === 0x5a) {
86
+ const start = p;
87
+ while (p < blockEnd && ba[p] !== 0) {
88
+ p++;
118
89
  }
119
- else if (Btype === 'c' || Btype === 'C') {
120
- p += limit;
90
+ this._cachedNUMERIC_MD = ba.subarray(start, p);
91
+ }
92
+ switch (type) {
93
+ case 0x41: // 'A'
94
+ p += 1;
95
+ break;
96
+ case 0x69: // 'i'
97
+ case 0x49: // 'I'
98
+ case 0x66: // 'f'
99
+ p += 4;
100
+ break;
101
+ case 0x63: // 'c'
102
+ case 0x43: // 'C'
103
+ p += 1;
104
+ break;
105
+ case 0x73: // 's'
106
+ case 0x53: // 'S'
107
+ p += 2;
108
+ break;
109
+ case 0x5a: // 'Z'
110
+ case 0x48: // 'H'
111
+ while (p <= blockEnd && ba[p++] !== 0) { }
112
+ break;
113
+ case 0x42: {
114
+ // 'B'
115
+ const Btype = ba[p++];
116
+ const limit = this._dataView.getInt32(p, true);
117
+ p += 4;
118
+ if (Btype === 0x69 || Btype === 0x49 || Btype === 0x66) {
119
+ p += limit << 2;
120
+ }
121
+ else if (Btype === 0x73 || Btype === 0x53) {
122
+ p += limit << 1;
123
+ }
124
+ else if (Btype === 0x63 || Btype === 0x43) {
125
+ p += limit;
126
+ }
127
+ break;
121
128
  }
122
- break;
123
129
  }
124
130
  }
125
131
  }
126
- return undefined;
132
+ return this._cachedNUMERIC_MD === null ? undefined : this._cachedNUMERIC_MD;
127
133
  }
128
134
  get tags() {
135
+ if (this._cachedTags === undefined) {
136
+ this._cachedTags = this._computeTags();
137
+ }
138
+ return this._cachedTags;
139
+ }
140
+ _computeTags() {
129
141
  let p = this.b0 +
130
142
  this.read_name_length +
131
143
  this.num_cigar_bytes +
132
144
  this.num_seq_bytes +
133
145
  this.seq_length;
134
146
  const blockEnd = this.bytes.end;
147
+ const ba = this.byteArray;
135
148
  const tags = {};
136
149
  while (p < blockEnd) {
137
- const tag = String.fromCharCode(this.byteArray[p]) +
138
- String.fromCharCode(this.byteArray[p + 1]);
139
- const type = String.fromCharCode(this.byteArray[p + 2]);
150
+ const tag = String.fromCharCode(ba[p], ba[p + 1]);
151
+ const type = ba[p + 2];
140
152
  p += 3;
141
153
  switch (type) {
142
- case 'A':
143
- tags[tag] = String.fromCharCode(this.byteArray[p]);
154
+ case 0x41: // 'A'
155
+ tags[tag] = String.fromCharCode(ba[p]);
144
156
  p += 1;
145
157
  break;
146
- case 'i':
158
+ case 0x69: // 'i'
147
159
  tags[tag] = this._dataView.getInt32(p, true);
148
160
  p += 4;
149
161
  break;
150
- case 'I':
162
+ case 0x49: // 'I'
151
163
  tags[tag] = this._dataView.getUint32(p, true);
152
164
  p += 4;
153
165
  break;
154
- case 'c':
166
+ case 0x63: // 'c'
155
167
  tags[tag] = this._dataView.getInt8(p);
156
168
  p += 1;
157
169
  break;
158
- case 'C':
170
+ case 0x43: // 'C'
159
171
  tags[tag] = this._dataView.getUint8(p);
160
172
  p += 1;
161
173
  break;
162
- case 's':
174
+ case 0x73: // 's'
163
175
  tags[tag] = this._dataView.getInt16(p, true);
164
176
  p += 2;
165
177
  break;
166
- case 'S':
178
+ case 0x53: // 'S'
167
179
  tags[tag] = this._dataView.getUint16(p, true);
168
180
  p += 2;
169
181
  break;
170
- case 'f':
182
+ case 0x66: // 'f'
171
183
  tags[tag] = this._dataView.getFloat32(p, true);
172
184
  p += 4;
173
185
  break;
174
- case 'Z':
175
- case 'H': {
186
+ case 0x5a: // 'Z'
187
+ case 0x48: {
188
+ // 'H'
176
189
  const value = [];
177
190
  while (p <= blockEnd) {
178
- const cc = this.byteArray[p++];
191
+ const cc = ba[p++];
179
192
  if (cc !== 0) {
180
193
  value.push(String.fromCharCode(cc));
181
194
  }
@@ -186,66 +199,73 @@ export default class BamRecord {
186
199
  tags[tag] = value.join('');
187
200
  break;
188
201
  }
189
- case 'B': {
190
- const cc = this.byteArray[p++];
191
- const Btype = String.fromCharCode(cc);
202
+ case 0x42: {
203
+ // 'B'
204
+ const Btype = ba[p++];
192
205
  const limit = this._dataView.getInt32(p, true);
193
206
  p += 4;
194
- const absOffset = this.byteArray.byteOffset + p;
195
- if (Btype === 'i') {
207
+ const absOffset = ba.byteOffset + p;
208
+ if (Btype === 0x69) {
209
+ // 'i'
196
210
  if (absOffset % 4 === 0) {
197
- tags[tag] = new Int32Array(this.byteArray.buffer, absOffset, limit);
211
+ tags[tag] = new Int32Array(ba.buffer, absOffset, limit);
198
212
  }
199
213
  else {
200
- const bytes = this.byteArray.slice(p, p + (limit << 2));
214
+ const bytes = ba.slice(p, p + (limit << 2));
201
215
  tags[tag] = new Int32Array(bytes.buffer, bytes.byteOffset, limit);
202
216
  }
203
217
  p += limit << 2;
204
218
  }
205
- else if (Btype === 'I') {
219
+ else if (Btype === 0x49) {
220
+ // 'I'
206
221
  if (absOffset % 4 === 0) {
207
- tags[tag] = new Uint32Array(this.byteArray.buffer, absOffset, limit);
222
+ tags[tag] = new Uint32Array(ba.buffer, absOffset, limit);
208
223
  }
209
224
  else {
210
- const bytes = this.byteArray.slice(p, p + (limit << 2));
225
+ const bytes = ba.slice(p, p + (limit << 2));
211
226
  tags[tag] = new Uint32Array(bytes.buffer, bytes.byteOffset, limit);
212
227
  }
213
228
  p += limit << 2;
214
229
  }
215
- else if (Btype === 's') {
230
+ else if (Btype === 0x73) {
231
+ // 's'
216
232
  if (absOffset % 2 === 0) {
217
- tags[tag] = new Int16Array(this.byteArray.buffer, absOffset, limit);
233
+ tags[tag] = new Int16Array(ba.buffer, absOffset, limit);
218
234
  }
219
235
  else {
220
- const bytes = this.byteArray.slice(p, p + (limit << 1));
236
+ const bytes = ba.slice(p, p + (limit << 1));
221
237
  tags[tag] = new Int16Array(bytes.buffer, bytes.byteOffset, limit);
222
238
  }
223
239
  p += limit << 1;
224
240
  }
225
- else if (Btype === 'S') {
241
+ else if (Btype === 0x53) {
242
+ // 'S'
226
243
  if (absOffset % 2 === 0) {
227
- tags[tag] = new Uint16Array(this.byteArray.buffer, absOffset, limit);
244
+ tags[tag] = new Uint16Array(ba.buffer, absOffset, limit);
228
245
  }
229
246
  else {
230
- const bytes = this.byteArray.slice(p, p + (limit << 1));
247
+ const bytes = ba.slice(p, p + (limit << 1));
231
248
  tags[tag] = new Uint16Array(bytes.buffer, bytes.byteOffset, limit);
232
249
  }
233
250
  p += limit << 1;
234
251
  }
235
- else if (Btype === 'c') {
236
- tags[tag] = new Int8Array(this.byteArray.buffer, absOffset, limit);
252
+ else if (Btype === 0x63) {
253
+ // 'c'
254
+ tags[tag] = new Int8Array(ba.buffer, absOffset, limit);
237
255
  p += limit;
238
256
  }
239
- else if (Btype === 'C') {
240
- tags[tag] = new Uint8Array(this.byteArray.buffer, absOffset, limit);
257
+ else if (Btype === 0x43) {
258
+ // 'C'
259
+ tags[tag] = new Uint8Array(ba.buffer, absOffset, limit);
241
260
  p += limit;
242
261
  }
243
- else if (Btype === 'f') {
262
+ else if (Btype === 0x66) {
263
+ // 'f'
244
264
  if (absOffset % 4 === 0) {
245
- tags[tag] = new Float32Array(this.byteArray.buffer, absOffset, limit);
265
+ tags[tag] = new Float32Array(ba.buffer, absOffset, limit);
246
266
  }
247
267
  else {
248
- const bytes = this.byteArray.slice(p, p + (limit << 2));
268
+ const bytes = ba.slice(p, p + (limit << 2));
249
269
  tags[tag] = new Float32Array(bytes.buffer, bytes.byteOffset, limit);
250
270
  }
251
271
  p += limit << 2;
@@ -259,58 +279,49 @@ export default class BamRecord {
259
279
  }
260
280
  return tags;
261
281
  }
262
- /**
263
- * @returns {boolean} true if the read is paired, regardless of whether both
264
- * segments are mapped
265
- */
266
282
  isPaired() {
267
283
  return !!(this.flags & Constants.BAM_FPAIRED);
268
284
  }
269
- /** @returns {boolean} true if the read is paired, and both segments are mapped */
270
285
  isProperlyPaired() {
271
286
  return !!(this.flags & Constants.BAM_FPROPER_PAIR);
272
287
  }
273
- /** @returns {boolean} true if the read itself is unmapped; conflictive with isProperlyPaired */
274
288
  isSegmentUnmapped() {
275
289
  return !!(this.flags & Constants.BAM_FUNMAP);
276
290
  }
277
- /** @returns {boolean} true if the read itself is unmapped; conflictive with isProperlyPaired */
278
291
  isMateUnmapped() {
279
292
  return !!(this.flags & Constants.BAM_FMUNMAP);
280
293
  }
281
- /** @returns {boolean} true if the read is mapped to the reverse strand */
282
294
  isReverseComplemented() {
283
295
  return !!(this.flags & Constants.BAM_FREVERSE);
284
296
  }
285
- /** @returns {boolean} true if the mate is mapped to the reverse strand */
286
297
  isMateReverseComplemented() {
287
298
  return !!(this.flags & Constants.BAM_FMREVERSE);
288
299
  }
289
- /** @returns {boolean} true if this is read number 1 in a pair */
290
300
  isRead1() {
291
301
  return !!(this.flags & Constants.BAM_FREAD1);
292
302
  }
293
- /** @returns {boolean} true if this is read number 2 in a pair */
294
303
  isRead2() {
295
304
  return !!(this.flags & Constants.BAM_FREAD2);
296
305
  }
297
- /** @returns {boolean} true if this is a secondary alignment */
298
306
  isSecondary() {
299
307
  return !!(this.flags & Constants.BAM_FSECONDARY);
300
308
  }
301
- /** @returns {boolean} true if this read has failed QC checks */
302
309
  isFailedQc() {
303
310
  return !!(this.flags & Constants.BAM_FQCFAIL);
304
311
  }
305
- /** @returns {boolean} true if the read is an optical or PCR duplicate */
306
312
  isDuplicate() {
307
313
  return !!(this.flags & Constants.BAM_FDUP);
308
314
  }
309
- /** @returns {boolean} true if this is a supplementary alignment */
310
315
  isSupplementary() {
311
316
  return !!(this.flags & Constants.BAM_FSUPPLEMENTARY);
312
317
  }
313
318
  get cigarAndLength() {
319
+ if (this._cachedCigarAndLength === undefined) {
320
+ this._cachedCigarAndLength = this._computeCigarAndLength();
321
+ }
322
+ return this._cachedCigarAndLength;
323
+ }
324
+ _computeCigarAndLength() {
314
325
  if (this.isSegmentUnmapped()) {
315
326
  return {
316
327
  length_on_ref: 0,
@@ -340,24 +351,22 @@ export default class BamRecord {
340
351
  length_on_ref: lop,
341
352
  };
342
353
  }
343
- else {
344
- const absOffset = this.byteArray.byteOffset + p;
345
- const cigarView = absOffset % 4 === 0
346
- ? new Uint32Array(this.byteArray.buffer, absOffset, numCigarOps)
347
- : new Uint32Array(this.byteArray.slice(p, p + (numCigarOps << 2)).buffer, 0, numCigarOps);
348
- let lref = 0;
349
- for (let c = 0; c < numCigarOps; ++c) {
350
- const cigop = cigarView[c];
351
- const op = cigop & 0xf;
352
- if (!((1 << op) & CIGAR_SKIP_MASK)) {
353
- lref += cigop >> 4;
354
- }
354
+ const absOffset = this.byteArray.byteOffset + p;
355
+ const cigarView = absOffset % 4 === 0
356
+ ? new Uint32Array(this.byteArray.buffer, absOffset, numCigarOps)
357
+ : new Uint32Array(this.byteArray.slice(p, p + (numCigarOps << 2)).buffer, 0, numCigarOps);
358
+ let lref = 0;
359
+ for (let c = 0; c < numCigarOps; ++c) {
360
+ const cigop = cigarView[c];
361
+ const op = cigop & 0xf;
362
+ if (!((1 << op) & CIGAR_SKIP_MASK)) {
363
+ lref += cigop >> 4;
355
364
  }
356
- return {
357
- NUMERIC_CIGAR: cigarView,
358
- length_on_ref: lref,
359
- };
360
365
  }
366
+ return {
367
+ NUMERIC_CIGAR: cigarView,
368
+ length_on_ref: lref,
369
+ };
361
370
  }
362
371
  get length_on_ref() {
363
372
  return this.cigarAndLength.length_on_ref;
@@ -390,8 +399,7 @@ export default class BamRecord {
390
399
  }
391
400
  get NUMERIC_SEQ() {
392
401
  const p = this.b0 + this.read_name_length + this.num_cigar_bytes;
393
- const seqBytes = this.byteArray.subarray(p, p + this.num_seq_bytes);
394
- return new Uint8Array(seqBytes.buffer, seqBytes.byteOffset, this.num_seq_bytes);
402
+ return this.byteArray.subarray(p, p + this.num_seq_bytes);
395
403
  }
396
404
  get seq() {
397
405
  const numeric = this.NUMERIC_SEQ;
@@ -487,27 +495,4 @@ export default class BamRecord {
487
495
  return data;
488
496
  }
489
497
  }
490
- function cacheGetter(ctor, prop) {
491
- const desc = Object.getOwnPropertyDescriptor(ctor.prototype, prop);
492
- if (!desc) {
493
- throw new Error('OH NO, NO PROPERTY DESCRIPTOR');
494
- }
495
- // eslint-disable-next-line @typescript-eslint/unbound-method
496
- const getter = desc.get;
497
- if (!getter) {
498
- throw new Error('OH NO, NOT A GETTER');
499
- }
500
- Object.defineProperty(ctor.prototype, prop, {
501
- get() {
502
- const ret = getter.call(this);
503
- Object.defineProperty(this, prop, { value: ret });
504
- return ret;
505
- },
506
- });
507
- }
508
- cacheGetter(BamRecord, 'tags');
509
- cacheGetter(BamRecord, 'cigarAndLength');
510
- cacheGetter(BamRecord, 'seq');
511
- cacheGetter(BamRecord, 'qual');
512
- cacheGetter(BamRecord, 'end');
513
498
  //# sourceMappingURL=record.js.map
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gmod/bam",
3
- "version": "7.1.3",
3
+ "version": "7.1.5",
4
4
  "description": "Parser for BAM and BAM index (bai) files",
5
5
  "license": "MIT",
6
6
  "repository": "GMOD/bam-js",
package/src/cigar.ts ADDED
@@ -0,0 +1,9 @@
1
+ export const CIGAR_MATCH = 0
2
+ export const CIGAR_INS = 1
3
+ export const CIGAR_DEL = 2
4
+ export const CIGAR_REF_SKIP = 3
5
+ export const CIGAR_SOFT_CLIP = 4
6
+ export const CIGAR_HARD_CLIP = 5
7
+ export const CIGAR_PAD = 6
8
+ export const CIGAR_EQUAL = 7
9
+ export const CIGAR_DIFF = 8