@gmod/cram 1.6.3 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/craiIndex.d.ts +19 -12
- package/dist/craiIndex.js +63 -123
- package/dist/craiIndex.js.map +1 -1
- package/dist/cram-bundle.js +2 -17
- package/dist/cram-bundle.js.LICENSE.txt +17 -0
- package/dist/cramFile/codecs/_base.d.ts +26 -5
- package/dist/cramFile/codecs/_base.js +3 -39
- package/dist/cramFile/codecs/_base.js.map +1 -1
- package/dist/cramFile/codecs/beta.d.ts +7 -3
- package/dist/cramFile/codecs/beta.js +13 -31
- package/dist/cramFile/codecs/beta.js.map +1 -1
- package/dist/cramFile/codecs/byteArrayLength.d.ts +13 -7
- package/dist/cramFile/codecs/byteArrayLength.js +22 -41
- package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/dist/cramFile/codecs/byteArrayStop.d.ts +9 -5
- package/dist/cramFile/codecs/byteArrayStop.js +25 -46
- package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
- package/dist/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
- package/dist/cramFile/codecs/dataSeriesTypes.js +3 -0
- package/dist/cramFile/codecs/dataSeriesTypes.js.map +1 -0
- package/dist/cramFile/codecs/external.d.ts +10 -6
- package/dist/cramFile/codecs/external.js +26 -44
- package/dist/cramFile/codecs/external.js.map +1 -1
- package/dist/cramFile/codecs/gamma.d.ts +7 -3
- package/dist/cramFile/codecs/gamma.js +16 -34
- package/dist/cramFile/codecs/gamma.js.map +1 -1
- package/dist/cramFile/codecs/getBits.d.ts +7 -0
- package/dist/cramFile/codecs/getBits.js +26 -0
- package/dist/cramFile/codecs/getBits.js.map +1 -0
- package/dist/cramFile/codecs/huffman.d.ts +17 -13
- package/dist/cramFile/codecs/huffman.js +76 -85
- package/dist/cramFile/codecs/huffman.js.map +1 -1
- package/dist/cramFile/codecs/index.d.ts +4 -2
- package/dist/cramFile/codecs/index.js +12 -13
- package/dist/cramFile/codecs/index.js.map +1 -1
- package/dist/cramFile/codecs/subexp.d.ts +7 -3
- package/dist/cramFile/codecs/subexp.js +19 -36
- package/dist/cramFile/codecs/subexp.js.map +1 -1
- package/dist/cramFile/constants.d.ts +35 -35
- package/dist/cramFile/constants.js +1 -1
- package/dist/cramFile/constants.js.map +1 -1
- package/dist/cramFile/container/compressionScheme.d.ts +57 -11
- package/dist/cramFile/container/compressionScheme.js +37 -32
- package/dist/cramFile/container/compressionScheme.js.map +1 -1
- package/dist/cramFile/container/index.d.ts +23 -9
- package/dist/cramFile/container/index.js +74 -144
- package/dist/cramFile/container/index.js.map +1 -1
- package/dist/cramFile/encoding.d.ts +78 -0
- package/dist/cramFile/encoding.js +3 -0
- package/dist/cramFile/encoding.js.map +1 -0
- package/dist/cramFile/file.d.ts +91 -41
- package/dist/cramFile/file.js +234 -368
- package/dist/cramFile/file.js.map +1 -1
- package/dist/cramFile/filehandle.d.ts +2 -0
- package/dist/cramFile/filehandle.js +3 -0
- package/dist/cramFile/filehandle.js.map +1 -0
- package/dist/cramFile/index.d.ts +1 -1
- package/dist/cramFile/index.js +1 -1
- package/dist/cramFile/index.js.map +1 -1
- package/dist/cramFile/record.d.ts +61 -17
- package/dist/cramFile/record.js +153 -77
- package/dist/cramFile/record.js.map +1 -1
- package/dist/cramFile/sectionParsers.d.ts +99 -8
- package/dist/cramFile/sectionParsers.js +70 -80
- package/dist/cramFile/sectionParsers.js.map +1 -1
- package/dist/cramFile/slice/decodeRecord.d.ts +30 -2
- package/dist/cramFile/slice/decodeRecord.js +148 -118
- package/dist/cramFile/slice/decodeRecord.js.map +1 -1
- package/dist/cramFile/slice/index.d.ts +21 -14
- package/dist/cramFile/slice/index.js +286 -381
- package/dist/cramFile/slice/index.js.map +1 -1
- package/dist/cramFile/util.d.ts +11 -5
- package/dist/cramFile/util.js +19 -97
- package/dist/cramFile/util.js.map +1 -1
- package/dist/errors.d.ts +5 -10
- package/dist/errors.js +11 -62
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/indexedCramFile.d.ts +37 -12
- package/dist/indexedCramFile.js +114 -154
- package/dist/indexedCramFile.js.map +1 -1
- package/dist/io/index.d.ts +5 -5
- package/dist/io/index.js +9 -9
- package/dist/io/index.js.map +1 -1
- package/dist/rans/constants.js +3 -3
- package/dist/rans/constants.js.map +1 -1
- package/dist/rans/d04.js +15 -15
- package/dist/rans/d04.js.map +1 -1
- package/dist/rans/d14.js +21 -21
- package/dist/rans/d14.js.map +1 -1
- package/dist/rans/decoding.js +27 -30
- package/dist/rans/decoding.js.map +1 -1
- package/dist/rans/frequencies.js +11 -11
- package/dist/rans/frequencies.js.map +1 -1
- package/dist/rans/index.js +46 -49
- package/dist/rans/index.js.map +1 -1
- package/dist/sam.d.ts +8 -1
- package/dist/sam.js +7 -7
- package/dist/sam.js.map +1 -1
- package/dist/typescript.d.ts +3 -0
- package/dist/typescript.js +11 -0
- package/dist/typescript.js.map +1 -0
- package/dist/unzip-pako.js +1 -1
- package/dist/unzip-pako.js.map +1 -1
- package/dist/unzip.js +1 -1
- package/dist/unzip.js.map +1 -1
- package/errors.js +11 -62
- package/esm/craiIndex.d.ts +19 -12
- package/esm/craiIndex.js +8 -24
- package/esm/craiIndex.js.map +1 -1
- package/esm/cramFile/codecs/_base.d.ts +26 -5
- package/esm/cramFile/codecs/_base.js +1 -35
- package/esm/cramFile/codecs/_base.js.map +1 -1
- package/esm/cramFile/codecs/beta.d.ts +7 -3
- package/esm/cramFile/codecs/beta.js +4 -3
- package/esm/cramFile/codecs/beta.js.map +1 -1
- package/esm/cramFile/codecs/byteArrayLength.d.ts +13 -7
- package/esm/cramFile/codecs/byteArrayLength.js +1 -1
- package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/esm/cramFile/codecs/byteArrayStop.d.ts +9 -5
- package/esm/cramFile/codecs/byteArrayStop.js +7 -9
- package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
- package/esm/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
- package/esm/cramFile/codecs/dataSeriesTypes.js +2 -0
- package/esm/cramFile/codecs/dataSeriesTypes.js.map +1 -0
- package/esm/cramFile/codecs/external.d.ts +10 -6
- package/esm/cramFile/codecs/external.js +4 -3
- package/esm/cramFile/codecs/external.js.map +1 -1
- package/esm/cramFile/codecs/gamma.d.ts +7 -3
- package/esm/cramFile/codecs/gamma.js +5 -4
- package/esm/cramFile/codecs/gamma.js.map +1 -1
- package/esm/cramFile/codecs/getBits.d.ts +7 -0
- package/esm/cramFile/codecs/getBits.js +21 -0
- package/esm/cramFile/codecs/getBits.js.map +1 -0
- package/esm/cramFile/codecs/huffman.d.ts +17 -13
- package/esm/cramFile/codecs/huffman.js +22 -9
- package/esm/cramFile/codecs/huffman.js.map +1 -1
- package/esm/cramFile/codecs/index.d.ts +4 -2
- package/esm/cramFile/codecs/index.js +1 -1
- package/esm/cramFile/codecs/index.js.map +1 -1
- package/esm/cramFile/codecs/subexp.d.ts +7 -3
- package/esm/cramFile/codecs/subexp.js +7 -5
- package/esm/cramFile/codecs/subexp.js.map +1 -1
- package/esm/cramFile/constants.d.ts +35 -35
- package/esm/cramFile/constants.js.map +1 -1
- package/esm/cramFile/container/compressionScheme.d.ts +57 -11
- package/esm/cramFile/container/compressionScheme.js +15 -8
- package/esm/cramFile/container/compressionScheme.js.map +1 -1
- package/esm/cramFile/container/index.d.ts +23 -9
- package/esm/cramFile/container/index.js +11 -9
- package/esm/cramFile/container/index.js.map +1 -1
- package/esm/cramFile/encoding.d.ts +78 -0
- package/esm/cramFile/encoding.js +2 -0
- package/esm/cramFile/encoding.js.map +1 -0
- package/esm/cramFile/file.d.ts +91 -41
- package/esm/cramFile/file.js +59 -47
- package/esm/cramFile/file.js.map +1 -1
- package/esm/cramFile/filehandle.d.ts +2 -0
- package/esm/cramFile/filehandle.js +2 -0
- package/esm/cramFile/filehandle.js.map +1 -0
- package/esm/cramFile/index.d.ts +1 -1
- package/esm/cramFile/index.js.map +1 -1
- package/esm/cramFile/record.d.ts +61 -17
- package/esm/cramFile/record.js +83 -5
- package/esm/cramFile/record.js.map +1 -1
- package/esm/cramFile/sectionParsers.d.ts +99 -8
- package/esm/cramFile/sectionParsers.js +7 -17
- package/esm/cramFile/sectionParsers.js.map +1 -1
- package/esm/cramFile/slice/decodeRecord.d.ts +30 -2
- package/esm/cramFile/slice/decodeRecord.js +102 -70
- package/esm/cramFile/slice/decodeRecord.js.map +1 -1
- package/esm/cramFile/slice/index.d.ts +21 -14
- package/esm/cramFile/slice/index.js +77 -38
- package/esm/cramFile/slice/index.js.map +1 -1
- package/esm/cramFile/util.d.ts +11 -5
- package/esm/cramFile/util.js +11 -82
- package/esm/cramFile/util.js.map +1 -1
- package/esm/errors.d.ts +5 -10
- package/esm/errors.js +0 -5
- package/esm/errors.js.map +1 -1
- package/esm/index.d.ts +3 -3
- package/esm/index.js.map +1 -1
- package/esm/indexedCramFile.d.ts +37 -12
- package/esm/indexedCramFile.js +19 -8
- package/esm/indexedCramFile.js.map +1 -1
- package/esm/io/index.d.ts +5 -5
- package/esm/io/index.js +3 -3
- package/esm/io/index.js.map +1 -1
- package/esm/sam.d.ts +8 -1
- package/esm/sam.js.map +1 -1
- package/esm/typescript.d.ts +3 -0
- package/esm/typescript.js +7 -0
- package/esm/typescript.js.map +1 -0
- package/package.json +18 -11
- package/src/{craiIndex.js → craiIndex.ts} +37 -31
- package/src/cramFile/codecs/_base.ts +45 -0
- package/src/cramFile/codecs/beta.ts +34 -0
- package/src/cramFile/codecs/{byteArrayLength.js → byteArrayLength.ts} +27 -5
- package/src/cramFile/codecs/{byteArrayStop.js → byteArrayStop.ts} +25 -12
- package/src/cramFile/codecs/dataSeriesTypes.ts +39 -0
- package/src/cramFile/codecs/{external.js → external.ts} +28 -12
- package/src/cramFile/codecs/gamma.ts +42 -0
- package/src/cramFile/codecs/getBits.ts +28 -0
- package/src/cramFile/codecs/{huffman.js → huffman.ts} +48 -15
- package/src/cramFile/codecs/{index.js → index.ts} +9 -3
- package/src/cramFile/codecs/subexp.ts +45 -0
- package/src/cramFile/{constants.js → constants.ts} +0 -0
- package/src/cramFile/container/{compressionScheme.js → compressionScheme.ts} +50 -18
- package/src/cramFile/container/{index.js → index.ts} +13 -13
- package/src/cramFile/encoding.ts +98 -0
- package/src/cramFile/{file.js → file.ts} +136 -62
- package/src/cramFile/filehandle.ts +3 -0
- package/src/cramFile/{index.js → index.ts} +0 -0
- package/src/cramFile/{record.js → record.ts} +185 -14
- package/src/cramFile/{sectionParsers.js → sectionParsers.ts} +148 -20
- package/src/cramFile/slice/{decodeRecord.js → decodeRecord.ts} +158 -105
- package/src/cramFile/slice/{index.js → index.ts} +138 -63
- package/src/cramFile/{util.js → util.ts} +28 -17
- package/src/{errors.js → errors.ts} +0 -5
- package/src/{index.js → index.ts} +0 -0
- package/src/{indexedCramFile.js → indexedCramFile.ts} +79 -19
- package/src/io/{index.js → index.ts} +10 -5
- package/src/{sam.js → sam.ts} +7 -2
- package/src/typescript.ts +17 -0
- package/src/typings/binary-parser.d.ts +44 -0
- package/src/typings/bzip2.d.ts +7 -0
- package/src/typings/htscodecs.d.ts +6 -0
- package/dist/io/bufferCache.d.ts +0 -12
- package/dist/io/bufferCache.js +0 -112
- package/dist/io/bufferCache.js.map +0 -1
- package/dist/io/localFile.d.ts +0 -10
- package/dist/io/localFile.js +0 -108
- package/dist/io/localFile.js.map +0 -1
- package/dist/io/remoteFile.d.ts +0 -16
- package/dist/io/remoteFile.js +0 -143
- package/dist/io/remoteFile.js.map +0 -1
- package/esm/io/bufferCache.d.ts +0 -12
- package/esm/io/bufferCache.js +0 -54
- package/esm/io/bufferCache.js.map +0 -1
- package/esm/io/localFile.d.ts +0 -10
- package/esm/io/localFile.js +0 -31
- package/esm/io/localFile.js.map +0 -1
- package/esm/io/remoteFile.d.ts +0 -16
- package/esm/io/remoteFile.js +0 -64
- package/esm/io/remoteFile.js.map +0 -1
- package/src/cramFile/codecs/_base.js +0 -49
- package/src/cramFile/codecs/beta.js +0 -23
- package/src/cramFile/codecs/gamma.js +0 -30
- package/src/cramFile/codecs/subexp.js +0 -32
- package/src/io/bufferCache.js +0 -66
- package/src/io/localFile.js +0 -35
- package/src/io/remoteFile.js +0 -71
|
@@ -3,17 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const long_1 = __importDefault(require("long"));
|
|
7
|
+
const errors_1 = require("../../errors");
|
|
8
|
+
const record_1 = require("../record");
|
|
9
|
+
const sectionParsers_1 = require("../sectionParsers");
|
|
10
10
|
/**
|
|
11
11
|
* given a Buffer, read a string up to the first null character
|
|
12
12
|
* @private
|
|
13
13
|
*/
|
|
14
14
|
function readNullTerminatedString(buffer) {
|
|
15
|
-
|
|
16
|
-
for (
|
|
15
|
+
let r = '';
|
|
16
|
+
for (let i = 0; i < buffer.length && buffer[i] !== 0; i++) {
|
|
17
17
|
r += String.fromCharCode(buffer[i]);
|
|
18
18
|
}
|
|
19
19
|
return r;
|
|
@@ -23,49 +23,49 @@ function readNullTerminatedString(buffer) {
|
|
|
23
23
|
* @private
|
|
24
24
|
*/
|
|
25
25
|
function parseTagValueArray(buffer) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
const arrayType = String.fromCharCode(buffer[0]);
|
|
27
|
+
const length = Int32Array.from(buffer.slice(1))[0];
|
|
28
|
+
const array = new Array(length);
|
|
29
29
|
buffer = buffer.slice(5);
|
|
30
30
|
if (arrayType === 'c') {
|
|
31
|
-
|
|
32
|
-
for (
|
|
31
|
+
const arr = new Int8Array(buffer.buffer);
|
|
32
|
+
for (let i = 0; i < length; i += 1) {
|
|
33
33
|
array[i] = arr[i];
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
else if (arrayType === 'C') {
|
|
37
|
-
|
|
38
|
-
for (
|
|
37
|
+
const arr = new Uint8Array(buffer.buffer);
|
|
38
|
+
for (let i = 0; i < length; i += 1) {
|
|
39
39
|
array[i] = arr[i];
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
else if (arrayType === 's') {
|
|
43
|
-
|
|
44
|
-
for (
|
|
43
|
+
const arr = new Int16Array(buffer.buffer);
|
|
44
|
+
for (let i = 0; i < length; i += 1) {
|
|
45
45
|
array[i] = arr[i];
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
else if (arrayType === 'S') {
|
|
49
|
-
|
|
50
|
-
for (
|
|
49
|
+
const arr = new Uint16Array(buffer.buffer);
|
|
50
|
+
for (let i = 0; i < length; i += 1) {
|
|
51
51
|
array[i] = arr[i];
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
else if (arrayType === 'i') {
|
|
55
|
-
|
|
56
|
-
for (
|
|
55
|
+
const arr = new Int32Array(buffer.buffer);
|
|
56
|
+
for (let i = 0; i < length; i += 1) {
|
|
57
57
|
array[i] = arr[i];
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
else if (arrayType === 'I') {
|
|
61
|
-
|
|
62
|
-
for (
|
|
61
|
+
const arr = new Uint32Array(buffer.buffer);
|
|
62
|
+
for (let i = 0; i < length; i += 1) {
|
|
63
63
|
array[i] = arr[i];
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
else if (arrayType === 'f') {
|
|
67
|
-
|
|
68
|
-
for (
|
|
67
|
+
const arr = new Float32Array(buffer.buffer);
|
|
68
|
+
for (let i = 0; i < length; i += 1) {
|
|
69
69
|
array[i] = arr[i];
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -108,15 +108,14 @@ function parseTagData(tagType, buffer) {
|
|
|
108
108
|
if (tagType === 'B') {
|
|
109
109
|
return parseTagValueArray(buffer);
|
|
110
110
|
}
|
|
111
|
-
throw new errors_1.CramMalformedError(
|
|
111
|
+
throw new errors_1.CramMalformedError(`Unrecognized tag type ${tagType}`);
|
|
112
112
|
}
|
|
113
|
-
function decodeReadFeatures(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
function decodeRFData(
|
|
118
|
-
|
|
119
|
-
var data = decodeDataSeries(dataSeriesName);
|
|
113
|
+
function decodeReadFeatures(alignmentStart, readFeatureCount, decodeDataSeries, compressionScheme, majorVersion) {
|
|
114
|
+
let currentReadPos = 0;
|
|
115
|
+
let currentRefPos = alignmentStart - 1;
|
|
116
|
+
const readFeatures = new Array(readFeatureCount);
|
|
117
|
+
function decodeRFData([type, dataSeriesName]) {
|
|
118
|
+
const data = decodeDataSeries(dataSeriesName);
|
|
120
119
|
if (type === 'character') {
|
|
121
120
|
return String.fromCharCode(data);
|
|
122
121
|
}
|
|
@@ -131,12 +130,11 @@ function decodeReadFeatures(cramRecord, readFeatureCount, decodeDataSeries, comp
|
|
|
131
130
|
// }
|
|
132
131
|
return data;
|
|
133
132
|
}
|
|
134
|
-
for (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
var readFeature = { code: code };
|
|
133
|
+
for (let i = 0; i < readFeatureCount; i += 1) {
|
|
134
|
+
const code = String.fromCharCode(decodeDataSeries('FC'));
|
|
135
|
+
const readPosDelta = decodeDataSeries('FP');
|
|
138
136
|
// map of operator name -> data series name
|
|
139
|
-
|
|
137
|
+
const data1Schema = {
|
|
140
138
|
B: ['character', 'BA'],
|
|
141
139
|
S: ['string', majorVersion > 1 ? 'SC' : 'IN'],
|
|
142
140
|
X: ['number', 'BS'],
|
|
@@ -151,161 +149,193 @@ function decodeReadFeatures(cramRecord, readFeatureCount, decodeDataSeries, comp
|
|
|
151
149
|
N: ['number', 'RS'],
|
|
152
150
|
}[code];
|
|
153
151
|
if (!data1Schema) {
|
|
154
|
-
throw new errors_1.CramMalformedError(
|
|
152
|
+
throw new errors_1.CramMalformedError(`invalid read feature code "${code}"`);
|
|
155
153
|
}
|
|
156
|
-
|
|
154
|
+
let data = decodeRFData(data1Schema);
|
|
157
155
|
// if this is a tag with two data items, make the data an array and add the second item
|
|
158
|
-
|
|
156
|
+
const data2Schema = { B: ['number', 'QS'] }[code];
|
|
159
157
|
if (data2Schema) {
|
|
160
|
-
|
|
158
|
+
data = [data, decodeRFData(data2Schema)];
|
|
161
159
|
}
|
|
162
160
|
currentReadPos += readPosDelta;
|
|
163
|
-
|
|
161
|
+
const pos = currentReadPos;
|
|
164
162
|
currentRefPos += readPosDelta;
|
|
165
|
-
|
|
163
|
+
const refPos = currentRefPos;
|
|
166
164
|
// for gapping features, adjust the reference position for read features that follow
|
|
167
165
|
if (code === 'D' || code === 'N') {
|
|
168
|
-
currentRefPos +=
|
|
166
|
+
currentRefPos += data;
|
|
169
167
|
}
|
|
170
168
|
else if (code === 'I' || code === 'S') {
|
|
171
|
-
currentRefPos -=
|
|
169
|
+
currentRefPos -= data.length;
|
|
172
170
|
}
|
|
173
171
|
else if (code === 'i') {
|
|
174
172
|
currentRefPos -= 1;
|
|
175
173
|
}
|
|
176
|
-
readFeatures[i] =
|
|
174
|
+
readFeatures[i] = { code, pos, refPos, data };
|
|
177
175
|
}
|
|
178
176
|
return readFeatures;
|
|
179
177
|
}
|
|
180
178
|
function decodeRecord(slice, decodeDataSeries, compressionScheme, sliceHeader, coreDataBlock, blocksByContentId, cursors, majorVersion, recordNumber) {
|
|
181
|
-
|
|
182
|
-
cramRecord.flags = decodeDataSeries('BF');
|
|
179
|
+
let flags = decodeDataSeries('BF');
|
|
183
180
|
// note: the C data type of compressionFlags is byte in cram v1
|
|
184
181
|
// and int32 in cram v2+, but that does not matter for us here
|
|
185
182
|
// in javascript land.
|
|
186
|
-
|
|
187
|
-
if (
|
|
188
|
-
|
|
183
|
+
const cramFlags = decodeDataSeries('CF');
|
|
184
|
+
if (!(0, sectionParsers_1.isMappedSliceHeader)(sliceHeader.parsedContent)) {
|
|
185
|
+
throw new Error();
|
|
186
|
+
}
|
|
187
|
+
let sequenceId;
|
|
188
|
+
if (majorVersion > 1 && sliceHeader.parsedContent.refSeqId === -2) {
|
|
189
|
+
sequenceId = decodeDataSeries('RI');
|
|
189
190
|
}
|
|
190
191
|
else {
|
|
191
|
-
|
|
192
|
+
sequenceId = sliceHeader.parsedContent.refSeqId;
|
|
192
193
|
}
|
|
193
|
-
|
|
194
|
+
const readLength = decodeDataSeries('RL');
|
|
194
195
|
// if APDelta, will calculate the true start in a second pass
|
|
195
|
-
|
|
196
|
+
let alignmentStart = decodeDataSeries('AP');
|
|
196
197
|
if (compressionScheme.APdelta) {
|
|
197
|
-
|
|
198
|
+
alignmentStart = alignmentStart + cursors.lastAlignmentStart;
|
|
198
199
|
}
|
|
199
|
-
cursors.lastAlignmentStart =
|
|
200
|
-
|
|
200
|
+
cursors.lastAlignmentStart = alignmentStart;
|
|
201
|
+
const readGroupId = decodeDataSeries('RG');
|
|
202
|
+
let readName;
|
|
201
203
|
if (compressionScheme.readNamesIncluded) {
|
|
202
|
-
|
|
204
|
+
readName = readNullTerminatedString(decodeDataSeries('RN'));
|
|
203
205
|
}
|
|
206
|
+
let mateToUse;
|
|
207
|
+
let templateSize;
|
|
208
|
+
let mateRecordNumber;
|
|
204
209
|
// mate record
|
|
205
|
-
if (
|
|
210
|
+
if (record_1.CramFlagsDecoder.isDetached(cramFlags)) {
|
|
206
211
|
// note: the MF is a byte in 1.0, int32 in 2+, but once again this doesn't matter for javascript
|
|
207
|
-
|
|
208
|
-
|
|
212
|
+
// const mate: any = {}
|
|
213
|
+
const mateFlags = decodeDataSeries('MF');
|
|
214
|
+
let mateReadName;
|
|
209
215
|
if (!compressionScheme.readNamesIncluded) {
|
|
210
|
-
|
|
211
|
-
|
|
216
|
+
mateReadName = readNullTerminatedString(decodeDataSeries('RN'));
|
|
217
|
+
readName = mateReadName;
|
|
212
218
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
if (
|
|
216
|
-
|
|
219
|
+
const mateSequenceId = decodeDataSeries('NS');
|
|
220
|
+
const mateAlignmentStart = decodeDataSeries('NP');
|
|
221
|
+
if (mateFlags || mateSequenceId > -1) {
|
|
222
|
+
mateToUse = {
|
|
223
|
+
mateFlags,
|
|
224
|
+
mateSequenceId,
|
|
225
|
+
mateAlignmentStart,
|
|
226
|
+
mateReadName,
|
|
227
|
+
};
|
|
217
228
|
}
|
|
218
|
-
|
|
229
|
+
templateSize = decodeDataSeries('TS');
|
|
219
230
|
// set mate unmapped if needed
|
|
220
|
-
if (
|
|
221
|
-
|
|
231
|
+
if (record_1.MateFlagsDecoder.isUnmapped(mateFlags)) {
|
|
232
|
+
flags = record_1.BamFlagsDecoder.setMateUnmapped(flags);
|
|
222
233
|
}
|
|
223
234
|
// set mate reversed if needed
|
|
224
|
-
if (
|
|
225
|
-
|
|
235
|
+
if (record_1.MateFlagsDecoder.isOnNegativeStrand(mateFlags)) {
|
|
236
|
+
flags = record_1.BamFlagsDecoder.setMateReverseComplemented(flags);
|
|
226
237
|
}
|
|
227
238
|
// detachedCount++
|
|
228
239
|
}
|
|
229
|
-
else if (
|
|
230
|
-
|
|
240
|
+
else if (record_1.CramFlagsDecoder.isWithMateDownstream(cramFlags)) {
|
|
241
|
+
mateRecordNumber = decodeDataSeries('NF') + recordNumber + 1;
|
|
231
242
|
}
|
|
232
243
|
// TODO: the aux tag parsing will have to be refactored if we want to support
|
|
233
244
|
// cram v1
|
|
234
|
-
|
|
245
|
+
const TLindex = decodeDataSeries('TL');
|
|
235
246
|
if (TLindex < 0) {
|
|
236
247
|
/* TODO: check nTL: TLindex >= compressionHeader.tagEncoding.size */
|
|
237
248
|
throw new errors_1.CramMalformedError('invalid TL index');
|
|
238
249
|
}
|
|
250
|
+
const tags = {};
|
|
239
251
|
// TN = tag names
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
for (
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
252
|
+
const TN = compressionScheme.getTagNames(TLindex);
|
|
253
|
+
const ntags = TN.length;
|
|
254
|
+
for (let i = 0; i < ntags; i += 1) {
|
|
255
|
+
const tagId = TN[i];
|
|
256
|
+
const tagName = tagId.substr(0, 2);
|
|
257
|
+
const tagType = tagId.substr(2, 1);
|
|
258
|
+
const tagCodec = compressionScheme.getCodecForTag(tagId);
|
|
247
259
|
if (!tagCodec) {
|
|
248
|
-
throw new errors_1.CramMalformedError(
|
|
260
|
+
throw new errors_1.CramMalformedError(`no codec defined for auxiliary tag ${tagId}`);
|
|
249
261
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
|
|
262
|
+
const tagData = tagCodec.decode(slice, coreDataBlock, blocksByContentId, cursors);
|
|
263
|
+
tags[tagName] = parseTagData(tagType, tagData);
|
|
264
|
+
}
|
|
265
|
+
let readFeatures;
|
|
266
|
+
let lengthOnRef;
|
|
267
|
+
let mappingQuality;
|
|
268
|
+
let qualityScores;
|
|
269
|
+
let readBases = undefined;
|
|
270
|
+
if (!record_1.BamFlagsDecoder.isSegmentUnmapped(flags)) {
|
|
254
271
|
// reading read features
|
|
255
|
-
|
|
272
|
+
const readFeatureCount = decodeDataSeries('FN');
|
|
256
273
|
if (readFeatureCount) {
|
|
257
|
-
|
|
274
|
+
readFeatures = decodeReadFeatures(alignmentStart, readFeatureCount, decodeDataSeries, compressionScheme, majorVersion);
|
|
258
275
|
}
|
|
259
276
|
// compute the read's true span on the reference sequence, and the end coordinate of the alignment on the reference
|
|
260
|
-
|
|
261
|
-
if (
|
|
262
|
-
|
|
263
|
-
var code = _a.code, data = _a.data;
|
|
277
|
+
lengthOnRef = readLength;
|
|
278
|
+
if (readFeatures) {
|
|
279
|
+
for (const { code, data } of readFeatures) {
|
|
264
280
|
if (code === 'D' || code === 'N') {
|
|
265
|
-
|
|
281
|
+
lengthOnRef += data;
|
|
266
282
|
}
|
|
267
283
|
else if (code === 'I' || code === 'S') {
|
|
268
|
-
|
|
284
|
+
lengthOnRef = lengthOnRef - data.length;
|
|
269
285
|
}
|
|
270
286
|
else if (code === 'i') {
|
|
271
|
-
|
|
287
|
+
lengthOnRef = lengthOnRef - 1;
|
|
272
288
|
}
|
|
273
|
-
}
|
|
289
|
+
}
|
|
274
290
|
}
|
|
275
|
-
if (Number.isNaN(
|
|
276
|
-
console.warn(
|
|
277
|
-
|
|
278
|
-
lengthOnRef_1 = cramRecord.readLength;
|
|
291
|
+
if (Number.isNaN(lengthOnRef)) {
|
|
292
|
+
console.warn(`${readName || `${sequenceId}:${alignmentStart}`} record has invalid read features`);
|
|
293
|
+
lengthOnRef = readLength;
|
|
279
294
|
}
|
|
280
|
-
cramRecord.lengthOnRef = lengthOnRef_1;
|
|
281
295
|
// mapping quality
|
|
282
|
-
|
|
283
|
-
if (
|
|
284
|
-
|
|
285
|
-
for (
|
|
286
|
-
|
|
296
|
+
mappingQuality = decodeDataSeries('MQ');
|
|
297
|
+
if (record_1.CramFlagsDecoder.isPreservingQualityScores(cramFlags)) {
|
|
298
|
+
qualityScores = new Array(readLength);
|
|
299
|
+
for (let i = 0; i < qualityScores.length; i++) {
|
|
300
|
+
qualityScores[i] = decodeDataSeries('QS');
|
|
287
301
|
}
|
|
288
|
-
cramRecord.qualityScores = bases;
|
|
289
302
|
}
|
|
290
303
|
}
|
|
291
|
-
else if (
|
|
292
|
-
|
|
293
|
-
|
|
304
|
+
else if (record_1.CramFlagsDecoder.isDecodeSequenceAsStar(cramFlags)) {
|
|
305
|
+
readBases = null;
|
|
306
|
+
qualityScores = null;
|
|
294
307
|
}
|
|
295
308
|
else {
|
|
296
|
-
|
|
297
|
-
for (
|
|
309
|
+
const bases = new Array(readLength);
|
|
310
|
+
for (let i = 0; i < bases.length; i += 1) {
|
|
298
311
|
bases[i] = decodeDataSeries('BA');
|
|
299
312
|
}
|
|
300
|
-
|
|
301
|
-
if (
|
|
302
|
-
|
|
303
|
-
|
|
313
|
+
readBases = String.fromCharCode(...bases);
|
|
314
|
+
if (record_1.CramFlagsDecoder.isPreservingQualityScores(cramFlags)) {
|
|
315
|
+
qualityScores = new Array(readLength);
|
|
316
|
+
for (let i = 0; i < bases.length; i += 1) {
|
|
317
|
+
qualityScores[i] = decodeDataSeries('QS');
|
|
304
318
|
}
|
|
305
|
-
cramRecord.qualityScores = bases;
|
|
306
319
|
}
|
|
307
320
|
}
|
|
308
|
-
return
|
|
321
|
+
return {
|
|
322
|
+
readLength,
|
|
323
|
+
sequenceId,
|
|
324
|
+
cramFlags,
|
|
325
|
+
flags,
|
|
326
|
+
alignmentStart,
|
|
327
|
+
readGroupId,
|
|
328
|
+
readName,
|
|
329
|
+
mateToUse,
|
|
330
|
+
templateSize,
|
|
331
|
+
mateRecordNumber,
|
|
332
|
+
readFeatures,
|
|
333
|
+
lengthOnRef,
|
|
334
|
+
mappingQuality,
|
|
335
|
+
qualityScores,
|
|
336
|
+
readBases,
|
|
337
|
+
tags,
|
|
338
|
+
};
|
|
309
339
|
}
|
|
310
340
|
exports.default = decodeRecord;
|
|
311
341
|
//# sourceMappingURL=decodeRecord.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decodeRecord.js","sourceRoot":"","sources":["../../../src/cramFile/slice/decodeRecord.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decodeRecord.js","sourceRoot":"","sources":["../../../src/cramFile/slice/decodeRecord.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
|
+
import CramRecord from '../record';
|
|
2
|
+
import CramContainer from '../container';
|
|
3
|
+
import { CramFileBlock } from '../file';
|
|
4
|
+
import { MappedSliceHeader, UnmappedSliceHeader } from '../sectionParsers';
|
|
5
|
+
export declare type SliceHeader = CramFileBlock & {
|
|
6
|
+
parsedContent: MappedSliceHeader | UnmappedSliceHeader;
|
|
7
|
+
};
|
|
1
8
|
export default class CramSlice {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
file
|
|
5
|
-
containerPosition:
|
|
6
|
-
getHeader(): Promise<
|
|
7
|
-
getBlocks(): Promise<
|
|
8
|
-
getCoreDataBlock(): Promise<
|
|
9
|
-
_getBlocksContentIdIndex(): Promise<
|
|
10
|
-
getBlockByContentId(id:
|
|
9
|
+
container: CramContainer;
|
|
10
|
+
containerPosition: number;
|
|
11
|
+
private file;
|
|
12
|
+
constructor(container: CramContainer, containerPosition: number, _unused: number);
|
|
13
|
+
getHeader(): Promise<SliceHeader>;
|
|
14
|
+
getBlocks(): Promise<CramFileBlock[]>;
|
|
15
|
+
getCoreDataBlock(): Promise<CramFileBlock>;
|
|
16
|
+
_getBlocksContentIdIndex(): Promise<Record<number, CramFileBlock>>;
|
|
17
|
+
getBlockByContentId(id: number): Promise<CramFileBlock>;
|
|
11
18
|
getReferenceRegion(): Promise<{
|
|
12
19
|
seq: any;
|
|
13
|
-
start:
|
|
20
|
+
start: number;
|
|
14
21
|
end: number;
|
|
15
|
-
span:
|
|
22
|
+
span: number;
|
|
16
23
|
} | undefined>;
|
|
17
|
-
getAllRecords(): Promise<
|
|
18
|
-
_fetchRecords(): Promise<
|
|
19
|
-
getRecords(filterFunction:
|
|
24
|
+
getAllRecords(): Promise<CramRecord[]>;
|
|
25
|
+
_fetchRecords(): Promise<CramRecord[]>;
|
|
26
|
+
getRecords(filterFunction: (r: CramRecord) => boolean): Promise<CramRecord[]>;
|
|
20
27
|
}
|