@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
|
@@ -1,18 +1,109 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
1
|
+
import { Parser } from '@gmod/binary-parser';
|
|
2
|
+
import { TupleOf } from '../typescript';
|
|
3
|
+
import { ParsedItem } from './util';
|
|
4
|
+
import { DataSeriesEncodingMap } from './codecs/dataSeriesTypes';
|
|
5
|
+
import { CramEncoding } from './encoding';
|
|
6
|
+
declare const cramFileDefinition: {
|
|
7
|
+
parser: Parser<unknown>;
|
|
8
|
+
maxLength: number;
|
|
9
|
+
};
|
|
10
|
+
export declare type CramTagDictionary = string[][];
|
|
11
|
+
export declare type CramPreservationMap = {
|
|
12
|
+
MI: boolean;
|
|
13
|
+
UI: boolean;
|
|
14
|
+
PI: boolean;
|
|
15
|
+
RN: boolean;
|
|
16
|
+
AP: boolean;
|
|
17
|
+
RR: boolean;
|
|
18
|
+
SM: [number, number, number, number, number];
|
|
19
|
+
TD: CramTagDictionary;
|
|
20
|
+
};
|
|
21
|
+
export declare type MappedSliceHeader = {
|
|
22
|
+
refSeqId: number;
|
|
23
|
+
refSeqStart: number;
|
|
24
|
+
refSeqSpan: number;
|
|
25
|
+
numRecords: number;
|
|
26
|
+
recordCounter: number;
|
|
27
|
+
numBlocks: number;
|
|
28
|
+
numContentIds: number;
|
|
29
|
+
contentIds: number[];
|
|
30
|
+
refBaseBlockId: number;
|
|
31
|
+
md5: TupleOf<number, 16>;
|
|
32
|
+
};
|
|
33
|
+
export declare type UnmappedSliceHeader = {
|
|
34
|
+
numRecords: number;
|
|
35
|
+
recordCounter: number;
|
|
36
|
+
numBlocks: number;
|
|
37
|
+
numContentIds: number;
|
|
38
|
+
contentIds: number[];
|
|
39
|
+
md5: TupleOf<number, 16>;
|
|
40
|
+
};
|
|
41
|
+
export declare function isMappedSliceHeader(header: MappedSliceHeader | UnmappedSliceHeader): header is MappedSliceHeader;
|
|
42
|
+
export declare type CompressionMethod = 'raw' | 'gzip' | 'bzip2' | 'lzma' | 'rans' | 'rans4x16' | 'arith' | 'fqzcomp' | 'tok3';
|
|
43
|
+
export declare type BlockHeader = {
|
|
44
|
+
compressionMethod: CompressionMethod;
|
|
45
|
+
contentType: 'FILE_HEADER' | 'COMPRESSION_HEADER' | 'MAPPED_SLICE_HEADER' | 'UNMAPPED_SLICE_HEADER' | 'EXTERNAL_DATA' | 'CORE_DATA';
|
|
46
|
+
contentId: number;
|
|
47
|
+
compressedSize: number;
|
|
48
|
+
uncompressedSize: number;
|
|
49
|
+
};
|
|
50
|
+
export declare type CramCompressionHeader = ParsedItem<{
|
|
51
|
+
preservation: CramPreservationMap;
|
|
52
|
+
dataSeriesEncoding: DataSeriesEncodingMap;
|
|
53
|
+
tagEncoding: Record<string, CramEncoding>;
|
|
54
|
+
}>;
|
|
55
|
+
declare function getSectionParsers(majorVersion: number): {
|
|
6
56
|
cramFileDefinition: {
|
|
7
|
-
parser:
|
|
57
|
+
parser: Parser<{
|
|
58
|
+
magic: string;
|
|
59
|
+
majorVersion: number;
|
|
60
|
+
minorVersion: number;
|
|
61
|
+
fileId: string;
|
|
62
|
+
}>;
|
|
8
63
|
maxLength: number;
|
|
9
64
|
};
|
|
65
|
+
cramContainerHeader1: {
|
|
66
|
+
parser: Parser<{
|
|
67
|
+
length: number;
|
|
68
|
+
refSeqId: number;
|
|
69
|
+
refSeqStart: number;
|
|
70
|
+
alignmentSpan: number;
|
|
71
|
+
numRecords: number;
|
|
72
|
+
recordCounter: number;
|
|
73
|
+
numBases: number;
|
|
74
|
+
numBlocks: number;
|
|
75
|
+
numLandmarks: number;
|
|
76
|
+
}>;
|
|
77
|
+
maxLength: number;
|
|
78
|
+
};
|
|
79
|
+
cramContainerHeader2: {
|
|
80
|
+
parser: Parser<{
|
|
81
|
+
numLandmarks: number;
|
|
82
|
+
landmarks: number[];
|
|
83
|
+
crc32: number;
|
|
84
|
+
}>;
|
|
85
|
+
maxLength: (x: number) => number;
|
|
86
|
+
};
|
|
10
87
|
cramBlockHeader: {
|
|
11
|
-
parser:
|
|
88
|
+
parser: Parser<BlockHeader>;
|
|
12
89
|
maxLength: number;
|
|
13
90
|
};
|
|
14
91
|
cramBlockCrc32: {
|
|
15
|
-
parser:
|
|
92
|
+
parser: Parser<{
|
|
93
|
+
crc32: number;
|
|
94
|
+
}>;
|
|
16
95
|
maxLength: number;
|
|
17
96
|
};
|
|
97
|
+
cramCompressionHeader: {
|
|
98
|
+
parser: Parser<CramCompressionHeader>;
|
|
99
|
+
};
|
|
100
|
+
cramMappedSliceHeader: {
|
|
101
|
+
parser: Parser<MappedSliceHeader>;
|
|
102
|
+
maxLength: (numContentIds: number) => number;
|
|
103
|
+
};
|
|
104
|
+
cramUnmappedSliceHeader: {
|
|
105
|
+
parser: Parser<UnmappedSliceHeader>;
|
|
106
|
+
maxLength: (numContentIds: number) => number;
|
|
107
|
+
};
|
|
18
108
|
};
|
|
109
|
+
export { cramFileDefinition, getSectionParsers };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSectionParsers = exports.cramFileDefinition = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
exports.getSectionParsers = exports.cramFileDefinition = exports.isMappedSliceHeader = void 0;
|
|
4
|
+
const binary_parser_1 = require("@gmod/binary-parser");
|
|
5
|
+
const singleItf8 = new binary_parser_1.Parser().itf8();
|
|
6
|
+
const cramFileDefinition = {
|
|
7
7
|
parser: new binary_parser_1.Parser()
|
|
8
8
|
.string('magic', { length: 4 })
|
|
9
9
|
.uint8('majorVersion')
|
|
@@ -12,11 +12,11 @@ var cramFileDefinition = {
|
|
|
12
12
|
maxLength: 26,
|
|
13
13
|
};
|
|
14
14
|
exports.cramFileDefinition = cramFileDefinition;
|
|
15
|
-
|
|
15
|
+
const cramBlockHeader = {
|
|
16
16
|
parser: new binary_parser_1.Parser()
|
|
17
17
|
.uint8('compressionMethod', {
|
|
18
|
-
formatter: /* istanbul ignore next */
|
|
19
|
-
|
|
18
|
+
formatter: /* istanbul ignore next */ /* istanbul ignore next */ b => {
|
|
19
|
+
const method = [
|
|
20
20
|
'raw',
|
|
21
21
|
'gzip',
|
|
22
22
|
'bzip2',
|
|
@@ -28,14 +28,14 @@ var cramBlockHeader = {
|
|
|
28
28
|
'tok3',
|
|
29
29
|
][b];
|
|
30
30
|
if (!method) {
|
|
31
|
-
throw new Error(
|
|
31
|
+
throw new Error(`compression method number ${b} not implemented`);
|
|
32
32
|
}
|
|
33
33
|
return method;
|
|
34
34
|
},
|
|
35
35
|
})
|
|
36
36
|
.uint8('contentType', {
|
|
37
|
-
formatter: /* istanbul ignore next */
|
|
38
|
-
|
|
37
|
+
formatter: /* istanbul ignore next */ /* istanbul ignore next */ b => {
|
|
38
|
+
const type = [
|
|
39
39
|
'FILE_HEADER',
|
|
40
40
|
'COMPRESSION_HEADER',
|
|
41
41
|
'MAPPED_SLICE_HEADER',
|
|
@@ -44,7 +44,7 @@ var cramBlockHeader = {
|
|
|
44
44
|
'CORE_DATA',
|
|
45
45
|
][b];
|
|
46
46
|
if (!type) {
|
|
47
|
-
throw new Error(
|
|
47
|
+
throw new Error(`invalid block content type id ${b}`);
|
|
48
48
|
}
|
|
49
49
|
return type;
|
|
50
50
|
},
|
|
@@ -54,30 +54,18 @@ var cramBlockHeader = {
|
|
|
54
54
|
.itf8('uncompressedSize'),
|
|
55
55
|
maxLength: 17,
|
|
56
56
|
};
|
|
57
|
-
|
|
57
|
+
const cramBlockCrc32 = {
|
|
58
58
|
parser: new binary_parser_1.Parser().uint32('crc32'),
|
|
59
59
|
maxLength: 4,
|
|
60
60
|
};
|
|
61
|
-
|
|
62
|
-
// 'NULL', // 0
|
|
63
|
-
// 'EXTERNAL', // 1
|
|
64
|
-
// 'GOLOMB', // 2
|
|
65
|
-
// 'HUFFMAN_INT', // 3
|
|
66
|
-
// 'BYTE_ARRAY_LEN', // 4
|
|
67
|
-
// 'BYTE_ARRAY_STOP', // 5
|
|
68
|
-
// 'BETA', // 6
|
|
69
|
-
// 'SUBEXP', // 7
|
|
70
|
-
// 'GOLOMB_RICE', // 8
|
|
71
|
-
// 'GAMMA', // 9
|
|
72
|
-
// ]
|
|
73
|
-
var cramTagDictionary = new binary_parser_1.Parser().itf8('size').buffer('ents', {
|
|
61
|
+
const cramTagDictionary = new binary_parser_1.Parser().itf8('size').buffer('ents', {
|
|
74
62
|
length: 'size',
|
|
75
|
-
formatter: /* istanbul ignore next */
|
|
63
|
+
formatter: /* istanbul ignore next */ /* istanbul ignore next */ buffer => {
|
|
76
64
|
function makeTagSet(stringStart, stringEnd) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
for (
|
|
80
|
-
tags.push(str.substr(
|
|
65
|
+
const str = buffer.toString('utf8', stringStart, stringEnd);
|
|
66
|
+
const tags = [];
|
|
67
|
+
for (let i = 0; i < str.length; i += 3) {
|
|
68
|
+
tags.push(str.substr(i, 3));
|
|
81
69
|
}
|
|
82
70
|
return tags;
|
|
83
71
|
}
|
|
@@ -99,10 +87,10 @@ var cramTagDictionary = new binary_parser_1.Parser().itf8('size').buffer('ents',
|
|
|
99
87
|
},
|
|
100
88
|
});
|
|
101
89
|
// const cramPreservationMapKeys = 'XX RN AP RR SM TD'.split(' ')
|
|
102
|
-
|
|
103
|
-
formatter: /* istanbul ignore next */
|
|
90
|
+
const parseByteAsBool = new binary_parser_1.Parser().uint8(null, {
|
|
91
|
+
formatter: /* istanbul ignore next */ /* istanbul ignore next */ val => !!val,
|
|
104
92
|
});
|
|
105
|
-
|
|
93
|
+
const cramPreservationMap = new binary_parser_1.Parser()
|
|
106
94
|
.itf8('mapSize')
|
|
107
95
|
.itf8('mapCount')
|
|
108
96
|
.array('ents', {
|
|
@@ -125,35 +113,39 @@ var cramPreservationMap = new binary_parser_1.Parser()
|
|
|
125
113
|
SM: new binary_parser_1.Parser().array(null, { type: 'uint8', length: 5 }),
|
|
126
114
|
TD: new binary_parser_1.Parser().nest(null, {
|
|
127
115
|
type: cramTagDictionary,
|
|
128
|
-
formatter: /* istanbul ignore next */
|
|
116
|
+
formatter: /* istanbul ignore next */ /* istanbul ignore next */ data => data.ents,
|
|
129
117
|
}),
|
|
130
118
|
},
|
|
131
119
|
}),
|
|
132
120
|
});
|
|
133
121
|
/* istanbul ignore next */
|
|
134
122
|
function formatMap(data) {
|
|
135
|
-
|
|
136
|
-
for (
|
|
137
|
-
|
|
123
|
+
const map = {};
|
|
124
|
+
for (let i = 0; i < data.ents.length; i += 1) {
|
|
125
|
+
const { key, value } = data.ents[i];
|
|
138
126
|
if (map[key]) {
|
|
139
|
-
console.warn(
|
|
127
|
+
console.warn(`duplicate key ${key} in map`);
|
|
140
128
|
}
|
|
141
129
|
map[key] = value;
|
|
142
130
|
}
|
|
143
131
|
return map;
|
|
144
132
|
}
|
|
145
|
-
|
|
146
|
-
cramFileDefinition
|
|
147
|
-
cramBlockHeader
|
|
148
|
-
cramBlockCrc32
|
|
133
|
+
const unversionedParsers = {
|
|
134
|
+
cramFileDefinition,
|
|
135
|
+
cramBlockHeader,
|
|
136
|
+
cramBlockCrc32,
|
|
149
137
|
};
|
|
138
|
+
function isMappedSliceHeader(header) {
|
|
139
|
+
return typeof header.refSeqId === 'number';
|
|
140
|
+
}
|
|
141
|
+
exports.isMappedSliceHeader = isMappedSliceHeader;
|
|
150
142
|
// each of these is a function of the major and minor version
|
|
151
|
-
|
|
143
|
+
const versionedParsers = {
|
|
152
144
|
// assemble a section parser for the unmapped slice header, with slight
|
|
153
145
|
// variations depending on the major version of the cram file
|
|
154
|
-
cramUnmappedSliceHeader
|
|
155
|
-
|
|
156
|
-
|
|
146
|
+
cramUnmappedSliceHeader(majorVersion) {
|
|
147
|
+
let maxLength = 0;
|
|
148
|
+
let parser = new binary_parser_1.Parser().itf8('numRecords');
|
|
157
149
|
maxLength += 5;
|
|
158
150
|
// recordCounter is itf8 in a CRAM v2 file, absent in CRAM v1
|
|
159
151
|
if (majorVersion >= 3) {
|
|
@@ -177,18 +169,18 @@ var versionedParsers = {
|
|
|
177
169
|
parser = parser.array('md5', { type: 'uint8', length: 16 });
|
|
178
170
|
maxLength += 16;
|
|
179
171
|
}
|
|
180
|
-
|
|
181
|
-
return { parser
|
|
172
|
+
const maxLengthFunc = (numContentIds) => maxLength + numContentIds * 5;
|
|
173
|
+
return { parser, maxLength: maxLengthFunc }; // : p, maxLength: numContentIds => 5 + 9 + 5 * 2 + 5 * numContentIds + 16 }
|
|
182
174
|
},
|
|
183
175
|
// assembles a section parser for the unmapped slice header, with slight
|
|
184
176
|
// variations depending on the major version of the cram file
|
|
185
|
-
cramMappedSliceHeader
|
|
186
|
-
|
|
177
|
+
cramMappedSliceHeader(majorVersion) {
|
|
178
|
+
let parser = new binary_parser_1.Parser()
|
|
187
179
|
.itf8('refSeqId')
|
|
188
180
|
.itf8('refSeqStart')
|
|
189
181
|
.itf8('refSeqSpan')
|
|
190
182
|
.itf8('numRecords');
|
|
191
|
-
|
|
183
|
+
let maxLength = 5 * 4;
|
|
192
184
|
if (majorVersion >= 3) {
|
|
193
185
|
parser = parser.ltf8('recordCounter');
|
|
194
186
|
maxLength += 9;
|
|
@@ -211,11 +203,11 @@ var versionedParsers = {
|
|
|
211
203
|
parser = parser.array('md5', { type: 'uint8', length: 16 });
|
|
212
204
|
maxLength += 16;
|
|
213
205
|
}
|
|
214
|
-
|
|
215
|
-
return { parser
|
|
206
|
+
const maxLengthFunc = (numContentIds) => maxLength + numContentIds * 5;
|
|
207
|
+
return { parser, maxLength: maxLengthFunc };
|
|
216
208
|
},
|
|
217
|
-
cramEncoding
|
|
218
|
-
|
|
209
|
+
cramEncoding(majorVersion) {
|
|
210
|
+
const parser = new binary_parser_1.Parser()
|
|
219
211
|
.namely('cramEncoding')
|
|
220
212
|
.itf8('codecId')
|
|
221
213
|
.itf8('parametersBytes')
|
|
@@ -235,17 +227,16 @@ var versionedParsers = {
|
|
|
235
227
|
.nest('lengthsEncoding', { type: 'cramEncoding' })
|
|
236
228
|
.nest('valuesEncoding', { type: 'cramEncoding' }),
|
|
237
229
|
// BYTE_ARRAY_STOP is a little different for CRAM v1
|
|
238
|
-
5: new binary_parser_1.Parser()
|
|
239
|
-
.uint8('stopByte')[majorVersion > 1 ? 'itf8' : 'int']('blockContentId'),
|
|
230
|
+
5: new binary_parser_1.Parser().uint8('stopByte').itf8('blockContentId'),
|
|
240
231
|
6: new binary_parser_1.Parser().itf8('offset').itf8('length'),
|
|
241
232
|
7: new binary_parser_1.Parser().itf8('offset').itf8('K'),
|
|
242
233
|
8: new binary_parser_1.Parser().itf8('offset').itf8('log2m'),
|
|
243
234
|
9: new binary_parser_1.Parser().itf8('offset'), // GAMMA
|
|
244
235
|
},
|
|
245
236
|
});
|
|
246
|
-
return { parser
|
|
237
|
+
return { parser };
|
|
247
238
|
},
|
|
248
|
-
cramDataSeriesEncodingMap
|
|
239
|
+
cramDataSeriesEncodingMap(majorVersion) {
|
|
249
240
|
return new binary_parser_1.Parser()
|
|
250
241
|
.itf8('mapSize')
|
|
251
242
|
.itf8('mapCount')
|
|
@@ -256,7 +247,7 @@ var versionedParsers = {
|
|
|
256
247
|
.nest('value', { type: this.cramEncoding(majorVersion).parser }),
|
|
257
248
|
});
|
|
258
249
|
},
|
|
259
|
-
cramTagEncodingMap
|
|
250
|
+
cramTagEncodingMap(majorVersion) {
|
|
260
251
|
return new binary_parser_1.Parser()
|
|
261
252
|
.itf8('mapSize')
|
|
262
253
|
.itf8('mapCount')
|
|
@@ -264,18 +255,17 @@ var versionedParsers = {
|
|
|
264
255
|
length: 'mapCount',
|
|
265
256
|
type: new binary_parser_1.Parser()
|
|
266
257
|
.itf8('key', {
|
|
267
|
-
formatter: /* istanbul ignore next */
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
},
|
|
258
|
+
formatter: /* istanbul ignore next */ /* istanbul ignore next */ integerRepresentation =>
|
|
259
|
+
/* istanbul ignore next */
|
|
260
|
+
String.fromCharCode((integerRepresentation >> 16) & 0xff) +
|
|
261
|
+
String.fromCharCode((integerRepresentation >> 8) & 0xff) +
|
|
262
|
+
String.fromCharCode(integerRepresentation & 0xff),
|
|
273
263
|
})
|
|
274
264
|
.nest('value', { type: this.cramEncoding(majorVersion).parser }),
|
|
275
265
|
});
|
|
276
266
|
},
|
|
277
|
-
cramCompressionHeader
|
|
278
|
-
|
|
267
|
+
cramCompressionHeader(majorVersion) {
|
|
268
|
+
let parser = new binary_parser_1.Parser();
|
|
279
269
|
// TODO: if we want to support CRAM v1, we will need to refactor
|
|
280
270
|
// compression header into 2 parts to parse the landmarks,
|
|
281
271
|
// like the container header
|
|
@@ -292,16 +282,16 @@ var versionedParsers = {
|
|
|
292
282
|
type: this.cramTagEncodingMap(majorVersion),
|
|
293
283
|
formatter: formatMap,
|
|
294
284
|
});
|
|
295
|
-
return { parser
|
|
285
|
+
return { parser };
|
|
296
286
|
},
|
|
297
|
-
cramContainerHeader1
|
|
298
|
-
|
|
287
|
+
cramContainerHeader1(majorVersion) {
|
|
288
|
+
let parser = new binary_parser_1.Parser()
|
|
299
289
|
.int32('length') // byte size of the container data (blocks)
|
|
300
290
|
.itf8('refSeqId') // reference sequence identifier, -1 for unmapped reads, -2 for multiple reference sequences
|
|
301
291
|
.itf8('refSeqStart') // the alignment start position or 0 for unmapped reads
|
|
302
292
|
.itf8('alignmentSpan') // the length of the alignment or 0 for unmapped reads
|
|
303
293
|
.itf8('numRecords'); // number of records in the container
|
|
304
|
-
|
|
294
|
+
let maxLength = 4 + 5 * 4;
|
|
305
295
|
if (majorVersion >= 3) {
|
|
306
296
|
parser = parser.ltf8('recordCounter'); // 1-based sequential index of records in the file/stream.
|
|
307
297
|
maxLength += 9;
|
|
@@ -318,10 +308,10 @@ var versionedParsers = {
|
|
|
318
308
|
.itf8('numBlocks') // the number of blocks
|
|
319
309
|
.itf8('numLandmarks'); // the number of landmarks
|
|
320
310
|
maxLength += 5 + 5;
|
|
321
|
-
return { parser
|
|
311
|
+
return { parser, maxLength };
|
|
322
312
|
},
|
|
323
|
-
cramContainerHeader2
|
|
324
|
-
|
|
313
|
+
cramContainerHeader2(majorVersion) {
|
|
314
|
+
let parser = new binary_parser_1.Parser()
|
|
325
315
|
.itf8('numLandmarks') // the number of blocks
|
|
326
316
|
// Each integer value of this array is a byte offset
|
|
327
317
|
// into the blocks byte array. Landmarks are used for
|
|
@@ -330,20 +320,20 @@ var versionedParsers = {
|
|
|
330
320
|
type: new binary_parser_1.Parser().itf8(),
|
|
331
321
|
length: 'numLandmarks',
|
|
332
322
|
});
|
|
333
|
-
|
|
323
|
+
let crcLength = 0;
|
|
334
324
|
if (majorVersion >= 3) {
|
|
335
325
|
parser = parser.uint32('crc32');
|
|
336
326
|
crcLength = 4;
|
|
337
327
|
}
|
|
338
328
|
return {
|
|
339
|
-
parser
|
|
340
|
-
maxLength:
|
|
329
|
+
parser,
|
|
330
|
+
maxLength: (numLandmarks) => 5 + numLandmarks * 5 + crcLength,
|
|
341
331
|
};
|
|
342
332
|
},
|
|
343
333
|
};
|
|
344
334
|
function getSectionParsers(majorVersion) {
|
|
345
|
-
|
|
346
|
-
Object.keys(versionedParsers).forEach(
|
|
335
|
+
const parsers = Object.assign({}, unversionedParsers);
|
|
336
|
+
Object.keys(versionedParsers).forEach(parserName => {
|
|
347
337
|
parsers[parserName] = versionedParsers[parserName](majorVersion);
|
|
348
338
|
});
|
|
349
339
|
return parsers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sectionParsers.js","sourceRoot":"","sources":["../../src/cramFile/sectionParsers.js"],"names":[],"mappings":";;;AAAA,qDAA4C;AAE5C,IAAM,UAAU,GAAG,IAAI,sBAAM,EAAE,CAAC,IAAI,EAAE,CAAA;AAEtC,IAAM,kBAAkB,GAAG;IACzB,MAAM,EAAE,IAAI,sBAAM,EAAE;SACjB,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SAC9B,KAAK,CAAC,cAAc,CAAC;SACrB,KAAK,CAAC,cAAc,CAAC;SACrB,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACpD,SAAS,EAAE,EAAE;CACd,CAAA;AA+WQ,gDAAkB;AA7W3B,IAAM,eAAe,GAAG;IACtB,MAAM,EAAE,IAAI,sBAAM,EAAE;SACjB,KAAK,CAAC,mBAAmB,EAAE;QAC1B,SAAS,EAAE,0BAA0B,CAAC,UAA3B,0BAA0B,CAAC,CAAC;YACrC,IAAM,MAAM,GAAG;gBACb,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,MAAM;gBACN,UAAU;gBACV,OAAO;gBACP,SAAS;gBACT,MAAM;aACP,CAAC,CAAC,CAAC,CAAA;YACJ,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,oCAA6B,CAAC,qBAAkB,CAAC,CAAA;aAClE;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC;SACD,KAAK,CAAC,aAAa,EAAE;QACpB,SAAS,EAAE,0BAA0B,CAAC,UAA3B,0BAA0B,CAAC,CAAC;YACrC,IAAM,IAAI,GAAG;gBACX,aAAa;gBACb,oBAAoB;gBACpB,qBAAqB;gBACrB,uBAAuB;gBACvB,eAAe;gBACf,WAAW;aACZ,CAAC,CAAC,CAAC,CAAA;YACJ,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,wCAAiC,CAAC,CAAE,CAAC,CAAA;aACtD;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAC;SACD,IAAI,CAAC,WAAW,CAAC;SACjB,IAAI,CAAC,gBAAgB,CAAC;SACtB,IAAI,CAAC,kBAAkB,CAAC;IAC3B,SAAS,EAAE,EAAE;CACd,CAAA;AAED,IAAM,cAAc,GAAG;IACrB,MAAM,EAAE,IAAI,sBAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IACpC,SAAS,EAAE,CAAC;CACb,CAAA;AAED,2BAA2B;AAC3B,iBAAiB;AACjB,qBAAqB;AACrB,mBAAmB;AACnB,wBAAwB;AACxB,2BAA2B;AAC3B,4BAA4B;AAC5B,iBAAiB;AACjB,mBAAmB;AACnB,wBAAwB;AACxB,kBAAkB;AAClB,IAAI;AAEJ,IAAM,iBAAiB,GAAG,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;IACjE,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,0BAA0B,CAAC,UAA3B,0BAA0B,CAAC,MAAM;QAC1C,SAAS,UAAU,CAAC,WAAW,EAAE,SAAS;YACxC,IAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;YAC3D,IAAM,IAAI,GAAG,EAAE,CAAA;YACf,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAC,IAAI,CAAC,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC5B;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,oBAAoB;QACpB,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,IAAI,CAAC,CAAA;QACL,mBAAmB;QACnB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;gBACxC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;aACpB;SACF;QACD,IAAI,CAAC,GAAG,WAAW,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;SACzC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAC,CAAA;AAEF,iEAAiE;AACjE,IAAM,eAAe,GAAG,IAAI,sBAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;IAC/C,SAAS,EAAE,0BAA0B,CAAC,UAA3B,0BAA0B,CAAC,GAAG,IAAI,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK;CACnD,CAAC,CAAA;AAEF,IAAM,mBAAmB,GAAG,IAAI,sBAAM,EAAE;KACrC,IAAI,CAAC,SAAS,CAAC;KACf,IAAI,CAAC,UAAU,CAAC;KAChB,KAAK,CAAC,MAAM,EAAE;IACb,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,IAAI,sBAAM,EAAE;SACf,MAAM,CAAC,KAAK,EAAE;QACb,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,KAAK;QAChB,uDAAuD;KACxD,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,GAAG,EAAE,KAAK;QACV,OAAO,EAAE;YACP,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,IAAI,sBAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC1D,EAAE,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC1B,IAAI,EAAE,iBAAiB;gBACvB,SAAS,EAAE,0BAA0B,CAAC,UAA3B,0BAA0B,CAAC,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS;aACxD,CAAC;SACH;KACF,CAAC;CACL,CAAC,CAAA;AAEJ,0BAA0B;AAC1B,SAAS,SAAS,CAAC,IAAI;IACrB,IAAM,GAAG,GAAG,EAAE,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACtC,IAAA,KAAiB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAA3B,GAAG,SAAA,EAAE,KAAK,WAAiB,CAAA;QACnC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,wBAAiB,GAAG,YAAS,CAAC,CAAA;SAC5C;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;KACjB;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,IAAM,kBAAkB,GAAG;IACzB,kBAAkB,oBAAA;IAClB,eAAe,iBAAA;IACf,cAAc,gBAAA;CACf,CAAA;AAED,6DAA6D;AAC7D,IAAM,gBAAgB,GAAG;IACvB,uEAAuE;IACvE,6DAA6D;IAC7D,uBAAuB,YAAC,YAAY;QAClC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,MAAM,GAAG,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC5C,SAAS,IAAI,CAAC,CAAA;QAEd,6DAA6D;QAC7D,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACrC,SAAS,IAAI,CAAC,CAAA;SACf;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACrC,SAAS,IAAI,CAAC,CAAA;SACf;QAED,MAAM,GAAG,MAAM;aACZ,IAAI,CAAC,WAAW,CAAC;aACjB,IAAI,CAAC,eAAe,CAAC;aACrB,KAAK,CAAC,YAAY,EAAE;YACnB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,eAAe;SACxB,CAAC,CAAA;QACJ,SAAS,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,oBAAoB;QAEvC,oCAAoC;QACpC,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;YAC3D,SAAS,IAAI,EAAE,CAAA;SAChB;QAED,IAAM,aAAa,GAAG,UAAA,aAAa,IAAI,OAAA,SAAS,GAAG,aAAa,GAAG,CAAC,EAA7B,CAA6B,CAAA;QAEpE,OAAO,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA,CAAC,4EAA4E;IAC1H,CAAC;IAED,wEAAwE;IACxE,6DAA6D;IAC7D,qBAAqB,YAAC,YAAY;QAChC,IAAI,MAAM,GAAG,IAAI,sBAAM,EAAE;aACtB,IAAI,CAAC,UAAU,CAAC;aAChB,IAAI,CAAC,aAAa,CAAC;aACnB,IAAI,CAAC,YAAY,CAAC;aAClB,IAAI,CAAC,YAAY,CAAC,CAAA;QACrB,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA;QAErB,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACrC,SAAS,IAAI,CAAC,CAAA;SACf;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACrC,SAAS,IAAI,CAAC,CAAA;SACf;QAED,MAAM,GAAG,MAAM;aACZ,IAAI,CAAC,WAAW,CAAC;aACjB,IAAI,CAAC,eAAe,CAAC;aACrB,KAAK,CAAC,YAAY,EAAE;YACnB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,eAAe;SACxB,CAAC;aACD,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACzB,SAAS,IAAI,CAAC,GAAG,CAAC,CAAA;QAElB,oCAAoC;QACpC,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;YAC3D,SAAS,IAAI,EAAE,CAAA;SAChB;QAED,IAAM,aAAa,GAAG,UAAA,aAAa,IAAI,OAAA,SAAS,GAAG,aAAa,GAAG,CAAC,EAA7B,CAA6B,CAAA;QAEpE,OAAO,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;IAC7C,CAAC;IAED,YAAY,YAAC,YAAY;QACvB,IAAM,MAAM,GAAG,IAAI,sBAAM,EAAE;aACxB,MAAM,CAAC,cAAc,CAAC;aACtB,IAAI,CAAC,SAAS,CAAC;aACf,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,YAAY,EAAE;YACpB,GAAG,EAAE,SAAS;YACd,OAAO,EAAE;gBACP,CAAC,EAAE,IAAI,sBAAM,EAAE;gBACf,CAAC,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACtC,CAAC,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxC,cAAc;gBACd,CAAC,EAAE,sBAAM,CAAC,KAAK,EAAE;qBACd,IAAI,CAAC,UAAU,CAAC;qBAChB,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;qBAC1D,IAAI,CAAC,YAAY,CAAC;qBAClB,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;gBAClE,CAAC,EAAE,sBAAM,CAAC,KAAK,EAAE,CAAC,iBAAiB;qBAChC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;qBACjD,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;gBACnD,oDAAoD;gBACpD,CAAC,EAAE,IAAI,sBAAM,EAAE;qBACZ,KAAK,CAAC,UAAU,CAAC,CACjB,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;gBACvD,CAAC,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,CAAC,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxC,CAAC,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5C,CAAC,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ;aACzC;SACF,CAAC,CAAA;QAEJ,OAAO,EAAE,MAAM,QAAA,EAAE,CAAA;IACnB,CAAC;IAED,yBAAyB,YAAC,YAAY;QACpC,OAAO,IAAI,sBAAM,EAAE;aAChB,IAAI,CAAC,SAAS,CAAC;aACf,IAAI,CAAC,UAAU,CAAC;aAChB,KAAK,CAAC,MAAM,EAAE;YACb,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,IAAI,sBAAM,EAAE;iBACf,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;iBAC9C,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;SACnE,CAAC,CAAA;IACN,CAAC;IAED,kBAAkB,YAAC,YAAY;QAC7B,OAAO,IAAI,sBAAM,EAAE;aAChB,IAAI,CAAC,SAAS,CAAC;aACf,IAAI,CAAC,UAAU,CAAC;aAChB,KAAK,CAAC,MAAM,EAAE;YACb,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,IAAI,sBAAM,EAAE;iBACf,IAAI,CAAC,KAAK,EAAE;gBACX,SAAS,EAAE,0BAA0B,CAAC,UAA3B,0BAA0B,CAAC,qBAAqB;oBACzD,0BAA0B;oBAC1B,OAAA,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;wBACzD,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;wBACxD,MAAM,CAAC,YAAY,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAFjD,CAEiD;aACpD,CAAC;iBACD,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;SACnE,CAAC,CAAA;IACN,CAAC;IAED,qBAAqB,YAAC,YAAY;QAChC,IAAI,MAAM,GAAG,IAAI,sBAAM,EAAE,CAAA;QACzB,gEAAgE;QAChE,0DAA0D;QAC1D,4BAA4B;QAC5B,MAAM,GAAG,MAAM;aACZ,IAAI,CAAC,cAAc,EAAE;YACpB,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,SAAS;SACrB,CAAC;aACD,IAAI,CAAC,oBAAoB,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC;YAClD,SAAS,EAAE,SAAS;SACrB,CAAC;aACD,IAAI,CAAC,aAAa,EAAE;YACnB,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;YAC3C,SAAS,EAAE,SAAS;SACrB,CAAC,CAAA;QACJ,OAAO,EAAE,MAAM,QAAA,EAAE,CAAA;IACnB,CAAC;IAED,oBAAoB,YAAC,YAAY;QAC/B,IAAI,MAAM,GAAG,IAAI,sBAAM,EAAE;aACtB,KAAK,CAAC,QAAQ,CAAC,CAAC,2CAA2C;aAC3D,IAAI,CAAC,UAAU,CAAC,CAAC,4FAA4F;aAC7G,IAAI,CAAC,aAAa,CAAC,CAAC,uDAAuD;aAC3E,IAAI,CAAC,eAAe,CAAC,CAAC,sDAAsD;aAC5E,IAAI,CAAC,YAAY,CAAC,CAAA,CAAC,qCAAqC;QAC3D,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEzB,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA,CAAC,0DAA0D;YAChG,SAAS,IAAI,CAAC,CAAA;SACf;aAAM,IAAI,YAAY,KAAK,CAAC,EAAE;YAC7B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACrC,SAAS,IAAI,CAAC,CAAA;SACf;QAED,IAAI,YAAY,GAAG,CAAC,EAAE;YACpB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAC,uBAAuB;YACxD,SAAS,IAAI,CAAC,CAAA;SACf;QACD,MAAM,GAAG,MAAM;aACZ,IAAI,CAAC,WAAW,CAAC,CAAC,uBAAuB;aACzC,IAAI,CAAC,cAAc,CAAC,CAAA,CAAC,0BAA0B;QAClD,SAAS,IAAI,CAAC,GAAG,CAAC,CAAA;QAElB,OAAO,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,CAAA;IAC9B,CAAC;IAED,oBAAoB,YAAC,YAAY;QAC/B,IAAI,MAAM,GAAG,IAAI,sBAAM,EAAE;aACtB,IAAI,CAAC,cAAc,CAAC,CAAC,uBAAuB;YAC7C,oDAAoD;YACpD,qDAAqD;YACrD,0BAA0B;aACzB,KAAK,CAAC,WAAW,EAAE;YAClB,IAAI,EAAE,IAAI,sBAAM,EAAE,CAAC,IAAI,EAAE;YACzB,MAAM,EAAE,cAAc;SACvB,CAAC,CAAA;QAEJ,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC/B,SAAS,GAAG,CAAC,CAAA;SACd;QACD,OAAO;YACL,MAAM,QAAA;YACN,SAAS,EAAE,UAAA,YAAY,IAAI,OAAA,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,EAAhC,CAAgC;SAC5D,CAAA;IACH,CAAC;CACF,CAAA;AAED,SAAS,iBAAiB,CAAC,YAAY;IACrC,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAA;IACrD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAA,UAAU;QAC9C,OAAO,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAChB,CAAC;AAE4B,8CAAiB"}
|
|
1
|
+
{"version":3,"file":"sectionParsers.js","sourceRoot":"","sources":["../../src/cramFile/sectionParsers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import { ReadFeature } from '../record';
|
|
2
|
+
import CramSlice, { SliceHeader } from './index';
|
|
3
|
+
import CramContainerCompressionScheme, { DataSeriesTypes } from '../container/compressionScheme';
|
|
4
|
+
import { CramFileBlock } from '../file';
|
|
5
|
+
import { Cursors, DataTypeMapping } from '../codecs/_base';
|
|
6
|
+
import { DataSeriesEncodingKey } from '../codecs/dataSeriesTypes';
|
|
7
|
+
export declare type DataSeriesDecoder = <T extends DataSeriesEncodingKey>(dataSeriesName: T) => DataTypeMapping[DataSeriesTypes[T]];
|
|
8
|
+
export default function decodeRecord(slice: CramSlice, decodeDataSeries: DataSeriesDecoder, compressionScheme: CramContainerCompressionScheme, sliceHeader: SliceHeader, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors, majorVersion: number, recordNumber: number): {
|
|
9
|
+
readLength: number;
|
|
10
|
+
sequenceId: number;
|
|
11
|
+
cramFlags: number;
|
|
12
|
+
flags: number;
|
|
13
|
+
alignmentStart: number;
|
|
14
|
+
readGroupId: number;
|
|
15
|
+
readName: string | undefined;
|
|
16
|
+
mateToUse: {
|
|
17
|
+
mateFlags: number;
|
|
18
|
+
mateSequenceId: number;
|
|
19
|
+
mateAlignmentStart: number;
|
|
20
|
+
mateReadName: string | undefined;
|
|
21
|
+
} | undefined;
|
|
22
|
+
templateSize: number | undefined;
|
|
23
|
+
mateRecordNumber: number | undefined;
|
|
24
|
+
readFeatures: ReadFeature[] | undefined;
|
|
25
|
+
lengthOnRef: number | undefined;
|
|
26
|
+
mappingQuality: number | undefined;
|
|
27
|
+
qualityScores: number[] | null | undefined;
|
|
28
|
+
readBases: string | null | undefined;
|
|
29
|
+
tags: Record<string, any>;
|
|
30
|
+
};
|