@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.
Files changed (255) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/craiIndex.d.ts +19 -12
  3. package/dist/craiIndex.js +63 -123
  4. package/dist/craiIndex.js.map +1 -1
  5. package/dist/cram-bundle.js +2 -17
  6. package/dist/cram-bundle.js.LICENSE.txt +17 -0
  7. package/dist/cramFile/codecs/_base.d.ts +26 -5
  8. package/dist/cramFile/codecs/_base.js +3 -39
  9. package/dist/cramFile/codecs/_base.js.map +1 -1
  10. package/dist/cramFile/codecs/beta.d.ts +7 -3
  11. package/dist/cramFile/codecs/beta.js +13 -31
  12. package/dist/cramFile/codecs/beta.js.map +1 -1
  13. package/dist/cramFile/codecs/byteArrayLength.d.ts +13 -7
  14. package/dist/cramFile/codecs/byteArrayLength.js +22 -41
  15. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  16. package/dist/cramFile/codecs/byteArrayStop.d.ts +9 -5
  17. package/dist/cramFile/codecs/byteArrayStop.js +25 -46
  18. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
  19. package/dist/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
  20. package/dist/cramFile/codecs/dataSeriesTypes.js +3 -0
  21. package/dist/cramFile/codecs/dataSeriesTypes.js.map +1 -0
  22. package/dist/cramFile/codecs/external.d.ts +10 -6
  23. package/dist/cramFile/codecs/external.js +26 -44
  24. package/dist/cramFile/codecs/external.js.map +1 -1
  25. package/dist/cramFile/codecs/gamma.d.ts +7 -3
  26. package/dist/cramFile/codecs/gamma.js +16 -34
  27. package/dist/cramFile/codecs/gamma.js.map +1 -1
  28. package/dist/cramFile/codecs/getBits.d.ts +7 -0
  29. package/dist/cramFile/codecs/getBits.js +26 -0
  30. package/dist/cramFile/codecs/getBits.js.map +1 -0
  31. package/dist/cramFile/codecs/huffman.d.ts +17 -13
  32. package/dist/cramFile/codecs/huffman.js +76 -85
  33. package/dist/cramFile/codecs/huffman.js.map +1 -1
  34. package/dist/cramFile/codecs/index.d.ts +4 -2
  35. package/dist/cramFile/codecs/index.js +12 -13
  36. package/dist/cramFile/codecs/index.js.map +1 -1
  37. package/dist/cramFile/codecs/subexp.d.ts +7 -3
  38. package/dist/cramFile/codecs/subexp.js +19 -36
  39. package/dist/cramFile/codecs/subexp.js.map +1 -1
  40. package/dist/cramFile/constants.d.ts +35 -35
  41. package/dist/cramFile/constants.js +1 -1
  42. package/dist/cramFile/constants.js.map +1 -1
  43. package/dist/cramFile/container/compressionScheme.d.ts +57 -11
  44. package/dist/cramFile/container/compressionScheme.js +37 -32
  45. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  46. package/dist/cramFile/container/index.d.ts +23 -9
  47. package/dist/cramFile/container/index.js +74 -144
  48. package/dist/cramFile/container/index.js.map +1 -1
  49. package/dist/cramFile/encoding.d.ts +78 -0
  50. package/dist/cramFile/encoding.js +3 -0
  51. package/dist/cramFile/encoding.js.map +1 -0
  52. package/dist/cramFile/file.d.ts +91 -41
  53. package/dist/cramFile/file.js +234 -368
  54. package/dist/cramFile/file.js.map +1 -1
  55. package/dist/cramFile/filehandle.d.ts +2 -0
  56. package/dist/cramFile/filehandle.js +3 -0
  57. package/dist/cramFile/filehandle.js.map +1 -0
  58. package/dist/cramFile/index.d.ts +1 -1
  59. package/dist/cramFile/index.js +1 -1
  60. package/dist/cramFile/index.js.map +1 -1
  61. package/dist/cramFile/record.d.ts +61 -17
  62. package/dist/cramFile/record.js +153 -77
  63. package/dist/cramFile/record.js.map +1 -1
  64. package/dist/cramFile/sectionParsers.d.ts +99 -8
  65. package/dist/cramFile/sectionParsers.js +70 -80
  66. package/dist/cramFile/sectionParsers.js.map +1 -1
  67. package/dist/cramFile/slice/decodeRecord.d.ts +30 -2
  68. package/dist/cramFile/slice/decodeRecord.js +148 -118
  69. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  70. package/dist/cramFile/slice/index.d.ts +21 -14
  71. package/dist/cramFile/slice/index.js +286 -381
  72. package/dist/cramFile/slice/index.js.map +1 -1
  73. package/dist/cramFile/util.d.ts +11 -5
  74. package/dist/cramFile/util.js +19 -97
  75. package/dist/cramFile/util.js.map +1 -1
  76. package/dist/errors.d.ts +5 -10
  77. package/dist/errors.js +11 -62
  78. package/dist/errors.js.map +1 -1
  79. package/dist/index.d.ts +3 -3
  80. package/dist/index.js +3 -3
  81. package/dist/index.js.map +1 -1
  82. package/dist/indexedCramFile.d.ts +37 -12
  83. package/dist/indexedCramFile.js +114 -154
  84. package/dist/indexedCramFile.js.map +1 -1
  85. package/dist/io/index.d.ts +5 -5
  86. package/dist/io/index.js +9 -9
  87. package/dist/io/index.js.map +1 -1
  88. package/dist/rans/constants.js +3 -3
  89. package/dist/rans/constants.js.map +1 -1
  90. package/dist/rans/d04.js +15 -15
  91. package/dist/rans/d04.js.map +1 -1
  92. package/dist/rans/d14.js +21 -21
  93. package/dist/rans/d14.js.map +1 -1
  94. package/dist/rans/decoding.js +27 -30
  95. package/dist/rans/decoding.js.map +1 -1
  96. package/dist/rans/frequencies.js +11 -11
  97. package/dist/rans/frequencies.js.map +1 -1
  98. package/dist/rans/index.js +46 -49
  99. package/dist/rans/index.js.map +1 -1
  100. package/dist/sam.d.ts +8 -1
  101. package/dist/sam.js +7 -7
  102. package/dist/sam.js.map +1 -1
  103. package/dist/typescript.d.ts +3 -0
  104. package/dist/typescript.js +11 -0
  105. package/dist/typescript.js.map +1 -0
  106. package/dist/unzip-pako.js +1 -1
  107. package/dist/unzip-pako.js.map +1 -1
  108. package/dist/unzip.js +1 -1
  109. package/dist/unzip.js.map +1 -1
  110. package/errors.js +11 -62
  111. package/esm/craiIndex.d.ts +19 -12
  112. package/esm/craiIndex.js +8 -24
  113. package/esm/craiIndex.js.map +1 -1
  114. package/esm/cramFile/codecs/_base.d.ts +26 -5
  115. package/esm/cramFile/codecs/_base.js +1 -35
  116. package/esm/cramFile/codecs/_base.js.map +1 -1
  117. package/esm/cramFile/codecs/beta.d.ts +7 -3
  118. package/esm/cramFile/codecs/beta.js +4 -3
  119. package/esm/cramFile/codecs/beta.js.map +1 -1
  120. package/esm/cramFile/codecs/byteArrayLength.d.ts +13 -7
  121. package/esm/cramFile/codecs/byteArrayLength.js +1 -1
  122. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  123. package/esm/cramFile/codecs/byteArrayStop.d.ts +9 -5
  124. package/esm/cramFile/codecs/byteArrayStop.js +7 -9
  125. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
  126. package/esm/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
  127. package/esm/cramFile/codecs/dataSeriesTypes.js +2 -0
  128. package/esm/cramFile/codecs/dataSeriesTypes.js.map +1 -0
  129. package/esm/cramFile/codecs/external.d.ts +10 -6
  130. package/esm/cramFile/codecs/external.js +4 -3
  131. package/esm/cramFile/codecs/external.js.map +1 -1
  132. package/esm/cramFile/codecs/gamma.d.ts +7 -3
  133. package/esm/cramFile/codecs/gamma.js +5 -4
  134. package/esm/cramFile/codecs/gamma.js.map +1 -1
  135. package/esm/cramFile/codecs/getBits.d.ts +7 -0
  136. package/esm/cramFile/codecs/getBits.js +21 -0
  137. package/esm/cramFile/codecs/getBits.js.map +1 -0
  138. package/esm/cramFile/codecs/huffman.d.ts +17 -13
  139. package/esm/cramFile/codecs/huffman.js +22 -9
  140. package/esm/cramFile/codecs/huffman.js.map +1 -1
  141. package/esm/cramFile/codecs/index.d.ts +4 -2
  142. package/esm/cramFile/codecs/index.js +1 -1
  143. package/esm/cramFile/codecs/index.js.map +1 -1
  144. package/esm/cramFile/codecs/subexp.d.ts +7 -3
  145. package/esm/cramFile/codecs/subexp.js +7 -5
  146. package/esm/cramFile/codecs/subexp.js.map +1 -1
  147. package/esm/cramFile/constants.d.ts +35 -35
  148. package/esm/cramFile/constants.js.map +1 -1
  149. package/esm/cramFile/container/compressionScheme.d.ts +57 -11
  150. package/esm/cramFile/container/compressionScheme.js +15 -8
  151. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  152. package/esm/cramFile/container/index.d.ts +23 -9
  153. package/esm/cramFile/container/index.js +11 -9
  154. package/esm/cramFile/container/index.js.map +1 -1
  155. package/esm/cramFile/encoding.d.ts +78 -0
  156. package/esm/cramFile/encoding.js +2 -0
  157. package/esm/cramFile/encoding.js.map +1 -0
  158. package/esm/cramFile/file.d.ts +91 -41
  159. package/esm/cramFile/file.js +59 -47
  160. package/esm/cramFile/file.js.map +1 -1
  161. package/esm/cramFile/filehandle.d.ts +2 -0
  162. package/esm/cramFile/filehandle.js +2 -0
  163. package/esm/cramFile/filehandle.js.map +1 -0
  164. package/esm/cramFile/index.d.ts +1 -1
  165. package/esm/cramFile/index.js.map +1 -1
  166. package/esm/cramFile/record.d.ts +61 -17
  167. package/esm/cramFile/record.js +83 -5
  168. package/esm/cramFile/record.js.map +1 -1
  169. package/esm/cramFile/sectionParsers.d.ts +99 -8
  170. package/esm/cramFile/sectionParsers.js +7 -17
  171. package/esm/cramFile/sectionParsers.js.map +1 -1
  172. package/esm/cramFile/slice/decodeRecord.d.ts +30 -2
  173. package/esm/cramFile/slice/decodeRecord.js +102 -70
  174. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  175. package/esm/cramFile/slice/index.d.ts +21 -14
  176. package/esm/cramFile/slice/index.js +77 -38
  177. package/esm/cramFile/slice/index.js.map +1 -1
  178. package/esm/cramFile/util.d.ts +11 -5
  179. package/esm/cramFile/util.js +11 -82
  180. package/esm/cramFile/util.js.map +1 -1
  181. package/esm/errors.d.ts +5 -10
  182. package/esm/errors.js +0 -5
  183. package/esm/errors.js.map +1 -1
  184. package/esm/index.d.ts +3 -3
  185. package/esm/index.js.map +1 -1
  186. package/esm/indexedCramFile.d.ts +37 -12
  187. package/esm/indexedCramFile.js +19 -8
  188. package/esm/indexedCramFile.js.map +1 -1
  189. package/esm/io/index.d.ts +5 -5
  190. package/esm/io/index.js +3 -3
  191. package/esm/io/index.js.map +1 -1
  192. package/esm/sam.d.ts +8 -1
  193. package/esm/sam.js.map +1 -1
  194. package/esm/typescript.d.ts +3 -0
  195. package/esm/typescript.js +7 -0
  196. package/esm/typescript.js.map +1 -0
  197. package/package.json +18 -11
  198. package/src/{craiIndex.js → craiIndex.ts} +37 -31
  199. package/src/cramFile/codecs/_base.ts +45 -0
  200. package/src/cramFile/codecs/beta.ts +34 -0
  201. package/src/cramFile/codecs/{byteArrayLength.js → byteArrayLength.ts} +27 -5
  202. package/src/cramFile/codecs/{byteArrayStop.js → byteArrayStop.ts} +25 -12
  203. package/src/cramFile/codecs/dataSeriesTypes.ts +39 -0
  204. package/src/cramFile/codecs/{external.js → external.ts} +28 -12
  205. package/src/cramFile/codecs/gamma.ts +42 -0
  206. package/src/cramFile/codecs/getBits.ts +28 -0
  207. package/src/cramFile/codecs/{huffman.js → huffman.ts} +48 -15
  208. package/src/cramFile/codecs/{index.js → index.ts} +9 -3
  209. package/src/cramFile/codecs/subexp.ts +45 -0
  210. package/src/cramFile/{constants.js → constants.ts} +0 -0
  211. package/src/cramFile/container/{compressionScheme.js → compressionScheme.ts} +50 -18
  212. package/src/cramFile/container/{index.js → index.ts} +13 -13
  213. package/src/cramFile/encoding.ts +98 -0
  214. package/src/cramFile/{file.js → file.ts} +136 -62
  215. package/src/cramFile/filehandle.ts +3 -0
  216. package/src/cramFile/{index.js → index.ts} +0 -0
  217. package/src/cramFile/{record.js → record.ts} +185 -14
  218. package/src/cramFile/{sectionParsers.js → sectionParsers.ts} +148 -20
  219. package/src/cramFile/slice/{decodeRecord.js → decodeRecord.ts} +158 -105
  220. package/src/cramFile/slice/{index.js → index.ts} +138 -63
  221. package/src/cramFile/{util.js → util.ts} +28 -17
  222. package/src/{errors.js → errors.ts} +0 -5
  223. package/src/{index.js → index.ts} +0 -0
  224. package/src/{indexedCramFile.js → indexedCramFile.ts} +79 -19
  225. package/src/io/{index.js → index.ts} +10 -5
  226. package/src/{sam.js → sam.ts} +7 -2
  227. package/src/typescript.ts +17 -0
  228. package/src/typings/binary-parser.d.ts +44 -0
  229. package/src/typings/bzip2.d.ts +7 -0
  230. package/src/typings/htscodecs.d.ts +6 -0
  231. package/dist/io/bufferCache.d.ts +0 -12
  232. package/dist/io/bufferCache.js +0 -112
  233. package/dist/io/bufferCache.js.map +0 -1
  234. package/dist/io/localFile.d.ts +0 -10
  235. package/dist/io/localFile.js +0 -108
  236. package/dist/io/localFile.js.map +0 -1
  237. package/dist/io/remoteFile.d.ts +0 -16
  238. package/dist/io/remoteFile.js +0 -143
  239. package/dist/io/remoteFile.js.map +0 -1
  240. package/esm/io/bufferCache.d.ts +0 -12
  241. package/esm/io/bufferCache.js +0 -54
  242. package/esm/io/bufferCache.js.map +0 -1
  243. package/esm/io/localFile.d.ts +0 -10
  244. package/esm/io/localFile.js +0 -31
  245. package/esm/io/localFile.js.map +0 -1
  246. package/esm/io/remoteFile.d.ts +0 -16
  247. package/esm/io/remoteFile.js +0 -64
  248. package/esm/io/remoteFile.js.map +0 -1
  249. package/src/cramFile/codecs/_base.js +0 -49
  250. package/src/cramFile/codecs/beta.js +0 -23
  251. package/src/cramFile/codecs/gamma.js +0 -30
  252. package/src/cramFile/codecs/subexp.js +0 -32
  253. package/src/io/bufferCache.js +0 -66
  254. package/src/io/localFile.js +0 -35
  255. package/src/io/remoteFile.js +0 -71
@@ -1,18 +1,109 @@
1
- export namespace cramFileDefinition {
2
- const parser: any;
3
- const maxLength: number;
4
- }
5
- export function getSectionParsers(majorVersion: any): {
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: any;
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: any;
88
+ parser: Parser<BlockHeader>;
12
89
  maxLength: number;
13
90
  };
14
91
  cramBlockCrc32: {
15
- parser: any;
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
- var binary_parser_1 = require("@gmod/binary-parser");
5
- var singleItf8 = new binary_parser_1.Parser().itf8();
6
- var cramFileDefinition = {
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
- var cramBlockHeader = {
15
+ const cramBlockHeader = {
16
16
  parser: new binary_parser_1.Parser()
17
17
  .uint8('compressionMethod', {
18
- formatter: /* istanbul ignore next */ function (/* istanbul ignore next */ b) {
19
- var method = [
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("compression method number ".concat(b, " not implemented"));
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 */ function (/* istanbul ignore next */ b) {
38
- var type = [
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("invalid block content type id ".concat(b));
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
- var cramBlockCrc32 = {
57
+ const cramBlockCrc32 = {
58
58
  parser: new binary_parser_1.Parser().uint32('crc32'),
59
59
  maxLength: 4,
60
60
  };
61
- // const ENCODING_NAMES = [
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 */ function (/* istanbul ignore next */ buffer) {
63
+ formatter: /* istanbul ignore next */ /* istanbul ignore next */ buffer => {
76
64
  function makeTagSet(stringStart, stringEnd) {
77
- var str = buffer.toString('utf8', stringStart, stringEnd);
78
- var tags = [];
79
- for (var i_1 = 0; i_1 < str.length; i_1 += 3) {
80
- tags.push(str.substr(i_1, 3));
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
- var parseByteAsBool = new binary_parser_1.Parser().uint8(null, {
103
- formatter: /* istanbul ignore next */ function (/* istanbul ignore next */ val) { return !!val; },
90
+ const parseByteAsBool = new binary_parser_1.Parser().uint8(null, {
91
+ formatter: /* istanbul ignore next */ /* istanbul ignore next */ val => !!val,
104
92
  });
105
- var cramPreservationMap = new binary_parser_1.Parser()
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 */ function (/* istanbul ignore next */ data) { return data.ents; },
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
- var map = {};
136
- for (var i = 0; i < data.ents.length; i += 1) {
137
- var _a = data.ents[i], key = _a.key, value = _a.value;
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("duplicate key ".concat(key, " in map"));
127
+ console.warn(`duplicate key ${key} in map`);
140
128
  }
141
129
  map[key] = value;
142
130
  }
143
131
  return map;
144
132
  }
145
- var unversionedParsers = {
146
- cramFileDefinition: cramFileDefinition,
147
- cramBlockHeader: cramBlockHeader,
148
- cramBlockCrc32: 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
- var versionedParsers = {
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: function (majorVersion) {
155
- var maxLength = 0;
156
- var parser = new binary_parser_1.Parser().itf8('numRecords');
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
- var maxLengthFunc = function (numContentIds) { return maxLength + numContentIds * 5; };
181
- return { parser: parser, maxLength: maxLengthFunc }; // : p, maxLength: numContentIds => 5 + 9 + 5 * 2 + 5 * numContentIds + 16 }
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: function (majorVersion) {
186
- var parser = new binary_parser_1.Parser()
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
- var maxLength = 5 * 4;
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
- var maxLengthFunc = function (numContentIds) { return maxLength + numContentIds * 5; };
215
- return { parser: parser, maxLength: maxLengthFunc };
206
+ const maxLengthFunc = (numContentIds) => maxLength + numContentIds * 5;
207
+ return { parser, maxLength: maxLengthFunc };
216
208
  },
217
- cramEncoding: function (majorVersion) {
218
- var parser = new binary_parser_1.Parser()
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: parser };
237
+ return { parser };
247
238
  },
248
- cramDataSeriesEncodingMap: function (majorVersion) {
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: function (majorVersion) {
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 */ function (/* istanbul ignore next */ integerRepresentation) {
268
- /* istanbul ignore next */
269
- return String.fromCharCode((integerRepresentation >> 16) & 0xff) +
270
- String.fromCharCode((integerRepresentation >> 8) & 0xff) +
271
- String.fromCharCode(integerRepresentation & 0xff);
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: function (majorVersion) {
278
- var parser = new binary_parser_1.Parser();
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: parser };
285
+ return { parser };
296
286
  },
297
- cramContainerHeader1: function (majorVersion) {
298
- var parser = new binary_parser_1.Parser()
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
- var maxLength = 4 + 5 * 4;
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: parser, maxLength: maxLength };
311
+ return { parser, maxLength };
322
312
  },
323
- cramContainerHeader2: function (majorVersion) {
324
- var parser = new binary_parser_1.Parser()
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
- var crcLength = 0;
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: parser,
340
- maxLength: function (numLandmarks) { return 5 + numLandmarks * 5 + crcLength; },
329
+ parser,
330
+ maxLength: (numLandmarks) => 5 + numLandmarks * 5 + crcLength,
341
331
  };
342
332
  },
343
333
  };
344
334
  function getSectionParsers(majorVersion) {
345
- var parsers = Object.assign({}, unversionedParsers);
346
- Object.keys(versionedParsers).forEach(function (parserName) {
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":"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"}
1
+ {"version":3,"file":"sectionParsers.js","sourceRoot":"","sources":["../../src/cramFile/sectionParsers.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,30 @@
1
- export default function decodeRecord(slice: any, decodeDataSeries: any, compressionScheme: any, sliceHeader: any, coreDataBlock: any, blocksByContentId: any, cursors: any, majorVersion: any, recordNumber: any): CramRecord;
2
- import CramRecord from "../record";
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
+ };