@gmod/cram 1.5.9 → 1.6.2

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 (258) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +182 -172
  3. package/dist/craiIndex.d.ts +37 -0
  4. package/dist/craiIndex.js +196 -301
  5. package/dist/craiIndex.js.map +1 -0
  6. package/dist/cram-bundle.js +6 -15
  7. package/dist/cramFile/codecs/_base.d.ts +6 -0
  8. package/dist/cramFile/codecs/_base.js +44 -53
  9. package/dist/cramFile/codecs/_base.js.map +1 -0
  10. package/dist/cramFile/codecs/beta.d.ts +4 -0
  11. package/dist/cramFile/codecs/beta.js +38 -48
  12. package/dist/cramFile/codecs/beta.js.map +1 -0
  13. package/dist/cramFile/codecs/byteArrayLength.d.ts +8 -0
  14. package/dist/cramFile/codecs/byteArrayLength.js +58 -78
  15. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -0
  16. package/dist/cramFile/codecs/byteArrayStop.d.ts +6 -0
  17. package/dist/cramFile/codecs/byteArrayStop.js +62 -76
  18. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -0
  19. package/dist/cramFile/codecs/external.d.ts +7 -0
  20. package/dist/cramFile/codecs/external.js +63 -81
  21. package/dist/cramFile/codecs/external.js.map +1 -0
  22. package/dist/cramFile/codecs/gamma.d.ts +4 -0
  23. package/dist/cramFile/codecs/gamma.js +43 -56
  24. package/dist/cramFile/codecs/gamma.js.map +1 -0
  25. package/dist/cramFile/codecs/huffman.d.ts +17 -0
  26. package/dist/cramFile/codecs/huffman.js +126 -199
  27. package/dist/cramFile/codecs/huffman.js.map +1 -0
  28. package/dist/cramFile/codecs/index.d.ts +2 -0
  29. package/dist/cramFile/codecs/index.js +31 -38
  30. package/dist/cramFile/codecs/index.js.map +1 -0
  31. package/dist/cramFile/codecs/subexp.d.ts +4 -0
  32. package/dist/cramFile/codecs/subexp.js +51 -64
  33. package/dist/cramFile/codecs/subexp.js.map +1 -0
  34. package/dist/cramFile/constants.d.ts +36 -0
  35. package/dist/cramFile/constants.js +52 -50
  36. package/dist/cramFile/constants.js.map +1 -0
  37. package/dist/cramFile/container/compressionScheme.d.ts +23 -0
  38. package/dist/cramFile/container/compressionScheme.js +115 -153
  39. package/dist/cramFile/container/compressionScheme.js.map +1 -0
  40. package/dist/cramFile/container/index.d.ts +13 -0
  41. package/dist/cramFile/container/index.js +169 -283
  42. package/dist/cramFile/container/index.js.map +1 -0
  43. package/dist/cramFile/file.d.ts +63 -0
  44. package/dist/cramFile/file.js +440 -766
  45. package/dist/cramFile/file.js.map +1 -0
  46. package/dist/cramFile/index.d.ts +2 -0
  47. package/dist/cramFile/index.js +7 -4
  48. package/dist/cramFile/index.js.map +1 -0
  49. package/dist/cramFile/record.d.ts +79 -0
  50. package/dist/cramFile/record.js +253 -308
  51. package/dist/cramFile/record.js.map +1 -0
  52. package/dist/cramFile/sectionParsers.d.ts +18 -0
  53. package/dist/cramFile/sectionParsers.js +324 -362
  54. package/dist/cramFile/sectionParsers.js.map +1 -0
  55. package/dist/cramFile/slice/decodeRecord.d.ts +2 -0
  56. package/dist/cramFile/slice/decodeRecord.js +278 -298
  57. package/dist/cramFile/slice/decodeRecord.js.map +1 -0
  58. package/dist/cramFile/slice/index.d.ts +20 -0
  59. package/dist/cramFile/slice/index.js +488 -789
  60. package/dist/cramFile/slice/index.js.map +1 -0
  61. package/dist/cramFile/util.d.ts +5 -0
  62. package/dist/cramFile/util.js +158 -144
  63. package/dist/cramFile/util.js.map +1 -0
  64. package/dist/errors.d.ts +23 -0
  65. package/dist/errors.js +66 -103
  66. package/dist/errors.js.map +1 -0
  67. package/dist/index.d.ts +4 -0
  68. package/dist/index.js +12 -12
  69. package/dist/index.js.map +1 -0
  70. package/dist/indexedCramFile.d.ts +39 -0
  71. package/dist/indexedCramFile.js +213 -315
  72. package/dist/indexedCramFile.js.map +1 -0
  73. package/dist/io/bufferCache.d.ts +12 -0
  74. package/dist/io/bufferCache.js +108 -128
  75. package/dist/io/bufferCache.js.map +1 -0
  76. package/dist/io/index.d.ts +5 -0
  77. package/dist/io/index.js +29 -27
  78. package/dist/io/index.js.map +1 -0
  79. package/dist/io/localFile.d.ts +10 -0
  80. package/dist/io/localFile.js +105 -162
  81. package/dist/io/localFile.js.map +1 -0
  82. package/dist/io/remoteFile.d.ts +16 -0
  83. package/dist/io/remoteFile.js +137 -206
  84. package/dist/io/remoteFile.js.map +1 -0
  85. package/dist/rans/constants.d.ts +3 -0
  86. package/dist/rans/constants.js +6 -6
  87. package/dist/rans/constants.js.map +1 -0
  88. package/dist/rans/d04.d.ts +1 -0
  89. package/dist/rans/d04.js +70 -99
  90. package/dist/rans/d04.js.map +1 -0
  91. package/dist/rans/d14.d.ts +1 -0
  92. package/dist/rans/d14.js +55 -93
  93. package/dist/rans/d14.js.map +1 -0
  94. package/dist/rans/decoding.d.ts +30 -0
  95. package/dist/rans/decoding.js +112 -159
  96. package/dist/rans/decoding.js.map +1 -0
  97. package/dist/rans/frequencies.d.ts +2 -0
  98. package/dist/rans/frequencies.js +110 -119
  99. package/dist/rans/frequencies.js.map +1 -0
  100. package/dist/rans/index.d.ts +1 -0
  101. package/dist/rans/index.js +111 -174
  102. package/dist/rans/index.js.map +1 -0
  103. package/dist/sam.d.ts +1 -0
  104. package/dist/sam.js +16 -41
  105. package/dist/sam.js.map +1 -0
  106. package/dist/unzip-pako.d.ts +2 -0
  107. package/dist/unzip-pako.js +9 -0
  108. package/dist/unzip-pako.js.map +1 -0
  109. package/dist/unzip.d.ts +2 -0
  110. package/dist/unzip.js +6 -0
  111. package/dist/unzip.js.map +1 -0
  112. package/errors.js +66 -103
  113. package/esm/craiIndex.d.ts +37 -0
  114. package/esm/craiIndex.js +158 -0
  115. package/esm/craiIndex.js.map +1 -0
  116. package/esm/cramFile/codecs/_base.d.ts +6 -0
  117. package/esm/cramFile/codecs/_base.js +42 -0
  118. package/esm/cramFile/codecs/_base.js.map +1 -0
  119. package/esm/cramFile/codecs/beta.d.ts +4 -0
  120. package/esm/cramFile/codecs/beta.js +15 -0
  121. package/esm/cramFile/codecs/beta.js.map +1 -0
  122. package/esm/cramFile/codecs/byteArrayLength.d.ts +8 -0
  123. package/esm/cramFile/codecs/byteArrayLength.js +35 -0
  124. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -0
  125. package/esm/cramFile/codecs/byteArrayStop.d.ts +6 -0
  126. package/esm/cramFile/codecs/byteArrayStop.js +40 -0
  127. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -0
  128. package/esm/cramFile/codecs/external.d.ts +7 -0
  129. package/esm/cramFile/codecs/external.js +40 -0
  130. package/esm/cramFile/codecs/external.js.map +1 -0
  131. package/esm/cramFile/codecs/gamma.d.ts +4 -0
  132. package/esm/cramFile/codecs/gamma.js +20 -0
  133. package/esm/cramFile/codecs/gamma.js.map +1 -0
  134. package/esm/cramFile/codecs/huffman.d.ts +17 -0
  135. package/esm/cramFile/codecs/huffman.js +107 -0
  136. package/esm/cramFile/codecs/huffman.js.map +1 -0
  137. package/esm/cramFile/codecs/index.d.ts +2 -0
  138. package/esm/cramFile/codecs/index.js +30 -0
  139. package/esm/cramFile/codecs/index.js.map +1 -0
  140. package/esm/cramFile/codecs/subexp.d.ts +4 -0
  141. package/esm/cramFile/codecs/subexp.js +28 -0
  142. package/esm/cramFile/codecs/subexp.js.map +1 -0
  143. package/esm/cramFile/constants.d.ts +36 -0
  144. package/esm/cramFile/constants.js +51 -0
  145. package/esm/cramFile/constants.js.map +1 -0
  146. package/esm/cramFile/container/compressionScheme.d.ts +23 -0
  147. package/esm/cramFile/container/compressionScheme.js +123 -0
  148. package/esm/cramFile/container/compressionScheme.js.map +1 -0
  149. package/esm/cramFile/container/index.d.ts +13 -0
  150. package/esm/cramFile/container/index.js +84 -0
  151. package/esm/cramFile/container/index.js.map +1 -0
  152. package/esm/cramFile/file.d.ts +63 -0
  153. package/esm/cramFile/file.js +281 -0
  154. package/esm/cramFile/file.js.map +1 -0
  155. package/esm/cramFile/index.d.ts +2 -0
  156. package/esm/cramFile/index.js +3 -0
  157. package/esm/cramFile/index.js.map +1 -0
  158. package/esm/cramFile/record.d.ts +79 -0
  159. package/esm/cramFile/record.js +297 -0
  160. package/esm/cramFile/record.js.map +1 -0
  161. package/esm/cramFile/sectionParsers.d.ts +18 -0
  162. package/esm/cramFile/sectionParsers.js +347 -0
  163. package/esm/cramFile/sectionParsers.js.map +1 -0
  164. package/esm/cramFile/slice/decodeRecord.d.ts +2 -0
  165. package/esm/cramFile/slice/decodeRecord.js +299 -0
  166. package/esm/cramFile/slice/decodeRecord.js.map +1 -0
  167. package/esm/cramFile/slice/index.d.ts +20 -0
  168. package/esm/cramFile/slice/index.js +364 -0
  169. package/esm/cramFile/slice/index.js.map +1 -0
  170. package/esm/cramFile/util.d.ts +5 -0
  171. package/esm/cramFile/util.js +161 -0
  172. package/esm/cramFile/util.js.map +1 -0
  173. package/esm/errors.d.ts +23 -0
  174. package/esm/errors.js +24 -0
  175. package/esm/errors.js.map +1 -0
  176. package/esm/index.d.ts +4 -0
  177. package/esm/index.js +5 -0
  178. package/esm/index.js.map +1 -0
  179. package/esm/indexedCramFile.d.ts +39 -0
  180. package/esm/indexedCramFile.js +155 -0
  181. package/esm/indexedCramFile.js.map +1 -0
  182. package/esm/io/bufferCache.d.ts +12 -0
  183. package/esm/io/bufferCache.js +54 -0
  184. package/esm/io/bufferCache.js.map +1 -0
  185. package/esm/io/index.d.ts +5 -0
  186. package/esm/io/index.js +24 -0
  187. package/esm/io/index.js.map +1 -0
  188. package/esm/io/localFile.d.ts +10 -0
  189. package/esm/io/localFile.js +31 -0
  190. package/esm/io/localFile.js.map +1 -0
  191. package/esm/io/remoteFile.d.ts +16 -0
  192. package/esm/io/remoteFile.js +64 -0
  193. package/esm/io/remoteFile.js.map +1 -0
  194. package/esm/rans/constants.d.ts +3 -0
  195. package/esm/rans/constants.js +5 -0
  196. package/esm/rans/constants.js.map +1 -0
  197. package/esm/rans/d04.d.ts +1 -0
  198. package/esm/rans/d04.js +67 -0
  199. package/esm/rans/d04.js.map +1 -0
  200. package/esm/rans/d14.d.ts +1 -0
  201. package/esm/rans/d14.js +52 -0
  202. package/esm/rans/d14.js.map +1 -0
  203. package/esm/rans/decoding.d.ts +30 -0
  204. package/esm/rans/decoding.js +118 -0
  205. package/esm/rans/decoding.js.map +1 -0
  206. package/esm/rans/frequencies.d.ts +2 -0
  207. package/esm/rans/frequencies.js +110 -0
  208. package/esm/rans/frequencies.js.map +1 -0
  209. package/esm/rans/index.d.ts +1 -0
  210. package/esm/rans/index.js +195 -0
  211. package/esm/rans/index.js.map +1 -0
  212. package/esm/sam.d.ts +1 -0
  213. package/esm/sam.js +16 -0
  214. package/esm/sam.js.map +1 -0
  215. package/esm/unzip-pako.d.ts +2 -0
  216. package/esm/unzip-pako.js +5 -0
  217. package/esm/unzip-pako.js.map +1 -0
  218. package/esm/unzip.d.ts +2 -0
  219. package/esm/unzip.js +3 -0
  220. package/esm/unzip.js.map +1 -0
  221. package/package.json +38 -35
  222. package/src/craiIndex.js +180 -0
  223. package/src/cramFile/codecs/_base.js +49 -0
  224. package/src/cramFile/codecs/beta.js +23 -0
  225. package/src/cramFile/codecs/byteArrayLength.js +55 -0
  226. package/src/cramFile/codecs/byteArrayStop.js +50 -0
  227. package/src/cramFile/codecs/external.js +54 -0
  228. package/src/cramFile/codecs/gamma.js +30 -0
  229. package/src/cramFile/codecs/huffman.js +137 -0
  230. package/src/cramFile/codecs/index.js +38 -0
  231. package/src/cramFile/codecs/subexp.js +32 -0
  232. package/src/cramFile/constants.js +55 -0
  233. package/src/cramFile/container/compressionScheme.js +144 -0
  234. package/src/cramFile/container/index.js +119 -0
  235. package/src/cramFile/file.js +347 -0
  236. package/src/cramFile/index.js +3 -0
  237. package/src/cramFile/record.js +337 -0
  238. package/src/cramFile/sectionParsers.js +379 -0
  239. package/src/cramFile/slice/decodeRecord.js +362 -0
  240. package/src/cramFile/slice/index.js +497 -0
  241. package/src/cramFile/util.js +169 -0
  242. package/src/errors.js +22 -0
  243. package/src/index.js +5 -0
  244. package/src/indexedCramFile.js +191 -0
  245. package/src/io/bufferCache.js +66 -0
  246. package/src/io/index.js +26 -0
  247. package/src/io/localFile.js +35 -0
  248. package/src/io/remoteFile.js +71 -0
  249. package/src/rans/README.md +1 -0
  250. package/src/rans/constants.js +5 -0
  251. package/src/rans/d04.js +83 -0
  252. package/src/rans/d14.js +59 -0
  253. package/src/rans/decoding.js +141 -0
  254. package/src/rans/frequencies.js +121 -0
  255. package/src/rans/index.js +249 -0
  256. package/src/sam.js +15 -0
  257. package/src/unzip-pako.ts +5 -0
  258. package/src/unzip.ts +2 -0
@@ -1,310 +1,260 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
6
-
7
- var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
8
-
9
- var _flags = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flags"));
10
-
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
12
-
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
14
-
15
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
16
-
17
- var Constants = require('./constants');
18
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var constants_1 = __importDefault(require("./constants"));
19
7
  function decodeReadSequence(cramRecord, refRegion) {
20
- // if it has no length, it has no sequence
21
- if (!cramRecord.lengthOnRef && !cramRecord.readLength) return undefined;
22
- if (cramRecord.isUnknownBases()) return undefined; // remember: all coordinates are 1-based closed
23
-
24
- var regionSeqOffset = cramRecord.alignmentStart - refRegion.start;
25
- if (!cramRecord.readFeatures) return refRegion.seq.substr(regionSeqOffset, cramRecord.lengthOnRef).toUpperCase();
26
- var bases = '';
27
- var regionPos = regionSeqOffset;
28
- var currentReadFeature = 0;
29
-
30
- while (bases.length < cramRecord.readLength) {
31
- if (currentReadFeature < cramRecord.readFeatures.length) {
32
- var feature = cramRecord.readFeatures[currentReadFeature];
33
-
34
- if (feature.code === 'Q' || feature.code === 'q') {
35
- currentReadFeature += 1;
36
- } else if (feature.pos === bases.length + 1) {
37
- // process the read feature
38
- currentReadFeature += 1;
39
-
40
- if (feature.code === 'b') {
41
- // specify a base pair for some reason
42
- var ret = feature.data.split(',');
43
- var added = String.fromCharCode.apply(String, (0, _toConsumableArray2.default)(ret));
44
- bases += added;
45
- regionPos += added.length;
46
- } else if (feature.code === 'B') {
47
- // base pair and associated quality
48
- // TODO: do we need to set the quality in the qual scores?
49
- bases += feature.data[0];
50
- regionPos += 1;
51
- } else if (feature.code === 'X') {
52
- // base substitution
53
- bases += feature.sub;
54
- regionPos += 1;
55
- } else if (feature.code === 'I') {
56
- // insertion
57
- bases += feature.data;
58
- } else if (feature.code === 'D') {
59
- // deletion
60
- regionPos += feature.data;
61
- } else if (feature.code === 'i') {
62
- // insert single base
63
- bases += feature.data;
64
- } else if (feature.code === 'N') {
65
- // reference skip. delete some bases
66
- // do nothing
67
- // seqBases.splice(feature.pos - 1, feature.data)
68
- regionPos += feature.data;
69
- } else if (feature.code === 'S') {
70
- // soft clipped bases that should be present in the read seq
71
- // seqBases.splice(feature.pos - 1, 0, ...feature.data.split(''))
72
- bases += feature.data;
73
- } else if (feature.code === 'P') {// padding, do nothing
74
- } else if (feature.code === 'H') {// hard clip, do nothing
8
+ // if it has no length, it has no sequence
9
+ if (!cramRecord.lengthOnRef && !cramRecord.readLength) {
10
+ return undefined;
11
+ }
12
+ if (cramRecord.isUnknownBases()) {
13
+ return undefined;
14
+ }
15
+ // remember: all coordinates are 1-based closed
16
+ var regionSeqOffset = cramRecord.alignmentStart - refRegion.start;
17
+ if (!cramRecord.readFeatures) {
18
+ return refRegion.seq
19
+ .substr(regionSeqOffset, cramRecord.lengthOnRef)
20
+ .toUpperCase();
21
+ }
22
+ var bases = '';
23
+ var regionPos = regionSeqOffset;
24
+ var currentReadFeature = 0;
25
+ while (bases.length < cramRecord.readLength) {
26
+ if (currentReadFeature < cramRecord.readFeatures.length) {
27
+ var feature = cramRecord.readFeatures[currentReadFeature];
28
+ if (feature.code === 'Q' || feature.code === 'q') {
29
+ currentReadFeature += 1;
30
+ }
31
+ else if (feature.pos === bases.length + 1) {
32
+ // process the read feature
33
+ currentReadFeature += 1;
34
+ if (feature.code === 'b') {
35
+ // specify a base pair for some reason
36
+ var ret = feature.data.split(',');
37
+ var added = String.fromCharCode.apply(String, ret);
38
+ bases += added;
39
+ regionPos += added.length;
40
+ }
41
+ else if (feature.code === 'B') {
42
+ // base pair and associated quality
43
+ // TODO: do we need to set the quality in the qual scores?
44
+ bases += feature.data[0];
45
+ regionPos += 1;
46
+ }
47
+ else if (feature.code === 'X') {
48
+ // base substitution
49
+ bases += feature.sub;
50
+ regionPos += 1;
51
+ }
52
+ else if (feature.code === 'I') {
53
+ // insertion
54
+ bases += feature.data;
55
+ }
56
+ else if (feature.code === 'D') {
57
+ // deletion
58
+ regionPos += feature.data;
59
+ }
60
+ else if (feature.code === 'i') {
61
+ // insert single base
62
+ bases += feature.data;
63
+ }
64
+ else if (feature.code === 'N') {
65
+ // reference skip. delete some bases
66
+ // do nothing
67
+ // seqBases.splice(feature.pos - 1, feature.data)
68
+ regionPos += feature.data;
69
+ }
70
+ else if (feature.code === 'S') {
71
+ // soft clipped bases that should be present in the read seq
72
+ // seqBases.splice(feature.pos - 1, 0, ...feature.data.split(''))
73
+ bases += feature.data;
74
+ }
75
+ else if (feature.code === 'P') {
76
+ // padding, do nothing
77
+ }
78
+ else if (feature.code === 'H') {
79
+ // hard clip, do nothing
80
+ }
81
+ }
82
+ else if (currentReadFeature < cramRecord.readFeatures.length) {
83
+ // put down a chunk of sequence up to the next read feature
84
+ var chunk = refRegion.seq.substr(regionPos, cramRecord.readFeatures[currentReadFeature].pos - bases.length - 1);
85
+ bases += chunk;
86
+ regionPos += chunk.length;
87
+ }
88
+ }
89
+ else {
90
+ // put down a chunk of reference up to the full read length
91
+ var chunk = refRegion.seq.substr(regionPos, cramRecord.readLength - bases.length);
92
+ bases += chunk;
93
+ regionPos += chunk.length;
75
94
  }
76
- } else if (currentReadFeature < cramRecord.readFeatures.length) {
77
- // put down a chunk of sequence up to the next read feature
78
- var chunk = refRegion.seq.substr(regionPos, cramRecord.readFeatures[currentReadFeature].pos - bases.length - 1);
79
- bases += chunk;
80
- regionPos += chunk.length;
81
- }
82
- } else {
83
- // put down a chunk of reference up to the full read length
84
- var _chunk = refRegion.seq.substr(regionPos, cramRecord.readLength - bases.length);
85
-
86
- bases += _chunk;
87
- regionPos += _chunk.length;
88
95
  }
89
- }
90
-
91
- return bases.toUpperCase();
96
+ return bases.toUpperCase();
92
97
  }
93
-
94
98
  var baseNumbers = {
95
- a: 0,
96
- A: 0,
97
- c: 1,
98
- C: 1,
99
- g: 2,
100
- G: 2,
101
- t: 3,
102
- T: 3,
103
- n: 4,
104
- N: 4
99
+ a: 0,
100
+ A: 0,
101
+ c: 1,
102
+ C: 1,
103
+ g: 2,
104
+ G: 2,
105
+ t: 3,
106
+ T: 3,
107
+ n: 4,
108
+ N: 4,
105
109
  };
106
-
107
110
  function decodeBaseSubstitution(cramRecord, refRegion, compressionScheme, readFeature) {
108
- if (!refRegion) return; // decode base substitution code using the substitution matrix
109
-
110
- var refCoord = readFeature.refPos - refRegion.start;
111
- var refBase = refRegion.seq.charAt(refCoord);
112
- if (refBase) readFeature.ref = refBase;
113
- var baseNumber = baseNumbers[refBase];
114
- if (baseNumber === undefined) baseNumber = 4;
115
- var substitutionScheme = compressionScheme.substitutionMatrix[baseNumber];
116
- var base = substitutionScheme[readFeature.data];
117
- if (base) readFeature.sub = base;
111
+ if (!refRegion) {
112
+ return;
113
+ }
114
+ // decode base substitution code using the substitution matrix
115
+ var refCoord = readFeature.refPos - refRegion.start;
116
+ var refBase = refRegion.seq.charAt(refCoord);
117
+ if (refBase) {
118
+ readFeature.ref = refBase;
119
+ }
120
+ var baseNumber = baseNumbers[refBase];
121
+ if (baseNumber === undefined) {
122
+ baseNumber = 4;
123
+ }
124
+ var substitutionScheme = compressionScheme.substitutionMatrix[baseNumber];
125
+ var base = substitutionScheme[readFeature.data];
126
+ if (base) {
127
+ readFeature.sub = base;
128
+ }
118
129
  }
119
130
  /**
120
131
  * Class of each CRAM record returned by this API.
121
132
  */
122
-
123
-
124
- var CramRecord =
125
- /*#__PURE__*/
126
- function () {
127
- function CramRecord() {
128
- (0, _classCallCheck2.default)(this, CramRecord);
129
- this.tags = {};
130
- }
131
- /**
132
- * @returns {boolean} true if the read is paired, regardless of whether both segments are mapped
133
- */
134
-
135
-
136
- (0, _createClass2.default)(CramRecord, [{
137
- key: "isPaired",
138
- value: function isPaired() {
139
- return !!((0, _flags.default)(this) & Constants.BAM_FPAIRED);
133
+ var CramRecord = /** @class */ (function () {
134
+ function CramRecord() {
135
+ this.tags = {};
140
136
  }
137
+ /**
138
+ * @returns {boolean} true if the read is paired, regardless of whether both segments are mapped
139
+ */
140
+ CramRecord.prototype.isPaired = function () {
141
+ return !!(this.flags & constants_1.default.BAM_FPAIRED);
142
+ };
141
143
  /** @returns {boolean} true if the read is paired, and both segments are mapped */
142
-
143
- }, {
144
- key: "isProperlyPaired",
145
- value: function isProperlyPaired() {
146
- return !!((0, _flags.default)(this) & Constants.BAM_FPROPER_PAIR);
147
- }
144
+ CramRecord.prototype.isProperlyPaired = function () {
145
+ return !!(this.flags & constants_1.default.BAM_FPROPER_PAIR);
146
+ };
148
147
  /** @returns {boolean} true if the read itself is unmapped; conflictive with isProperlyPaired */
149
-
150
- }, {
151
- key: "isSegmentUnmapped",
152
- value: function isSegmentUnmapped() {
153
- return !!((0, _flags.default)(this) & Constants.BAM_FUNMAP);
154
- }
148
+ CramRecord.prototype.isSegmentUnmapped = function () {
149
+ return !!(this.flags & constants_1.default.BAM_FUNMAP);
150
+ };
155
151
  /** @returns {boolean} true if the read itself is unmapped; conflictive with isProperlyPaired */
156
-
157
- }, {
158
- key: "isMateUnmapped",
159
- value: function isMateUnmapped() {
160
- return !!((0, _flags.default)(this) & Constants.BAM_FMUNMAP);
161
- }
152
+ CramRecord.prototype.isMateUnmapped = function () {
153
+ return !!(this.flags & constants_1.default.BAM_FMUNMAP);
154
+ };
162
155
  /** @returns {boolean} true if the read is mapped to the reverse strand */
163
-
164
- }, {
165
- key: "isReverseComplemented",
166
- value: function isReverseComplemented() {
167
- return !!((0, _flags.default)(this) & Constants.BAM_FREVERSE);
168
- }
156
+ CramRecord.prototype.isReverseComplemented = function () {
157
+ return !!(this.flags & constants_1.default.BAM_FREVERSE);
158
+ };
169
159
  /** @returns {boolean} true if the mate is mapped to the reverse strand */
170
-
171
- }, {
172
- key: "isMateReverseComplemented",
173
- value: function isMateReverseComplemented() {
174
- return !!((0, _flags.default)(this) & Constants.BAM_FMREVERSE);
175
- }
160
+ CramRecord.prototype.isMateReverseComplemented = function () {
161
+ return !!(this.flags & constants_1.default.BAM_FMREVERSE);
162
+ };
176
163
  /** @returns {boolean} true if this is read number 1 in a pair */
177
-
178
- }, {
179
- key: "isRead1",
180
- value: function isRead1() {
181
- return !!((0, _flags.default)(this) & Constants.BAM_FREAD1);
182
- }
164
+ CramRecord.prototype.isRead1 = function () {
165
+ return !!(this.flags & constants_1.default.BAM_FREAD1);
166
+ };
183
167
  /** @returns {boolean} true if this is read number 2 in a pair */
184
-
185
- }, {
186
- key: "isRead2",
187
- value: function isRead2() {
188
- return !!((0, _flags.default)(this) & Constants.BAM_FREAD2);
189
- }
168
+ CramRecord.prototype.isRead2 = function () {
169
+ return !!(this.flags & constants_1.default.BAM_FREAD2);
170
+ };
190
171
  /** @returns {boolean} true if this is a secondary alignment */
191
-
192
- }, {
193
- key: "isSecondary",
194
- value: function isSecondary() {
195
- return !!((0, _flags.default)(this) & Constants.BAM_FSECONDARY);
196
- }
172
+ CramRecord.prototype.isSecondary = function () {
173
+ return !!(this.flags & constants_1.default.BAM_FSECONDARY);
174
+ };
197
175
  /** @returns {boolean} true if this read has failed QC checks */
198
-
199
- }, {
200
- key: "isFailedQc",
201
- value: function isFailedQc() {
202
- return !!((0, _flags.default)(this) & Constants.BAM_FQCFAIL);
203
- }
176
+ CramRecord.prototype.isFailedQc = function () {
177
+ return !!(this.flags & constants_1.default.BAM_FQCFAIL);
178
+ };
204
179
  /** @returns {boolean} true if the read is an optical or PCR duplicate */
205
-
206
- }, {
207
- key: "isDuplicate",
208
- value: function isDuplicate() {
209
- return !!((0, _flags.default)(this) & Constants.BAM_FDUP);
210
- }
180
+ CramRecord.prototype.isDuplicate = function () {
181
+ return !!(this.flags & constants_1.default.BAM_FDUP);
182
+ };
211
183
  /** @returns {boolean} true if this is a supplementary alignment */
212
-
213
- }, {
214
- key: "isSupplementary",
215
- value: function isSupplementary() {
216
- return !!((0, _flags.default)(this) & Constants.BAM_FSUPPLEMENTARY);
217
- }
184
+ CramRecord.prototype.isSupplementary = function () {
185
+ return !!(this.flags & constants_1.default.BAM_FSUPPLEMENTARY);
186
+ };
218
187
  /**
219
188
  * @returns {boolean} true if the read is detached
220
189
  */
221
-
222
- }, {
223
- key: "isDetached",
224
- value: function isDetached() {
225
- return !!(this.cramFlags & Constants.CRAM_FLAG_DETACHED);
226
- }
190
+ CramRecord.prototype.isDetached = function () {
191
+ return !!(this.cramFlags & constants_1.default.CRAM_FLAG_DETACHED);
192
+ };
227
193
  /** @returns {boolean} true if the read has a mate in this same CRAM segment */
228
-
229
- }, {
230
- key: "hasMateDownStream",
231
- value: function hasMateDownStream() {
232
- return !!(this.cramFlags & Constants.CRAM_FLAG_MATE_DOWNSTREAM);
233
- }
194
+ CramRecord.prototype.hasMateDownStream = function () {
195
+ return !!(this.cramFlags & constants_1.default.CRAM_FLAG_MATE_DOWNSTREAM);
196
+ };
234
197
  /** @returns {boolean} true if the read contains qual scores */
235
-
236
- }, {
237
- key: "isPreservingQualityScores",
238
- value: function isPreservingQualityScores() {
239
- return !!(this.cramFlags & Constants.CRAM_FLAG_PRESERVE_QUAL_SCORES);
240
- }
198
+ CramRecord.prototype.isPreservingQualityScores = function () {
199
+ return !!(this.cramFlags & constants_1.default.CRAM_FLAG_PRESERVE_QUAL_SCORES);
200
+ };
241
201
  /** @returns {boolean} true if the read has no sequence bases */
242
-
243
- }, {
244
- key: "isUnknownBases",
245
- value: function isUnknownBases() {
246
- return !!(this.cramFlags & Constants.CRAM_FLAG_NO_SEQ);
247
- }
202
+ CramRecord.prototype.isUnknownBases = function () {
203
+ return !!(this.cramFlags & constants_1.default.CRAM_FLAG_NO_SEQ);
204
+ };
248
205
  /**
249
206
  * Get the original sequence of this read.
250
207
  * @returns {String} sequence basepairs
251
208
  */
252
-
253
- }, {
254
- key: "getReadBases",
255
- value: function getReadBases() {
256
- if (!this.readBases && this._refRegion) {
257
- this.readBases = decodeReadSequence(this, this._refRegion);
258
- }
259
-
260
- return this.readBases;
261
- }
209
+ CramRecord.prototype.getReadBases = function () {
210
+ if (!this.readBases && this._refRegion) {
211
+ this.readBases = decodeReadSequence(this, this._refRegion);
212
+ }
213
+ return this.readBases;
214
+ };
262
215
  /**
263
216
  * Get the pair orientation of a paired read. Adapted from igv.js
264
217
  * @returns {String} of paired orientatin
265
218
  */
266
-
267
- }, {
268
- key: "getPairOrientation",
269
- value: function getPairOrientation() {
270
- if (!this.isSegmentUnmapped() && this.isPaired() && !this.isMateUnmapped() && this.mate && this.sequenceId === this.mate.sequenceId) {
271
- var s1 = this.isReverseComplemented() ? 'R' : 'F';
272
- var s2 = this.isMateReverseComplemented() ? 'R' : 'F';
273
- var o1 = ' ';
274
- var o2 = ' ';
275
-
276
- if (this.isRead1()) {
277
- o1 = '1';
278
- o2 = '2';
279
- } else if (this.isRead2()) {
280
- o1 = '2';
281
- o2 = '1';
282
- }
283
-
284
- var tmp = [];
285
- var isize = this.templateLength || this.templateSize;
286
-
287
- if (this.alignmentStart > this.mate.alignmentStart && isize > 0) {
288
- isize = -isize;
219
+ CramRecord.prototype.getPairOrientation = function () {
220
+ if (!this.isSegmentUnmapped() &&
221
+ this.isPaired() &&
222
+ !this.isMateUnmapped() &&
223
+ this.mate &&
224
+ this.sequenceId === this.mate.sequenceId) {
225
+ var s1 = this.isReverseComplemented() ? 'R' : 'F';
226
+ var s2 = this.isMateReverseComplemented() ? 'R' : 'F';
227
+ var o1 = ' ';
228
+ var o2 = ' ';
229
+ if (this.isRead1()) {
230
+ o1 = '1';
231
+ o2 = '2';
232
+ }
233
+ else if (this.isRead2()) {
234
+ o1 = '2';
235
+ o2 = '1';
236
+ }
237
+ var tmp = [];
238
+ var isize = this.templateLength || this.templateSize;
239
+ if (this.alignmentStart > this.mate.alignmentStart && isize > 0) {
240
+ isize = -isize;
241
+ }
242
+ if (isize > 0) {
243
+ tmp[0] = s1;
244
+ tmp[1] = o1;
245
+ tmp[2] = s2;
246
+ tmp[3] = o2;
247
+ }
248
+ else {
249
+ tmp[2] = s1;
250
+ tmp[3] = o1;
251
+ tmp[0] = s2;
252
+ tmp[1] = o2;
253
+ }
254
+ return tmp.join('');
289
255
  }
290
-
291
- if (isize > 0) {
292
- tmp[0] = s1;
293
- tmp[1] = o1;
294
- tmp[2] = s2;
295
- tmp[3] = o2;
296
- } else {
297
- tmp[2] = s1;
298
- tmp[3] = o1;
299
- tmp[0] = s2;
300
- tmp[1] = o2;
301
- }
302
-
303
- return tmp.join('');
304
- }
305
-
306
- return null;
307
- }
256
+ return null;
257
+ };
308
258
  /**
309
259
  * Annotates this feature with the given reference sequence basepair
310
260
  * information. This will add a `sub` and a `ref` item to base
@@ -318,44 +268,39 @@ function () {
318
268
  * @param {CramContainerCompressionScheme} compressionScheme
319
269
  * @returns {undefined} nothing
320
270
  */
321
-
322
- }, {
323
- key: "addReferenceSequence",
324
- value: function addReferenceSequence(refRegion, compressionScheme) {
325
- var _this = this;
326
-
327
- if (this.readFeatures) {
328
- var _context;
329
-
330
- // use the reference bases to decode the bases
331
- // substituted in each base substitution
332
- (0, _forEach.default)(_context = this.readFeatures).call(_context, function (readFeature) {
333
- if (readFeature.code === 'X') decodeBaseSubstitution(_this, refRegion, compressionScheme, readFeature);
271
+ CramRecord.prototype.addReferenceSequence = function (refRegion, compressionScheme) {
272
+ var _this = this;
273
+ if (this.readFeatures) {
274
+ // use the reference bases to decode the bases
275
+ // substituted in each base substitution
276
+ this.readFeatures.forEach(function (readFeature) {
277
+ if (readFeature.code === 'X') {
278
+ decodeBaseSubstitution(_this, refRegion, compressionScheme, readFeature);
279
+ }
280
+ });
281
+ }
282
+ // if this region completely covers this read,
283
+ // keep a reference to it
284
+ if (!this.readBases &&
285
+ refRegion.start <= this.alignmentStart &&
286
+ refRegion.end >=
287
+ this.alignmentStart + (this.lengthOnRef || this.readLength) - 1) {
288
+ this._refRegion = refRegion;
289
+ }
290
+ };
291
+ CramRecord.prototype.toJSON = function () {
292
+ var _this = this;
293
+ var data = {};
294
+ Object.keys(this).forEach(function (k) {
295
+ if (k.charAt(0) === '_') {
296
+ return;
297
+ }
298
+ data[k] = _this[k];
334
299
  });
335
- } // if this region completely covers this read,
336
- // keep a reference to it
337
-
338
-
339
- if (!this.readBases && refRegion.start <= this.alignmentStart && refRegion.end >= this.alignmentStart + (this.lengthOnRef || this.readLength) - 1) {
340
- this._refRegion = refRegion;
341
- }
342
- }
343
- }, {
344
- key: "toJSON",
345
- value: function toJSON() {
346
- var _context2,
347
- _this2 = this;
348
-
349
- var data = {};
350
- (0, _forEach.default)(_context2 = (0, _keys.default)(this)).call(_context2, function (k) {
351
- if (k.charAt(0) === '_') return;
352
- data[k] = _this2[k];
353
- });
354
- data.readBases = this.getReadBases();
355
- return data;
356
- }
357
- }]);
358
- return CramRecord;
359
- }();
360
-
361
- module.exports = CramRecord;
300
+ data.readBases = this.getReadBases();
301
+ return data;
302
+ };
303
+ return CramRecord;
304
+ }());
305
+ exports.default = CramRecord;
306
+ //# sourceMappingURL=record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/cramFile/record.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export namespace cramFileDefinition {
2
+ const parser: any;
3
+ const maxLength: number;
4
+ }
5
+ export function getSectionParsers(majorVersion: any): {
6
+ cramFileDefinition: {
7
+ parser: any;
8
+ maxLength: number;
9
+ };
10
+ cramBlockHeader: {
11
+ parser: any;
12
+ maxLength: number;
13
+ };
14
+ cramBlockCrc32: {
15
+ parser: any;
16
+ maxLength: number;
17
+ };
18
+ };