@gmod/cram 4.0.3 → 4.0.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/README.md +53 -51
- package/dist/cram-bundle.js +1 -1
- package/dist/cramFile/codecs/_base.d.ts +1 -1
- package/dist/cramFile/codecs/byteArrayLength.js +3 -2
- package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/dist/cramFile/codecs/external.d.ts +1 -1
- package/dist/cramFile/codecs/external.js +1 -4
- package/dist/cramFile/codecs/external.js.map +1 -1
- package/dist/cramFile/container/index.d.ts +16 -34
- package/dist/cramFile/container/index.js +5 -20
- package/dist/cramFile/container/index.js.map +1 -1
- package/dist/cramFile/file.d.ts +8 -6
- package/dist/cramFile/file.js +80 -82
- package/dist/cramFile/file.js.map +1 -1
- package/dist/cramFile/record.js.map +1 -1
- package/dist/cramFile/sectionParsers.js +3 -2
- package/dist/cramFile/sectionParsers.js.map +1 -1
- package/dist/cramFile/slice/decodeRecord.d.ts +2 -2
- package/dist/cramFile/slice/decodeRecord.js +10 -7
- package/dist/cramFile/slice/decodeRecord.js.map +1 -1
- package/dist/cramFile/slice/index.js +14 -16
- package/dist/cramFile/slice/index.js.map +1 -1
- package/dist/cramFile/util.d.ts +5 -2
- package/dist/cramFile/util.js +75 -79
- package/dist/cramFile/util.js.map +1 -1
- package/dist/htscodecs/arith_gen.d.ts +5 -7
- package/dist/htscodecs/arith_gen.js +122 -105
- package/dist/htscodecs/arith_gen.js.map +1 -1
- package/dist/htscodecs/arith_sh.d.ts +1 -8
- package/dist/htscodecs/arith_sh.js +16 -10
- package/dist/htscodecs/arith_sh.js.map +1 -1
- package/dist/htscodecs/byte_model.d.ts +1 -6
- package/dist/htscodecs/byte_model.js +25 -17
- package/dist/htscodecs/byte_model.js.map +1 -1
- package/dist/htscodecs/fqzcomp.d.ts +1 -1
- package/dist/htscodecs/fqzcomp.js +98 -77
- package/dist/htscodecs/fqzcomp.js.map +1 -1
- package/dist/htscodecs/index.d.ts +5 -5
- package/dist/htscodecs/index.js +53 -16
- package/dist/htscodecs/index.js.map +1 -1
- package/dist/htscodecs/iostream.d.ts +9 -20
- package/dist/htscodecs/iostream.js +21 -116
- package/dist/htscodecs/iostream.js.map +1 -1
- package/dist/htscodecs/rans.d.ts +1 -1
- package/dist/htscodecs/rans.js +65 -54
- package/dist/htscodecs/rans.js.map +1 -1
- package/dist/htscodecs/rans4x16.d.ts +1 -1
- package/dist/htscodecs/rans4x16.js +151 -111
- package/dist/htscodecs/rans4x16.js.map +1 -1
- package/dist/htscodecs/tok3.d.ts +1 -2
- package/dist/htscodecs/tok3.js +82 -239
- package/dist/htscodecs/tok3.js.map +1 -1
- package/dist/util.d.ts +1 -0
- package/dist/util.js +20 -0
- package/dist/util.js.map +1 -0
- package/esm/cramFile/codecs/_base.d.ts +1 -1
- package/esm/cramFile/codecs/byteArrayLength.js +3 -2
- package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/esm/cramFile/codecs/external.d.ts +1 -1
- package/esm/cramFile/codecs/external.js +2 -5
- package/esm/cramFile/codecs/external.js.map +1 -1
- package/esm/cramFile/container/index.d.ts +16 -34
- package/esm/cramFile/container/index.js +5 -20
- package/esm/cramFile/container/index.js.map +1 -1
- package/esm/cramFile/file.d.ts +8 -6
- package/esm/cramFile/file.js +40 -75
- package/esm/cramFile/file.js.map +1 -1
- package/esm/cramFile/record.js.map +1 -1
- package/esm/cramFile/sectionParsers.js +3 -2
- package/esm/cramFile/sectionParsers.js.map +1 -1
- package/esm/cramFile/slice/decodeRecord.d.ts +2 -2
- package/esm/cramFile/slice/decodeRecord.js +10 -7
- package/esm/cramFile/slice/decodeRecord.js.map +1 -1
- package/esm/cramFile/slice/index.js +14 -16
- package/esm/cramFile/slice/index.js.map +1 -1
- package/esm/cramFile/util.d.ts +5 -2
- package/esm/cramFile/util.js +74 -77
- package/esm/cramFile/util.js.map +1 -1
- package/esm/htscodecs/arith_gen.d.ts +5 -7
- package/esm/htscodecs/arith_gen.js +108 -97
- package/esm/htscodecs/arith_gen.js.map +1 -1
- package/esm/htscodecs/arith_sh.d.ts +1 -8
- package/esm/htscodecs/arith_sh.js +14 -11
- package/esm/htscodecs/arith_sh.js.map +1 -1
- package/esm/htscodecs/byte_model.d.ts +1 -6
- package/esm/htscodecs/byte_model.js +23 -18
- package/esm/htscodecs/byte_model.js.map +1 -1
- package/esm/htscodecs/fqzcomp.d.ts +1 -1
- package/esm/htscodecs/fqzcomp.js +91 -76
- package/esm/htscodecs/fqzcomp.js.map +1 -1
- package/esm/htscodecs/index.d.ts +5 -5
- package/esm/htscodecs/index.js +14 -20
- package/esm/htscodecs/index.js.map +1 -1
- package/esm/htscodecs/iostream.d.ts +9 -20
- package/esm/htscodecs/iostream.js +19 -117
- package/esm/htscodecs/iostream.js.map +1 -1
- package/esm/htscodecs/rans.d.ts +1 -1
- package/esm/htscodecs/rans.js +61 -56
- package/esm/htscodecs/rans.js.map +1 -1
- package/esm/htscodecs/rans4x16.d.ts +1 -1
- package/esm/htscodecs/rans4x16.js +143 -109
- package/esm/htscodecs/rans4x16.js.map +1 -1
- package/esm/htscodecs/tok3.d.ts +1 -2
- package/esm/htscodecs/tok3.js +41 -237
- package/esm/htscodecs/tok3.js.map +1 -1
- package/esm/util.d.ts +1 -0
- package/esm/util.js +17 -0
- package/esm/util.js.map +1 -0
- package/package.json +3 -6
- package/src/cramFile/codecs/_base.ts +1 -1
- package/src/cramFile/codecs/byteArrayLength.ts +4 -12
- package/src/cramFile/codecs/external.ts +3 -7
- package/src/cramFile/container/index.ts +5 -24
- package/src/cramFile/file.ts +44 -79
- package/src/cramFile/record.ts +1 -1
- package/src/cramFile/sectionParsers.ts +5 -2
- package/src/cramFile/slice/decodeRecord.ts +29 -28
- package/src/cramFile/slice/index.ts +25 -31
- package/src/cramFile/util.ts +107 -106
- package/src/htscodecs/{arith_gen.js → arith_gen.ts} +133 -95
- package/src/htscodecs/{arith_sh.js → arith_sh.ts} +17 -9
- package/src/htscodecs/{byte_model.js → byte_model.ts} +26 -16
- package/src/htscodecs/{fqzcomp.js → fqzcomp.ts} +108 -74
- package/src/htscodecs/{index.js → index.ts} +14 -20
- package/src/htscodecs/iostream.ts +159 -0
- package/src/htscodecs/{rans.js → rans.ts} +73 -56
- package/src/htscodecs/{rans4x16.js → rans4x16.ts} +180 -111
- package/src/htscodecs/tok3.ts +197 -0
- package/src/util.ts +16 -0
- package/errors.js +0 -27
- package/src/htscodecs/iostream.js +0 -257
- package/src/htscodecs/tok3.js +0 -413
package/esm/htscodecs/tok3.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable no-var */
|
|
2
|
+
// @ts-nocheck
|
|
2
3
|
/*
|
|
3
4
|
* Copyright (c) 2019 Genome Research Ltd.
|
|
4
5
|
* Author(s): James Bonfield
|
|
@@ -36,26 +37,11 @@
|
|
|
36
37
|
// This is a reference implementation designed to match the
|
|
37
38
|
// written specification as closely as possible. It is *NOT*
|
|
38
39
|
// an efficient implementation, but see comments below.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
for (const entry of array) {
|
|
45
|
-
sum += entry.length;
|
|
46
|
-
}
|
|
47
|
-
return sum;
|
|
48
|
-
}
|
|
49
|
-
function concatUint8Array(args) {
|
|
50
|
-
const mergedArray = new Uint8Array(sum(args));
|
|
51
|
-
let offset = 0;
|
|
52
|
-
for (const entry of args) {
|
|
53
|
-
mergedArray.set(entry, offset);
|
|
54
|
-
offset += entry.length;
|
|
55
|
-
}
|
|
56
|
-
return mergedArray;
|
|
57
|
-
}
|
|
58
|
-
var arith = new arith_gen();
|
|
40
|
+
import { concatUint8Array } from '../util';
|
|
41
|
+
import arith_gen from './arith_gen';
|
|
42
|
+
import IOStream from './iostream';
|
|
43
|
+
import * as rans from './rans4x16';
|
|
44
|
+
const arith = new arith_gen();
|
|
59
45
|
const TOK_TYPE = 0;
|
|
60
46
|
const TOK_STRING = 1;
|
|
61
47
|
const TOK_CHAR = 2;
|
|
@@ -69,59 +55,57 @@ const TOK_DELTA0 = 9;
|
|
|
69
55
|
const TOK_MATCH = 10;
|
|
70
56
|
const TOK_NOP = 11;
|
|
71
57
|
const TOK_END = 12;
|
|
72
|
-
|
|
58
|
+
// ----------------------------------------------------------------------
|
|
73
59
|
// Token byte streams
|
|
74
60
|
function DecodeTokenByteStreams(src, in_size, use_arith, nnames) {
|
|
75
|
-
|
|
76
|
-
|
|
61
|
+
let t = -1;
|
|
62
|
+
const B = new Array(256);
|
|
77
63
|
while (!src.EOF()) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
64
|
+
const ttype = src.ReadByte();
|
|
65
|
+
const tok_new = ttype & 128;
|
|
66
|
+
const tok_dup = ttype & 64;
|
|
67
|
+
const type = ttype & 63;
|
|
82
68
|
if (tok_new) {
|
|
83
69
|
t++;
|
|
84
70
|
B[t] = new Array(13);
|
|
85
71
|
}
|
|
86
72
|
if (type != TOK_TYPE && tok_new) {
|
|
87
|
-
|
|
73
|
+
const M = new Array(nnames - 1).fill(TOK_MATCH);
|
|
88
74
|
B[t][TOK_TYPE] = new IOStream(concatUint8Array([new Uint8Array(type), M]));
|
|
89
75
|
}
|
|
90
76
|
if (tok_dup) {
|
|
91
|
-
|
|
92
|
-
|
|
77
|
+
const dup_pos = src.ReadByte();
|
|
78
|
+
const dup_type = src.ReadByte();
|
|
93
79
|
B[t][type] = new IOStream(B[dup_pos][dup_type].buf);
|
|
94
80
|
}
|
|
95
81
|
else {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
B[t][type] = arith.decode(data);
|
|
100
|
-
else
|
|
101
|
-
B[t][type] = rans.decode(data);
|
|
82
|
+
const clen = src.ReadUint7();
|
|
83
|
+
const data = src.ReadData(clen);
|
|
84
|
+
B[t][type] = use_arith ? arith.decode(data) : rans.decode(data);
|
|
102
85
|
B[t][type] = new IOStream(B[t][type]);
|
|
103
86
|
}
|
|
104
87
|
}
|
|
105
88
|
return B;
|
|
106
89
|
}
|
|
107
|
-
|
|
90
|
+
// ----------------------------------------------------------------------
|
|
108
91
|
// Token decode
|
|
109
92
|
function LeftPadNumber(val, len) {
|
|
110
|
-
|
|
111
|
-
while (str.length < len)
|
|
93
|
+
let str = val + '';
|
|
94
|
+
while (str.length < len) {
|
|
112
95
|
str = '0' + str;
|
|
96
|
+
}
|
|
113
97
|
return str;
|
|
114
98
|
}
|
|
115
99
|
function DecodeSingleName(B, N, T, n) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
100
|
+
let type = B[0][TOK_TYPE].ReadByte();
|
|
101
|
+
const dist = B[0][type].ReadUint32();
|
|
102
|
+
const m = n - dist;
|
|
119
103
|
if (type == TOK_DUP) {
|
|
120
104
|
N[n] = N[m];
|
|
121
105
|
T[n] = T[m];
|
|
122
106
|
return N[n];
|
|
123
107
|
}
|
|
124
|
-
|
|
108
|
+
let t = 1;
|
|
125
109
|
N[n] = '';
|
|
126
110
|
T[n] = new Array(256);
|
|
127
111
|
do {
|
|
@@ -160,204 +144,24 @@ function DecodeSingleName(B, N, T, n) {
|
|
|
160
144
|
} while (type != TOK_END);
|
|
161
145
|
return N[n];
|
|
162
146
|
}
|
|
163
|
-
|
|
147
|
+
// ----------------------------------------------------------------------
|
|
164
148
|
// Main tokeniser decode entry function: decodes a compressed src and
|
|
165
149
|
// returns the uncompressed buffer.
|
|
166
|
-
function decode(src, len, separator) {
|
|
150
|
+
export function decode(src, len, separator) {
|
|
167
151
|
var src = new IOStream(src);
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if (
|
|
152
|
+
const ulen = src.ReadUint32();
|
|
153
|
+
const nnames = src.ReadUint32();
|
|
154
|
+
const use_arith = src.ReadByte();
|
|
155
|
+
const B = DecodeTokenByteStreams(src, len, use_arith, nnames);
|
|
156
|
+
const N = new Array(nnames);
|
|
157
|
+
const T = new Array(nnames);
|
|
158
|
+
let str = '';
|
|
159
|
+
if (separator === undefined) {
|
|
176
160
|
separator = '\n';
|
|
177
|
-
for (var i = 0; i < nnames; i++)
|
|
178
|
-
str += DecodeSingleName(B, N, T, i) + separator;
|
|
179
|
-
return str;
|
|
180
|
-
}
|
|
181
|
-
//----------------------------------------------------------------------
|
|
182
|
-
// Main tokeniser encode function
|
|
183
|
-
// Encoder is trickier than decode as we have a lot of decisions to make.
|
|
184
|
-
// However here we just make a simple guess without anything complex,
|
|
185
|
-
// to demonstrate the basic idea. See the C implementation for further
|
|
186
|
-
// expansion on this.
|
|
187
|
-
function encode(src, use_arith) {
|
|
188
|
-
// Convert buffer to array of names
|
|
189
|
-
var str = src.toString();
|
|
190
|
-
if (str[str.length - 1] == '\n')
|
|
191
|
-
str = str.substring(0, str.length - 1);
|
|
192
|
-
var names = str.split('\n');
|
|
193
|
-
var out = new IOStream('', 0, str.length * 2 + 10000); // guess max size
|
|
194
|
-
out.WriteUint32(str.length);
|
|
195
|
-
out.WriteUint32(names.length);
|
|
196
|
-
out.WriteByte(use_arith);
|
|
197
|
-
// Tokenise names
|
|
198
|
-
var T = new Array(names.length);
|
|
199
|
-
var H = {};
|
|
200
|
-
var F = new Array(256).fill(0); // DELTA vs DIGIT frequency
|
|
201
|
-
var max_tok = 0;
|
|
202
|
-
var max_len = 0;
|
|
203
|
-
for (var i = 0; i < names.length; i++) {
|
|
204
|
-
var [ntok, len] = TokeniseName(T, H, F, names[i], i);
|
|
205
|
-
if (max_tok < ntok)
|
|
206
|
-
max_tok = ntok;
|
|
207
|
-
if (max_len < len)
|
|
208
|
-
max_len = len;
|
|
209
|
-
}
|
|
210
|
-
// Convert tokens to byte streams and serialise
|
|
211
|
-
for (var tnum = 0; tnum < max_tok; tnum++) {
|
|
212
|
-
var B = new Array(TOK_END + 1);
|
|
213
|
-
for (var type = 0; type <= TOK_END; type++)
|
|
214
|
-
B[type] = new IOStream('', 0, names.length * max_len);
|
|
215
|
-
FillByteStreams(B, T, tnum, names, max_tok, max_len);
|
|
216
|
-
SerialiseByteStreams(B, tnum, use_arith, out);
|
|
217
|
-
}
|
|
218
|
-
return out.buf.slice(0, out.pos);
|
|
219
|
-
}
|
|
220
|
-
function FillByteStreams(B, T, tnum, names, max_tok, max_len) {
|
|
221
|
-
// Create byte streams B[]
|
|
222
|
-
for (var n = 0; n < names.length; n++) {
|
|
223
|
-
if (tnum > 0 && T[n][0].type == TOK_DUP)
|
|
224
|
-
continue;
|
|
225
|
-
if (!T[n][tnum])
|
|
226
|
-
continue;
|
|
227
|
-
B[TOK_TYPE].WriteByte(T[n][tnum].type);
|
|
228
|
-
switch (T[n][tnum].type) {
|
|
229
|
-
case TOK_DIFF:
|
|
230
|
-
B[TOK_DIFF].WriteUint32(T[n][tnum].val);
|
|
231
|
-
break;
|
|
232
|
-
case TOK_DUP:
|
|
233
|
-
B[TOK_DUP].WriteUint32(T[n][tnum].val);
|
|
234
|
-
break;
|
|
235
|
-
case TOK_STRING:
|
|
236
|
-
B[TOK_STRING].WriteString(T[n][tnum].val);
|
|
237
|
-
break;
|
|
238
|
-
case TOK_CHAR:
|
|
239
|
-
B[TOK_CHAR].WriteChar(T[n][tnum].val);
|
|
240
|
-
break;
|
|
241
|
-
case TOK_DIGITS:
|
|
242
|
-
B[TOK_DIGITS].WriteUint32(T[n][tnum].val);
|
|
243
|
-
break;
|
|
244
|
-
case TOK_DIGITS0:
|
|
245
|
-
B[TOK_DIGITS0].WriteUint32(T[n][tnum].val);
|
|
246
|
-
B[TOK_DZLEN].WriteByte(T[n][tnum].val.length);
|
|
247
|
-
break;
|
|
248
|
-
case TOK_DELTA:
|
|
249
|
-
B[T[n][tnum].type].WriteByte(T[n][tnum].val);
|
|
250
|
-
break;
|
|
251
|
-
case TOK_DELTA0:
|
|
252
|
-
B[T[n][tnum].type].WriteByte(T[n][tnum].val);
|
|
253
|
-
break;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
function SerialiseByteStreams(B, tnum, use_arith, out) {
|
|
258
|
-
// Compress and serialise byte streams B[]
|
|
259
|
-
for (var type = 0; type <= TOK_END; type++) {
|
|
260
|
-
if (B[type].pos <= 0)
|
|
261
|
-
continue;
|
|
262
|
-
out.WriteByte(type + (type == 0 ? 128 : 0));
|
|
263
|
-
// IOStream to sized buffer
|
|
264
|
-
B[type] = B[type].buf.slice(0, B[type].pos);
|
|
265
|
-
var comp = try_compress(B[type], use_arith);
|
|
266
|
-
out.WriteUint7(comp.length);
|
|
267
|
-
out.WriteData(comp, comp.length);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
function try_compress(src, use_arith) {
|
|
271
|
-
var best = 1 << 30;
|
|
272
|
-
var comp;
|
|
273
|
-
var methods = [0, 1, 64, 65, 128, 129, 193 + 8];
|
|
274
|
-
for (var i in methods) {
|
|
275
|
-
var lvl = methods[i];
|
|
276
|
-
if (lvl & 1 && src.length < 100)
|
|
277
|
-
continue;
|
|
278
|
-
if (lvl & 8 && src.length % 4 != 0)
|
|
279
|
-
continue;
|
|
280
|
-
try {
|
|
281
|
-
var tmp = use_arith ? arith.encode(src, lvl) : rans.encode(src, lvl);
|
|
282
|
-
}
|
|
283
|
-
catch (e) {
|
|
284
|
-
var tmp = 0;
|
|
285
|
-
}
|
|
286
|
-
if (tmp && best > tmp.length) {
|
|
287
|
-
best = tmp.length;
|
|
288
|
-
comp = tmp;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
return comp;
|
|
292
|
-
}
|
|
293
|
-
function TokeniseName(T, H, F, name, n) {
|
|
294
|
-
var max_len = 0;
|
|
295
|
-
// Always compare against last name only
|
|
296
|
-
var p = n - 1;
|
|
297
|
-
T[n] = new Array(256);
|
|
298
|
-
if (H[name]) {
|
|
299
|
-
//console.error(name,H[name],n)
|
|
300
|
-
T[n][0] = {
|
|
301
|
-
type: TOK_DUP,
|
|
302
|
-
val: n - H[name],
|
|
303
|
-
};
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
T[n][0] = {
|
|
307
|
-
type: TOK_DIFF,
|
|
308
|
-
val: n == 0 ? 0 : 1,
|
|
309
|
-
};
|
|
310
161
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
var tok = name.match(/([a-zA-Z0-9]{1,9})|([^a-zA-Z0-9]+)/g);
|
|
314
|
-
for (var i = 0; i < tok.length; i++) {
|
|
315
|
-
var t = i + 1; // token 0 = DIFF vs DUP
|
|
316
|
-
var type = TOK_STRING;
|
|
317
|
-
var val = tok[i];
|
|
318
|
-
if (tok[i].match(/^0+[0-9]*$/g))
|
|
319
|
-
type = TOK_DIGITS0;
|
|
320
|
-
else if (tok[i].match(/^[0-9]+$/g))
|
|
321
|
-
type = TOK_DIGITS;
|
|
322
|
-
else if (tok[i].length == 1)
|
|
323
|
-
type = TOK_CHAR;
|
|
324
|
-
if (p >= 0 && T[p][t]) {
|
|
325
|
-
if (T[p][t].str == tok[i]) {
|
|
326
|
-
type = TOK_MATCH;
|
|
327
|
-
val = '';
|
|
328
|
-
}
|
|
329
|
-
else if (T[p][t].type == TOK_DIGITS || T[p][t].type == TOK_DELTA) {
|
|
330
|
-
var d = val - T[p][t].str;
|
|
331
|
-
F[t]++;
|
|
332
|
-
if (d >= 0 && d < 256 && F[t] > n / 2) {
|
|
333
|
-
type = TOK_DELTA;
|
|
334
|
-
val = d;
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
else if ((T[p][t].type == TOK_DIGITS0 || T[p][t].type == TOK_DELTA0) &&
|
|
338
|
-
T[p][t].str.length == val.length) {
|
|
339
|
-
var d = val - T[p][t].str;
|
|
340
|
-
F[t]++;
|
|
341
|
-
if (d >= 0 && d < 256 && F[t] > n / 2) {
|
|
342
|
-
type = TOK_DELTA0;
|
|
343
|
-
val = d;
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
T[n][t] = {
|
|
348
|
-
str: tok[i],
|
|
349
|
-
val: val,
|
|
350
|
-
type: type,
|
|
351
|
-
};
|
|
352
|
-
if (max_len < T[n][t].val.length + 3)
|
|
353
|
-
// +3 for integers; 5 -> (Uint32)5
|
|
354
|
-
max_len = T[n][t].val.length + 3;
|
|
355
|
-
//console.error(t,T[n][t])
|
|
162
|
+
for (let i = 0; i < nnames; i++) {
|
|
163
|
+
str += DecodeSingleName(B, N, T, i) + separator;
|
|
356
164
|
}
|
|
357
|
-
|
|
358
|
-
type: TOK_END,
|
|
359
|
-
};
|
|
360
|
-
return [t + 1, max_len];
|
|
165
|
+
return str;
|
|
361
166
|
}
|
|
362
|
-
module.exports = { encode, decode };
|
|
363
167
|
//# sourceMappingURL=tok3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tok3.js","sourceRoot":"","sources":["../../src/htscodecs/tok3.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tok3.js","sourceRoot":"","sources":["../../src/htscodecs/tok3.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,cAAc;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,iBAAiB;AACjB,EAAE;AACF,2DAA2D;AAC3D,6DAA6D;AAC7D,uDAAuD;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAElC,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,SAAS,GAAG,CAAC,CAAA;AACnB,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,QAAQ,GAAG,CAAC,CAAA;AAClB,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,SAAS,GAAG,CAAC,CAAA;AACnB,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,SAAS,GAAG,EAAE,CAAA;AACpB,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,MAAM,OAAO,GAAG,EAAE,CAAA;AAElB,yEAAyE;AACzE,qBAAqB;AACrB,SAAS,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAEV,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IAExB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,KAAK,GAAG,GAAG,CAAA;QAC3B,MAAM,OAAO,GAAG,KAAK,GAAG,EAAE,CAAA;QAC1B,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAA;QAEvB,IAAI,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,CAAA;YACH,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QAED,IAAI,IAAI,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5E,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;YAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAE/B,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED,yEAAyE;AACzE,eAAe;AACf,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG;IAC7B,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;IAClB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACjB,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAClC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;IACpC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IACpC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAElB,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACX,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACX,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IACrB,GAAG,CAAC;QACF,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QAEhC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACnC,MAAK;YAEP,KAAK,UAAU;gBACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAA;gBACvC,MAAK;YAEP,KAAK,UAAU;gBACb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAA;gBACvC,MAAK;YAEP,KAAK,WAAW;gBACd,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAA;gBACtC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC7B,MAAK;YAEP,KAAK,SAAS;gBACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACrD,MAAK;YAEP,KAAK,UAAU;gBACb,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACpD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;gBACtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC7B,MAAK;YAEP,KAAK,SAAS;gBACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjB,MAAK;YAEP;gBACE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;gBACZ,MAAK;QACT,CAAC;QAED,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC,QAAQ,IAAI,IAAI,OAAO,EAAC;IAEzB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACb,CAAC;AAED,yEAAyE;AACzE,qEAAqE;AACrE,mCAAmC;AACnC,MAAM,UAAU,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS;IACxC,IAAI,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAEhC,MAAM,CAAC,GAAG,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAC7D,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IAE3B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IACjD,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
package/esm/util.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function concatUint8Array(args: Uint8Array[]): Uint8Array<ArrayBuffer>;
|
package/esm/util.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function sum(array) {
|
|
2
|
+
let sum = 0;
|
|
3
|
+
for (const entry of array) {
|
|
4
|
+
sum += entry.length;
|
|
5
|
+
}
|
|
6
|
+
return sum;
|
|
7
|
+
}
|
|
8
|
+
export function concatUint8Array(args) {
|
|
9
|
+
const mergedArray = new Uint8Array(sum(args));
|
|
10
|
+
let offset = 0;
|
|
11
|
+
for (const entry of args) {
|
|
12
|
+
mergedArray.set(entry, offset);
|
|
13
|
+
offset += entry.length;
|
|
14
|
+
}
|
|
15
|
+
return mergedArray;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=util.js.map
|
package/esm/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,SAAS,GAAG,CAAC,KAAmB;IAC9B,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,GAAG,IAAI,KAAK,CAAC,MAAM,CAAA;IACrB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,IAAkB;IACjD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC9B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;IACxB,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gmod/cram",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.5",
|
|
4
4
|
"description": "read CRAM files with pure Javascript",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "GMOD/cram-js",
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
"node": ">=6"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
|
-
"errors.js",
|
|
19
18
|
"src",
|
|
20
19
|
"dist",
|
|
21
20
|
"esm"
|
|
@@ -24,14 +23,14 @@
|
|
|
24
23
|
"test": "vitest",
|
|
25
24
|
"lint": "eslint --report-unused-disable-directives --max-warnings 0",
|
|
26
25
|
"format": "prettier --write .",
|
|
27
|
-
"docs": "documentation readme --shallow src/indexedCramFile.ts --section=IndexedCramFile; documentation readme --shallow src/cramFile/file.ts --section=CramFile; documentation readme --shallow src/craiIndex.ts --section=CraiIndex; documentation readme --shallow
|
|
26
|
+
"docs": "documentation readme --shallow src/indexedCramFile.ts --section=IndexedCramFile; documentation readme --shallow src/cramFile/file.ts --section=CramFile; documentation readme --shallow src/craiIndex.ts --section=CraiIndex; documentation readme --shallow src/cramFile/file.ts --section=CramFile; documentation readme --shallow src/cramFile/record.ts --section=CramRecord",
|
|
28
27
|
"prebuild": "yarn clean",
|
|
29
28
|
"clean": "rimraf dist esm",
|
|
30
29
|
"build:esm": "tsc --outDir esm",
|
|
31
30
|
"build:es5": "tsc --module commonjs --outDir dist",
|
|
32
31
|
"build": "yarn build:esm && yarn build:es5",
|
|
33
32
|
"postbuild": "webpack",
|
|
34
|
-
"preversion": "yarn test --run && yarn build
|
|
33
|
+
"preversion": "yarn test --run && yarn build",
|
|
35
34
|
"postpublish": "rm errors.js",
|
|
36
35
|
"postversion": "git push --follow-tags"
|
|
37
36
|
},
|
|
@@ -45,7 +44,6 @@
|
|
|
45
44
|
"bzip2": "^0.1.1",
|
|
46
45
|
"crc": "^4.3.2",
|
|
47
46
|
"generic-filehandle2": "^1.0.0",
|
|
48
|
-
"long": "^4.0.0",
|
|
49
47
|
"md5": "^2.2.1",
|
|
50
48
|
"pako": "^1.0.4",
|
|
51
49
|
"quick-lru": "^4.0.1",
|
|
@@ -53,7 +51,6 @@
|
|
|
53
51
|
},
|
|
54
52
|
"devDependencies": {
|
|
55
53
|
"@gmod/indexedfasta": "^3.0.0",
|
|
56
|
-
"@types/long": "^4.0.0",
|
|
57
54
|
"@types/md5": "^2.3.2",
|
|
58
55
|
"@types/pako": "^1.0.3",
|
|
59
56
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
@@ -32,22 +32,14 @@ export default class ByteArrayStopCodec extends CramCodec<
|
|
|
32
32
|
cursors: Cursors,
|
|
33
33
|
) {
|
|
34
34
|
const lengthCodec = this._getLengthCodec()
|
|
35
|
-
const arrayLength =
|
|
36
|
-
slice,
|
|
37
|
-
coreDataBlock,
|
|
38
|
-
blocksByContentId,
|
|
39
|
-
cursors,
|
|
40
|
-
)
|
|
35
|
+
const arrayLength =
|
|
36
|
+
lengthCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) || 0
|
|
41
37
|
|
|
42
38
|
const dataCodec = this._getDataCodec()
|
|
43
39
|
const data = new Uint8Array(arrayLength)
|
|
44
40
|
for (let i = 0; i < arrayLength; i += 1) {
|
|
45
|
-
data[i] =
|
|
46
|
-
slice,
|
|
47
|
-
coreDataBlock,
|
|
48
|
-
blocksByContentId,
|
|
49
|
-
cursors,
|
|
50
|
-
)
|
|
41
|
+
data[i] =
|
|
42
|
+
dataCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) || 0
|
|
51
43
|
}
|
|
52
44
|
|
|
53
45
|
return data
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import CramCodec, { Cursor, Cursors } from './_base'
|
|
2
|
-
import {
|
|
2
|
+
import { CramUnimplementedError } from '../../errors'
|
|
3
3
|
import { CramFileBlock } from '../file'
|
|
4
4
|
import CramSlice from '../slice'
|
|
5
5
|
import { parseItf8 } from '../util'
|
|
@@ -39,13 +39,9 @@ export default class ExternalCodec extends CramCodec<
|
|
|
39
39
|
) {
|
|
40
40
|
const { blockContentId } = this.parameters
|
|
41
41
|
const contentBlock = blocksByContentId[blockContentId]
|
|
42
|
-
|
|
43
|
-
throw new CramMalformedError(
|
|
44
|
-
`no block found with content ID ${blockContentId}}`,
|
|
45
|
-
)
|
|
46
|
-
}
|
|
42
|
+
|
|
47
43
|
const cursor = cursors.externalBlocks.getCursor(blockContentId)
|
|
48
|
-
return this._decodeData(contentBlock, cursor)
|
|
44
|
+
return contentBlock ? this._decodeData(contentBlock, cursor) : undefined
|
|
49
45
|
}
|
|
50
46
|
|
|
51
47
|
_decodeInt(contentBlock: CramFileBlock, cursor: Cursor) {
|
|
@@ -21,16 +21,13 @@ export default class CramContainer {
|
|
|
21
21
|
|
|
22
22
|
// if there are no records in the container, there will be no compression
|
|
23
23
|
// header
|
|
24
|
-
if (!containerHeader
|
|
24
|
+
if (!containerHeader.numRecords) {
|
|
25
25
|
return null
|
|
26
26
|
}
|
|
27
27
|
const { majorVersion } = await this.file.getDefinition()
|
|
28
28
|
const sectionParsers = getSectionParsers(majorVersion)
|
|
29
29
|
|
|
30
30
|
const block = await this.getFirstBlock()
|
|
31
|
-
if (block === undefined) {
|
|
32
|
-
return undefined
|
|
33
|
-
}
|
|
34
31
|
if (block.contentType !== 'COMPRESSION_HEADER') {
|
|
35
32
|
throw new CramMalformedError(
|
|
36
33
|
`invalid content type ${block.contentType} in compression header block`,
|
|
@@ -51,9 +48,6 @@ export default class CramContainer {
|
|
|
51
48
|
|
|
52
49
|
async getFirstBlock() {
|
|
53
50
|
const containerHeader = await this.getHeader()
|
|
54
|
-
if (!containerHeader) {
|
|
55
|
-
return undefined
|
|
56
|
-
}
|
|
57
51
|
return this.file.readBlock(containerHeader._endPosition)
|
|
58
52
|
}
|
|
59
53
|
|
|
@@ -78,12 +72,6 @@ export default class CramContainer {
|
|
|
78
72
|
const { majorVersion } = await this.file.getDefinition()
|
|
79
73
|
const sectionParsers = getSectionParsers(majorVersion)
|
|
80
74
|
const { cramContainerHeader1, cramContainerHeader2 } = sectionParsers
|
|
81
|
-
const { size: fileSize } = await this.file.stat()
|
|
82
|
-
|
|
83
|
-
if (position >= fileSize) {
|
|
84
|
-
console.warn(`pos:${position}>=fileSize:${fileSize} in cram container`)
|
|
85
|
-
return undefined
|
|
86
|
-
}
|
|
87
75
|
|
|
88
76
|
// parse the container header. do it in 2 pieces because you cannot tell
|
|
89
77
|
// how much to buffer until you read numLandmarks
|
|
@@ -93,13 +81,6 @@ export default class CramContainer {
|
|
|
93
81
|
)
|
|
94
82
|
const header1 = parseItem(bytes1, cramContainerHeader1.parser)
|
|
95
83
|
const numLandmarksSize = itf8Size(header1.numLandmarks)
|
|
96
|
-
if (position + header1.length >= fileSize) {
|
|
97
|
-
// header indicates container goes beyond fileSize
|
|
98
|
-
console.warn(
|
|
99
|
-
`container at ${position} is beyond fileSize:${fileSize}, skipping`,
|
|
100
|
-
)
|
|
101
|
-
return undefined
|
|
102
|
-
}
|
|
103
84
|
|
|
104
85
|
const bytes2 = await this.file.read(
|
|
105
86
|
cramContainerHeader2.maxLength(header1.numLandmarks),
|
|
@@ -116,12 +97,12 @@ export default class CramContainer {
|
|
|
116
97
|
)
|
|
117
98
|
}
|
|
118
99
|
|
|
119
|
-
|
|
100
|
+
return {
|
|
101
|
+
...header1,
|
|
102
|
+
...header2,
|
|
120
103
|
_size: header1._size + header2._size - numLandmarksSize,
|
|
121
104
|
_endPosition: header1._size + header2._size - numLandmarksSize + position,
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return completeHeader
|
|
105
|
+
}
|
|
125
106
|
}
|
|
126
107
|
}
|
|
127
108
|
|