@jbrowse/plugin-alignments 1.7.9 → 2.0.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 (294) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +192 -207
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  3. package/dist/AlignmentsFeatureDetail/index.d.ts +28 -3
  4. package/dist/AlignmentsFeatureDetail/index.js +48 -55
  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.js +340 -416
  13. package/dist/BamAdapter/MismatchParser.js.map +1 -0
  14. package/dist/BamAdapter/configSchema.js +33 -46
  15. package/dist/BamAdapter/configSchema.js.map +1 -0
  16. package/dist/BamAdapter/index.js +36 -32
  17. package/dist/BamAdapter/index.js.map +1 -0
  18. package/dist/CramAdapter/CramAdapter.js +376 -644
  19. package/dist/CramAdapter/CramAdapter.js.map +1 -0
  20. package/dist/CramAdapter/CramSlightlyLazyFeature.js +374 -439
  21. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  22. package/dist/CramAdapter/CramTestAdapters.js +169 -227
  23. package/dist/CramAdapter/CramTestAdapters.js.map +1 -0
  24. package/dist/CramAdapter/configSchema.js +28 -38
  25. package/dist/CramAdapter/configSchema.js.map +1 -0
  26. package/dist/CramAdapter/index.js +37 -32
  27. package/dist/CramAdapter/index.js.map +1 -0
  28. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +91 -93
  29. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  30. package/dist/HtsgetBamAdapter/configSchema.js +19 -29
  31. package/dist/HtsgetBamAdapter/configSchema.js.map +1 -0
  32. package/dist/HtsgetBamAdapter/index.js +44 -38
  33. package/dist/HtsgetBamAdapter/index.js.map +1 -0
  34. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +36 -65
  35. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  36. package/dist/LinearAlignmentsDisplay/index.js +22 -28
  37. package/dist/LinearAlignmentsDisplay/index.js.map +1 -0
  38. package/dist/LinearAlignmentsDisplay/models/configSchema.js +12 -23
  39. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  40. package/dist/LinearAlignmentsDisplay/models/model.d.ts +10 -10
  41. package/dist/LinearAlignmentsDisplay/models/model.js +257 -245
  42. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -0
  43. package/dist/LinearPileupDisplay/components/ColorByModifications.js +98 -116
  44. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  45. package/dist/LinearPileupDisplay/components/ColorByTag.js +82 -91
  46. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  47. package/dist/LinearPileupDisplay/components/FilterByTag.js +156 -192
  48. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  49. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +15 -29
  50. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  51. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +79 -93
  52. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  53. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +78 -81
  54. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  55. package/dist/LinearPileupDisplay/components/SortByTag.js +80 -88
  56. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  57. package/dist/LinearPileupDisplay/configSchema.js +40 -42
  58. package/dist/LinearPileupDisplay/configSchema.js.map +1 -0
  59. package/dist/LinearPileupDisplay/index.js +21 -27
  60. package/dist/LinearPileupDisplay/index.js.map +1 -0
  61. package/dist/LinearPileupDisplay/model.d.ts +33 -20
  62. package/dist/LinearPileupDisplay/model.js +702 -716
  63. package/dist/LinearPileupDisplay/model.js.map +1 -0
  64. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  65. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +105 -57
  66. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  67. package/dist/LinearSNPCoverageDisplay/index.js +21 -27
  68. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -0
  69. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +45 -55
  70. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  71. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +14 -12
  72. package/dist/LinearSNPCoverageDisplay/models/model.js +257 -230
  73. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  74. package/dist/NestedFrequencyTable.js +104 -139
  75. package/dist/NestedFrequencyTable.js.map +1 -0
  76. package/dist/PileupRPC/rpcMethods.js +199 -278
  77. package/dist/PileupRPC/rpcMethods.js.map +1 -0
  78. package/dist/PileupRenderer/PileupLayoutSession.js +56 -76
  79. package/dist/PileupRenderer/PileupLayoutSession.js.map +1 -0
  80. package/dist/PileupRenderer/PileupRenderer.d.ts +56 -11
  81. package/dist/PileupRenderer/PileupRenderer.js +942 -1134
  82. package/dist/PileupRenderer/PileupRenderer.js.map +1 -0
  83. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
  84. package/dist/PileupRenderer/components/PileupRendering.js +173 -253
  85. package/dist/PileupRenderer/components/PileupRendering.js.map +1 -0
  86. package/dist/PileupRenderer/configSchema.js +65 -71
  87. package/dist/PileupRenderer/configSchema.js.map +1 -0
  88. package/dist/PileupRenderer/index.js +17 -22
  89. package/dist/PileupRenderer/index.js.map +1 -0
  90. package/dist/PileupRenderer/sortUtil.js +83 -107
  91. package/dist/PileupRenderer/sortUtil.js.map +1 -0
  92. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +2 -0
  93. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +436 -586
  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 +19 -11
  266. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +16 -6
  267. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +321 -397
  268. package/src/AlignmentsFeatureDetail/index.ts +7 -17
  269. package/src/BamAdapter/MismatchParser.ts +1 -0
  270. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +3 -3
  271. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +7 -7
  272. package/src/LinearPileupDisplay/components/ColorByTag.tsx +5 -5
  273. package/src/LinearPileupDisplay/components/FilterByTag.tsx +5 -5
  274. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +1 -1
  275. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +9 -9
  276. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +5 -5
  277. package/src/LinearPileupDisplay/components/SortByTag.tsx +5 -5
  278. package/src/LinearPileupDisplay/model.ts +90 -32
  279. package/src/LinearSNPCoverageDisplay/components/Tooltip.tsx +44 -30
  280. package/src/LinearSNPCoverageDisplay/models/model.ts +25 -25
  281. package/src/PileupRenderer/PileupRenderer.tsx +399 -198
  282. package/src/PileupRenderer/components/PileupRendering.tsx +11 -11
  283. package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +5 -0
  284. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +7 -5
  285. package/dist/AlignmentsFeatureDetail/index.test.js +0 -60
  286. package/dist/BamAdapter/BamAdapter.test.js +0 -177
  287. package/dist/BamAdapter/MismatchParser.test.js +0 -251
  288. package/dist/CramAdapter/CramAdapter.test.js +0 -138
  289. package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +0 -83
  290. package/dist/LinearPileupDisplay/configSchema.test.js +0 -92
  291. package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +0 -62
  292. package/dist/PileupRenderer/components/PileupRendering.test.js +0 -36
  293. package/dist/declare.d.js +0 -1
  294. package/dist/index.test.js +0 -26
@@ -1,660 +1,392 @@
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 = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _cram = require("@gmod/cram");
29
-
30
- var _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
31
-
32
- var _util = require("@jbrowse/core/util");
33
-
34
- var _io = require("@jbrowse/core/util/io");
35
-
36
- var _rxjs = require("@jbrowse/core/util/rxjs");
37
-
38
- var _operators = require("rxjs/operators");
39
-
40
- var _CramSlightlyLazyFeature = _interopRequireDefault(require("./CramSlightlyLazyFeature"));
41
-
42
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
43
-
44
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
45
-
46
- 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); }; }
47
-
48
- 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; } }
49
-
50
- var CramAdapter = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
51
- (0, _inherits2.default)(CramAdapter, _BaseFeatureDataAdapt);
52
-
53
- var _super = _createSuper(CramAdapter);
54
-
55
- function CramAdapter() {
56
- var _this;
57
-
58
- (0, _classCallCheck2.default)(this, CramAdapter);
59
-
60
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
- args[_key] = arguments[_key];
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 __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (_) try {
44
+ 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;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
62
  }
63
-
64
- _this = _super.call.apply(_super, [this].concat(args));
65
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "samHeader", {});
66
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setupP", void 0);
67
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "seqIdToRefName", void 0);
68
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "seqIdToOriginalRefName", []);
69
- return _this;
70
- }
71
-
72
- (0, _createClass2.default)(CramAdapter, [{
73
- key: "configure",
74
- value: function () {
75
- var _configure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
76
- var cramLocation, craiLocation, cram, sequenceAdapterType, seqConf, _yield$this$getSubAda, sequenceAdapter;
77
-
78
- return _regenerator.default.wrap(function _callee$(_context) {
79
- while (1) {
80
- switch (_context.prev = _context.next) {
81
- case 0:
82
- cramLocation = this.getConf('cramLocation');
83
- craiLocation = this.getConf('craiLocation');
84
-
85
- if (cramLocation) {
86
- _context.next = 4;
87
- break;
88
- }
89
-
90
- throw new Error('missing cramLocation argument');
91
-
92
- case 4:
93
- if (craiLocation) {
94
- _context.next = 6;
95
- break;
96
- }
97
-
98
- throw new Error('missing craiLocation argument');
99
-
100
- case 6:
101
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
- cram = new _cram.IndexedCramFile({
103
- cramFilehandle: (0, _io.openLocation)(cramLocation, this.pluginManager),
104
- index: new _cram.CraiIndex({
105
- filehandle: (0, _io.openLocation)(craiLocation, this.pluginManager)
106
- }),
107
- seqFetch: this.seqFetch.bind(this),
108
- checkSequenceMD5: false,
109
- fetchSizeLimit: 200000000 // just make this a large size to avoid hitting it
110
-
111
- }); // instantiate the sequence adapter
112
-
113
- sequenceAdapterType = this.getConf(['sequenceAdapter', 'type']);
114
-
115
- if (this.getSubAdapter) {
116
- _context.next = 10;
117
- break;
63
+ };
64
+ var __importDefault = (this && this.__importDefault) || function (mod) {
65
+ return (mod && mod.__esModule) ? mod : { "default": mod };
66
+ };
67
+ Object.defineProperty(exports, "__esModule", { value: true });
68
+ var cram_1 = require("@gmod/cram");
69
+ var BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
70
+ var util_1 = require("@jbrowse/core/util");
71
+ var io_1 = require("@jbrowse/core/util/io");
72
+ var rxjs_1 = require("@jbrowse/core/util/rxjs");
73
+ var operators_1 = require("rxjs/operators");
74
+ var CramSlightlyLazyFeature_1 = __importDefault(require("./CramSlightlyLazyFeature"));
75
+ var CramAdapter = /** @class */ (function (_super) {
76
+ __extends(CramAdapter, _super);
77
+ function CramAdapter() {
78
+ var _this = _super !== null && _super.apply(this, arguments) || this;
79
+ _this.samHeader = {};
80
+ // maps a seqId to original refname, passed specially to render args, to a seqid
81
+ _this.seqIdToOriginalRefName = [];
82
+ return _this;
83
+ }
84
+ CramAdapter.prototype.configure = function () {
85
+ return __awaiter(this, void 0, void 0, function () {
86
+ var cramLocation, craiLocation, cram, sequenceAdapterType, seqConf, sequenceAdapter;
87
+ return __generator(this, function (_a) {
88
+ switch (_a.label) {
89
+ case 0:
90
+ cramLocation = this.getConf('cramLocation');
91
+ craiLocation = this.getConf('craiLocation');
92
+ if (!cramLocation) {
93
+ throw new Error('missing cramLocation argument');
94
+ }
95
+ if (!craiLocation) {
96
+ throw new Error('missing craiLocation argument');
97
+ }
98
+ cram = new cram_1.IndexedCramFile({
99
+ cramFilehandle: (0, io_1.openLocation)(cramLocation, this.pluginManager),
100
+ index: new cram_1.CraiIndex({
101
+ filehandle: (0, io_1.openLocation)(craiLocation, this.pluginManager),
102
+ }),
103
+ seqFetch: this.seqFetch.bind(this),
104
+ checkSequenceMD5: false,
105
+ fetchSizeLimit: 200000000, // just make this a large size to avoid hitting it
106
+ });
107
+ sequenceAdapterType = this.getConf(['sequenceAdapter', 'type']);
108
+ if (!this.getSubAdapter) {
109
+ throw new Error('Error getting subadapter');
110
+ }
111
+ seqConf = this.getConf('sequenceAdapter');
112
+ return [4 /*yield*/, this.getSubAdapter(seqConf)];
113
+ case 1:
114
+ sequenceAdapter = (_a.sent()).dataAdapter;
115
+ if (!(sequenceAdapter instanceof BaseAdapter_1.BaseFeatureDataAdapter)) {
116
+ throw new Error("CRAM feature adapters cannot use sequence adapters of type '".concat(sequenceAdapterType, "'"));
117
+ }
118
+ return [2 /*return*/, { cram: cram, sequenceAdapter: sequenceAdapter }];
118
119
  }
119
-
120
- throw new Error('Error getting subadapter');
121
-
122
- case 10:
123
- seqConf = this.getConf('sequenceAdapter');
124
- _context.next = 13;
125
- return this.getSubAdapter(seqConf);
126
-
127
- case 13:
128
- _yield$this$getSubAda = _context.sent;
129
- sequenceAdapter = _yield$this$getSubAda.dataAdapter;
130
-
131
- if (sequenceAdapter instanceof _BaseAdapter.BaseFeatureDataAdapter) {
132
- _context.next = 17;
133
- break;
120
+ });
121
+ });
122
+ };
123
+ CramAdapter.prototype.getHeader = function (opts) {
124
+ return __awaiter(this, void 0, void 0, function () {
125
+ var cram;
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0: return [4 /*yield*/, this.configure()];
129
+ case 1:
130
+ cram = (_a.sent()).cram;
131
+ return [2 /*return*/, cram.cram.getHeaderText(opts)];
134
132
  }
135
-
136
- throw new Error("CRAM feature adapters cannot use sequence adapters of type '".concat(sequenceAdapterType, "'"));
137
-
138
- case 17:
139
- return _context.abrupt("return", {
140
- cram: cram,
141
- sequenceAdapter: sequenceAdapter
142
- });
143
-
144
- case 18:
145
- case "end":
146
- return _context.stop();
147
- }
148
- }
149
- }, _callee, this);
150
- }));
151
-
152
- function configure() {
153
- return _configure.apply(this, arguments);
154
- }
155
-
156
- return configure;
157
- }()
158
- }, {
159
- key: "getHeader",
160
- value: function () {
161
- var _getHeader = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(opts) {
162
- var _yield$this$configure, cram;
163
-
164
- return _regenerator.default.wrap(function _callee2$(_context2) {
165
- while (1) {
166
- switch (_context2.prev = _context2.next) {
167
- case 0:
168
- _context2.next = 2;
169
- return this.configure();
170
-
171
- case 2:
172
- _yield$this$configure = _context2.sent;
173
- cram = _yield$this$configure.cram;
174
- return _context2.abrupt("return", cram.cram.getHeaderText(opts));
175
-
176
- case 5:
177
- case "end":
178
- return _context2.stop();
179
- }
180
- }
181
- }, _callee2, this);
182
- }));
183
-
184
- function getHeader(_x) {
185
- return _getHeader.apply(this, arguments);
186
- }
187
-
188
- return getHeader;
189
- }()
190
- }, {
191
- key: "seqFetch",
192
- value: function () {
193
- var _seqFetch = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(seqId, start, end) {
194
- var _yield$this$configure2, sequenceAdapter, refName, seqChunks, sequence;
195
-
196
- return _regenerator.default.wrap(function _callee3$(_context3) {
197
- while (1) {
198
- switch (_context3.prev = _context3.next) {
199
- case 0:
200
- start -= 1; // convert from 1-based closed to interbase
201
-
202
- _context3.next = 3;
203
- return this.configure();
204
-
205
- case 3:
206
- _yield$this$configure2 = _context3.sent;
207
- sequenceAdapter = _yield$this$configure2.sequenceAdapter;
208
- refName = this.refIdToOriginalName(seqId) || this.refIdToName(seqId);
209
-
210
- if (refName) {
211
- _context3.next = 8;
212
- break;
133
+ });
134
+ });
135
+ };
136
+ CramAdapter.prototype.seqFetch = function (seqId, start, end) {
137
+ return __awaiter(this, void 0, void 0, function () {
138
+ var sequenceAdapter, refName, seqChunks, sequence;
139
+ return __generator(this, function (_a) {
140
+ switch (_a.label) {
141
+ case 0:
142
+ start -= 1; // convert from 1-based closed to interbase
143
+ return [4 /*yield*/, this.configure()];
144
+ case 1:
145
+ sequenceAdapter = (_a.sent()).sequenceAdapter;
146
+ refName = this.refIdToOriginalName(seqId) || this.refIdToName(seqId);
147
+ if (!refName) {
148
+ return [2 /*return*/, undefined];
149
+ }
150
+ return [4 /*yield*/, sequenceAdapter
151
+ .getFeatures({
152
+ refName: refName,
153
+ start: start,
154
+ end: end,
155
+ assemblyName: '',
156
+ })
157
+ .pipe((0, operators_1.toArray)())
158
+ .toPromise()];
159
+ case 2:
160
+ seqChunks = _a.sent();
161
+ sequence = seqChunks
162
+ .sort(function (a, b) { return a.get('start') - b.get('start'); })
163
+ .map(function (chunk) {
164
+ var chunkStart = chunk.get('start');
165
+ var chunkEnd = chunk.get('end');
166
+ var trimStart = Math.max(start - chunkStart, 0);
167
+ var trimEnd = Math.min(end - chunkStart, chunkEnd - chunkStart);
168
+ var trimLength = trimEnd - trimStart;
169
+ var chunkSeq = chunk.get('seq') || chunk.get('residues');
170
+ return chunkSeq.substr(trimStart, trimLength);
171
+ })
172
+ .join('');
173
+ if (sequence.length !== end - start) {
174
+ throw new Error("sequence fetch failed: fetching ".concat(refName, ":").concat((start - 1).toLocaleString(), "-").concat(end.toLocaleString(), " returned ").concat(sequence.length.toLocaleString(), " bases, but should have returned ").concat((end - start).toLocaleString()));
175
+ }
176
+ return [2 /*return*/, sequence];
213
177
  }
214
-
215
- return _context3.abrupt("return", undefined);
216
-
217
- case 8:
218
- _context3.next = 10;
219
- return sequenceAdapter.getFeatures({
220
- refName: refName,
221
- start: start,
222
- end: end,
223
- assemblyName: ''
224
- }).pipe((0, _operators.toArray)()).toPromise();
225
-
226
- case 10:
227
- seqChunks = _context3.sent;
228
- sequence = seqChunks.sort(function (a, b) {
229
- return a.get('start') - b.get('start');
230
- }).map(function (chunk) {
231
- var chunkStart = chunk.get('start');
232
- var chunkEnd = chunk.get('end');
233
- var trimStart = Math.max(start - chunkStart, 0);
234
- var trimEnd = Math.min(end - chunkStart, chunkEnd - chunkStart);
235
- var trimLength = trimEnd - trimStart;
236
- var chunkSeq = chunk.get('seq') || chunk.get('residues');
237
- return chunkSeq.substr(trimStart, trimLength);
238
- }).join('');
239
-
240
- if (!(sequence.length !== end - start)) {
241
- _context3.next = 14;
242
- break;
178
+ });
179
+ });
180
+ };
181
+ CramAdapter.prototype.setupPre = function (opts) {
182
+ return __awaiter(this, void 0, void 0, function () {
183
+ var _a, statusCallback, configured, cram, samHeader, idToName, nameToId, readGroups, data;
184
+ return __generator(this, function (_b) {
185
+ switch (_b.label) {
186
+ case 0:
187
+ _a = (opts || {}).statusCallback, statusCallback = _a === void 0 ? function () { } : _a;
188
+ return [4 /*yield*/, this.configure()];
189
+ case 1:
190
+ configured = _b.sent();
191
+ statusCallback('Downloading index');
192
+ cram = configured.cram;
193
+ return [4 /*yield*/, cram.cram.getSamHeader(opts === null || opts === void 0 ? void 0 : opts.signal)
194
+ // use the @SQ lines in the header to figure out the
195
+ // mapping between ref ID numbers and names
196
+ ];
197
+ case 2:
198
+ samHeader = _b.sent();
199
+ idToName = [];
200
+ nameToId = {};
201
+ samHeader
202
+ .filter(function (l) { return l.tag === 'SQ'; })
203
+ .forEach(function (sqLine, refId) {
204
+ sqLine.data.forEach(function (item) {
205
+ if (item.tag === 'SN') {
206
+ // this is the ref name
207
+ var refName = item.value;
208
+ nameToId[refName] = refId;
209
+ idToName[refId] = refName;
210
+ }
211
+ });
212
+ });
213
+ readGroups = samHeader
214
+ .filter(function (l) { return l.tag === 'RG'; })
215
+ .map(function (rgLine) { var _a; return (_a = rgLine.data.find(function (item) { return item.tag === 'ID'; })) === null || _a === void 0 ? void 0 : _a.value; });
216
+ data = { idToName: idToName, nameToId: nameToId, readGroups: readGroups };
217
+ statusCallback('');
218
+ this.samHeader = data;
219
+ return [2 /*return*/, __assign({ samHeader: data }, configured)];
243
220
  }
244
-
245
- throw new Error("sequence fetch failed: fetching ".concat(refName, ":").concat((start - 1).toLocaleString(), "-").concat(end.toLocaleString(), " returned ").concat(sequence.length.toLocaleString(), " bases, but should have returned ").concat((end - start).toLocaleString()));
246
-
247
- case 14:
248
- return _context3.abrupt("return", sequence);
249
-
250
- case 15:
251
- case "end":
252
- return _context3.stop();
253
- }
254
- }
255
- }, _callee3, this);
256
- }));
257
-
258
- function seqFetch(_x2, _x3, _x4) {
259
- return _seqFetch.apply(this, arguments);
260
- }
261
-
262
- return seqFetch;
263
- }()
264
- }, {
265
- key: "setupPre",
266
- value: function () {
267
- var _setupPre = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(opts) {
268
- var _ref, _ref$statusCallback, statusCallback, configured, cram, samHeader, idToName, nameToId, readGroups, data;
269
-
270
- return _regenerator.default.wrap(function _callee4$(_context4) {
271
- while (1) {
272
- switch (_context4.prev = _context4.next) {
273
- case 0:
274
- _ref = opts || {}, _ref$statusCallback = _ref.statusCallback, statusCallback = _ref$statusCallback === void 0 ? function () {} : _ref$statusCallback;
275
- _context4.next = 3;
276
- return this.configure();
277
-
278
- case 3:
279
- configured = _context4.sent;
280
- statusCallback('Downloading index');
281
- cram = configured.cram;
282
- _context4.next = 8;
283
- return cram.cram.getSamHeader(opts === null || opts === void 0 ? void 0 : opts.signal);
284
-
285
- case 8:
286
- samHeader = _context4.sent;
287
- // use the @SQ lines in the header to figure out the
288
- // mapping between ref ID numbers and names
289
- idToName = [];
290
- nameToId = {};
291
- samHeader.filter(function (l) {
292
- return l.tag === 'SQ';
293
- }).forEach(function (sqLine, refId) {
294
- sqLine.data.forEach(function (item) {
295
- if (item.tag === 'SN') {
296
- // this is the ref name
297
- var refName = item.value;
298
- nameToId[refName] = refId;
299
- idToName[refId] = refName;
300
- }
301
- });
302
- });
303
- readGroups = samHeader.filter(function (l) {
304
- return l.tag === 'RG';
305
- }).map(function (rgLine) {
306
- var _rgLine$data$find;
307
-
308
- return (_rgLine$data$find = rgLine.data.find(function (item) {
309
- return item.tag === 'ID';
310
- })) === null || _rgLine$data$find === void 0 ? void 0 : _rgLine$data$find.value;
311
- });
312
- data = {
313
- idToName: idToName,
314
- nameToId: nameToId,
315
- readGroups: readGroups
316
- };
317
- statusCallback('');
318
- this.samHeader = data;
319
- return _context4.abrupt("return", _objectSpread({
320
- samHeader: data
321
- }, configured));
322
-
323
- case 17:
324
- case "end":
325
- return _context4.stop();
326
- }
327
- }
328
- }, _callee4, this);
329
- }));
330
-
331
- function setupPre(_x5) {
332
- return _setupPre.apply(this, arguments);
333
- }
334
-
335
- return setupPre;
336
- }()
337
- }, {
338
- key: "setup",
339
- value: function () {
340
- var _setup = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(opts) {
341
- var _this2 = this;
342
-
343
- return _regenerator.default.wrap(function _callee5$(_context5) {
344
- while (1) {
345
- switch (_context5.prev = _context5.next) {
346
- case 0:
221
+ });
222
+ });
223
+ };
224
+ CramAdapter.prototype.setup = function (opts) {
225
+ return __awaiter(this, void 0, void 0, function () {
226
+ var _this = this;
227
+ return __generator(this, function (_a) {
347
228
  if (!this.setupP) {
348
- this.setupP = this.setupPre(opts).catch(function (e) {
349
- _this2.setupP = undefined;
350
- throw e;
351
- });
229
+ this.setupP = this.setupPre(opts).catch(function (e) {
230
+ _this.setupP = undefined;
231
+ throw e;
232
+ });
352
233
  }
353
-
354
- return _context5.abrupt("return", this.setupP);
355
-
356
- case 2:
357
- case "end":
358
- return _context5.stop();
359
- }
360
- }
361
- }, _callee5, this);
362
- }));
363
-
364
- function setup(_x6) {
365
- return _setup.apply(this, arguments);
366
- }
367
-
368
- return setup;
369
- }()
370
- }, {
371
- key: "getRefNames",
372
- value: function () {
373
- var _getRefNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(opts) {
374
- var _yield$this$setup, samHeader;
375
-
376
- return _regenerator.default.wrap(function _callee6$(_context6) {
377
- while (1) {
378
- switch (_context6.prev = _context6.next) {
379
- case 0:
380
- _context6.next = 2;
381
- return this.setup(opts);
382
-
383
- case 2:
384
- _yield$this$setup = _context6.sent;
385
- samHeader = _yield$this$setup.samHeader;
386
-
387
- if (samHeader.idToName) {
388
- _context6.next = 6;
389
- break;
234
+ return [2 /*return*/, this.setupP];
235
+ });
236
+ });
237
+ };
238
+ CramAdapter.prototype.getRefNames = function (opts) {
239
+ return __awaiter(this, void 0, void 0, function () {
240
+ var samHeader;
241
+ return __generator(this, function (_a) {
242
+ switch (_a.label) {
243
+ case 0: return [4 /*yield*/, this.setup(opts)];
244
+ case 1:
245
+ samHeader = (_a.sent()).samHeader;
246
+ if (!samHeader.idToName) {
247
+ throw new Error('CRAM file has no header lines');
248
+ }
249
+ return [2 /*return*/, samHeader.idToName];
390
250
  }
391
-
392
- throw new Error('CRAM file has no header lines');
393
-
394
- case 6:
395
- return _context6.abrupt("return", samHeader.idToName);
396
-
397
- case 7:
398
- case "end":
399
- return _context6.stop();
400
- }
401
- }
402
- }, _callee6, this);
403
- }));
404
-
405
- function getRefNames(_x7) {
406
- return _getRefNames.apply(this, arguments);
407
- }
408
-
409
- return getRefNames;
410
- }() // use info from the SAM header if possible, but fall back to using
251
+ });
252
+ });
253
+ };
254
+ // use info from the SAM header if possible, but fall back to using
411
255
  // the ref seq order from when the browser's refseqs were loaded
412
-
413
- }, {
414
- key: "refNameToId",
415
- value: function refNameToId(refName) {
416
- if (this.samHeader.nameToId) {
417
- return this.samHeader.nameToId[refName];
418
- }
419
-
420
- if (this.seqIdToRefName) {
421
- return this.seqIdToRefName.indexOf(refName);
422
- }
423
-
424
- return undefined;
425
- } // use info from the SAM header if possible, but fall back to using
256
+ CramAdapter.prototype.refNameToId = function (refName) {
257
+ if (this.samHeader.nameToId) {
258
+ return this.samHeader.nameToId[refName];
259
+ }
260
+ if (this.seqIdToRefName) {
261
+ return this.seqIdToRefName.indexOf(refName);
262
+ }
263
+ return undefined;
264
+ };
265
+ // use info from the SAM header if possible, but fall back to using
426
266
  // the ref seq order from when the browser's refseqs were loaded
427
-
428
- }, {
429
- key: "refIdToName",
430
- value: function refIdToName(refId) {
431
- if (this.samHeader.idToName) {
432
- return this.samHeader.idToName[refId];
433
- }
434
-
435
- if (this.seqIdToRefName) {
436
- return this.seqIdToRefName[refId];
437
- }
438
-
439
- return undefined;
440
- }
441
- }, {
442
- key: "refIdToOriginalName",
443
- value: function refIdToOriginalName(refId) {
444
- return this.seqIdToOriginalRefName[refId];
445
- }
446
- }, {
447
- key: "getFeatures",
448
- value: function getFeatures(region, opts) {
449
- var _this3 = this;
450
-
451
- var _ref2 = opts || {},
452
- signal = _ref2.signal,
453
- filterBy = _ref2.filterBy,
454
- _ref2$statusCallback = _ref2.statusCallback,
455
- statusCallback = _ref2$statusCallback === void 0 ? function () {} : _ref2$statusCallback;
456
-
457
- var refName = region.refName,
458
- start = region.start,
459
- end = region.end,
460
- originalRefName = region.originalRefName;
461
- return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
462
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(observer) {
463
- var _yield$_this3$setup, cram, sequenceAdapter, refId, records, _ref4, _ref4$flagInclude, flagInclude, _ref4$flagExclude, flagExclude, tagFilter, readName, filtered;
464
-
465
- return _regenerator.default.wrap(function _callee7$(_context7) {
466
- while (1) {
467
- switch (_context7.prev = _context7.next) {
468
- case 0:
469
- _context7.next = 2;
470
- return _this3.setup(opts);
471
-
472
- case 2:
473
- _yield$_this3$setup = _context7.sent;
474
- cram = _yield$_this3$setup.cram;
475
- sequenceAdapter = _yield$_this3$setup.sequenceAdapter;
476
- statusCallback('Downloading alignments');
477
-
478
- if (_this3.seqIdToRefName) {
479
- _context7.next = 10;
480
- break;
481
- }
482
-
483
- _context7.next = 9;
484
- return sequenceAdapter.getRefNames(opts);
485
-
486
- case 9:
487
- _this3.seqIdToRefName = _context7.sent;
488
-
489
- case 10:
490
- refId = _this3.refNameToId(refName);
491
-
492
- if (!(refId !== undefined)) {
493
- _context7.next = 24;
494
- break;
495
- }
496
-
497
- if (originalRefName) {
498
- _this3.seqIdToOriginalRefName[refId] = originalRefName;
499
- }
500
-
501
- _context7.next = 15;
502
- return cram.getRecordsForRange(refId, start, end, opts);
503
-
504
- case 15:
505
- records = _context7.sent;
506
- (0, _util.checkAbortSignal)(signal);
507
- _ref4 = filterBy || {}, _ref4$flagInclude = _ref4.flagInclude, flagInclude = _ref4$flagInclude === void 0 ? 0 : _ref4$flagInclude, _ref4$flagExclude = _ref4.flagExclude, flagExclude = _ref4$flagExclude === void 0 ? 0 : _ref4$flagExclude, tagFilter = _ref4.tagFilter, readName = _ref4.readName; // eslint-disable-next-line @typescript-eslint/no-explicit-any
508
-
509
- filtered = records.filter(function (record) {
510
- var flags = record.flags;
511
- return (flags & flagInclude) === flagInclude && !(flags & flagExclude);
512
- });
513
-
514
- if (tagFilter) {
515
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
516
- filtered = filtered.filter(function (record) {
517
- var val = record[tagFilter.tag];
518
- return val === '*' ? val !== undefined : val === tagFilter.value;
519
- });
520
- }
521
-
522
- if (readName) {
523
- filtered = filtered.filter( // eslint-disable-next-line @typescript-eslint/no-explicit-any
524
- function (record) {
525
- return record.readName === readName;
526
- });
527
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
528
-
529
-
530
- filtered.forEach(function (record) {
531
- observer.next(_this3.cramRecordToFeature(record));
532
- });
533
- _context7.next = 25;
534
- break;
535
-
536
- case 24:
537
- console.warn('Unknown refName', refName);
538
-
539
- case 25:
540
- statusCallback('');
541
- observer.complete();
542
-
543
- case 27:
544
- case "end":
545
- return _context7.stop();
546
- }
547
- }
548
- }, _callee7);
549
- }));
550
-
551
- return function (_x8) {
552
- return _ref3.apply(this, arguments);
553
- };
554
- }(), signal);
555
- }
556
- }, {
557
- key: "freeResources",
558
- value: function
559
- /* { region } */
560
- freeResources() {}
561
- }, {
562
- key: "cramRecordToFeature",
563
- value: function cramRecordToFeature(record) {
564
- return new _CramSlightlyLazyFeature.default(record, this);
565
- } // we return the configured fetchSizeLimit, and the bytes for the region
566
-
567
- }, {
568
- key: "estimateRegionsStats",
569
- value: function () {
570
- var _estimateRegionsStats = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(regions, opts) {
571
- var bytes, fetchSizeLimit;
572
- return _regenerator.default.wrap(function _callee8$(_context8) {
573
- while (1) {
574
- switch (_context8.prev = _context8.next) {
575
- case 0:
576
- _context8.next = 2;
577
- return this.bytesForRegions(regions, opts);
578
-
579
- case 2:
580
- bytes = _context8.sent;
581
- fetchSizeLimit = this.getConf('fetchSizeLimit');
582
- return _context8.abrupt("return", {
583
- bytes: bytes,
584
- fetchSizeLimit: fetchSizeLimit
585
- });
586
-
587
- case 5:
588
- case "end":
589
- return _context8.stop();
590
- }
591
- }
592
- }, _callee8, this);
593
- }));
594
-
595
- function estimateRegionsStats(_x9, _x10) {
596
- return _estimateRegionsStats.apply(this, arguments);
597
- }
598
-
599
- return estimateRegionsStats;
600
- }()
267
+ CramAdapter.prototype.refIdToName = function (refId) {
268
+ if (this.samHeader.idToName) {
269
+ return this.samHeader.idToName[refId];
270
+ }
271
+ if (this.seqIdToRefName) {
272
+ return this.seqIdToRefName[refId];
273
+ }
274
+ return undefined;
275
+ };
276
+ CramAdapter.prototype.refIdToOriginalName = function (refId) {
277
+ return this.seqIdToOriginalRefName[refId];
278
+ };
279
+ CramAdapter.prototype.getFeatures = function (region, opts) {
280
+ var _this = this;
281
+ var _a = opts || {}, signal = _a.signal, filterBy = _a.filterBy, _b = _a.statusCallback, statusCallback = _b === void 0 ? function () { } : _b;
282
+ var refName = region.refName, start = region.start, end = region.end, originalRefName = region.originalRefName;
283
+ return (0, rxjs_1.ObservableCreate)(function (observer) { return __awaiter(_this, void 0, void 0, function () {
284
+ var _a, cram, sequenceAdapter, _b, refId, records, _c, _d, flagInclude_1, _e, flagExclude_1, tagFilter_1, readName_1, filtered;
285
+ var _this = this;
286
+ return __generator(this, function (_f) {
287
+ switch (_f.label) {
288
+ case 0: return [4 /*yield*/, this.setup(opts)];
289
+ case 1:
290
+ _a = _f.sent(), cram = _a.cram, sequenceAdapter = _a.sequenceAdapter;
291
+ statusCallback('Downloading alignments');
292
+ if (!!this.seqIdToRefName) return [3 /*break*/, 3];
293
+ _b = this;
294
+ return [4 /*yield*/, sequenceAdapter.getRefNames(opts)];
295
+ case 2:
296
+ _b.seqIdToRefName = _f.sent();
297
+ _f.label = 3;
298
+ case 3:
299
+ refId = this.refNameToId(refName);
300
+ if (!(refId !== undefined)) return [3 /*break*/, 5];
301
+ if (originalRefName) {
302
+ this.seqIdToOriginalRefName[refId] = originalRefName;
303
+ }
304
+ return [4 /*yield*/, cram.getRecordsForRange(refId, start, end, opts)];
305
+ case 4:
306
+ records = _f.sent();
307
+ (0, util_1.checkAbortSignal)(signal);
308
+ _c = filterBy || {}, _d = _c.flagInclude, flagInclude_1 = _d === void 0 ? 0 : _d, _e = _c.flagExclude, flagExclude_1 = _e === void 0 ? 0 : _e, tagFilter_1 = _c.tagFilter, readName_1 = _c.readName;
309
+ filtered = records.filter(function (record) {
310
+ var flags = record.flags;
311
+ return (flags & flagInclude_1) === flagInclude_1 && !(flags & flagExclude_1);
312
+ });
313
+ if (tagFilter_1) {
314
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
315
+ filtered = filtered.filter(function (record) {
316
+ var val = record[tagFilter_1.tag];
317
+ return val === '*' ? val !== undefined : val === tagFilter_1.value;
318
+ });
319
+ }
320
+ if (readName_1) {
321
+ filtered = filtered.filter(
322
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
323
+ function (record) { return record.readName === readName_1; });
324
+ }
325
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
326
+ filtered.forEach(function (record) {
327
+ observer.next(_this.cramRecordToFeature(record));
328
+ });
329
+ return [3 /*break*/, 6];
330
+ case 5:
331
+ console.warn('Unknown refName', refName);
332
+ _f.label = 6;
333
+ case 6:
334
+ statusCallback('');
335
+ observer.complete();
336
+ return [2 /*return*/];
337
+ }
338
+ });
339
+ }); }, signal);
340
+ };
341
+ CramAdapter.prototype.freeResources = function ( /* { region } */) { };
342
+ CramAdapter.prototype.cramRecordToFeature = function (record) {
343
+ return new CramSlightlyLazyFeature_1.default(record, this);
344
+ };
345
+ // we return the configured fetchSizeLimit, and the bytes for the region
346
+ CramAdapter.prototype.estimateRegionsStats = function (regions, opts) {
347
+ return __awaiter(this, void 0, void 0, function () {
348
+ var bytes, fetchSizeLimit;
349
+ return __generator(this, function (_a) {
350
+ switch (_a.label) {
351
+ case 0: return [4 /*yield*/, this.bytesForRegions(regions, opts)];
352
+ case 1:
353
+ bytes = _a.sent();
354
+ fetchSizeLimit = this.getConf('fetchSizeLimit');
355
+ return [2 /*return*/, {
356
+ bytes: bytes,
357
+ fetchSizeLimit: fetchSizeLimit,
358
+ }];
359
+ }
360
+ });
361
+ });
362
+ };
601
363
  /**
602
364
  * get the approximate number of bytes queried from the file for the given
603
365
  * query regions
604
366
  * @param regions - list of query regions
605
367
  */
606
-
607
- }, {
608
- key: "bytesForRegions",
609
- value: function () {
610
- var _bytesForRegions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(regions, _opts) {
611
- var _this4 = this;
612
-
613
- var _yield$this$configure3, cram, blockResults;
614
-
615
- return _regenerator.default.wrap(function _callee9$(_context9) {
616
- while (1) {
617
- switch (_context9.prev = _context9.next) {
618
- case 0:
619
- _context9.next = 2;
620
- return this.configure();
621
-
622
- case 2:
623
- _yield$this$configure3 = _context9.sent;
624
- cram = _yield$this$configure3.cram;
625
- _context9.next = 6;
626
- return Promise.all(regions.map(function (region) {
627
- var refName = region.refName,
628
- start = region.start,
629
- end = region.end;
630
-
631
- var chrId = _this4.refNameToId(refName);
632
-
633
- return cram.index.getEntriesForRange(chrId, start, end);
634
- }));
635
-
636
- case 6:
637
- blockResults = _context9.sent;
638
- return _context9.abrupt("return", blockResults.flat().reduce(function (a, b) {
639
- return a + b.sliceBytes;
640
- }, 0));
641
-
642
- case 8:
643
- case "end":
644
- return _context9.stop();
645
- }
646
- }
647
- }, _callee9, this);
648
- }));
649
-
650
- function bytesForRegions(_x11, _x12) {
651
- return _bytesForRegions.apply(this, arguments);
652
- }
653
-
654
- return bytesForRegions;
655
- }()
656
- }]);
657
- return CramAdapter;
658
- }(_BaseAdapter.BaseFeatureDataAdapter);
659
-
660
- exports.default = CramAdapter;
368
+ CramAdapter.prototype.bytesForRegions = function (regions, _opts) {
369
+ return __awaiter(this, void 0, void 0, function () {
370
+ var cram, blockResults;
371
+ var _this = this;
372
+ return __generator(this, function (_a) {
373
+ switch (_a.label) {
374
+ case 0: return [4 /*yield*/, this.configure()];
375
+ case 1:
376
+ cram = (_a.sent()).cram;
377
+ return [4 /*yield*/, Promise.all(regions.map(function (region) {
378
+ var refName = region.refName, start = region.start, end = region.end;
379
+ var chrId = _this.refNameToId(refName);
380
+ return cram.index.getEntriesForRange(chrId, start, end);
381
+ }))];
382
+ case 2:
383
+ blockResults = _a.sent();
384
+ return [2 /*return*/, blockResults.flat().reduce(function (a, b) { return a + b.sliceBytes; }, 0)];
385
+ }
386
+ });
387
+ });
388
+ };
389
+ return CramAdapter;
390
+ }(BaseAdapter_1.BaseFeatureDataAdapter));
391
+ exports.default = CramAdapter;
392
+ //# sourceMappingURL=CramAdapter.js.map