@gmod/bam 3.0.3 → 4.0.1

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,11 @@
1
+ ## [4.0.1](https://github.com/GMOD/bam-js/compare/v4.0.0...v4.0.1) (2024-11-12)
2
+
3
+
4
+
5
+ # [4.0.0](https://github.com/GMOD/bam-js/compare/v3.0.3...v4.0.0) (2024-11-12)
6
+
7
+
8
+
1
9
  ## [3.0.3](https://github.com/GMOD/bam-js/compare/v3.0.0...v3.0.3) (2024-11-11)
2
10
 
3
11
 
package/dist/record.d.ts CHANGED
@@ -19,8 +19,7 @@ export default class BamRecord {
19
19
  get id(): number;
20
20
  get mq(): number | undefined;
21
21
  get score(): number | undefined;
22
- get qual(): string | undefined;
23
- get qualRaw(): Buffer | undefined;
22
+ get qual(): Buffer | undefined;
24
23
  get strand(): 1 | -1;
25
24
  get b0(): number;
26
25
  get name(): string;
@@ -62,7 +61,7 @@ export default class BamRecord {
62
61
  get read_name_length(): number;
63
62
  get num_seq_bytes(): number;
64
63
  get seq(): string;
65
- get pair_orientation(): string;
64
+ get pair_orientation(): string | undefined;
66
65
  get bin_mq_nl(): number;
67
66
  get flag_nc(): number;
68
67
  get seq_length(): number;
package/dist/record.js CHANGED
@@ -37,10 +37,6 @@ class BamRecord {
37
37
  return this.mq;
38
38
  }
39
39
  get qual() {
40
- var _a;
41
- return (_a = this.qualRaw) === null || _a === void 0 ? void 0 : _a.join(' ');
42
- }
43
- get qualRaw() {
44
40
  if (this.isSegmentUnmapped()) {
45
41
  return;
46
42
  }
@@ -72,162 +68,143 @@ class BamRecord {
72
68
  const tag = String.fromCharCode(byteArray[p], byteArray[p + 1]);
73
69
  const type = String.fromCharCode(byteArray[p + 2]);
74
70
  p += 3;
75
- let value;
76
- switch (type) {
77
- case 'A': {
78
- value = String.fromCharCode(byteArray[p]);
79
- p += 1;
80
- break;
81
- }
82
- case 'i': {
83
- value = byteArray.readInt32LE(p);
84
- p += 4;
85
- break;
86
- }
87
- case 'I': {
88
- value = byteArray.readUInt32LE(p);
89
- p += 4;
90
- break;
91
- }
92
- case 'c': {
93
- value = byteArray.readInt8(p);
94
- p += 1;
95
- break;
96
- }
97
- case 'C': {
98
- value = byteArray.readUInt8(p);
99
- p += 1;
100
- break;
101
- }
102
- case 's': {
103
- value = byteArray.readInt16LE(p);
104
- p += 2;
105
- break;
106
- }
107
- case 'S': {
108
- value = byteArray.readUInt16LE(p);
109
- p += 2;
110
- break;
111
- }
112
- case 'f': {
113
- value = byteArray.readFloatLE(p);
114
- p += 4;
115
- break;
116
- }
117
- case 'Z':
118
- case 'H': {
119
- value = '';
120
- while (p <= blockEnd) {
121
- const cc = byteArray[p++];
122
- if (cc === 0) {
123
- break;
124
- }
125
- else {
126
- value += String.fromCharCode(cc);
127
- }
128
- }
129
- break;
130
- }
131
- case 'B': {
132
- value = '';
71
+ if (type === 'A') {
72
+ tags[tag] = String.fromCharCode(byteArray[p]);
73
+ p += 1;
74
+ }
75
+ else if (type === 'i') {
76
+ tags[tag] = byteArray.readInt32LE(p);
77
+ p += 4;
78
+ }
79
+ else if (type === 'I') {
80
+ tags[tag] = byteArray.readUInt32LE(p);
81
+ p += 4;
82
+ }
83
+ else if (type === 'c') {
84
+ tags[tag] = byteArray.readInt8(p);
85
+ p += 1;
86
+ }
87
+ else if (type === 'C') {
88
+ tags[tag] = byteArray.readUInt8(p);
89
+ p += 1;
90
+ }
91
+ else if (type === 's') {
92
+ tags[tag] = byteArray.readInt16LE(p);
93
+ p += 2;
94
+ }
95
+ else if (type === 'S') {
96
+ tags[tag] = byteArray.readUInt16LE(p);
97
+ p += 2;
98
+ }
99
+ else if (type === 'f') {
100
+ tags[tag] = byteArray.readFloatLE(p);
101
+ p += 4;
102
+ }
103
+ else if (type === 'Z' || type === 'H') {
104
+ const value = [];
105
+ while (p <= blockEnd) {
133
106
  const cc = byteArray[p++];
134
- const Btype = String.fromCharCode(cc);
135
- const limit = byteArray.readInt32LE(p);
136
- p += 4;
137
- if (Btype === 'i') {
138
- if (tag === 'CG') {
139
- for (let k = 0; k < limit; k++) {
140
- const cigop = byteArray.readInt32LE(p);
141
- const lop = cigop >> 4;
142
- const op = CIGAR_DECODER[cigop & 0xf];
143
- value += lop + op;
144
- p += 4;
145
- }
146
- }
147
- else {
148
- for (let k = 0; k < limit; k++) {
149
- value += byteArray.readInt32LE(p);
150
- if (k + 1 < limit) {
151
- value += ',';
152
- }
153
- p += 4;
154
- }
155
- }
107
+ if (cc !== 0) {
108
+ value.push(String.fromCharCode(cc));
156
109
  }
157
- if (Btype === 'I') {
158
- if (tag === 'CG') {
159
- for (let k = 0; k < limit; k++) {
160
- const cigop = byteArray.readUInt32LE(p);
161
- const lop = cigop >> 4;
162
- const op = CIGAR_DECODER[cigop & 0xf];
163
- value += lop + op;
164
- p += 4;
165
- }
166
- }
167
- else {
168
- for (let k = 0; k < limit; k++) {
169
- value += byteArray.readUInt32LE(p);
170
- if (k + 1 < limit) {
171
- value += ',';
172
- }
173
- p += 4;
174
- }
175
- }
110
+ else {
111
+ break;
176
112
  }
177
- if (Btype === 's') {
178
- for (let k = 0; k < limit; k++) {
179
- value += byteArray.readInt16LE(p);
180
- if (k + 1 < limit) {
181
- value += ',';
182
- }
183
- p += 2;
184
- }
185
- }
186
- if (Btype === 'S') {
113
+ }
114
+ tags[tag] = value.join('');
115
+ }
116
+ else if (type === 'B') {
117
+ const cc = byteArray[p++];
118
+ const Btype = String.fromCharCode(cc);
119
+ const limit = byteArray.readInt32LE(p);
120
+ p += 4;
121
+ if (Btype === 'i') {
122
+ if (tag === 'CG') {
123
+ const value = [];
187
124
  for (let k = 0; k < limit; k++) {
188
- value += byteArray.readUInt16LE(p);
189
- if (k + 1 < limit) {
190
- value += ',';
191
- }
192
- p += 2;
125
+ const cigop = byteArray.readInt32LE(p);
126
+ const lop = cigop >> 4;
127
+ const op = CIGAR_DECODER[cigop & 0xf];
128
+ value.push(lop + op);
129
+ p += 4;
193
130
  }
131
+ tags[tag] = value.join('');
194
132
  }
195
- if (Btype === 'c') {
133
+ else {
134
+ const value = [];
196
135
  for (let k = 0; k < limit; k++) {
197
- value += byteArray.readInt8(p);
198
- if (k + 1 < limit) {
199
- value += ',';
200
- }
201
- p += 1;
136
+ value.push(byteArray.readInt32LE(p));
137
+ p += 4;
202
138
  }
139
+ tags[tag] = value;
203
140
  }
204
- if (Btype === 'C') {
141
+ }
142
+ else if (Btype === 'I') {
143
+ if (tag === 'CG') {
144
+ const value = [];
205
145
  for (let k = 0; k < limit; k++) {
206
- value += byteArray.readUInt8(p);
207
- if (k + 1 < limit) {
208
- value += ',';
209
- }
210
- p += 1;
146
+ const cigop = byteArray.readUInt32LE(p);
147
+ const lop = cigop >> 4;
148
+ const op = CIGAR_DECODER[cigop & 0xf];
149
+ value.push(lop + op);
150
+ p += 4;
211
151
  }
152
+ tags[tag] = value.join('');
212
153
  }
213
- if (Btype === 'f') {
154
+ else {
155
+ const value = [];
214
156
  for (let k = 0; k < limit; k++) {
215
- value += byteArray.readFloatLE(p);
216
- if (k + 1 < limit) {
217
- value += ',';
218
- }
157
+ value.push(byteArray.readUInt32LE(p));
219
158
  p += 4;
220
159
  }
160
+ tags[tag] = value;
221
161
  }
222
- break;
223
162
  }
224
- default: {
225
- console.warn(`Unknown BAM tag type '${type}', tags may be incomplete`);
226
- value = undefined;
227
- p = blockEnd;
228
- } // stop parsing tags
163
+ else if (Btype === 's') {
164
+ const value = [];
165
+ for (let k = 0; k < limit; k++) {
166
+ value.push(byteArray.readInt16LE(p));
167
+ p += 2;
168
+ }
169
+ tags[tag] = value;
170
+ }
171
+ else if (Btype === 'S') {
172
+ const value = [];
173
+ for (let k = 0; k < limit; k++) {
174
+ value.push(byteArray.readUInt16LE(p));
175
+ p += 2;
176
+ }
177
+ tags[tag] = value;
178
+ }
179
+ else if (Btype === 'c') {
180
+ const value = [];
181
+ for (let k = 0; k < limit; k++) {
182
+ value.push(byteArray.readInt8(p));
183
+ p += 1;
184
+ }
185
+ tags[tag] = value;
186
+ }
187
+ else if (Btype === 'C') {
188
+ const value = [];
189
+ for (let k = 0; k < limit; k++) {
190
+ value.push(byteArray.readUInt8(p));
191
+ p += 1;
192
+ }
193
+ tags[tag] = value;
194
+ }
195
+ else if (Btype === 'f') {
196
+ const value = [];
197
+ for (let k = 0; k < limit; k++) {
198
+ value.push(byteArray.readFloatLE(p));
199
+ p += 4;
200
+ }
201
+ tags[tag] = value;
202
+ }
203
+ }
204
+ else {
205
+ console.error('Unknown BAM tag type', type);
206
+ break;
229
207
  }
230
- tags[tag] = value;
231
208
  }
232
209
  return tags;
233
210
  }
@@ -291,7 +268,7 @@ class BamRecord {
291
268
  }
292
269
  const numCigarOps = this.num_cigar_ops;
293
270
  let p = this.b0 + this.read_name_length;
294
- let CIGAR = '';
271
+ const CIGAR = [];
295
272
  // check for CG tag by inspecting whether the CIGAR field contains a clip
296
273
  // that consumes entire seqLen
297
274
  let cigop = this.byteArray.readInt32LE(p);
@@ -318,16 +295,16 @@ class BamRecord {
318
295
  cigop = this.byteArray.readInt32LE(p);
319
296
  lop = cigop >> 4;
320
297
  op = CIGAR_DECODER[cigop & 0xf];
321
- CIGAR += lop + op;
322
- // soft clip, hard clip, and insertion don't count toward
323
- // the length on the reference
298
+ CIGAR.push(lop + op);
299
+ // soft clip, hard clip, and insertion don't count toward the length on
300
+ // the reference
324
301
  if (op !== 'H' && op !== 'S' && op !== 'I') {
325
302
  lref += lop;
326
303
  }
327
304
  p += 4;
328
305
  }
329
306
  return {
330
- CIGAR,
307
+ CIGAR: CIGAR.join(''),
331
308
  length_on_ref: lref,
332
309
  };
333
310
  }
@@ -352,18 +329,18 @@ class BamRecord {
352
329
  const p = this.b0 + this.read_name_length + this.num_cigar_ops * 4;
353
330
  const seqBytes = this.num_seq_bytes;
354
331
  const len = this.seq_length;
355
- let buf = '';
332
+ const buf = [];
356
333
  let i = 0;
357
334
  for (let j = 0; j < seqBytes; ++j) {
358
335
  const sb = byteArray[p + j];
359
- buf += SEQRET_DECODER[(sb & 0xf0) >> 4];
336
+ buf.push(SEQRET_DECODER[(sb & 0xf0) >> 4]);
360
337
  i++;
361
338
  if (i < len) {
362
- buf += SEQRET_DECODER[sb & 0x0f];
339
+ buf.push(SEQRET_DECODER[sb & 0x0f]);
363
340
  i++;
364
341
  }
365
342
  }
366
- return buf;
343
+ return buf.join('');
367
344
  }
368
345
  // adapted from igv.js
369
346
  get pair_orientation() {
@@ -398,7 +375,7 @@ class BamRecord {
398
375
  }
399
376
  return tmp.join('');
400
377
  }
401
- return '';
378
+ return undefined;
402
379
  }
403
380
  get bin_mq_nl() {
404
381
  return this.byteArray.readInt32LE(this.bytes.start + 12);
@@ -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
@@ -19,8 +19,7 @@ export default class BamRecord {
19
19
  get id(): number;
20
20
  get mq(): number | undefined;
21
21
  get score(): number | undefined;
22
- get qual(): string | undefined;
23
- get qualRaw(): Buffer | undefined;
22
+ get qual(): Buffer | undefined;
24
23
  get strand(): 1 | -1;
25
24
  get b0(): number;
26
25
  get name(): string;
@@ -62,7 +61,7 @@ export default class BamRecord {
62
61
  get read_name_length(): number;
63
62
  get num_seq_bytes(): number;
64
63
  get seq(): string;
65
- get pair_orientation(): string;
64
+ get pair_orientation(): string | undefined;
66
65
  get bin_mq_nl(): number;
67
66
  get flag_nc(): number;
68
67
  get seq_length(): number;
package/esm/record.js CHANGED
@@ -32,10 +32,6 @@ export default class BamRecord {
32
32
  return this.mq;
33
33
  }
34
34
  get qual() {
35
- var _a;
36
- return (_a = this.qualRaw) === null || _a === void 0 ? void 0 : _a.join(' ');
37
- }
38
- get qualRaw() {
39
35
  if (this.isSegmentUnmapped()) {
40
36
  return;
41
37
  }
@@ -67,162 +63,143 @@ export default class BamRecord {
67
63
  const tag = String.fromCharCode(byteArray[p], byteArray[p + 1]);
68
64
  const type = String.fromCharCode(byteArray[p + 2]);
69
65
  p += 3;
70
- let value;
71
- switch (type) {
72
- case 'A': {
73
- value = String.fromCharCode(byteArray[p]);
74
- p += 1;
75
- break;
76
- }
77
- case 'i': {
78
- value = byteArray.readInt32LE(p);
79
- p += 4;
80
- break;
81
- }
82
- case 'I': {
83
- value = byteArray.readUInt32LE(p);
84
- p += 4;
85
- break;
86
- }
87
- case 'c': {
88
- value = byteArray.readInt8(p);
89
- p += 1;
90
- break;
91
- }
92
- case 'C': {
93
- value = byteArray.readUInt8(p);
94
- p += 1;
95
- break;
96
- }
97
- case 's': {
98
- value = byteArray.readInt16LE(p);
99
- p += 2;
100
- break;
101
- }
102
- case 'S': {
103
- value = byteArray.readUInt16LE(p);
104
- p += 2;
105
- break;
106
- }
107
- case 'f': {
108
- value = byteArray.readFloatLE(p);
109
- p += 4;
110
- break;
111
- }
112
- case 'Z':
113
- case 'H': {
114
- value = '';
115
- while (p <= blockEnd) {
116
- const cc = byteArray[p++];
117
- if (cc === 0) {
118
- break;
119
- }
120
- else {
121
- value += String.fromCharCode(cc);
122
- }
123
- }
124
- break;
125
- }
126
- case 'B': {
127
- value = '';
66
+ if (type === 'A') {
67
+ tags[tag] = String.fromCharCode(byteArray[p]);
68
+ p += 1;
69
+ }
70
+ else if (type === 'i') {
71
+ tags[tag] = byteArray.readInt32LE(p);
72
+ p += 4;
73
+ }
74
+ else if (type === 'I') {
75
+ tags[tag] = byteArray.readUInt32LE(p);
76
+ p += 4;
77
+ }
78
+ else if (type === 'c') {
79
+ tags[tag] = byteArray.readInt8(p);
80
+ p += 1;
81
+ }
82
+ else if (type === 'C') {
83
+ tags[tag] = byteArray.readUInt8(p);
84
+ p += 1;
85
+ }
86
+ else if (type === 's') {
87
+ tags[tag] = byteArray.readInt16LE(p);
88
+ p += 2;
89
+ }
90
+ else if (type === 'S') {
91
+ tags[tag] = byteArray.readUInt16LE(p);
92
+ p += 2;
93
+ }
94
+ else if (type === 'f') {
95
+ tags[tag] = byteArray.readFloatLE(p);
96
+ p += 4;
97
+ }
98
+ else if (type === 'Z' || type === 'H') {
99
+ const value = [];
100
+ while (p <= blockEnd) {
128
101
  const cc = byteArray[p++];
129
- const Btype = String.fromCharCode(cc);
130
- const limit = byteArray.readInt32LE(p);
131
- p += 4;
132
- if (Btype === 'i') {
133
- if (tag === 'CG') {
134
- for (let k = 0; k < limit; k++) {
135
- const cigop = byteArray.readInt32LE(p);
136
- const lop = cigop >> 4;
137
- const op = CIGAR_DECODER[cigop & 0xf];
138
- value += lop + op;
139
- p += 4;
140
- }
141
- }
142
- else {
143
- for (let k = 0; k < limit; k++) {
144
- value += byteArray.readInt32LE(p);
145
- if (k + 1 < limit) {
146
- value += ',';
147
- }
148
- p += 4;
149
- }
150
- }
102
+ if (cc !== 0) {
103
+ value.push(String.fromCharCode(cc));
151
104
  }
152
- if (Btype === 'I') {
153
- if (tag === 'CG') {
154
- for (let k = 0; k < limit; k++) {
155
- const cigop = byteArray.readUInt32LE(p);
156
- const lop = cigop >> 4;
157
- const op = CIGAR_DECODER[cigop & 0xf];
158
- value += lop + op;
159
- p += 4;
160
- }
161
- }
162
- else {
163
- for (let k = 0; k < limit; k++) {
164
- value += byteArray.readUInt32LE(p);
165
- if (k + 1 < limit) {
166
- value += ',';
167
- }
168
- p += 4;
169
- }
170
- }
105
+ else {
106
+ break;
171
107
  }
172
- if (Btype === 's') {
173
- for (let k = 0; k < limit; k++) {
174
- value += byteArray.readInt16LE(p);
175
- if (k + 1 < limit) {
176
- value += ',';
177
- }
178
- p += 2;
179
- }
180
- }
181
- if (Btype === 'S') {
108
+ }
109
+ tags[tag] = value.join('');
110
+ }
111
+ else if (type === 'B') {
112
+ const cc = byteArray[p++];
113
+ const Btype = String.fromCharCode(cc);
114
+ const limit = byteArray.readInt32LE(p);
115
+ p += 4;
116
+ if (Btype === 'i') {
117
+ if (tag === 'CG') {
118
+ const value = [];
182
119
  for (let k = 0; k < limit; k++) {
183
- value += byteArray.readUInt16LE(p);
184
- if (k + 1 < limit) {
185
- value += ',';
186
- }
187
- p += 2;
120
+ const cigop = byteArray.readInt32LE(p);
121
+ const lop = cigop >> 4;
122
+ const op = CIGAR_DECODER[cigop & 0xf];
123
+ value.push(lop + op);
124
+ p += 4;
188
125
  }
126
+ tags[tag] = value.join('');
189
127
  }
190
- if (Btype === 'c') {
128
+ else {
129
+ const value = [];
191
130
  for (let k = 0; k < limit; k++) {
192
- value += byteArray.readInt8(p);
193
- if (k + 1 < limit) {
194
- value += ',';
195
- }
196
- p += 1;
131
+ value.push(byteArray.readInt32LE(p));
132
+ p += 4;
197
133
  }
134
+ tags[tag] = value;
198
135
  }
199
- if (Btype === 'C') {
136
+ }
137
+ else if (Btype === 'I') {
138
+ if (tag === 'CG') {
139
+ const value = [];
200
140
  for (let k = 0; k < limit; k++) {
201
- value += byteArray.readUInt8(p);
202
- if (k + 1 < limit) {
203
- value += ',';
204
- }
205
- p += 1;
141
+ const cigop = byteArray.readUInt32LE(p);
142
+ const lop = cigop >> 4;
143
+ const op = CIGAR_DECODER[cigop & 0xf];
144
+ value.push(lop + op);
145
+ p += 4;
206
146
  }
147
+ tags[tag] = value.join('');
207
148
  }
208
- if (Btype === 'f') {
149
+ else {
150
+ const value = [];
209
151
  for (let k = 0; k < limit; k++) {
210
- value += byteArray.readFloatLE(p);
211
- if (k + 1 < limit) {
212
- value += ',';
213
- }
152
+ value.push(byteArray.readUInt32LE(p));
214
153
  p += 4;
215
154
  }
155
+ tags[tag] = value;
216
156
  }
217
- break;
218
157
  }
219
- default: {
220
- console.warn(`Unknown BAM tag type '${type}', tags may be incomplete`);
221
- value = undefined;
222
- p = blockEnd;
223
- } // stop parsing tags
158
+ else if (Btype === 's') {
159
+ const value = [];
160
+ for (let k = 0; k < limit; k++) {
161
+ value.push(byteArray.readInt16LE(p));
162
+ p += 2;
163
+ }
164
+ tags[tag] = value;
165
+ }
166
+ else if (Btype === 'S') {
167
+ const value = [];
168
+ for (let k = 0; k < limit; k++) {
169
+ value.push(byteArray.readUInt16LE(p));
170
+ p += 2;
171
+ }
172
+ tags[tag] = value;
173
+ }
174
+ else if (Btype === 'c') {
175
+ const value = [];
176
+ for (let k = 0; k < limit; k++) {
177
+ value.push(byteArray.readInt8(p));
178
+ p += 1;
179
+ }
180
+ tags[tag] = value;
181
+ }
182
+ else if (Btype === 'C') {
183
+ const value = [];
184
+ for (let k = 0; k < limit; k++) {
185
+ value.push(byteArray.readUInt8(p));
186
+ p += 1;
187
+ }
188
+ tags[tag] = value;
189
+ }
190
+ else if (Btype === 'f') {
191
+ const value = [];
192
+ for (let k = 0; k < limit; k++) {
193
+ value.push(byteArray.readFloatLE(p));
194
+ p += 4;
195
+ }
196
+ tags[tag] = value;
197
+ }
198
+ }
199
+ else {
200
+ console.error('Unknown BAM tag type', type);
201
+ break;
224
202
  }
225
- tags[tag] = value;
226
203
  }
227
204
  return tags;
228
205
  }
@@ -286,7 +263,7 @@ export default class BamRecord {
286
263
  }
287
264
  const numCigarOps = this.num_cigar_ops;
288
265
  let p = this.b0 + this.read_name_length;
289
- let CIGAR = '';
266
+ const CIGAR = [];
290
267
  // check for CG tag by inspecting whether the CIGAR field contains a clip
291
268
  // that consumes entire seqLen
292
269
  let cigop = this.byteArray.readInt32LE(p);
@@ -313,16 +290,16 @@ export default class BamRecord {
313
290
  cigop = this.byteArray.readInt32LE(p);
314
291
  lop = cigop >> 4;
315
292
  op = CIGAR_DECODER[cigop & 0xf];
316
- CIGAR += lop + op;
317
- // soft clip, hard clip, and insertion don't count toward
318
- // the length on the reference
293
+ CIGAR.push(lop + op);
294
+ // soft clip, hard clip, and insertion don't count toward the length on
295
+ // the reference
319
296
  if (op !== 'H' && op !== 'S' && op !== 'I') {
320
297
  lref += lop;
321
298
  }
322
299
  p += 4;
323
300
  }
324
301
  return {
325
- CIGAR,
302
+ CIGAR: CIGAR.join(''),
326
303
  length_on_ref: lref,
327
304
  };
328
305
  }
@@ -347,18 +324,18 @@ export default class BamRecord {
347
324
  const p = this.b0 + this.read_name_length + this.num_cigar_ops * 4;
348
325
  const seqBytes = this.num_seq_bytes;
349
326
  const len = this.seq_length;
350
- let buf = '';
327
+ const buf = [];
351
328
  let i = 0;
352
329
  for (let j = 0; j < seqBytes; ++j) {
353
330
  const sb = byteArray[p + j];
354
- buf += SEQRET_DECODER[(sb & 0xf0) >> 4];
331
+ buf.push(SEQRET_DECODER[(sb & 0xf0) >> 4]);
355
332
  i++;
356
333
  if (i < len) {
357
- buf += SEQRET_DECODER[sb & 0x0f];
334
+ buf.push(SEQRET_DECODER[sb & 0x0f]);
358
335
  i++;
359
336
  }
360
337
  }
361
- return buf;
338
+ return buf.join('');
362
339
  }
363
340
  // adapted from igv.js
364
341
  get pair_orientation() {
@@ -393,7 +370,7 @@ export default class BamRecord {
393
370
  }
394
371
  return tmp.join('');
395
372
  }
396
- return '';
373
+ return undefined;
397
374
  }
398
375
  get bin_mq_nl() {
399
376
  return this.byteArray.readInt32LE(this.bytes.start + 12);
package/esm/record.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAA;AAGnC,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACnD,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAOlD,MAAM,CAAC,OAAO,OAAO,SAAS;IAI5B,YAAY,IAA0C;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;IACnC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CACvE,CAAA;IACH,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;IACxC,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACzC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IACpC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAED,IAAI,IAAI;;QACN,OAAO,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC7B,OAAM;QACR,CAAC;QAED,MAAM,CAAC,GACL,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,aAAa,GAAG,CAAC;YACtB,IAAI,CAAC,aAAa,CAAA;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;IAC9B,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC5B,OAAO,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CACpC,CAAA;IACH,CAAC;IAED,IAAI,IAAI;QACN,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAChC,IAAI,CAAC,GACH,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,aAAa,GAAG,CAAC;YACtB,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,UAAU,CAAA;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA;QAC/B,MAAM,IAAI,GAAG,EAA6B,CAAA;QAC1C,OAAO,CAAC,GAAG,QAAQ,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAClD,CAAC,IAAI,CAAC,CAAA;YAEN,IAAI,KAAK,CAAA;YACT,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzC,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;oBAChC,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;oBACjC,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBAC7B,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;oBAC9B,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;oBAChC,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;oBACjC,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;oBAChC,CAAC,IAAI,CAAC,CAAA;oBACN,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,EAAE,CAAA;oBACV,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;wBACrB,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA;wBACzB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;4BACb,MAAK;wBACP,CAAC;6BAAM,CAAC;4BACN,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;wBAClC,CAAC;oBACH,CAAC;oBACD,MAAK;gBACP,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,KAAK,GAAG,EAAE,CAAA;oBACV,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA;oBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;oBACrC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;oBACtC,CAAC,IAAI,CAAC,CAAA;oBACN,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;4BACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gCACtC,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;gCACtB,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;gCACrC,KAAK,IAAI,GAAG,GAAG,EAAE,CAAA;gCACjB,CAAC,IAAI,CAAC,CAAA;4BACR,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC/B,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gCACjC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;oCAClB,KAAK,IAAI,GAAG,CAAA;gCACd,CAAC;gCACD,CAAC,IAAI,CAAC,CAAA;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;4BACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;gCACvC,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;gCACtB,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;gCACrC,KAAK,IAAI,GAAG,GAAG,EAAE,CAAA;gCACjB,CAAC,IAAI,CAAC,CAAA;4BACR,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC/B,KAAK,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;gCAClC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;oCAClB,KAAK,IAAI,GAAG,CAAA;gCACd,CAAC;gCACD,CAAC,IAAI,CAAC,CAAA;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC/B,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;4BACjC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;gCAClB,KAAK,IAAI,GAAG,CAAA;4BACd,CAAC;4BACD,CAAC,IAAI,CAAC,CAAA;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC/B,KAAK,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;4BAClC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;gCAClB,KAAK,IAAI,GAAG,CAAA;4BACd,CAAC;4BACD,CAAC,IAAI,CAAC,CAAA;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC/B,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;4BAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;gCAClB,KAAK,IAAI,GAAG,CAAA;4BACd,CAAC;4BACD,CAAC,IAAI,CAAC,CAAA;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC/B,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;4BAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;gCAClB,KAAK,IAAI,GAAG,CAAA;4BACd,CAAC;4BACD,CAAC,IAAI,CAAC,CAAA;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC/B,KAAK,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;4BACjC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;gCAClB,KAAK,IAAI,GAAG,CAAA;4BACd,CAAC;4BACD,CAAC,IAAI,CAAC,CAAA;wBACR,CAAC;oBACH,CAAC;oBACD,MAAK;gBACP,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,OAAO,CAAC,IAAI,CAAC,yBAAyB,IAAI,2BAA2B,CAAC,CAAA;oBACtE,KAAK,GAAG,SAAS,CAAA;oBACjB,CAAC,GAAG,QAAQ,CAAA;gBACd,CAAC,CAAC,oBAAoB;YACxB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACnB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;IAC/C,CAAC;IAED,kFAAkF;IAClF,gBAAgB;QACd,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACpD,CAAC;IAED,gGAAgG;IAChG,iBAAiB;QACf,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;IAED,gGAAgG;IAChG,cAAc;QACZ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;IAC/C,CAAC;IAED,0EAA0E;IAC1E,qBAAqB;QACnB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;IAChD,CAAC;IAED,0EAA0E;IAC1E,yBAAyB;QACvB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;IACjD,CAAC;IAED,iEAAiE;IACjE,OAAO;QACL,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;IAED,iEAAiE;IACjE,OAAO;QACL,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;IAED,+DAA+D;IAC/D,WAAW;QACT,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,CAAA;IAClD,CAAC;IAED,gEAAgE;IAChE,UAAU;QACR,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;IAC/C,CAAC;IAED,yEAAyE;IACzE,WAAW;QACT,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC5C,CAAC;IAED,mEAAmE;IACnE,eAAe;QACb,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC7B,OAAO;gBACL,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,EAAE;aACV,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;QACtC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACvC,IAAI,KAAK,GAAG,EAAE,CAAA;QAEd,yEAAyE;QACzE,8BAA8B;QAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QACzC,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;QACpB,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;QACnC,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,yEAAyE;YACzE,oBAAoB;YACpB,CAAC,IAAI,CAAC,CAAA;YACN,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACrC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;YAChB,EAAE,GAAG,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;YAC/B,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;YACtC,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAY;gBAC7B,aAAa,EAAE,GAAG;aACnB,CAAA;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,GAAG,CAAC,CAAA;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC;gBACrC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACrC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;gBAChB,EAAE,GAAG,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;gBAC/B,KAAK,IAAI,GAAG,GAAG,EAAE,CAAA;gBACjB,yDAAyD;gBACzD,8BAA8B;gBAC9B,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;oBAC3C,IAAI,IAAI,GAAG,CAAA;gBACb,CAAC;gBAED,CAAC,IAAI,CAAC,CAAA;YACR,CAAC;YAED,OAAO;gBACL,KAAK;gBACL,aAAa,EAAE,IAAI;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAA;IAC1C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAA;IAClC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IAC9B,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,GAAG;QACL,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;QAC3B,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3B,GAAG,IAAI,cAAc,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACvC,CAAC,EAAE,CAAA;YACH,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;gBACZ,GAAG,IAAI,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;gBAChC,CAAC,EAAE,CAAA;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,sBAAsB;IACtB,IAAI,gBAAgB;QAClB,IACE,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACzB,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAC/B,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YACnD,MAAM,EAAE,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YACvD,IAAI,EAAE,GAAG,GAAG,CAAA;YACZ,IAAI,EAAE,GAAG,GAAG,CAAA;YACZ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnB,EAAE,GAAG,GAAG,CAAA;gBACR,EAAE,GAAG,GAAG,CAAA;YACV,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1B,EAAE,GAAG,GAAG,CAAA;gBACR,EAAE,GAAG,GAAG,CAAA;YACV,CAAC;YAED,MAAM,GAAG,GAAG,EAAE,CAAA;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;YAClC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACX,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YACb,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAwB,EAAE,CAAA;QACpC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBACvC,SAAQ;YACV,CAAC;YACD,YAAY;YACZ,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,SAAS,WAAW,CAAI,IAAsB,EAAE,IAAa;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAClE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IACD,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAA;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;QAC1C,GAAG;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACjD,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC9B,WAAW,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AACxC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAC7B,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA"}
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": "3.0.3",
3
+ "version": "4.0.1",
4
4
  "description": "Parser for BAM and BAM index (bai) files",
5
5
  "license": "MIT",
6
6
  "repository": "GMOD/bam-js",
package/src/record.ts CHANGED
@@ -53,10 +53,6 @@ export default class BamRecord {
53
53
  }
54
54
 
55
55
  get qual() {
56
- return this.qualRaw?.join(' ')
57
- }
58
-
59
- get qualRaw() {
60
56
  if (this.isSegmentUnmapped()) {
61
57
  return
62
58
  }
@@ -100,160 +96,124 @@ export default class BamRecord {
100
96
  const type = String.fromCharCode(byteArray[p + 2])
101
97
  p += 3
102
98
 
103
- let value
104
- switch (type) {
105
- case 'A': {
106
- value = String.fromCharCode(byteArray[p])
107
- p += 1
108
- break
109
- }
110
- case 'i': {
111
- value = byteArray.readInt32LE(p)
112
- p += 4
113
- break
114
- }
115
- case 'I': {
116
- value = byteArray.readUInt32LE(p)
117
- p += 4
118
- break
119
- }
120
- case 'c': {
121
- value = byteArray.readInt8(p)
122
- p += 1
123
- break
124
- }
125
- case 'C': {
126
- value = byteArray.readUInt8(p)
127
- p += 1
128
- break
129
- }
130
- case 's': {
131
- value = byteArray.readInt16LE(p)
132
- p += 2
133
- break
134
- }
135
- case 'S': {
136
- value = byteArray.readUInt16LE(p)
137
- p += 2
138
- break
139
- }
140
- case 'f': {
141
- value = byteArray.readFloatLE(p)
142
- p += 4
143
- break
144
- }
145
- case 'Z':
146
- case 'H': {
147
- value = ''
148
- while (p <= blockEnd) {
149
- const cc = byteArray[p++]
150
- if (cc === 0) {
151
- break
152
- } else {
153
- value += String.fromCharCode(cc)
154
- }
155
- }
156
- break
157
- }
158
- case 'B': {
159
- value = ''
99
+ if (type === 'A') {
100
+ tags[tag] = String.fromCharCode(byteArray[p])
101
+ p += 1
102
+ } else if (type === 'i') {
103
+ tags[tag] = byteArray.readInt32LE(p)
104
+ p += 4
105
+ } else if (type === 'I') {
106
+ tags[tag] = byteArray.readUInt32LE(p)
107
+ p += 4
108
+ } else if (type === 'c') {
109
+ tags[tag] = byteArray.readInt8(p)
110
+ p += 1
111
+ } else if (type === 'C') {
112
+ tags[tag] = byteArray.readUInt8(p)
113
+ p += 1
114
+ } else if (type === 's') {
115
+ tags[tag] = byteArray.readInt16LE(p)
116
+ p += 2
117
+ } else if (type === 'S') {
118
+ tags[tag] = byteArray.readUInt16LE(p)
119
+ p += 2
120
+ } else if (type === 'f') {
121
+ tags[tag] = byteArray.readFloatLE(p)
122
+ p += 4
123
+ } else if (type === 'Z' || type === 'H') {
124
+ const value = []
125
+ while (p <= blockEnd) {
160
126
  const cc = byteArray[p++]
161
- const Btype = String.fromCharCode(cc)
162
- const limit = byteArray.readInt32LE(p)
163
- p += 4
164
- if (Btype === 'i') {
165
- if (tag === 'CG') {
166
- for (let k = 0; k < limit; k++) {
167
- const cigop = byteArray.readInt32LE(p)
168
- const lop = cigop >> 4
169
- const op = CIGAR_DECODER[cigop & 0xf]
170
- value += lop + op
171
- p += 4
172
- }
173
- } else {
174
- for (let k = 0; k < limit; k++) {
175
- value += byteArray.readInt32LE(p)
176
- if (k + 1 < limit) {
177
- value += ','
178
- }
179
- p += 4
180
- }
181
- }
182
- }
183
- if (Btype === 'I') {
184
- if (tag === 'CG') {
185
- for (let k = 0; k < limit; k++) {
186
- const cigop = byteArray.readUInt32LE(p)
187
- const lop = cigop >> 4
188
- const op = CIGAR_DECODER[cigop & 0xf]
189
- value += lop + op
190
- p += 4
191
- }
192
- } else {
193
- for (let k = 0; k < limit; k++) {
194
- value += byteArray.readUInt32LE(p)
195
- if (k + 1 < limit) {
196
- value += ','
197
- }
198
- p += 4
199
- }
200
- }
127
+ if (cc !== 0) {
128
+ value.push(String.fromCharCode(cc))
129
+ } else {
130
+ break
201
131
  }
202
- if (Btype === 's') {
203
- for (let k = 0; k < limit; k++) {
204
- value += byteArray.readInt16LE(p)
205
- if (k + 1 < limit) {
206
- value += ','
207
- }
208
- p += 2
209
- }
210
- }
211
- if (Btype === 'S') {
132
+ }
133
+ tags[tag] = value.join('')
134
+ } else if (type === 'B') {
135
+ const cc = byteArray[p++]
136
+ const Btype = String.fromCharCode(cc)
137
+ const limit = byteArray.readInt32LE(p)
138
+ p += 4
139
+ if (Btype === 'i') {
140
+ if (tag === 'CG') {
141
+ const value = []
212
142
  for (let k = 0; k < limit; k++) {
213
- value += byteArray.readUInt16LE(p)
214
- if (k + 1 < limit) {
215
- value += ','
216
- }
217
- p += 2
143
+ const cigop = byteArray.readInt32LE(p)
144
+ const lop = cigop >> 4
145
+ const op = CIGAR_DECODER[cigop & 0xf]
146
+ value.push(lop + op)
147
+ p += 4
218
148
  }
219
- }
220
- if (Btype === 'c') {
149
+ tags[tag] = value.join('')
150
+ } else {
151
+ const value = []
221
152
  for (let k = 0; k < limit; k++) {
222
- value += byteArray.readInt8(p)
223
- if (k + 1 < limit) {
224
- value += ','
225
- }
226
- p += 1
153
+ value.push(byteArray.readInt32LE(p))
154
+ p += 4
227
155
  }
156
+ tags[tag] = value
228
157
  }
229
- if (Btype === 'C') {
158
+ } else if (Btype === 'I') {
159
+ if (tag === 'CG') {
160
+ const value = []
230
161
  for (let k = 0; k < limit; k++) {
231
- value += byteArray.readUInt8(p)
232
- if (k + 1 < limit) {
233
- value += ','
234
- }
235
- p += 1
162
+ const cigop = byteArray.readUInt32LE(p)
163
+ const lop = cigop >> 4
164
+ const op = CIGAR_DECODER[cigop & 0xf]
165
+ value.push(lop + op)
166
+ p += 4
236
167
  }
237
- }
238
- if (Btype === 'f') {
168
+ tags[tag] = value.join('')
169
+ } else {
170
+ const value = []
239
171
  for (let k = 0; k < limit; k++) {
240
- value += byteArray.readFloatLE(p)
241
- if (k + 1 < limit) {
242
- value += ','
243
- }
172
+ value.push(byteArray.readUInt32LE(p))
244
173
  p += 4
245
174
  }
175
+ tags[tag] = value
176
+ }
177
+ } else if (Btype === 's') {
178
+ const value = []
179
+ for (let k = 0; k < limit; k++) {
180
+ value.push(byteArray.readInt16LE(p))
181
+ p += 2
182
+ }
183
+ tags[tag] = value
184
+ } else if (Btype === 'S') {
185
+ const value = []
186
+ for (let k = 0; k < limit; k++) {
187
+ value.push(byteArray.readUInt16LE(p))
188
+ p += 2
189
+ }
190
+ tags[tag] = value
191
+ } else if (Btype === 'c') {
192
+ const value = []
193
+ for (let k = 0; k < limit; k++) {
194
+ value.push(byteArray.readInt8(p))
195
+ p += 1
246
196
  }
247
- break
197
+ tags[tag] = value
198
+ } else if (Btype === 'C') {
199
+ const value = []
200
+ for (let k = 0; k < limit; k++) {
201
+ value.push(byteArray.readUInt8(p))
202
+ p += 1
203
+ }
204
+ tags[tag] = value
205
+ } else if (Btype === 'f') {
206
+ const value = []
207
+ for (let k = 0; k < limit; k++) {
208
+ value.push(byteArray.readFloatLE(p))
209
+ p += 4
210
+ }
211
+ tags[tag] = value
248
212
  }
249
- default: {
250
- console.warn(`Unknown BAM tag type '${type}', tags may be incomplete`)
251
- value = undefined
252
- p = blockEnd
253
- } // stop parsing tags
213
+ } else {
214
+ console.error('Unknown BAM tag type', type)
215
+ break
254
216
  }
255
-
256
- tags[tag] = value
257
217
  }
258
218
  return tags
259
219
  }
@@ -331,7 +291,7 @@ export default class BamRecord {
331
291
 
332
292
  const numCigarOps = this.num_cigar_ops
333
293
  let p = this.b0 + this.read_name_length
334
- let CIGAR = ''
294
+ const CIGAR = []
335
295
 
336
296
  // check for CG tag by inspecting whether the CIGAR field contains a clip
337
297
  // that consumes entire seqLen
@@ -358,9 +318,9 @@ export default class BamRecord {
358
318
  cigop = this.byteArray.readInt32LE(p)
359
319
  lop = cigop >> 4
360
320
  op = CIGAR_DECODER[cigop & 0xf]
361
- CIGAR += lop + op
362
- // soft clip, hard clip, and insertion don't count toward
363
- // the length on the reference
321
+ CIGAR.push(lop + op)
322
+ // soft clip, hard clip, and insertion don't count toward the length on
323
+ // the reference
364
324
  if (op !== 'H' && op !== 'S' && op !== 'I') {
365
325
  lref += lop
366
326
  }
@@ -369,7 +329,7 @@ export default class BamRecord {
369
329
  }
370
330
 
371
331
  return {
372
- CIGAR,
332
+ CIGAR: CIGAR.join(''),
373
333
  length_on_ref: lref,
374
334
  }
375
335
  }
@@ -400,18 +360,18 @@ export default class BamRecord {
400
360
  const p = this.b0 + this.read_name_length + this.num_cigar_ops * 4
401
361
  const seqBytes = this.num_seq_bytes
402
362
  const len = this.seq_length
403
- let buf = ''
363
+ const buf = []
404
364
  let i = 0
405
365
  for (let j = 0; j < seqBytes; ++j) {
406
366
  const sb = byteArray[p + j]
407
- buf += SEQRET_DECODER[(sb & 0xf0) >> 4]
367
+ buf.push(SEQRET_DECODER[(sb & 0xf0) >> 4])
408
368
  i++
409
369
  if (i < len) {
410
- buf += SEQRET_DECODER[sb & 0x0f]
370
+ buf.push(SEQRET_DECODER[sb & 0x0f])
411
371
  i++
412
372
  }
413
373
  }
414
- return buf
374
+ return buf.join('')
415
375
  }
416
376
 
417
377
  // adapted from igv.js
@@ -448,7 +408,7 @@ export default class BamRecord {
448
408
  }
449
409
  return tmp.join('')
450
410
  }
451
- return ''
411
+ return undefined
452
412
  }
453
413
 
454
414
  get bin_mq_nl() {