@jbrowse/plugin-alignments 1.7.11 → 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 (289) 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.js +340 -417
  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 +27 -17
  62. package/dist/LinearPileupDisplay/model.js +702 -797
  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 +104 -77
  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 +13 -11
  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 +4 -4
  81. package/dist/PileupRenderer/PileupRenderer.js +938 -1205
  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.js +436 -589
  93. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  94. package/dist/SNPCoverageAdapter/configSchema.js +10 -20
  95. package/dist/SNPCoverageAdapter/configSchema.js.map +1 -0
  96. package/dist/SNPCoverageAdapter/index.js +46 -41
  97. package/dist/SNPCoverageAdapter/index.js.map +1 -0
  98. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -1
  99. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +265 -290
  100. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  101. package/dist/SNPCoverageRenderer/configSchema.js +30 -39
  102. package/dist/SNPCoverageRenderer/configSchema.js.map +1 -0
  103. package/dist/SNPCoverageRenderer/index.js +19 -30
  104. package/dist/SNPCoverageRenderer/index.js.map +1 -0
  105. package/dist/index.js +135 -152
  106. package/dist/index.js.map +1 -0
  107. package/dist/shared.js +84 -92
  108. package/dist/shared.js.map +1 -0
  109. package/dist/util.js +130 -121
  110. package/dist/util.js.map +1 -0
  111. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +6 -0
  112. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +145 -0
  113. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  114. package/esm/AlignmentsFeatureDetail/index.d.ts +38 -0
  115. package/esm/AlignmentsFeatureDetail/index.js +23 -0
  116. package/esm/AlignmentsFeatureDetail/index.js.map +1 -0
  117. package/esm/AlignmentsTrack/index.d.ts +2 -0
  118. package/esm/AlignmentsTrack/index.js +23 -0
  119. package/esm/AlignmentsTrack/index.js.map +1 -0
  120. package/esm/BamAdapter/BamAdapter.d.ts +40 -0
  121. package/esm/BamAdapter/BamAdapter.js +173 -0
  122. package/esm/BamAdapter/BamAdapter.js.map +1 -0
  123. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +33 -0
  124. package/esm/BamAdapter/BamSlightlyLazyFeature.js +107 -0
  125. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
  126. package/esm/BamAdapter/MismatchParser.d.ts +25 -0
  127. package/esm/BamAdapter/MismatchParser.js +294 -0
  128. package/esm/BamAdapter/MismatchParser.js.map +1 -0
  129. package/esm/BamAdapter/configSchema.d.ts +2 -0
  130. package/esm/BamAdapter/configSchema.js +31 -0
  131. package/esm/BamAdapter/configSchema.js.map +1 -0
  132. package/esm/BamAdapter/index.d.ts +3 -0
  133. package/esm/BamAdapter/index.js +10 -0
  134. package/esm/BamAdapter/index.js.map +1 -0
  135. package/esm/CramAdapter/CramAdapter.d.ts +53 -0
  136. package/esm/CramAdapter/CramAdapter.js +228 -0
  137. package/esm/CramAdapter/CramAdapter.js.map +1 -0
  138. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +49 -0
  139. package/esm/CramAdapter/CramSlightlyLazyFeature.js +349 -0
  140. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  141. package/esm/CramAdapter/CramTestAdapters.d.ts +29 -0
  142. package/esm/CramAdapter/CramTestAdapters.js +70 -0
  143. package/esm/CramAdapter/CramTestAdapters.js.map +1 -0
  144. package/esm/CramAdapter/configSchema.d.ts +3 -0
  145. package/esm/CramAdapter/configSchema.js +26 -0
  146. package/esm/CramAdapter/configSchema.js.map +1 -0
  147. package/esm/CramAdapter/index.d.ts +3 -0
  148. package/esm/CramAdapter/index.js +11 -0
  149. package/esm/CramAdapter/index.js.map +1 -0
  150. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +9 -0
  151. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +27 -0
  152. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  153. package/esm/HtsgetBamAdapter/configSchema.d.ts +2 -0
  154. package/esm/HtsgetBamAdapter/configSchema.js +17 -0
  155. package/esm/HtsgetBamAdapter/configSchema.js.map +1 -0
  156. package/esm/HtsgetBamAdapter/index.d.ts +3 -0
  157. package/esm/HtsgetBamAdapter/index.js +16 -0
  158. package/esm/HtsgetBamAdapter/index.js.map +1 -0
  159. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +7 -0
  160. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +34 -0
  161. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  162. package/esm/LinearAlignmentsDisplay/index.d.ts +2 -0
  163. package/esm/LinearAlignmentsDisplay/index.js +19 -0
  164. package/esm/LinearAlignmentsDisplay/index.js.map +1 -0
  165. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +4 -0
  166. package/esm/LinearAlignmentsDisplay/models/configSchema.js +12 -0
  167. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  168. package/esm/LinearAlignmentsDisplay/models/model.d.ts +105 -0
  169. package/esm/LinearAlignmentsDisplay/models/model.js +181 -0
  170. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -0
  171. package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +14 -0
  172. package/esm/LinearPileupDisplay/components/ColorByModifications.js +71 -0
  173. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  174. package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +9 -0
  175. package/esm/LinearPileupDisplay/components/ColorByTag.js +45 -0
  176. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  177. package/esm/LinearPileupDisplay/components/FilterByTag.d.ts +18 -0
  178. package/esm/LinearPileupDisplay/components/FilterByTag.js +123 -0
  179. package/esm/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  180. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +13 -0
  181. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +13 -0
  182. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  183. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +16 -0
  184. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +41 -0
  185. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  186. package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +10 -0
  187. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +43 -0
  188. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  189. package/esm/LinearPileupDisplay/components/SortByTag.d.ts +9 -0
  190. package/esm/LinearPileupDisplay/components/SortByTag.js +43 -0
  191. package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  192. package/esm/LinearPileupDisplay/configSchema.d.ts +6 -0
  193. package/esm/LinearPileupDisplay/configSchema.js +41 -0
  194. package/esm/LinearPileupDisplay/configSchema.js.map +1 -0
  195. package/esm/LinearPileupDisplay/index.d.ts +2 -0
  196. package/esm/LinearPileupDisplay/index.js +18 -0
  197. package/esm/LinearPileupDisplay/index.js.map +1 -0
  198. package/esm/LinearPileupDisplay/model.d.ts +332 -0
  199. package/esm/LinearPileupDisplay/model.js +576 -0
  200. package/esm/LinearPileupDisplay/model.js.map +1 -0
  201. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +10 -0
  202. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +57 -0
  203. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  204. package/esm/LinearSNPCoverageDisplay/index.d.ts +2 -0
  205. package/esm/LinearSNPCoverageDisplay/index.js +18 -0
  206. package/esm/LinearSNPCoverageDisplay/index.js.map +1 -0
  207. package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +2 -0
  208. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +44 -0
  209. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  210. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +348 -0
  211. package/esm/LinearSNPCoverageDisplay/models/model.js +185 -0
  212. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  213. package/esm/NestedFrequencyTable.d.ts +14 -0
  214. package/esm/NestedFrequencyTable.js +101 -0
  215. package/esm/NestedFrequencyTable.js.map +1 -0
  216. package/esm/PileupRPC/rpcMethods.d.ts +34 -0
  217. package/esm/PileupRPC/rpcMethods.js +70 -0
  218. package/esm/PileupRPC/rpcMethods.js.map +1 -0
  219. package/esm/PileupRenderer/PileupLayoutSession.d.ts +32 -0
  220. package/esm/PileupRenderer/PileupLayoutSession.js +32 -0
  221. package/esm/PileupRenderer/PileupLayoutSession.js.map +1 -0
  222. package/esm/PileupRenderer/PileupRenderer.d.ts +182 -0
  223. package/esm/PileupRenderer/PileupRenderer.js +830 -0
  224. package/esm/PileupRenderer/PileupRenderer.js.map +1 -0
  225. package/esm/PileupRenderer/components/PileupRendering.d.ts +23 -0
  226. package/esm/PileupRenderer/components/PileupRendering.js +138 -0
  227. package/esm/PileupRenderer/components/PileupRendering.js.map +1 -0
  228. package/esm/PileupRenderer/configSchema.d.ts +2 -0
  229. package/esm/PileupRenderer/configSchema.js +64 -0
  230. package/esm/PileupRenderer/configSchema.js.map +1 -0
  231. package/esm/PileupRenderer/index.d.ts +2 -0
  232. package/esm/PileupRenderer/index.js +12 -0
  233. package/esm/PileupRenderer/index.js.map +1 -0
  234. package/esm/PileupRenderer/sortUtil.d.ts +8 -0
  235. package/esm/PileupRenderer/sortUtil.js +80 -0
  236. package/esm/PileupRenderer/sortUtil.js.map +1 -0
  237. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +67 -0
  238. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +259 -0
  239. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  240. package/esm/SNPCoverageAdapter/configSchema.d.ts +3 -0
  241. package/esm/SNPCoverageAdapter/configSchema.js +6 -0
  242. package/esm/SNPCoverageAdapter/configSchema.js.map +1 -0
  243. package/esm/SNPCoverageAdapter/index.d.ts +3 -0
  244. package/esm/SNPCoverageAdapter/index.js +18 -0
  245. package/esm/SNPCoverageAdapter/index.js.map +1 -0
  246. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +20 -0
  247. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +185 -0
  248. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  249. package/esm/SNPCoverageRenderer/configSchema.d.ts +2 -0
  250. package/esm/SNPCoverageRenderer/configSchema.js +29 -0
  251. package/esm/SNPCoverageRenderer/configSchema.js.map +1 -0
  252. package/esm/SNPCoverageRenderer/index.d.ts +3 -0
  253. package/esm/SNPCoverageRenderer/index.js +14 -0
  254. package/esm/SNPCoverageRenderer/index.js.map +1 -0
  255. package/esm/index.d.ts +10 -0
  256. package/esm/index.js +91 -0
  257. package/esm/index.js.map +1 -0
  258. package/esm/shared.d.ts +25 -0
  259. package/esm/shared.js +28 -0
  260. package/esm/shared.js.map +1 -0
  261. package/esm/util.d.ts +19 -0
  262. package/esm/util.js +83 -0
  263. package/esm/util.js.map +1 -0
  264. package/package.json +19 -11
  265. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +4 -4
  266. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +321 -397
  267. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +3 -3
  268. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +7 -7
  269. package/src/LinearPileupDisplay/components/ColorByTag.tsx +5 -5
  270. package/src/LinearPileupDisplay/components/FilterByTag.tsx +5 -5
  271. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +1 -1
  272. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +9 -9
  273. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +5 -5
  274. package/src/LinearPileupDisplay/components/SortByTag.tsx +5 -5
  275. package/src/LinearPileupDisplay/model.ts +16 -10
  276. package/src/LinearSNPCoverageDisplay/models/model.ts +25 -25
  277. package/src/PileupRenderer/PileupRenderer.tsx +54 -40
  278. package/src/PileupRenderer/components/PileupRendering.tsx +11 -11
  279. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +7 -5
  280. package/dist/AlignmentsFeatureDetail/index.test.js +0 -60
  281. package/dist/BamAdapter/BamAdapter.test.js +0 -177
  282. package/dist/BamAdapter/MismatchParser.test.js +0 -251
  283. package/dist/CramAdapter/CramAdapter.test.js +0 -138
  284. package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +0 -83
  285. package/dist/LinearPileupDisplay/configSchema.test.js +0 -92
  286. package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +0 -62
  287. package/dist/PileupRenderer/components/PileupRendering.test.js +0 -36
  288. package/dist/declare.d.js +0 -1
  289. package/dist/index.test.js +0 -26
@@ -1,598 +1,358 @@
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 _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
-
30
- var _bam = require("@gmod/bam");
31
-
32
- var _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
33
-
34
- var _util = require("@jbrowse/core/util");
35
-
36
- var _io = require("@jbrowse/core/util/io");
37
-
38
- var _rxjs = require("@jbrowse/core/util/rxjs");
39
-
40
- var _operators = require("rxjs/operators");
41
-
42
- var _configuration = require("@jbrowse/core/configuration");
43
-
44
- var _BamSlightlyLazyFeature = _interopRequireDefault(require("./BamSlightlyLazyFeature"));
45
-
46
- 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; } } }; }
47
-
48
- 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); }
49
-
50
- 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; }
51
-
52
- 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); }; }
53
-
54
- 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; } }
55
-
56
- var BamAdapter = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
57
- (0, _inherits2.default)(BamAdapter, _BaseFeatureDataAdapt);
58
-
59
- var _super = _createSuper(BamAdapter);
60
-
61
- function BamAdapter() {
62
- var _this;
63
-
64
- (0, _classCallCheck2.default)(this, BamAdapter);
65
-
66
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
67
- 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 __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 __values = (this && this.__values) || function(o) {
54
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
55
+ if (m) return m.call(o);
56
+ if (o && typeof o.length === "number") return {
57
+ next: function () {
58
+ if (o && i >= o.length) o = void 0;
59
+ return { value: o && o[i++], done: !o };
60
+ }
61
+ };
62
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
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 bam_1 = require("@gmod/bam");
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 configuration_1 = require("@jbrowse/core/configuration");
75
+ var BamSlightlyLazyFeature_1 = __importDefault(require("./BamSlightlyLazyFeature"));
76
+ var BamAdapter = /** @class */ (function (_super) {
77
+ __extends(BamAdapter, _super);
78
+ function BamAdapter() {
79
+ return _super !== null && _super.apply(this, arguments) || this;
68
80
  }
69
-
70
- _this = _super.call.apply(_super, [this].concat(args));
71
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "samHeader", void 0);
72
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setupP", void 0);
73
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "configured", void 0);
74
- return _this;
75
- }
76
-
77
- (0, _createClass2.default)(BamAdapter, [{
78
- key: "configure",
79
- value: // derived classes may not use the same configuration so a custom
81
+ // derived classes may not use the same configuration so a custom
80
82
  // configure method allows derived classes to override this behavior
81
- function () {
82
- var _configure = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
83
- var bamLocation, location, indexType, bam, adapterConfig;
84
- return _regenerator.default.wrap(function _callee$(_context) {
85
- while (1) {
86
- switch (_context.prev = _context.next) {
87
- case 0:
83
+ BamAdapter.prototype.configure = function () {
84
+ return __awaiter(this, void 0, void 0, function () {
85
+ var bamLocation, location_1, indexType, bam_2, adapterConfig;
86
+ return __generator(this, function (_a) {
88
87
  if (!this.configured) {
89
- bamLocation = (0, _configuration.readConfObject)(this.config, 'bamLocation');
90
- location = (0, _configuration.readConfObject)(this.config, ['index', 'location']);
91
- indexType = (0, _configuration.readConfObject)(this.config, ['index', 'indexType']);
92
- bam = new _bam.BamFile({
93
- bamFilehandle: (0, _io.openLocation)(bamLocation, this.pluginManager),
94
- csiFilehandle: indexType === 'CSI' ? (0, _io.openLocation)(location, this.pluginManager) : undefined,
95
- baiFilehandle: indexType !== 'CSI' ? (0, _io.openLocation)(location, this.pluginManager) : undefined,
96
- // chunkSizeLimit and fetchSizeLimit are more troublesome than
97
- // helpful, and have given overly large values on the ultra long
98
- // nanopore reads even with 500MB limits, so disabled with infinity
99
- chunkSizeLimit: Infinity,
100
- fetchSizeLimit: Infinity,
101
- yieldThreadTime: Infinity
102
- });
103
- adapterConfig = (0, _configuration.readConfObject)(this.config, 'sequenceAdapter');
104
-
105
- if (adapterConfig && this.getSubAdapter) {
106
- this.configured = this.getSubAdapter(adapterConfig).then(function (_ref) {
107
- var dataAdapter = _ref.dataAdapter;
108
- return {
109
- bam: bam,
110
- sequenceAdapter: dataAdapter
111
- };
112
- });
113
- } else {
114
- this.configured = Promise.resolve({
115
- bam: bam
88
+ bamLocation = (0, configuration_1.readConfObject)(this.config, 'bamLocation');
89
+ location_1 = (0, configuration_1.readConfObject)(this.config, ['index', 'location']);
90
+ indexType = (0, configuration_1.readConfObject)(this.config, ['index', 'indexType']);
91
+ bam_2 = new bam_1.BamFile({
92
+ bamFilehandle: (0, io_1.openLocation)(bamLocation, this.pluginManager),
93
+ csiFilehandle: indexType === 'CSI'
94
+ ? (0, io_1.openLocation)(location_1, this.pluginManager)
95
+ : undefined,
96
+ baiFilehandle: indexType !== 'CSI'
97
+ ? (0, io_1.openLocation)(location_1, this.pluginManager)
98
+ : undefined,
99
+ // chunkSizeLimit and fetchSizeLimit are more troublesome than
100
+ // helpful, and have given overly large values on the ultra long
101
+ // nanopore reads even with 500MB limits, so disabled with infinity
102
+ chunkSizeLimit: Infinity,
103
+ fetchSizeLimit: Infinity,
104
+ yieldThreadTime: Infinity,
116
105
  });
117
- }
118
- }
119
-
120
- return _context.abrupt("return", this.configured);
121
-
122
- case 2:
123
- case "end":
124
- return _context.stop();
125
- }
126
- }
127
- }, _callee, this);
128
- }));
129
-
130
- function configure() {
131
- return _configure.apply(this, arguments);
132
- }
133
-
134
- return configure;
135
- }()
136
- }, {
137
- key: "getHeader",
138
- value: function () {
139
- var _getHeader = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(opts) {
140
- var _yield$this$configure, bam;
141
-
142
- return _regenerator.default.wrap(function _callee2$(_context2) {
143
- while (1) {
144
- switch (_context2.prev = _context2.next) {
145
- case 0:
146
- _context2.next = 2;
147
- return this.configure();
148
-
149
- case 2:
150
- _yield$this$configure = _context2.sent;
151
- bam = _yield$this$configure.bam;
152
- return _context2.abrupt("return", bam.getHeaderText(opts));
153
-
154
- case 5:
155
- case "end":
156
- return _context2.stop();
157
- }
158
- }
159
- }, _callee2, this);
160
- }));
161
-
162
- function getHeader(_x) {
163
- return _getHeader.apply(this, arguments);
164
- }
165
-
166
- return getHeader;
167
- }()
168
- }, {
169
- key: "setupPre",
170
- value: function () {
171
- var _setupPre = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(opts) {
172
- var _ref2, _ref2$statusCallback, statusCallback, _yield$this$configure2, bam;
173
-
174
- return _regenerator.default.wrap(function _callee4$(_context4) {
175
- while (1) {
176
- switch (_context4.prev = _context4.next) {
177
- case 0:
178
- _ref2 = opts || {}, _ref2$statusCallback = _ref2.statusCallback, statusCallback = _ref2$statusCallback === void 0 ? function () {} : _ref2$statusCallback;
179
- _context4.next = 3;
180
- return this.configure();
181
-
182
- case 3:
183
- _yield$this$configure2 = _context4.sent;
184
- bam = _yield$this$configure2.bam;
185
- _context4.next = 7;
186
- return (0, _util.updateStatus)('Downloading index', statusCallback, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
187
- var samHeader, idToName, nameToId;
188
- return _regenerator.default.wrap(function _callee3$(_context3) {
189
- while (1) {
190
- switch (_context3.prev = _context3.next) {
191
- case 0:
192
- _context3.next = 2;
193
- return bam.getHeader(opts);
194
-
195
- case 2:
196
- samHeader = _context3.sent;
197
- // use the @SQ lines in the header to figure out the
198
- // mapping between ref ref ID numbers and names
199
- idToName = [];
200
- nameToId = {};
201
- samHeader.filter(function (l) {
202
- 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
- }
106
+ adapterConfig = (0, configuration_1.readConfObject)(this.config, 'sequenceAdapter');
107
+ if (adapterConfig && this.getSubAdapter) {
108
+ this.configured = this.getSubAdapter(adapterConfig).then(function (_a) {
109
+ var dataAdapter = _a.dataAdapter;
110
+ return ({
111
+ bam: bam_2,
112
+ sequenceAdapter: dataAdapter,
211
113
  });
212
- });
213
- return _context3.abrupt("return", {
214
- idToName: idToName,
215
- nameToId: nameToId
216
- });
217
-
218
- case 7:
219
- case "end":
220
- return _context3.stop();
221
- }
114
+ });
222
115
  }
223
- }, _callee3);
224
- })));
225
-
226
- case 7:
227
- this.samHeader = _context4.sent;
228
- return _context4.abrupt("return", this.samHeader);
229
-
230
- case 9:
231
- case "end":
232
- return _context4.stop();
233
- }
234
- }
235
- }, _callee4, this);
236
- }));
237
-
238
- function setupPre(_x2) {
239
- return _setupPre.apply(this, arguments);
240
- }
241
-
242
- return setupPre;
243
- }()
244
- }, {
245
- key: "setup",
246
- value: function () {
247
- var _setup = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(opts) {
248
- var _this2 = this;
249
-
250
- return _regenerator.default.wrap(function _callee5$(_context5) {
251
- while (1) {
252
- switch (_context5.prev = _context5.next) {
253
- case 0:
116
+ else {
117
+ this.configured = Promise.resolve({ bam: bam_2 });
118
+ }
119
+ }
120
+ return [2 /*return*/, this.configured];
121
+ });
122
+ });
123
+ };
124
+ BamAdapter.prototype.getHeader = function (opts) {
125
+ return __awaiter(this, void 0, void 0, function () {
126
+ var bam;
127
+ return __generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0: return [4 /*yield*/, this.configure()];
130
+ case 1:
131
+ bam = (_a.sent()).bam;
132
+ return [2 /*return*/, bam.getHeaderText(opts)];
133
+ }
134
+ });
135
+ });
136
+ };
137
+ BamAdapter.prototype.setupPre = function (opts) {
138
+ return __awaiter(this, void 0, void 0, function () {
139
+ var _a, statusCallback, bam, _b;
140
+ var _this = this;
141
+ return __generator(this, function (_c) {
142
+ switch (_c.label) {
143
+ case 0:
144
+ _a = (opts || {}).statusCallback, statusCallback = _a === void 0 ? function () { } : _a;
145
+ return [4 /*yield*/, this.configure()];
146
+ case 1:
147
+ bam = (_c.sent()).bam;
148
+ _b = this;
149
+ return [4 /*yield*/, (0, util_1.updateStatus)('Downloading index', statusCallback, function () { return __awaiter(_this, void 0, void 0, function () {
150
+ var samHeader, idToName, nameToId;
151
+ return __generator(this, function (_a) {
152
+ switch (_a.label) {
153
+ case 0: return [4 /*yield*/, bam.getHeader(opts)
154
+ // use the @SQ lines in the header to figure out the
155
+ // mapping between ref ref ID numbers and names
156
+ ];
157
+ case 1:
158
+ samHeader = _a.sent();
159
+ idToName = [];
160
+ nameToId = {};
161
+ samHeader
162
+ .filter(function (l) { return l.tag === 'SQ'; })
163
+ .forEach(function (sqLine, refId) {
164
+ sqLine.data.forEach(function (item) {
165
+ if (item.tag === 'SN') {
166
+ // this is the ref name
167
+ var refName = item.value;
168
+ nameToId[refName] = refId;
169
+ idToName[refId] = refName;
170
+ }
171
+ });
172
+ });
173
+ return [2 /*return*/, { idToName: idToName, nameToId: nameToId }];
174
+ }
175
+ });
176
+ }); })];
177
+ case 2:
178
+ _b.samHeader = _c.sent();
179
+ return [2 /*return*/, this.samHeader];
180
+ }
181
+ });
182
+ });
183
+ };
184
+ BamAdapter.prototype.setup = function (opts) {
185
+ return __awaiter(this, void 0, void 0, function () {
186
+ var _this = this;
187
+ return __generator(this, function (_a) {
254
188
  if (!this.setupP) {
255
- this.setupP = this.setupPre(opts).catch(function (e) {
256
- _this2.setupP = undefined;
257
- throw e;
258
- });
189
+ this.setupP = this.setupPre(opts).catch(function (e) {
190
+ _this.setupP = undefined;
191
+ throw e;
192
+ });
259
193
  }
260
-
261
- return _context5.abrupt("return", this.setupP);
262
-
263
- case 2:
264
- case "end":
265
- return _context5.stop();
266
- }
267
- }
268
- }, _callee5, this);
269
- }));
270
-
271
- function setup(_x3) {
272
- return _setup.apply(this, arguments);
273
- }
274
-
275
- return setup;
276
- }()
277
- }, {
278
- key: "getRefNames",
279
- value: function () {
280
- var _getRefNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(opts) {
281
- var _yield$this$setup, idToName;
282
-
283
- return _regenerator.default.wrap(function _callee6$(_context6) {
284
- while (1) {
285
- switch (_context6.prev = _context6.next) {
286
- case 0:
287
- _context6.next = 2;
288
- return this.setup(opts);
289
-
290
- case 2:
291
- _yield$this$setup = _context6.sent;
292
- idToName = _yield$this$setup.idToName;
293
- return _context6.abrupt("return", idToName);
294
-
295
- case 5:
296
- case "end":
297
- return _context6.stop();
298
- }
299
- }
300
- }, _callee6, this);
301
- }));
302
-
303
- function getRefNames(_x4) {
304
- return _getRefNames.apply(this, arguments);
305
- }
306
-
307
- return getRefNames;
308
- }()
309
- }, {
310
- key: "seqFetch",
311
- value: function () {
312
- var _seqFetch = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(refName, start, end) {
313
- var _yield$this$configure3, sequenceAdapter, refSeqStore, features, seqChunks, sequence;
314
-
315
- return _regenerator.default.wrap(function _callee7$(_context7) {
316
- while (1) {
317
- switch (_context7.prev = _context7.next) {
318
- case 0:
319
- _context7.next = 2;
320
- return this.configure();
321
-
322
- case 2:
323
- _yield$this$configure3 = _context7.sent;
324
- sequenceAdapter = _yield$this$configure3.sequenceAdapter;
325
- refSeqStore = sequenceAdapter;
326
-
327
- if (refSeqStore) {
328
- _context7.next = 7;
329
- break;
194
+ return [2 /*return*/, this.setupP];
195
+ });
196
+ });
197
+ };
198
+ BamAdapter.prototype.getRefNames = function (opts) {
199
+ return __awaiter(this, void 0, void 0, function () {
200
+ var idToName;
201
+ return __generator(this, function (_a) {
202
+ switch (_a.label) {
203
+ case 0: return [4 /*yield*/, this.setup(opts)];
204
+ case 1:
205
+ idToName = (_a.sent()).idToName;
206
+ return [2 /*return*/, idToName];
330
207
  }
331
-
332
- return _context7.abrupt("return", undefined);
333
-
334
- case 7:
335
- if (refName) {
336
- _context7.next = 9;
337
- break;
208
+ });
209
+ });
210
+ };
211
+ BamAdapter.prototype.seqFetch = function (refName, start, end) {
212
+ return __awaiter(this, void 0, void 0, function () {
213
+ var sequenceAdapter, refSeqStore, features, seqChunks, sequence;
214
+ return __generator(this, function (_a) {
215
+ switch (_a.label) {
216
+ case 0: return [4 /*yield*/, this.configure()];
217
+ case 1:
218
+ sequenceAdapter = (_a.sent()).sequenceAdapter;
219
+ refSeqStore = sequenceAdapter;
220
+ if (!refSeqStore) {
221
+ return [2 /*return*/, undefined];
222
+ }
223
+ if (!refName) {
224
+ return [2 /*return*/, undefined];
225
+ }
226
+ features = refSeqStore.getFeatures({
227
+ refName: refName,
228
+ start: start,
229
+ end: end,
230
+ assemblyName: '',
231
+ });
232
+ return [4 /*yield*/, features.pipe((0, operators_1.toArray)()).toPromise()];
233
+ case 2:
234
+ seqChunks = _a.sent();
235
+ sequence = '';
236
+ seqChunks
237
+ .sort(function (a, b) { return a.get('start') - b.get('start'); })
238
+ .forEach(function (chunk) {
239
+ var chunkStart = chunk.get('start');
240
+ var chunkEnd = chunk.get('end');
241
+ var trimStart = Math.max(start - chunkStart, 0);
242
+ var trimEnd = Math.min(end - chunkStart, chunkEnd - chunkStart);
243
+ var trimLength = trimEnd - trimStart;
244
+ var chunkSeq = chunk.get('seq') || chunk.get('residues');
245
+ sequence += chunkSeq.substr(trimStart, trimLength);
246
+ });
247
+ if (sequence.length !== end - start) {
248
+ 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()));
249
+ }
250
+ return [2 /*return*/, sequence];
338
251
  }
339
-
340
- return _context7.abrupt("return", undefined);
341
-
342
- case 9:
343
- features = refSeqStore.getFeatures({
344
- refName: refName,
345
- start: start,
346
- end: end,
347
- assemblyName: ''
348
- });
349
- _context7.next = 12;
350
- return features.pipe((0, _operators.toArray)()).toPromise();
351
-
352
- case 12:
353
- seqChunks = _context7.sent;
354
- sequence = '';
355
- seqChunks.sort(function (a, b) {
356
- return a.get('start') - b.get('start');
357
- }).forEach(function (chunk) {
358
- var chunkStart = chunk.get('start');
359
- var chunkEnd = chunk.get('end');
360
- var trimStart = Math.max(start - chunkStart, 0);
361
- var trimEnd = Math.min(end - chunkStart, chunkEnd - chunkStart);
362
- var trimLength = trimEnd - trimStart;
363
- var chunkSeq = chunk.get('seq') || chunk.get('residues');
364
- sequence += chunkSeq.substr(trimStart, trimLength);
365
- });
366
-
367
- if (!(sequence.length !== end - start)) {
368
- _context7.next = 17;
369
- break;
252
+ });
253
+ });
254
+ };
255
+ BamAdapter.prototype.getFeatures = function (region, opts) {
256
+ var _this = this;
257
+ var refName = region.refName, start = region.start, end = region.end, originalRefName = region.originalRefName;
258
+ var _a = opts || {}, signal = _a.signal, filterBy = _a.filterBy, _b = _a.statusCallback, statusCallback = _b === void 0 ? function () { } : _b;
259
+ return (0, rxjs_1.ObservableCreate)(function (observer) { return __awaiter(_this, void 0, void 0, function () {
260
+ var bam, records, _a, _b, flagInclude, _c, flagExclude, tagFilter, readName, records_1, records_1_1, record, ref, flags, val, e_1_1;
261
+ var e_1, _d;
262
+ return __generator(this, function (_e) {
263
+ switch (_e.label) {
264
+ case 0: return [4 /*yield*/, this.configure()];
265
+ case 1:
266
+ bam = (_e.sent()).bam;
267
+ return [4 /*yield*/, this.setup(opts)];
268
+ case 2:
269
+ _e.sent();
270
+ statusCallback('Downloading alignments');
271
+ return [4 /*yield*/, bam.getRecordsForRange(refName, start, end, opts)];
272
+ case 3:
273
+ records = _e.sent();
274
+ _a = filterBy || {}, _b = _a.flagInclude, flagInclude = _b === void 0 ? 0 : _b, _c = _a.flagExclude, flagExclude = _c === void 0 ? 0 : _c, tagFilter = _a.tagFilter, readName = _a.readName;
275
+ _e.label = 4;
276
+ case 4:
277
+ _e.trys.push([4, 10, 11, 12]);
278
+ records_1 = __values(records), records_1_1 = records_1.next();
279
+ _e.label = 5;
280
+ case 5:
281
+ if (!!records_1_1.done) return [3 /*break*/, 9];
282
+ record = records_1_1.value;
283
+ ref = void 0;
284
+ if (!!record.get('MD')) return [3 /*break*/, 7];
285
+ return [4 /*yield*/, this.seqFetch(originalRefName || refName, record.get('start'), record.get('end'))];
286
+ case 6:
287
+ ref = _e.sent();
288
+ _e.label = 7;
289
+ case 7:
290
+ flags = record.flags;
291
+ if (!((flags & flagInclude) === flagInclude && !(flags & flagExclude))) {
292
+ return [3 /*break*/, 8];
293
+ }
294
+ if (tagFilter) {
295
+ val = record.get(tagFilter.tag);
296
+ if (!(val === '*' ? val !== undefined : val === tagFilter.value)) {
297
+ return [3 /*break*/, 8];
298
+ }
299
+ }
300
+ if (readName && record.get('name') !== readName) {
301
+ return [3 /*break*/, 8];
302
+ }
303
+ observer.next(new BamSlightlyLazyFeature_1.default(record, this, ref));
304
+ _e.label = 8;
305
+ case 8:
306
+ records_1_1 = records_1.next();
307
+ return [3 /*break*/, 5];
308
+ case 9: return [3 /*break*/, 12];
309
+ case 10:
310
+ e_1_1 = _e.sent();
311
+ e_1 = { error: e_1_1 };
312
+ return [3 /*break*/, 12];
313
+ case 11:
314
+ try {
315
+ if (records_1_1 && !records_1_1.done && (_d = records_1.return)) _d.call(records_1);
316
+ }
317
+ finally { if (e_1) throw e_1.error; }
318
+ return [7 /*endfinally*/];
319
+ case 12:
320
+ statusCallback('');
321
+ observer.complete();
322
+ return [2 /*return*/];
370
323
  }
371
-
372
- 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()));
373
-
374
- case 17:
375
- return _context7.abrupt("return", sequence);
376
-
377
- case 18:
378
- case "end":
379
- return _context7.stop();
380
- }
381
- }
382
- }, _callee7, this);
383
- }));
384
-
385
- function seqFetch(_x5, _x6, _x7) {
386
- return _seqFetch.apply(this, arguments);
387
- }
388
-
389
- return seqFetch;
390
- }()
391
- }, {
392
- key: "getFeatures",
393
- value: function getFeatures(region, opts) {
394
- var _this3 = this;
395
-
396
- var refName = region.refName,
397
- start = region.start,
398
- end = region.end,
399
- originalRefName = region.originalRefName;
400
-
401
- var _ref4 = opts || {},
402
- signal = _ref4.signal,
403
- filterBy = _ref4.filterBy,
404
- _ref4$statusCallback = _ref4.statusCallback,
405
- statusCallback = _ref4$statusCallback === void 0 ? function () {} : _ref4$statusCallback;
406
-
407
- return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
408
- var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(observer) {
409
- var _yield$_this3$configu, bam, records, _ref6, _ref6$flagInclude, flagInclude, _ref6$flagExclude, flagExclude, tagFilter, readName, _iterator, _step, record, ref, flags, val;
410
-
411
- return _regenerator.default.wrap(function _callee8$(_context8) {
412
- while (1) {
413
- switch (_context8.prev = _context8.next) {
414
- case 0:
415
- _context8.next = 2;
416
- return _this3.configure();
417
-
418
- case 2:
419
- _yield$_this3$configu = _context8.sent;
420
- bam = _yield$_this3$configu.bam;
421
- _context8.next = 6;
422
- return _this3.setup(opts);
423
-
424
- case 6:
425
- statusCallback('Downloading alignments');
426
- _context8.next = 9;
427
- return bam.getRecordsForRange(refName, start, end, opts);
428
-
429
- case 9:
430
- records = _context8.sent;
431
- _ref6 = filterBy || {}, _ref6$flagInclude = _ref6.flagInclude, flagInclude = _ref6$flagInclude === void 0 ? 0 : _ref6$flagInclude, _ref6$flagExclude = _ref6.flagExclude, flagExclude = _ref6$flagExclude === void 0 ? 0 : _ref6$flagExclude, tagFilter = _ref6.tagFilter, readName = _ref6.readName;
432
- _iterator = _createForOfIteratorHelper(records);
433
- _context8.prev = 12;
434
-
435
- _iterator.s();
436
-
437
- case 14:
438
- if ((_step = _iterator.n()).done) {
439
- _context8.next = 33;
440
- break;
441
- }
442
-
443
- record = _step.value;
444
- ref = void 0;
445
-
446
- if (record.get('MD')) {
447
- _context8.next = 21;
448
- break;
449
- }
450
-
451
- _context8.next = 20;
452
- return _this3.seqFetch(originalRefName || refName, record.get('start'), record.get('end'));
453
-
454
- case 20:
455
- ref = _context8.sent;
456
-
457
- case 21:
458
- flags = record.flags;
459
-
460
- if ((flags & flagInclude) === flagInclude && !(flags & flagExclude)) {
461
- _context8.next = 24;
462
- break;
463
- }
464
-
465
- return _context8.abrupt("continue", 31);
466
-
467
- case 24:
468
- if (!tagFilter) {
469
- _context8.next = 28;
470
- break;
471
- }
472
-
473
- val = record.get(tagFilter.tag);
474
-
475
- if (val === '*' ? val !== undefined : val === tagFilter.value) {
476
- _context8.next = 28;
477
- break;
478
- }
479
-
480
- return _context8.abrupt("continue", 31);
481
-
482
- case 28:
483
- if (!(readName && record.get('name') !== readName)) {
484
- _context8.next = 30;
485
- break;
486
- }
487
-
488
- return _context8.abrupt("continue", 31);
489
-
490
- case 30:
491
- observer.next(new _BamSlightlyLazyFeature.default(record, _this3, ref));
492
-
493
- case 31:
494
- _context8.next = 14;
495
- break;
496
-
497
- case 33:
498
- _context8.next = 38;
499
- break;
500
-
501
- case 35:
502
- _context8.prev = 35;
503
- _context8.t0 = _context8["catch"](12);
504
-
505
- _iterator.e(_context8.t0);
506
-
507
- case 38:
508
- _context8.prev = 38;
509
-
510
- _iterator.f();
511
-
512
- return _context8.finish(38);
513
-
514
- case 41:
515
- statusCallback('');
516
- observer.complete();
517
-
518
- case 43:
519
- case "end":
520
- return _context8.stop();
521
- }
522
- }
523
- }, _callee8, null, [[12, 35, 38, 41]]);
524
- }));
525
-
526
- return function (_x8) {
527
- return _ref5.apply(this, arguments);
528
- };
529
- }(), signal);
530
- }
531
- }, {
532
- key: "estimateRegionsStats",
533
- value: function () {
534
- var _estimateRegionsStats = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(regions, opts) {
535
- var _yield$this$configure4, bam, bytes, fetchSizeLimit;
536
-
537
- return _regenerator.default.wrap(function _callee9$(_context9) {
538
- while (1) {
539
- switch (_context9.prev = _context9.next) {
540
- case 0:
541
- _context9.next = 2;
542
- return this.configure();
543
-
544
- case 2:
545
- _yield$this$configure4 = _context9.sent;
546
- bam = _yield$this$configure4.bam;
547
-
548
- if (!(bam.index.filehandle !== '?')) {
549
- _context9.next = 12;
550
- break;
324
+ });
325
+ }); }, signal);
326
+ };
327
+ BamAdapter.prototype.estimateRegionsStats = function (regions, opts) {
328
+ return __awaiter(this, void 0, void 0, function () {
329
+ var bam, bytes, fetchSizeLimit;
330
+ return __generator(this, function (_a) {
331
+ switch (_a.label) {
332
+ case 0: return [4 /*yield*/, this.configure()
333
+ // this is a method to avoid calling on htsget adapters
334
+ // @ts-ignore
335
+ ];
336
+ case 1:
337
+ bam = (_a.sent()).bam;
338
+ if (!(bam.index.filehandle !== '?')) return [3 /*break*/, 3];
339
+ return [4 /*yield*/, (0, util_1.bytesForRegions)(regions, bam)];
340
+ case 2:
341
+ bytes = _a.sent();
342
+ fetchSizeLimit = (0, configuration_1.readConfObject)(this.config, 'fetchSizeLimit');
343
+ return [2 /*return*/, { bytes: bytes, fetchSizeLimit: fetchSizeLimit }];
344
+ case 3: return [2 /*return*/, _super.prototype.estimateRegionsStats.call(this, regions, opts)];
551
345
  }
552
-
553
- _context9.next = 7;
554
- return (0, _util.bytesForRegions)(regions, bam);
555
-
556
- case 7:
557
- bytes = _context9.sent;
558
- fetchSizeLimit = (0, _configuration.readConfObject)(this.config, 'fetchSizeLimit');
559
- return _context9.abrupt("return", {
560
- bytes: bytes,
561
- fetchSizeLimit: fetchSizeLimit
562
- });
563
-
564
- case 12:
565
- return _context9.abrupt("return", (0, _get2.default)((0, _getPrototypeOf2.default)(BamAdapter.prototype), "estimateRegionsStats", this).call(this, regions, opts));
566
-
567
- case 13:
568
- case "end":
569
- return _context9.stop();
570
- }
571
- }
572
- }, _callee9, this);
573
- }));
574
-
575
- function estimateRegionsStats(_x9, _x10) {
576
- return _estimateRegionsStats.apply(this, arguments);
577
- }
578
-
579
- return estimateRegionsStats;
580
- }()
581
- }, {
582
- key: "freeResources",
583
- value: function
584
- /* { region } */
585
- freeResources() {} // depends on setup being called before the BAM constructor
586
-
587
- }, {
588
- key: "refIdToName",
589
- value: function refIdToName(refId) {
590
- var _this$samHeader;
591
-
592
- return (_this$samHeader = this.samHeader) === null || _this$samHeader === void 0 ? void 0 : _this$samHeader.idToName[refId];
593
- }
594
- }]);
595
- return BamAdapter;
596
- }(_BaseAdapter.BaseFeatureDataAdapter);
597
-
598
- exports.default = BamAdapter;
346
+ });
347
+ });
348
+ };
349
+ BamAdapter.prototype.freeResources = function ( /* { region } */) { };
350
+ // depends on setup being called before the BAM constructor
351
+ BamAdapter.prototype.refIdToName = function (refId) {
352
+ var _a;
353
+ return (_a = this.samHeader) === null || _a === void 0 ? void 0 : _a.idToName[refId];
354
+ };
355
+ return BamAdapter;
356
+ }(BaseAdapter_1.BaseFeatureDataAdapter));
357
+ exports.default = BamAdapter;
358
+ //# sourceMappingURL=BamAdapter.js.map