@jbrowse/plugin-alignments 1.7.10 → 2.0.1

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 (291) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +192 -216
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  3. package/dist/AlignmentsFeatureDetail/index.d.ts +3 -3
  4. package/dist/AlignmentsFeatureDetail/index.js +48 -44
  5. package/dist/AlignmentsFeatureDetail/index.js.map +1 -0
  6. package/dist/AlignmentsTrack/index.js +24 -32
  7. package/dist/AlignmentsTrack/index.js.map +1 -0
  8. package/dist/BamAdapter/BamAdapter.js +345 -585
  9. package/dist/BamAdapter/BamAdapter.js.map +1 -0
  10. package/dist/BamAdapter/BamSlightlyLazyFeature.js +143 -174
  11. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
  12. package/dist/BamAdapter/MismatchParser.d.ts +1 -1
  13. package/dist/BamAdapter/MismatchParser.js +341 -417
  14. package/dist/BamAdapter/MismatchParser.js.map +1 -0
  15. package/dist/BamAdapter/configSchema.js +33 -46
  16. package/dist/BamAdapter/configSchema.js.map +1 -0
  17. package/dist/BamAdapter/index.js +36 -32
  18. package/dist/BamAdapter/index.js.map +1 -0
  19. package/dist/CramAdapter/CramAdapter.js +376 -644
  20. package/dist/CramAdapter/CramAdapter.js.map +1 -0
  21. package/dist/CramAdapter/CramSlightlyLazyFeature.js +374 -439
  22. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  23. package/dist/CramAdapter/CramTestAdapters.js +169 -227
  24. package/dist/CramAdapter/CramTestAdapters.js.map +1 -0
  25. package/dist/CramAdapter/configSchema.js +28 -38
  26. package/dist/CramAdapter/configSchema.js.map +1 -0
  27. package/dist/CramAdapter/index.js +37 -32
  28. package/dist/CramAdapter/index.js.map +1 -0
  29. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +91 -93
  30. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  31. package/dist/HtsgetBamAdapter/configSchema.js +19 -29
  32. package/dist/HtsgetBamAdapter/configSchema.js.map +1 -0
  33. package/dist/HtsgetBamAdapter/index.js +44 -38
  34. package/dist/HtsgetBamAdapter/index.js.map +1 -0
  35. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +36 -65
  36. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  37. package/dist/LinearAlignmentsDisplay/index.js +22 -28
  38. package/dist/LinearAlignmentsDisplay/index.js.map +1 -0
  39. package/dist/LinearAlignmentsDisplay/models/configSchema.js +12 -23
  40. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  41. package/dist/LinearAlignmentsDisplay/models/model.d.ts +10 -10
  42. package/dist/LinearAlignmentsDisplay/models/model.js +257 -245
  43. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -0
  44. package/dist/LinearPileupDisplay/components/ColorByModifications.js +98 -116
  45. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  46. package/dist/LinearPileupDisplay/components/ColorByTag.js +82 -91
  47. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  48. package/dist/LinearPileupDisplay/components/FilterByTag.js +156 -192
  49. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  50. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +15 -29
  51. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  52. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +79 -93
  53. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  54. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +78 -81
  55. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  56. package/dist/LinearPileupDisplay/components/SortByTag.js +80 -88
  57. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  58. package/dist/LinearPileupDisplay/configSchema.js +40 -42
  59. package/dist/LinearPileupDisplay/configSchema.js.map +1 -0
  60. package/dist/LinearPileupDisplay/index.js +21 -27
  61. package/dist/LinearPileupDisplay/index.js.map +1 -0
  62. package/dist/LinearPileupDisplay/model.d.ts +28 -18
  63. package/dist/LinearPileupDisplay/model.js +702 -797
  64. package/dist/LinearPileupDisplay/model.js.map +1 -0
  65. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  66. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +104 -77
  67. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  68. package/dist/LinearSNPCoverageDisplay/index.js +21 -27
  69. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -0
  70. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +45 -55
  71. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  72. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +14 -12
  73. package/dist/LinearSNPCoverageDisplay/models/model.js +257 -230
  74. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  75. package/dist/NestedFrequencyTable.js +104 -139
  76. package/dist/NestedFrequencyTable.js.map +1 -0
  77. package/dist/PileupRPC/rpcMethods.js +199 -278
  78. package/dist/PileupRPC/rpcMethods.js.map +1 -0
  79. package/dist/PileupRenderer/PileupLayoutSession.js +56 -76
  80. package/dist/PileupRenderer/PileupLayoutSession.js.map +1 -0
  81. package/dist/PileupRenderer/PileupRenderer.d.ts +4 -4
  82. package/dist/PileupRenderer/PileupRenderer.js +938 -1205
  83. package/dist/PileupRenderer/PileupRenderer.js.map +1 -0
  84. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
  85. package/dist/PileupRenderer/components/PileupRendering.js +173 -253
  86. package/dist/PileupRenderer/components/PileupRendering.js.map +1 -0
  87. package/dist/PileupRenderer/configSchema.js +65 -71
  88. package/dist/PileupRenderer/configSchema.js.map +1 -0
  89. package/dist/PileupRenderer/index.js +17 -22
  90. package/dist/PileupRenderer/index.js.map +1 -0
  91. package/dist/PileupRenderer/sortUtil.js +83 -107
  92. package/dist/PileupRenderer/sortUtil.js.map +1 -0
  93. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +436 -589
  94. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  95. package/dist/SNPCoverageAdapter/configSchema.js +10 -20
  96. package/dist/SNPCoverageAdapter/configSchema.js.map +1 -0
  97. package/dist/SNPCoverageAdapter/index.js +46 -41
  98. package/dist/SNPCoverageAdapter/index.js.map +1 -0
  99. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -1
  100. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +265 -290
  101. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  102. package/dist/SNPCoverageRenderer/configSchema.js +30 -39
  103. package/dist/SNPCoverageRenderer/configSchema.js.map +1 -0
  104. package/dist/SNPCoverageRenderer/index.js +19 -30
  105. package/dist/SNPCoverageRenderer/index.js.map +1 -0
  106. package/dist/index.js +135 -152
  107. package/dist/index.js.map +1 -0
  108. package/dist/shared.js +84 -92
  109. package/dist/shared.js.map +1 -0
  110. package/dist/util.js +130 -121
  111. package/dist/util.js.map +1 -0
  112. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +6 -0
  113. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +145 -0
  114. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  115. package/esm/AlignmentsFeatureDetail/index.d.ts +38 -0
  116. package/esm/AlignmentsFeatureDetail/index.js +23 -0
  117. package/esm/AlignmentsFeatureDetail/index.js.map +1 -0
  118. package/esm/AlignmentsTrack/index.d.ts +2 -0
  119. package/esm/AlignmentsTrack/index.js +23 -0
  120. package/esm/AlignmentsTrack/index.js.map +1 -0
  121. package/esm/BamAdapter/BamAdapter.d.ts +40 -0
  122. package/esm/BamAdapter/BamAdapter.js +173 -0
  123. package/esm/BamAdapter/BamAdapter.js.map +1 -0
  124. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +33 -0
  125. package/esm/BamAdapter/BamSlightlyLazyFeature.js +107 -0
  126. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
  127. package/esm/BamAdapter/MismatchParser.d.ts +25 -0
  128. package/esm/BamAdapter/MismatchParser.js +294 -0
  129. package/esm/BamAdapter/MismatchParser.js.map +1 -0
  130. package/esm/BamAdapter/configSchema.d.ts +2 -0
  131. package/esm/BamAdapter/configSchema.js +31 -0
  132. package/esm/BamAdapter/configSchema.js.map +1 -0
  133. package/esm/BamAdapter/index.d.ts +3 -0
  134. package/esm/BamAdapter/index.js +10 -0
  135. package/esm/BamAdapter/index.js.map +1 -0
  136. package/esm/CramAdapter/CramAdapter.d.ts +53 -0
  137. package/esm/CramAdapter/CramAdapter.js +228 -0
  138. package/esm/CramAdapter/CramAdapter.js.map +1 -0
  139. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +49 -0
  140. package/esm/CramAdapter/CramSlightlyLazyFeature.js +349 -0
  141. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  142. package/esm/CramAdapter/CramTestAdapters.d.ts +29 -0
  143. package/esm/CramAdapter/CramTestAdapters.js +70 -0
  144. package/esm/CramAdapter/CramTestAdapters.js.map +1 -0
  145. package/esm/CramAdapter/configSchema.d.ts +3 -0
  146. package/esm/CramAdapter/configSchema.js +26 -0
  147. package/esm/CramAdapter/configSchema.js.map +1 -0
  148. package/esm/CramAdapter/index.d.ts +3 -0
  149. package/esm/CramAdapter/index.js +11 -0
  150. package/esm/CramAdapter/index.js.map +1 -0
  151. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +9 -0
  152. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +27 -0
  153. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  154. package/esm/HtsgetBamAdapter/configSchema.d.ts +2 -0
  155. package/esm/HtsgetBamAdapter/configSchema.js +17 -0
  156. package/esm/HtsgetBamAdapter/configSchema.js.map +1 -0
  157. package/esm/HtsgetBamAdapter/index.d.ts +3 -0
  158. package/esm/HtsgetBamAdapter/index.js +16 -0
  159. package/esm/HtsgetBamAdapter/index.js.map +1 -0
  160. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +7 -0
  161. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +34 -0
  162. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  163. package/esm/LinearAlignmentsDisplay/index.d.ts +2 -0
  164. package/esm/LinearAlignmentsDisplay/index.js +19 -0
  165. package/esm/LinearAlignmentsDisplay/index.js.map +1 -0
  166. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +4 -0
  167. package/esm/LinearAlignmentsDisplay/models/configSchema.js +12 -0
  168. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  169. package/esm/LinearAlignmentsDisplay/models/model.d.ts +105 -0
  170. package/esm/LinearAlignmentsDisplay/models/model.js +181 -0
  171. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -0
  172. package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +14 -0
  173. package/esm/LinearPileupDisplay/components/ColorByModifications.js +71 -0
  174. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  175. package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +9 -0
  176. package/esm/LinearPileupDisplay/components/ColorByTag.js +45 -0
  177. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  178. package/esm/LinearPileupDisplay/components/FilterByTag.d.ts +18 -0
  179. package/esm/LinearPileupDisplay/components/FilterByTag.js +123 -0
  180. package/esm/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  181. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +13 -0
  182. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +13 -0
  183. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  184. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +16 -0
  185. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +41 -0
  186. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  187. package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +10 -0
  188. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +43 -0
  189. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  190. package/esm/LinearPileupDisplay/components/SortByTag.d.ts +9 -0
  191. package/esm/LinearPileupDisplay/components/SortByTag.js +43 -0
  192. package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  193. package/esm/LinearPileupDisplay/configSchema.d.ts +6 -0
  194. package/esm/LinearPileupDisplay/configSchema.js +41 -0
  195. package/esm/LinearPileupDisplay/configSchema.js.map +1 -0
  196. package/esm/LinearPileupDisplay/index.d.ts +2 -0
  197. package/esm/LinearPileupDisplay/index.js +18 -0
  198. package/esm/LinearPileupDisplay/index.js.map +1 -0
  199. package/esm/LinearPileupDisplay/model.d.ts +332 -0
  200. package/esm/LinearPileupDisplay/model.js +576 -0
  201. package/esm/LinearPileupDisplay/model.js.map +1 -0
  202. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +10 -0
  203. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +57 -0
  204. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  205. package/esm/LinearSNPCoverageDisplay/index.d.ts +2 -0
  206. package/esm/LinearSNPCoverageDisplay/index.js +18 -0
  207. package/esm/LinearSNPCoverageDisplay/index.js.map +1 -0
  208. package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +2 -0
  209. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +44 -0
  210. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  211. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +348 -0
  212. package/esm/LinearSNPCoverageDisplay/models/model.js +185 -0
  213. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  214. package/esm/NestedFrequencyTable.d.ts +14 -0
  215. package/esm/NestedFrequencyTable.js +101 -0
  216. package/esm/NestedFrequencyTable.js.map +1 -0
  217. package/esm/PileupRPC/rpcMethods.d.ts +34 -0
  218. package/esm/PileupRPC/rpcMethods.js +70 -0
  219. package/esm/PileupRPC/rpcMethods.js.map +1 -0
  220. package/esm/PileupRenderer/PileupLayoutSession.d.ts +32 -0
  221. package/esm/PileupRenderer/PileupLayoutSession.js +32 -0
  222. package/esm/PileupRenderer/PileupLayoutSession.js.map +1 -0
  223. package/esm/PileupRenderer/PileupRenderer.d.ts +182 -0
  224. package/esm/PileupRenderer/PileupRenderer.js +830 -0
  225. package/esm/PileupRenderer/PileupRenderer.js.map +1 -0
  226. package/esm/PileupRenderer/components/PileupRendering.d.ts +23 -0
  227. package/esm/PileupRenderer/components/PileupRendering.js +138 -0
  228. package/esm/PileupRenderer/components/PileupRendering.js.map +1 -0
  229. package/esm/PileupRenderer/configSchema.d.ts +2 -0
  230. package/esm/PileupRenderer/configSchema.js +64 -0
  231. package/esm/PileupRenderer/configSchema.js.map +1 -0
  232. package/esm/PileupRenderer/index.d.ts +2 -0
  233. package/esm/PileupRenderer/index.js +12 -0
  234. package/esm/PileupRenderer/index.js.map +1 -0
  235. package/esm/PileupRenderer/sortUtil.d.ts +8 -0
  236. package/esm/PileupRenderer/sortUtil.js +80 -0
  237. package/esm/PileupRenderer/sortUtil.js.map +1 -0
  238. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +67 -0
  239. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +259 -0
  240. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  241. package/esm/SNPCoverageAdapter/configSchema.d.ts +3 -0
  242. package/esm/SNPCoverageAdapter/configSchema.js +6 -0
  243. package/esm/SNPCoverageAdapter/configSchema.js.map +1 -0
  244. package/esm/SNPCoverageAdapter/index.d.ts +3 -0
  245. package/esm/SNPCoverageAdapter/index.js +18 -0
  246. package/esm/SNPCoverageAdapter/index.js.map +1 -0
  247. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +20 -0
  248. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +185 -0
  249. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  250. package/esm/SNPCoverageRenderer/configSchema.d.ts +2 -0
  251. package/esm/SNPCoverageRenderer/configSchema.js +29 -0
  252. package/esm/SNPCoverageRenderer/configSchema.js.map +1 -0
  253. package/esm/SNPCoverageRenderer/index.d.ts +3 -0
  254. package/esm/SNPCoverageRenderer/index.js +14 -0
  255. package/esm/SNPCoverageRenderer/index.js.map +1 -0
  256. package/esm/index.d.ts +10 -0
  257. package/esm/index.js +91 -0
  258. package/esm/index.js.map +1 -0
  259. package/esm/shared.d.ts +25 -0
  260. package/esm/shared.js +28 -0
  261. package/esm/shared.js.map +1 -0
  262. package/esm/util.d.ts +19 -0
  263. package/esm/util.js +83 -0
  264. package/esm/util.js.map +1 -0
  265. package/package.json +22 -14
  266. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +4 -4
  267. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +321 -397
  268. package/src/BamAdapter/MismatchParser.ts +2 -2
  269. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +3 -3
  270. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +7 -7
  271. package/src/LinearPileupDisplay/components/ColorByTag.tsx +5 -5
  272. package/src/LinearPileupDisplay/components/FilterByTag.tsx +5 -5
  273. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +1 -1
  274. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +9 -9
  275. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +5 -5
  276. package/src/LinearPileupDisplay/components/SortByTag.tsx +5 -5
  277. package/src/LinearPileupDisplay/model.ts +16 -10
  278. package/src/LinearSNPCoverageDisplay/models/model.ts +25 -25
  279. package/src/PileupRenderer/PileupRenderer.tsx +54 -40
  280. package/src/PileupRenderer/components/PileupRendering.tsx +11 -11
  281. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +7 -5
  282. package/dist/AlignmentsFeatureDetail/index.test.js +0 -60
  283. package/dist/BamAdapter/BamAdapter.test.js +0 -177
  284. package/dist/BamAdapter/MismatchParser.test.js +0 -251
  285. package/dist/CramAdapter/CramAdapter.test.js +0 -138
  286. package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +0 -83
  287. package/dist/LinearPileupDisplay/configSchema.test.js +0 -92
  288. package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +0 -62
  289. package/dist/PileupRenderer/components/PileupRendering.test.js +0 -36
  290. package/dist/declare.d.js +0 -1
  291. package/dist/index.test.js +0 -26
@@ -1,605 +1,452 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = exports.capabilities = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
27
-
28
- var _simpleFeature = _interopRequireDefault(require("@jbrowse/core/util/simpleFeature"));
29
-
30
- var _rxjs = require("@jbrowse/core/util/rxjs");
31
-
32
- var _operators = require("rxjs/operators");
33
-
34
- var _util = require("../util");
35
-
36
- var _MismatchParser = require("../BamAdapter/MismatchParser");
37
-
38
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
39
-
40
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
41
-
42
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
43
-
44
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
45
-
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
-
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __read = (this && this.__read) || function (o, n) {
54
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
55
+ if (!m) return o;
56
+ var i = m.call(o), r, ar = [], e;
57
+ try {
58
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
59
+ }
60
+ catch (error) { e = { error: error }; }
61
+ finally {
62
+ try {
63
+ if (r && !r.done && (m = i["return"])) m.call(i);
64
+ }
65
+ finally { if (e) throw e.error; }
66
+ }
67
+ return ar;
68
+ };
69
+ var __values = (this && this.__values) || function(o) {
70
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
71
+ if (m) return m.call(o);
72
+ if (o && typeof o.length === "number") return {
73
+ next: function () {
74
+ if (o && i >= o.length) o = void 0;
75
+ return { value: o && o[i++], done: !o };
76
+ }
77
+ };
78
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
79
+ };
80
+ var __importDefault = (this && this.__importDefault) || function (mod) {
81
+ return (mod && mod.__esModule) ? mod : { "default": mod };
82
+ };
83
+ Object.defineProperty(exports, "__esModule", { value: true });
84
+ exports.capabilities = void 0;
85
+ var BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
86
+ var simpleFeature_1 = __importDefault(require("@jbrowse/core/util/simpleFeature"));
87
+ var rxjs_1 = require("@jbrowse/core/util/rxjs");
88
+ var operators_1 = require("rxjs/operators");
89
+ var util_1 = require("../util");
90
+ var MismatchParser_1 = require("../BamAdapter/MismatchParser");
48
91
  function mismatchLen(mismatch) {
49
- return !isInterbase(mismatch.type) ? mismatch.length : 1;
92
+ return !isInterbase(mismatch.type) ? mismatch.length : 1;
50
93
  }
51
-
52
94
  function isInterbase(type) {
53
- return type === 'softclip' || type === 'hardclip' || type === 'insertion';
54
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
-
56
-
95
+ return type === 'softclip' || type === 'hardclip' || type === 'insertion';
96
+ }
97
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
98
  function inc(bin, strand, type, field) {
58
- var thisBin = bin[type][field];
59
-
60
- if (thisBin === undefined) {
61
- thisBin = bin[type][field] = {
62
- total: 0,
63
- '-1': 0,
64
- '0': 0,
65
- '1': 0
66
- };
67
- }
68
-
69
- thisBin.total++;
70
- thisBin[strand]++;
99
+ var thisBin = bin[type][field];
100
+ if (thisBin === undefined) {
101
+ thisBin = bin[type][field] = {
102
+ total: 0,
103
+ '-1': 0,
104
+ '0': 0,
105
+ '1': 0,
106
+ };
107
+ }
108
+ thisBin.total++;
109
+ thisBin[strand]++;
71
110
  }
72
-
73
- var SNPCoverageAdapter = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
74
- (0, _inherits2.default)(SNPCoverageAdapter, _BaseFeatureDataAdapt);
75
-
76
- var _super = _createSuper(SNPCoverageAdapter);
77
-
78
- function SNPCoverageAdapter() {
79
- (0, _classCallCheck2.default)(this, SNPCoverageAdapter);
80
- return _super.apply(this, arguments);
81
- }
82
-
83
- (0, _createClass2.default)(SNPCoverageAdapter, [{
84
- key: "configure",
85
- value: function () {
86
- var _configure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
87
- var _this$getSubAdapter, _this$getSubAdapter2;
88
-
89
- var subadapterConfig, sequenceConf, dataAdapter, sequenceAdapter;
90
- return _regenerator.default.wrap(function _callee$(_context) {
91
- while (1) {
92
- switch (_context.prev = _context.next) {
93
- case 0:
94
- subadapterConfig = this.getConf('subadapter');
95
- sequenceConf = this.getConf(['subadapter', 'sequenceAdapter']);
96
- _context.next = 4;
97
- return (_this$getSubAdapter = this.getSubAdapter) === null || _this$getSubAdapter === void 0 ? void 0 : _this$getSubAdapter.call(this, subadapterConfig);
98
-
99
- case 4:
100
- dataAdapter = _context.sent;
101
-
102
- if (!sequenceConf) {
103
- _context.next = 11;
104
- break;
111
+ var SNPCoverageAdapter = /** @class */ (function (_super) {
112
+ __extends(SNPCoverageAdapter, _super);
113
+ function SNPCoverageAdapter() {
114
+ return _super !== null && _super.apply(this, arguments) || this;
115
+ }
116
+ SNPCoverageAdapter.prototype.configure = function () {
117
+ var _a, _b;
118
+ return __awaiter(this, void 0, void 0, function () {
119
+ var subadapterConfig, sequenceConf, dataAdapter, sequenceAdapter, _c;
120
+ return __generator(this, function (_d) {
121
+ switch (_d.label) {
122
+ case 0:
123
+ subadapterConfig = this.getConf('subadapter');
124
+ sequenceConf = this.getConf(['subadapter', 'sequenceAdapter']);
125
+ return [4 /*yield*/, ((_a = this.getSubAdapter) === null || _a === void 0 ? void 0 : _a.call(this, subadapterConfig))];
126
+ case 1:
127
+ dataAdapter = _d.sent();
128
+ if (!sequenceConf) return [3 /*break*/, 3];
129
+ return [4 /*yield*/, ((_b = this.getSubAdapter) === null || _b === void 0 ? void 0 : _b.call(this, sequenceConf))];
130
+ case 2:
131
+ _c = _d.sent();
132
+ return [3 /*break*/, 4];
133
+ case 3:
134
+ _c = undefined;
135
+ _d.label = 4;
136
+ case 4:
137
+ sequenceAdapter = _c;
138
+ if (!dataAdapter) {
139
+ throw new Error('Failed to get subadapter');
140
+ }
141
+ return [2 /*return*/, {
142
+ subadapter: dataAdapter.dataAdapter,
143
+ sequenceAdapter: sequenceAdapter === null || sequenceAdapter === void 0 ? void 0 : sequenceAdapter.dataAdapter,
144
+ }];
105
145
  }
106
-
107
- _context.next = 8;
108
- return (_this$getSubAdapter2 = this.getSubAdapter) === null || _this$getSubAdapter2 === void 0 ? void 0 : _this$getSubAdapter2.call(this, sequenceConf);
109
-
110
- case 8:
111
- _context.t0 = _context.sent;
112
- _context.next = 12;
113
- break;
114
-
115
- case 11:
116
- _context.t0 = undefined;
117
-
118
- case 12:
119
- sequenceAdapter = _context.t0;
120
-
121
- if (dataAdapter) {
122
- _context.next = 15;
123
- break;
146
+ });
147
+ });
148
+ };
149
+ SNPCoverageAdapter.prototype.fetchSequence = function (region) {
150
+ return __awaiter(this, void 0, void 0, function () {
151
+ var sequenceAdapter;
152
+ return __generator(this, function (_a) {
153
+ switch (_a.label) {
154
+ case 0: return [4 /*yield*/, this.configure()];
155
+ case 1:
156
+ sequenceAdapter = (_a.sent()).sequenceAdapter;
157
+ if (!sequenceAdapter) {
158
+ return [2 /*return*/, undefined];
159
+ }
160
+ return [2 /*return*/, (0, util_1.fetchSequence)(region, sequenceAdapter)];
124
161
  }
125
-
126
- throw new Error('Failed to get subadapter');
127
-
128
- case 15:
129
- return _context.abrupt("return", {
130
- subadapter: dataAdapter.dataAdapter,
131
- sequenceAdapter: sequenceAdapter === null || sequenceAdapter === void 0 ? void 0 : sequenceAdapter.dataAdapter
132
- });
133
-
134
- case 16:
135
- case "end":
136
- return _context.stop();
137
- }
138
- }
139
- }, _callee, this);
140
- }));
141
-
142
- function configure() {
143
- return _configure.apply(this, arguments);
144
- }
145
-
146
- return configure;
147
- }()
148
- }, {
149
- key: "fetchSequence",
150
- value: function () {
151
- var _fetchSequence2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(region) {
152
- var _yield$this$configure, sequenceAdapter;
153
-
154
- return _regenerator.default.wrap(function _callee2$(_context2) {
155
- while (1) {
156
- switch (_context2.prev = _context2.next) {
157
- case 0:
158
- _context2.next = 2;
159
- return this.configure();
160
-
161
- case 2:
162
- _yield$this$configure = _context2.sent;
163
- sequenceAdapter = _yield$this$configure.sequenceAdapter;
164
-
165
- if (sequenceAdapter) {
166
- _context2.next = 6;
167
- break;
162
+ });
163
+ });
164
+ };
165
+ SNPCoverageAdapter.prototype.getFeatures = function (region, opts) {
166
+ var _this = this;
167
+ if (opts === void 0) { opts = {}; }
168
+ return (0, rxjs_1.ObservableCreate)(function (observer) { return __awaiter(_this, void 0, void 0, function () {
169
+ var subadapter, feats, _a, bins, skipmap;
170
+ var _this = this;
171
+ return __generator(this, function (_b) {
172
+ switch (_b.label) {
173
+ case 0: return [4 /*yield*/, this.configure()];
174
+ case 1:
175
+ subadapter = (_b.sent()).subadapter;
176
+ return [4 /*yield*/, subadapter
177
+ .getFeatures(region, opts)
178
+ .pipe((0, operators_1.toArray)())
179
+ .toPromise()];
180
+ case 2:
181
+ feats = _b.sent();
182
+ return [4 /*yield*/, this.generateCoverageBins(feats, region, opts)];
183
+ case 3:
184
+ _a = _b.sent(), bins = _a.bins, skipmap = _a.skipmap;
185
+ bins.forEach(function (bin, index) {
186
+ observer.next(new simpleFeature_1.default({
187
+ id: "".concat(_this.id, "-").concat(region.start + index),
188
+ data: {
189
+ score: bin.total,
190
+ snpinfo: bin,
191
+ start: region.start + index,
192
+ end: region.start + index + 1,
193
+ refName: region.refName,
194
+ },
195
+ }));
196
+ });
197
+ // make fake features from the coverage
198
+ Object.entries(skipmap).forEach(function (_a) {
199
+ var _b = __read(_a, 2), key = _b[0], skip = _b[1];
200
+ observer.next(new simpleFeature_1.default({
201
+ id: key,
202
+ data: {
203
+ type: 'skip',
204
+ start: skip.start,
205
+ end: skip.end,
206
+ strand: skip.strand,
207
+ score: skip.score,
208
+ xs: skip.xs,
209
+ },
210
+ }));
211
+ });
212
+ observer.complete();
213
+ return [2 /*return*/];
168
214
  }
169
-
170
- return _context2.abrupt("return", undefined);
171
-
172
- case 6:
173
- return _context2.abrupt("return", (0, _util.fetchSequence)(region, sequenceAdapter));
174
-
175
- case 7:
176
- case "end":
177
- return _context2.stop();
178
- }
179
- }
180
- }, _callee2, this);
181
- }));
182
-
183
- function fetchSequence(_x) {
184
- return _fetchSequence2.apply(this, arguments);
185
- }
186
-
187
- return fetchSequence;
188
- }()
189
- }, {
190
- key: "getFeatures",
191
- value: function getFeatures(region) {
192
- var _this = this;
193
-
194
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
195
- return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
196
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(observer) {
197
- var _yield$_this$configur, subadapter, feats, _yield$_this$generate, bins, skipmap;
198
-
199
- return _regenerator.default.wrap(function _callee3$(_context3) {
200
- while (1) {
201
- switch (_context3.prev = _context3.next) {
202
- case 0:
203
- _context3.next = 2;
204
- return _this.configure();
205
-
206
- case 2:
207
- _yield$_this$configur = _context3.sent;
208
- subadapter = _yield$_this$configur.subadapter;
209
- _context3.next = 6;
210
- return subadapter.getFeatures(region, opts).pipe((0, _operators.toArray)()).toPromise();
211
-
212
- case 6:
213
- feats = _context3.sent;
214
- _context3.next = 9;
215
- return _this.generateCoverageBins(feats, region, opts);
216
-
217
- case 9:
218
- _yield$_this$generate = _context3.sent;
219
- bins = _yield$_this$generate.bins;
220
- skipmap = _yield$_this$generate.skipmap;
221
- bins.forEach(function (bin, index) {
222
- observer.next(new _simpleFeature.default({
223
- id: "".concat(_this.id, "-").concat(region.start + index),
224
- data: {
225
- score: bin.total,
226
- snpinfo: bin,
227
- start: region.start + index,
228
- end: region.start + index + 1,
229
- refName: region.refName
230
- }
231
- }));
232
- }); // make fake features from the coverage
233
-
234
- Object.entries(skipmap).forEach(function (_ref2) {
235
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
236
- key = _ref3[0],
237
- skip = _ref3[1];
238
-
239
- observer.next(new _simpleFeature.default({
240
- id: key,
241
- data: {
242
- type: 'skip',
243
- start: skip.start,
244
- end: skip.end,
245
- strand: skip.strand,
246
- score: skip.score,
247
- xs: skip.xs
248
- }
249
- }));
250
- });
251
- observer.complete();
252
-
253
- case 15:
254
- case "end":
255
- return _context3.stop();
256
- }
257
- }
258
- }, _callee3);
259
- }));
260
-
261
- return function (_x2) {
262
- return _ref.apply(this, arguments);
263
- };
264
- }(), opts.signal);
265
- }
266
- }, {
267
- key: "estimateRegionsStats",
268
- value: function () {
269
- var _estimateRegionsStats = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(regions, opts) {
270
- var _yield$this$configure2, subadapter;
271
-
272
- return _regenerator.default.wrap(function _callee4$(_context4) {
273
- while (1) {
274
- switch (_context4.prev = _context4.next) {
275
- case 0:
276
- _context4.next = 2;
277
- return this.configure();
278
-
279
- case 2:
280
- _yield$this$configure2 = _context4.sent;
281
- subadapter = _yield$this$configure2.subadapter;
282
- return _context4.abrupt("return", subadapter.estimateRegionsStats(regions, opts));
283
-
284
- case 5:
285
- case "end":
286
- return _context4.stop();
287
- }
288
- }
289
- }, _callee4, this);
290
- }));
291
-
292
- function estimateRegionsStats(_x3, _x4) {
293
- return _estimateRegionsStats.apply(this, arguments);
294
- }
295
-
296
- return estimateRegionsStats;
297
- }()
298
- }, {
299
- key: "getRefNames",
300
- value: function () {
301
- var _getRefNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
302
- var opts,
303
- _yield$this$configure3,
304
- subadapter,
305
- _args5 = arguments;
306
-
307
- return _regenerator.default.wrap(function _callee5$(_context5) {
308
- while (1) {
309
- switch (_context5.prev = _context5.next) {
310
- case 0:
311
- opts = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};
312
- _context5.next = 3;
313
- return this.configure();
314
-
315
- case 3:
316
- _yield$this$configure3 = _context5.sent;
317
- subadapter = _yield$this$configure3.subadapter;
318
- return _context5.abrupt("return", subadapter.getRefNames(opts));
319
-
320
- case 6:
321
- case "end":
322
- return _context5.stop();
323
- }
324
- }
325
- }, _callee5, this);
326
- }));
327
-
328
- function getRefNames() {
329
- return _getRefNames.apply(this, arguments);
330
- }
331
-
332
- return getRefNames;
333
- }()
334
- }, {
335
- key: "freeResources",
336
- value: function
337
- /* { region } */
338
- freeResources() {}
339
- }, {
340
- key: "generateCoverageBins",
341
- value: function () {
342
- var _generateCoverageBins = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(features, region, opts) {
343
- var _opts$colorBy;
344
-
345
- var colorBy, binMax, skipmap, regionSeq, bins, _loop, i;
346
-
347
- return _regenerator.default.wrap(function _callee6$(_context6) {
348
- while (1) {
349
- switch (_context6.prev = _context6.next) {
350
- case 0:
351
- colorBy = opts.colorBy;
352
- binMax = Math.ceil(region.end - region.start);
353
- skipmap = {}; // bins contain:
354
- // - cov feature if they contribute to coverage
355
- // - noncov are insertions/clip features that don't contribute to coverage
356
- // - delskips deletions or introns that don't contribute to coverage
357
-
358
- if (!(features.length && (0, _util.shouldFetchReferenceSequence)((_opts$colorBy = opts.colorBy) === null || _opts$colorBy === void 0 ? void 0 : _opts$colorBy.type))) {
359
- _context6.next = 9;
360
- break;
215
+ });
216
+ }); }, opts.signal);
217
+ };
218
+ SNPCoverageAdapter.prototype.estimateRegionsStats = function (regions, opts) {
219
+ return __awaiter(this, void 0, void 0, function () {
220
+ var subadapter;
221
+ return __generator(this, function (_a) {
222
+ switch (_a.label) {
223
+ case 0: return [4 /*yield*/, this.configure()];
224
+ case 1:
225
+ subadapter = (_a.sent()).subadapter;
226
+ return [2 /*return*/, subadapter.estimateRegionsStats(regions, opts)];
361
227
  }
362
-
363
- _context6.next = 6;
364
- return this.fetchSequence(region);
365
-
366
- case 6:
367
- _context6.t0 = _context6.sent;
368
- _context6.next = 10;
369
- break;
370
-
371
- case 9:
372
- _context6.t0 = undefined;
373
-
374
- case 10:
375
- regionSeq = _context6.t0;
376
- bins = [];
377
-
378
- _loop = function _loop(i) {
379
- var feature = features[i];
380
- var fstart = feature.get('start');
381
- var fend = feature.get('end');
382
- var fstrand = feature.get('strand');
383
-
384
- for (var j = fstart; j < fend + 1; j++) {
385
- var _i = j - region.start;
386
-
387
- if (_i >= 0 && _i < binMax) {
388
- if (bins[_i] === undefined) {
389
- bins[_i] = {
390
- total: 0,
391
- all: 0,
392
- ref: 0,
393
- '-1': 0,
394
- '0': 0,
395
- '1': 0,
396
- lowqual: {},
397
- cov: {},
398
- delskips: {},
399
- noncov: {}
400
- };
401
- }
402
-
403
- if (j !== fend) {
404
- bins[_i].total++;
405
- bins[_i].all++;
406
- bins[_i].ref++;
407
- bins[_i][fstrand]++;
408
- }
409
- }
410
- }
411
-
412
- if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications') {
413
- var seq = feature.get('seq');
414
- var mm = (0, _util.getTagAlt)(feature, 'MM', 'Mm') || '';
415
- var ops = (0, _MismatchParser.parseCigar)(feature.get('CIGAR'));
416
-
417
- var _fend = feature.get('end');
418
-
419
- (0, _MismatchParser.getModificationPositions)(mm, seq, fstrand).forEach(function (_ref4) {
420
- var type = _ref4.type,
421
- positions = _ref4.positions;
422
- var mod = "mod_".concat(type);
423
-
424
- var _iterator = _createForOfIteratorHelper((0, _MismatchParser.getNextRefPos)(ops, positions)),
425
- _step;
426
-
427
- try {
428
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
429
- var pos = _step.value;
430
- var epos = pos + fstart - region.start;
431
-
432
- if (epos >= 0 && epos < bins.length && pos + fstart < _fend) {
433
- var bin = bins[epos];
434
-
435
- if (bin) {
436
- inc(bin, fstrand, 'cov', mod);
437
- } else {
438
- console.warn('Undefined position in modifications snpcoverage encountered');
228
+ });
229
+ });
230
+ };
231
+ SNPCoverageAdapter.prototype.getRefNames = function (opts) {
232
+ if (opts === void 0) { opts = {}; }
233
+ return __awaiter(this, void 0, void 0, function () {
234
+ var subadapter;
235
+ return __generator(this, function (_a) {
236
+ switch (_a.label) {
237
+ case 0: return [4 /*yield*/, this.configure()];
238
+ case 1:
239
+ subadapter = (_a.sent()).subadapter;
240
+ return [2 /*return*/, subadapter.getRefNames(opts)];
241
+ }
242
+ });
243
+ });
244
+ };
245
+ SNPCoverageAdapter.prototype.freeResources = function ( /* { region } */) { };
246
+ SNPCoverageAdapter.prototype.generateCoverageBins = function (features, region, opts) {
247
+ var _a;
248
+ return __awaiter(this, void 0, void 0, function () {
249
+ var colorBy, binMax, skipmap, regionSeq, _b, bins, _loop_1, i;
250
+ return __generator(this, function (_c) {
251
+ switch (_c.label) {
252
+ case 0:
253
+ colorBy = opts.colorBy;
254
+ binMax = Math.ceil(region.end - region.start);
255
+ skipmap = {};
256
+ if (!(features.length && (0, util_1.shouldFetchReferenceSequence)((_a = opts.colorBy) === null || _a === void 0 ? void 0 : _a.type))) return [3 /*break*/, 2];
257
+ return [4 /*yield*/, this.fetchSequence(region)];
258
+ case 1:
259
+ _b = _c.sent();
260
+ return [3 /*break*/, 3];
261
+ case 2:
262
+ _b = undefined;
263
+ _c.label = 3;
264
+ case 3:
265
+ regionSeq = _b;
266
+ bins = [];
267
+ _loop_1 = function (i) {
268
+ var feature = features[i];
269
+ var fstart = feature.get('start');
270
+ var fend = feature.get('end');
271
+ var fstrand = feature.get('strand');
272
+ for (var j = fstart; j < fend + 1; j++) {
273
+ var i_1 = j - region.start;
274
+ if (i_1 >= 0 && i_1 < binMax) {
275
+ if (bins[i_1] === undefined) {
276
+ bins[i_1] = {
277
+ total: 0,
278
+ all: 0,
279
+ ref: 0,
280
+ '-1': 0,
281
+ '0': 0,
282
+ '1': 0,
283
+ lowqual: {},
284
+ cov: {},
285
+ delskips: {},
286
+ noncov: {},
287
+ };
288
+ }
289
+ if (j !== fend) {
290
+ bins[i_1].total++;
291
+ bins[i_1].all++;
292
+ bins[i_1].ref++;
293
+ bins[i_1][fstrand]++;
294
+ }
295
+ }
439
296
  }
440
- }
441
- }
442
- } catch (err) {
443
- _iterator.e(err);
444
- } finally {
445
- _iterator.f();
446
- }
447
- });
448
- } // methylation based coloring takes into account both reference
449
- // sequence CpG detection and reads
450
- else if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'methylation') {
451
- if (!regionSeq) {
452
- throw new Error('no region sequence detected, need sequenceAdapter configuration');
453
- }
454
-
455
- var _seq = feature.get('seq');
456
-
457
- var _mm = (0, _util.getTagAlt)(feature, 'MM', 'Mm') || '';
458
-
459
- var methBins = new Array(region.end - region.start).fill(0);
460
-
461
- var _ops = (0, _MismatchParser.parseCigar)(feature.get('CIGAR'));
462
-
463
- (0, _MismatchParser.getModificationPositions)(_mm, _seq, fstrand).forEach(function (_ref5) {
464
- var type = _ref5.type,
465
- positions = _ref5.positions;
466
-
467
- // we are processing methylation
468
- if (type === 'm') {
469
- var _iterator2 = _createForOfIteratorHelper((0, _MismatchParser.getNextRefPos)(_ops, positions)),
470
- _step2;
471
-
472
- try {
473
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
474
- var pos = _step2.value;
475
- var epos = pos + fstart - region.start;
476
-
477
- if (epos >= 0 && epos < methBins.length) {
478
- methBins[epos] = 1;
297
+ if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications') {
298
+ var seq = feature.get('seq');
299
+ var mm = (0, util_1.getTagAlt)(feature, 'MM', 'Mm') || '';
300
+ var ops_1 = (0, MismatchParser_1.parseCigar)(feature.get('CIGAR'));
301
+ var fend_1 = feature.get('end');
302
+ (0, MismatchParser_1.getModificationPositions)(mm, seq, fstrand).forEach(function (_a) {
303
+ var e_1, _b;
304
+ var type = _a.type, positions = _a.positions;
305
+ var mod = "mod_".concat(type);
306
+ try {
307
+ for (var _c = (e_1 = void 0, __values((0, MismatchParser_1.getNextRefPos)(ops_1, positions))), _d = _c.next(); !_d.done; _d = _c.next()) {
308
+ var pos = _d.value;
309
+ var epos = pos + fstart - region.start;
310
+ if (epos >= 0 && epos < bins.length && pos + fstart < fend_1) {
311
+ var bin = bins[epos];
312
+ if (bin) {
313
+ inc(bin, fstrand, 'cov', mod);
314
+ }
315
+ else {
316
+ console.warn('Undefined position in modifications snpcoverage encountered');
317
+ }
318
+ }
319
+ }
320
+ }
321
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
322
+ finally {
323
+ try {
324
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
325
+ }
326
+ finally { if (e_1) throw e_1.error; }
327
+ }
328
+ });
329
+ }
330
+ // methylation based coloring takes into account both reference
331
+ // sequence CpG detection and reads
332
+ else if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'methylation') {
333
+ if (!regionSeq) {
334
+ throw new Error('no region sequence detected, need sequenceAdapter configuration');
335
+ }
336
+ var seq = feature.get('seq');
337
+ var mm = (0, util_1.getTagAlt)(feature, 'MM', 'Mm') || '';
338
+ var methBins_1 = new Array(region.end - region.start).fill(0);
339
+ var ops_2 = (0, MismatchParser_1.parseCigar)(feature.get('CIGAR'));
340
+ (0, MismatchParser_1.getModificationPositions)(mm, seq, fstrand).forEach(function (_a) {
341
+ var e_2, _b;
342
+ var type = _a.type, positions = _a.positions;
343
+ // we are processing methylation
344
+ if (type === 'm') {
345
+ try {
346
+ for (var _c = (e_2 = void 0, __values((0, MismatchParser_1.getNextRefPos)(ops_2, positions))), _d = _c.next(); !_d.done; _d = _c.next()) {
347
+ var pos = _d.value;
348
+ var epos = pos + fstart - region.start;
349
+ if (epos >= 0 && epos < methBins_1.length) {
350
+ methBins_1[epos] = 1;
351
+ }
352
+ }
353
+ }
354
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
355
+ finally {
356
+ try {
357
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
358
+ }
359
+ finally { if (e_2) throw e_2.error; }
360
+ }
361
+ }
362
+ });
363
+ for (var j = fstart; j < fend; j++) {
364
+ var i_2 = j - region.start;
365
+ if (i_2 >= 0 && i_2 < bins.length - 1) {
366
+ var l1 = regionSeq[i_2].toLowerCase();
367
+ var l2 = regionSeq[i_2 + 1].toLowerCase();
368
+ var bin = bins[i_2];
369
+ var bin1 = bins[i_2 + 1];
370
+ // color
371
+ if (l1 === 'c' && l2 === 'g') {
372
+ if (methBins_1[i_2] || methBins_1[i_2 + 1]) {
373
+ inc(bin, fstrand, 'cov', 'meth');
374
+ inc(bin1, fstrand, 'cov', 'meth');
375
+ bins[i_2].ref--;
376
+ bins[i_2][fstrand]--;
377
+ bins[i_2 + 1].ref--;
378
+ bins[i_2 + 1][fstrand]--;
379
+ }
380
+ else {
381
+ inc(bin, fstrand, 'cov', 'unmeth');
382
+ inc(bin1, fstrand, 'cov', 'unmeth');
383
+ bins[i_2].ref--;
384
+ bins[i_2][fstrand]--;
385
+ bins[i_2 + 1].ref--;
386
+ bins[i_2 + 1][fstrand]--;
387
+ }
388
+ }
389
+ }
390
+ }
391
+ }
392
+ // normal SNP based coloring
393
+ var mismatches = feature.get('mismatches') || [];
394
+ var colorSNPs = (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) !== 'modifications' && (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) !== 'methylation';
395
+ for (var i_3 = 0; i_3 < mismatches.length; i_3++) {
396
+ var mismatch = mismatches[i_3];
397
+ var mstart = fstart + mismatch.start;
398
+ var mlen = mismatchLen(mismatch);
399
+ var mend = mstart + mlen;
400
+ for (var j = mstart; j < mstart + mlen; j++) {
401
+ var epos = j - region.start;
402
+ if (epos >= 0 && epos < bins.length) {
403
+ var bin = bins[epos];
404
+ var base = mismatch.base, type = mismatch.type;
405
+ var interbase = isInterbase(type);
406
+ if (!interbase) {
407
+ bin.ref--;
408
+ bin[fstrand]--;
409
+ }
410
+ else {
411
+ inc(bin, fstrand, 'noncov', type);
412
+ }
413
+ if (type === 'deletion' || type === 'skip') {
414
+ inc(bin, fstrand, 'delskips', type);
415
+ bin.total--;
416
+ }
417
+ else if (!interbase && colorSNPs) {
418
+ inc(bin, fstrand, 'cov', base);
419
+ bin.refbase = mismatch.altbase;
420
+ }
421
+ }
422
+ }
423
+ if (mismatch.type === 'skip') {
424
+ var hash = "".concat(mstart, "_").concat(mend, "_").concat(fstrand);
425
+ if (skipmap[hash] === undefined) {
426
+ skipmap[hash] = {
427
+ feature: feature,
428
+ start: mstart,
429
+ end: mend,
430
+ strand: fstrand,
431
+ xs: (0, util_1.getTag)(feature, 'XS') || (0, util_1.getTag)(feature, 'TS'),
432
+ score: 0,
433
+ };
434
+ }
435
+ skipmap[hash].score++;
436
+ }
479
437
  }
480
- }
481
- } catch (err) {
482
- _iterator2.e(err);
483
- } finally {
484
- _iterator2.f();
485
- }
486
- }
487
- });
488
-
489
- for (var _j = fstart; _j < fend; _j++) {
490
- var _i2 = _j - region.start;
491
-
492
- if (_i2 >= 0 && _i2 < bins.length - 1) {
493
- var l1 = regionSeq[_i2].toLowerCase();
494
-
495
- var l2 = regionSeq[_i2 + 1].toLowerCase();
496
-
497
- var bin = bins[_i2];
498
- var bin1 = bins[_i2 + 1]; // color
499
-
500
- if (l1 === 'c' && l2 === 'g') {
501
- if (methBins[_i2] || methBins[_i2 + 1]) {
502
- inc(bin, fstrand, 'cov', 'meth');
503
- inc(bin1, fstrand, 'cov', 'meth');
504
- bins[_i2].ref--;
505
- bins[_i2][fstrand]--;
506
- bins[_i2 + 1].ref--;
507
- bins[_i2 + 1][fstrand]--;
508
- } else {
509
- inc(bin, fstrand, 'cov', 'unmeth');
510
- inc(bin1, fstrand, 'cov', 'unmeth');
511
- bins[_i2].ref--;
512
- bins[_i2][fstrand]--;
513
- bins[_i2 + 1].ref--;
514
- bins[_i2 + 1][fstrand]--;
515
- }
516
- }
517
- }
518
- }
519
- } // normal SNP based coloring
520
-
521
-
522
- var mismatches = feature.get('mismatches') || [];
523
- var colorSNPs = (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) !== 'modifications' && (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) !== 'methylation';
524
-
525
- for (var _i3 = 0; _i3 < mismatches.length; _i3++) {
526
- var mismatch = mismatches[_i3];
527
- var mstart = fstart + mismatch.start;
528
- var mlen = mismatchLen(mismatch);
529
- var mend = mstart + mlen;
530
-
531
- for (var _j2 = mstart; _j2 < mstart + mlen; _j2++) {
532
- var epos = _j2 - region.start;
533
-
534
- if (epos >= 0 && epos < bins.length) {
535
- var _bin = bins[epos];
536
- var base = mismatch.base,
537
- type = mismatch.type;
538
- var interbase = isInterbase(type);
539
-
540
- if (!interbase) {
541
- _bin.ref--;
542
- _bin[fstrand]--;
543
- } else {
544
- inc(_bin, fstrand, 'noncov', type);
545
- }
546
-
547
- if (type === 'deletion' || type === 'skip') {
548
- inc(_bin, fstrand, 'delskips', type);
549
- _bin.total--;
550
- } else if (!interbase && colorSNPs) {
551
- inc(_bin, fstrand, 'cov', base);
552
- _bin.refbase = mismatch.altbase;
553
- }
554
- }
555
- }
556
-
557
- if (mismatch.type === 'skip') {
558
- var hash = "".concat(mstart, "_").concat(mend, "_").concat(fstrand);
559
-
560
- if (skipmap[hash] === undefined) {
561
- skipmap[hash] = {
562
- feature: feature,
563
- start: mstart,
564
- end: mend,
565
- strand: fstrand,
566
- xs: (0, _util.getTag)(feature, 'XS') || (0, _util.getTag)(feature, 'TS'),
567
- score: 0
568
438
  };
569
- }
570
-
571
- skipmap[hash].score++;
572
- }
573
- }
574
- };
575
-
576
- for (i = 0; i < features.length; i++) {
577
- _loop(i);
439
+ for (i = 0; i < features.length; i++) {
440
+ _loop_1(i);
441
+ }
442
+ return [2 /*return*/, { bins: bins, skipmap: skipmap }];
578
443
  }
579
-
580
- return _context6.abrupt("return", {
581
- bins: bins,
582
- skipmap: skipmap
583
- });
584
-
585
- case 15:
586
- case "end":
587
- return _context6.stop();
588
- }
589
- }
590
- }, _callee6, this);
591
- }));
592
-
593
- function generateCoverageBins(_x5, _x6, _x7) {
594
- return _generateCoverageBins.apply(this, arguments);
595
- }
596
-
597
- return generateCoverageBins;
598
- }()
599
- }]);
600
- return SNPCoverageAdapter;
601
- }(_BaseAdapter.BaseFeatureDataAdapter);
602
-
444
+ });
445
+ });
446
+ };
447
+ return SNPCoverageAdapter;
448
+ }(BaseAdapter_1.BaseFeatureDataAdapter));
603
449
  exports.default = SNPCoverageAdapter;
604
450
  var capabilities = SNPCoverageAdapter.capabilities;
605
- exports.capabilities = capabilities;
451
+ exports.capabilities = capabilities;
452
+ //# sourceMappingURL=SNPCoverageAdapter.js.map