@gmod/bam 7.1.11 → 7.1.12

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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## [7.1.12](https://github.com/GMOD/bam-js/compare/v7.1.11...v7.1.12) (2025-12-17)
2
+
3
+
4
+
1
5
  ## [7.1.11](https://github.com/GMOD/bam-js/compare/v7.1.10...v7.1.11) (2025-12-16)
2
6
 
3
7
 
package/README.md CHANGED
@@ -140,6 +140,8 @@ record.template_length // TLEN
140
140
 
141
141
  // Auxiliary data
142
142
  record.tags // object with all aux tags e.g. {MD: "100", NM: 0}
143
+ record.getTag('MD') // get a single tag (more efficient than record.tags when you only need one)
144
+ record.getTagRaw('MD') // get tag as Uint8Array for string tags (avoids string conversion)
143
145
  record.NUMERIC_MD // MD tag as Uint8Array (for fast mismatch rendering)
144
146
  record.NUMERIC_CIGAR // Uint32Array of packed CIGAR operations
145
147
  record.NUMERIC_SEQ // Uint8Array of packed sequence (4-bit encoded)
package/dist/record.d.ts CHANGED
@@ -18,6 +18,7 @@ export default class BamRecord {
18
18
  private _cachedTags?;
19
19
  private _cachedCigarAndLength?;
20
20
  private _cachedNUMERIC_MD?;
21
+ private _cachedTagsStart?;
21
22
  constructor(args: {
22
23
  bytes: Bytes;
23
24
  fileOffset: number;
@@ -32,9 +33,13 @@ export default class BamRecord {
32
33
  get qual(): Uint8Array<ArrayBufferLike> | null;
33
34
  get strand(): 1 | -1;
34
35
  get b0(): number;
36
+ get tagsStart(): number;
35
37
  get name(): string;
36
38
  get NUMERIC_MD(): Uint8Array<ArrayBufferLike> | undefined;
37
39
  get tags(): Record<string, unknown>;
40
+ getTag(tagName: string): unknown;
41
+ getTagRaw(tagName: string): string | number | number[] | Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike> | undefined;
42
+ private _findTag;
38
43
  private _computeTags;
39
44
  isPaired(): boolean;
40
45
  isProperlyPaired(): boolean;
package/dist/record.js CHANGED
@@ -71,6 +71,17 @@ class BamRecord {
71
71
  get b0() {
72
72
  return this.bytes.start + 36;
73
73
  }
74
+ get tagsStart() {
75
+ if (this._cachedTagsStart === undefined) {
76
+ this._cachedTagsStart =
77
+ this.b0 +
78
+ this.read_name_length +
79
+ this.num_cigar_bytes +
80
+ this.num_seq_bytes +
81
+ this.seq_length;
82
+ }
83
+ return this._cachedTagsStart;
84
+ }
74
85
  // batch fromCharCode: fastest for typical name lengths (see benchmarks/string-building.bench.ts)
75
86
  get name() {
76
87
  const len = this.read_name_length - 1;
@@ -84,80 +95,195 @@ class BamRecord {
84
95
  }
85
96
  get NUMERIC_MD() {
86
97
  if (this._cachedNUMERIC_MD === undefined) {
87
- let p = this.b0 +
88
- this.read_name_length +
89
- this.num_cigar_bytes +
90
- this.num_seq_bytes +
91
- this.seq_length;
92
- const blockEnd = this.bytes.end;
93
- const ba = this.byteArray;
94
- while (p < blockEnd) {
95
- const tag1 = ba[p];
96
- const tag2 = ba[p + 1];
97
- const type = ba[p + 2];
98
- p += 3;
99
- // 'M' = 0x4D, 'D' = 0x44, 'Z' = 0x5A
100
- if (tag1 === 0x4d && tag2 === 0x44 && type === 0x5a) {
101
- const start = p;
102
- while (p < blockEnd && ba[p] !== 0) {
103
- p++;
98
+ const result = this.getTagRaw('MD');
99
+ this._cachedNUMERIC_MD = result instanceof Uint8Array ? result : null;
100
+ }
101
+ return this._cachedNUMERIC_MD === null ? undefined : this._cachedNUMERIC_MD;
102
+ }
103
+ get tags() {
104
+ if (this._cachedTags === undefined) {
105
+ this._cachedTags = this._computeTags();
106
+ }
107
+ return this._cachedTags;
108
+ }
109
+ getTag(tagName) {
110
+ if (this._cachedTags !== undefined) {
111
+ return this._cachedTags[tagName];
112
+ }
113
+ return this._findTag(tagName, false);
114
+ }
115
+ getTagRaw(tagName) {
116
+ return this._findTag(tagName, true);
117
+ }
118
+ _findTag(tagName, raw) {
119
+ const tag1 = tagName.charCodeAt(0);
120
+ const tag2 = tagName.charCodeAt(1);
121
+ let p = this.tagsStart;
122
+ const blockEnd = this.bytes.end;
123
+ const ba = this.byteArray;
124
+ while (p < blockEnd) {
125
+ const currentTag1 = ba[p];
126
+ const currentTag2 = ba[p + 1];
127
+ const type = ba[p + 2];
128
+ p += 3;
129
+ const isMatch = currentTag1 === tag1 && currentTag2 === tag2;
130
+ switch (type) {
131
+ case 0x41: // 'A'
132
+ if (isMatch) {
133
+ return String.fromCharCode(ba[p]);
134
+ }
135
+ p += 1;
136
+ break;
137
+ case 0x69: // 'i'
138
+ if (isMatch) {
139
+ return this._dataView.getInt32(p, true);
140
+ }
141
+ p += 4;
142
+ break;
143
+ case 0x49: // 'I'
144
+ if (isMatch) {
145
+ return this._dataView.getUint32(p, true);
146
+ }
147
+ p += 4;
148
+ break;
149
+ case 0x63: // 'c'
150
+ if (isMatch) {
151
+ return this._dataView.getInt8(p);
152
+ }
153
+ p += 1;
154
+ break;
155
+ case 0x43: // 'C'
156
+ if (isMatch) {
157
+ return this._dataView.getUint8(p);
158
+ }
159
+ p += 1;
160
+ break;
161
+ case 0x73: // 's'
162
+ if (isMatch) {
163
+ return this._dataView.getInt16(p, true);
104
164
  }
105
- this._cachedNUMERIC_MD = ba.subarray(start, p);
165
+ p += 2;
166
+ break;
167
+ case 0x53: // 'S'
168
+ if (isMatch) {
169
+ return this._dataView.getUint16(p, true);
170
+ }
171
+ p += 2;
172
+ break;
173
+ case 0x66: // 'f'
174
+ if (isMatch) {
175
+ return this._dataView.getFloat32(p, true);
176
+ }
177
+ p += 4;
178
+ break;
179
+ case 0x5a: // 'Z'
180
+ case 0x48: {
181
+ // 'H'
182
+ if (isMatch) {
183
+ const start = p;
184
+ while (p < blockEnd && ba[p] !== 0) {
185
+ p++;
186
+ }
187
+ if (raw) {
188
+ return ba.subarray(start, p);
189
+ }
190
+ const value = [];
191
+ for (let i = start; i < p; i++) {
192
+ value.push(String.fromCharCode(ba[i]));
193
+ }
194
+ return value.join('');
195
+ }
196
+ while (p <= blockEnd && ba[p++] !== 0) { }
197
+ break;
106
198
  }
107
- switch (type) {
108
- case 0x41: // 'A'
109
- p += 1;
110
- break;
111
- case 0x69: // 'i'
112
- case 0x49: // 'I'
113
- case 0x66: // 'f'
114
- p += 4;
115
- break;
116
- case 0x63: // 'c'
117
- case 0x43: // 'C'
118
- p += 1;
119
- break;
120
- case 0x73: // 's'
121
- case 0x53: // 'S'
122
- p += 2;
123
- break;
124
- case 0x5a: // 'Z'
125
- case 0x48: // 'H'
126
- while (p <= blockEnd && ba[p++] !== 0) { }
127
- break;
128
- case 0x42: {
129
- // 'B'
130
- const Btype = ba[p++];
131
- const limit = this._dataView.getInt32(p, true);
132
- p += 4;
133
- if (Btype === 0x69 || Btype === 0x49 || Btype === 0x66) {
134
- p += limit << 2;
199
+ case 0x42: {
200
+ // 'B'
201
+ const Btype = ba[p++];
202
+ const limit = this._dataView.getInt32(p, true);
203
+ p += 4;
204
+ const absOffset = ba.byteOffset + p;
205
+ if (isMatch) {
206
+ if (Btype === 0x69) {
207
+ // 'i'
208
+ if (absOffset % 4 === 0) {
209
+ return new Int32Array(ba.buffer, absOffset, limit);
210
+ }
211
+ const arr = new Array(limit);
212
+ for (let i = 0; i < limit; i++) {
213
+ arr[i] = this._dataView.getInt32(p + i * 4, true);
214
+ }
215
+ return arr;
216
+ }
217
+ else if (Btype === 0x49) {
218
+ // 'I'
219
+ if (absOffset % 4 === 0) {
220
+ return new Uint32Array(ba.buffer, absOffset, limit);
221
+ }
222
+ const arr = new Array(limit);
223
+ for (let i = 0; i < limit; i++) {
224
+ arr[i] = this._dataView.getUint32(p + i * 4, true);
225
+ }
226
+ return arr;
227
+ }
228
+ else if (Btype === 0x73) {
229
+ // 's'
230
+ if (absOffset % 2 === 0) {
231
+ return new Int16Array(ba.buffer, absOffset, limit);
232
+ }
233
+ const arr = new Array(limit);
234
+ for (let i = 0; i < limit; i++) {
235
+ arr[i] = this._dataView.getInt16(p + i * 2, true);
236
+ }
237
+ return arr;
238
+ }
239
+ else if (Btype === 0x53) {
240
+ // 'S'
241
+ if (absOffset % 2 === 0) {
242
+ return new Uint16Array(ba.buffer, absOffset, limit);
243
+ }
244
+ const arr = new Array(limit);
245
+ for (let i = 0; i < limit; i++) {
246
+ arr[i] = this._dataView.getUint16(p + i * 2, true);
247
+ }
248
+ return arr;
249
+ }
250
+ else if (Btype === 0x63) {
251
+ // 'c'
252
+ return new Int8Array(ba.buffer, absOffset, limit);
135
253
  }
136
- else if (Btype === 0x73 || Btype === 0x53) {
137
- p += limit << 1;
254
+ else if (Btype === 0x43) {
255
+ // 'C'
256
+ return new Uint8Array(ba.buffer, absOffset, limit);
138
257
  }
139
- else if (Btype === 0x63 || Btype === 0x43) {
140
- p += limit;
258
+ else if (Btype === 0x66) {
259
+ // 'f'
260
+ if (absOffset % 4 === 0) {
261
+ return new Float32Array(ba.buffer, absOffset, limit);
262
+ }
263
+ const arr = new Array(limit);
264
+ for (let i = 0; i < limit; i++) {
265
+ arr[i] = this._dataView.getFloat32(p + i * 4, true);
266
+ }
267
+ return arr;
141
268
  }
142
- break;
143
269
  }
270
+ if (Btype === 0x69 || Btype === 0x49 || Btype === 0x66) {
271
+ p += limit << 2;
272
+ }
273
+ else if (Btype === 0x73 || Btype === 0x53) {
274
+ p += limit << 1;
275
+ }
276
+ else if (Btype === 0x63 || Btype === 0x43) {
277
+ p += limit;
278
+ }
279
+ break;
144
280
  }
145
281
  }
146
282
  }
147
- return this._cachedNUMERIC_MD === null ? undefined : this._cachedNUMERIC_MD;
148
- }
149
- get tags() {
150
- if (this._cachedTags === undefined) {
151
- this._cachedTags = this._computeTags();
152
- }
153
- return this._cachedTags;
283
+ return undefined;
154
284
  }
155
285
  _computeTags() {
156
- let p = this.b0 +
157
- this.read_name_length +
158
- this.num_cigar_bytes +
159
- this.num_seq_bytes +
160
- this.seq_length;
286
+ let p = this.tagsStart;
161
287
  const blockEnd = this.bytes.end;
162
288
  const ba = this.byteArray;
163
289
  const tags = {};
@@ -226,8 +352,11 @@ class BamRecord {
226
352
  tags[tag] = new Int32Array(ba.buffer, absOffset, limit);
227
353
  }
228
354
  else {
229
- const bytes = ba.slice(p, p + (limit << 2));
230
- tags[tag] = new Int32Array(bytes.buffer, bytes.byteOffset, limit);
355
+ const arr = new Array(limit);
356
+ for (let i = 0; i < limit; i++) {
357
+ arr[i] = this._dataView.getInt32(p + i * 4, true);
358
+ }
359
+ tags[tag] = arr;
231
360
  }
232
361
  p += limit << 2;
233
362
  }
@@ -237,8 +366,11 @@ class BamRecord {
237
366
  tags[tag] = new Uint32Array(ba.buffer, absOffset, limit);
238
367
  }
239
368
  else {
240
- const bytes = ba.slice(p, p + (limit << 2));
241
- tags[tag] = new Uint32Array(bytes.buffer, bytes.byteOffset, limit);
369
+ const arr = new Array(limit);
370
+ for (let i = 0; i < limit; i++) {
371
+ arr[i] = this._dataView.getUint32(p + i * 4, true);
372
+ }
373
+ tags[tag] = arr;
242
374
  }
243
375
  p += limit << 2;
244
376
  }
@@ -248,8 +380,11 @@ class BamRecord {
248
380
  tags[tag] = new Int16Array(ba.buffer, absOffset, limit);
249
381
  }
250
382
  else {
251
- const bytes = ba.slice(p, p + (limit << 1));
252
- tags[tag] = new Int16Array(bytes.buffer, bytes.byteOffset, limit);
383
+ const arr = new Array(limit);
384
+ for (let i = 0; i < limit; i++) {
385
+ arr[i] = this._dataView.getInt16(p + i * 2, true);
386
+ }
387
+ tags[tag] = arr;
253
388
  }
254
389
  p += limit << 1;
255
390
  }
@@ -259,8 +394,11 @@ class BamRecord {
259
394
  tags[tag] = new Uint16Array(ba.buffer, absOffset, limit);
260
395
  }
261
396
  else {
262
- const bytes = ba.slice(p, p + (limit << 1));
263
- tags[tag] = new Uint16Array(bytes.buffer, bytes.byteOffset, limit);
397
+ const arr = new Array(limit);
398
+ for (let i = 0; i < limit; i++) {
399
+ arr[i] = this._dataView.getUint16(p + i * 2, true);
400
+ }
401
+ tags[tag] = arr;
264
402
  }
265
403
  p += limit << 1;
266
404
  }
@@ -280,8 +418,11 @@ class BamRecord {
280
418
  tags[tag] = new Float32Array(ba.buffer, absOffset, limit);
281
419
  }
282
420
  else {
283
- const bytes = ba.slice(p, p + (limit << 2));
284
- tags[tag] = new Float32Array(bytes.buffer, bytes.byteOffset, limit);
421
+ const arr = new Array(limit);
422
+ for (let i = 0; i < limit; i++) {
423
+ arr[i] = this._dataView.getFloat32(p + i * 4, true);
424
+ }
425
+ tags[tag] = arr;
285
426
  }
286
427
  p += limit << 2;
287
428
  }
@@ -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/record.d.ts CHANGED
@@ -18,6 +18,7 @@ export default class BamRecord {
18
18
  private _cachedTags?;
19
19
  private _cachedCigarAndLength?;
20
20
  private _cachedNUMERIC_MD?;
21
+ private _cachedTagsStart?;
21
22
  constructor(args: {
22
23
  bytes: Bytes;
23
24
  fileOffset: number;
@@ -32,9 +33,13 @@ export default class BamRecord {
32
33
  get qual(): Uint8Array<ArrayBufferLike> | null;
33
34
  get strand(): 1 | -1;
34
35
  get b0(): number;
36
+ get tagsStart(): number;
35
37
  get name(): string;
36
38
  get NUMERIC_MD(): Uint8Array<ArrayBufferLike> | undefined;
37
39
  get tags(): Record<string, unknown>;
40
+ getTag(tagName: string): unknown;
41
+ getTagRaw(tagName: string): string | number | number[] | Int8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Int16Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Int32Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike> | Float32Array<ArrayBufferLike> | undefined;
42
+ private _findTag;
38
43
  private _computeTags;
39
44
  isPaired(): boolean;
40
45
  isProperlyPaired(): boolean;