@jbrowse/plugin-alignments 2.16.1 → 2.18.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 (474) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +6 -13
  3. package/dist/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  4. package/dist/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  5. package/dist/AlignmentsFeatureDetail/Flags.js +2 -2
  6. package/dist/AlignmentsFeatureDetail/Formatter.js +0 -3
  7. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +3 -5
  8. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +4 -9
  9. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +3 -5
  10. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +37 -36
  11. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +2 -2
  12. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.js +3 -4
  13. package/dist/AlignmentsFeatureDetail/PairLink.d.ts +1 -1
  14. package/dist/AlignmentsFeatureDetail/PairLink.js +0 -1
  15. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +2 -2
  16. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.js +5 -6
  17. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -1
  18. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +1 -5
  19. package/dist/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  20. package/dist/AlignmentsFeatureDetail/getSAFeatures.js +2 -6
  21. package/dist/AlignmentsFeatureDetail/index.d.ts +1 -1
  22. package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  23. package/dist/AlignmentsFeatureDetail/stateModelFactory.d.ts +3 -3
  24. package/dist/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  25. package/dist/AlignmentsFeatureDetail/tagInfo.js +1 -1
  26. package/dist/AlignmentsFeatureDetail/util.d.ts +1 -1
  27. package/dist/AlignmentsTrack/configSchemaF.d.ts +1 -1
  28. package/dist/AlignmentsTrack/configSchemaF.js +1 -8
  29. package/dist/AlignmentsTrack/index.d.ts +1 -1
  30. package/dist/AlignmentsTrack/index.js +0 -3
  31. package/dist/BamAdapter/BamAdapter.d.ts +8 -6
  32. package/dist/BamAdapter/BamAdapter.js +35 -30
  33. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +6 -20
  34. package/dist/BamAdapter/BamSlightlyLazyFeature.js +42 -75
  35. package/dist/BamAdapter/configSchema.d.ts +0 -17
  36. package/dist/BamAdapter/configSchema.js +1 -22
  37. package/dist/BamAdapter/index.d.ts +1 -1
  38. package/dist/CramAdapter/CramAdapter.d.ts +8 -10
  39. package/dist/CramAdapter/CramAdapter.js +26 -32
  40. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +23 -29
  41. package/dist/CramAdapter/CramSlightlyLazyFeature.js +59 -75
  42. package/dist/CramAdapter/CramTestAdapters.d.ts +3 -3
  43. package/dist/CramAdapter/CramTestAdapters.js +4 -5
  44. package/dist/CramAdapter/configSchema.d.ts +0 -14
  45. package/dist/CramAdapter/configSchema.js +1 -19
  46. package/dist/CramAdapter/index.d.ts +1 -1
  47. package/dist/CramAdapter/index.js +0 -1
  48. package/dist/CramAdapter/util.d.ts +2 -11
  49. package/dist/CramAdapter/util.js +1 -24
  50. package/dist/GuessAlignmentsTypes/index.d.ts +1 -1
  51. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  52. package/dist/HtsgetBamAdapter/configSchema.d.ts +0 -9
  53. package/dist/HtsgetBamAdapter/configSchema.js +1 -14
  54. package/dist/HtsgetBamAdapter/index.d.ts +1 -1
  55. package/dist/HtsgetBamAdapter/index.js +1 -1
  56. package/dist/LinearAlignmentsDisplay/{models/alignmentsModel.d.ts → alignmentsModel.d.ts} +2 -5
  57. package/dist/LinearAlignmentsDisplay/{models/alignmentsModel.js → alignmentsModel.js} +1 -31
  58. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  59. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +2 -2
  60. package/dist/LinearAlignmentsDisplay/{models/configSchema.d.ts → configSchema.d.ts} +2 -16
  61. package/dist/LinearAlignmentsDisplay/{models/configSchema.js → configSchema.js} +3 -20
  62. package/dist/LinearAlignmentsDisplay/index.d.ts +1 -1
  63. package/dist/LinearAlignmentsDisplay/index.js +2 -3
  64. package/dist/LinearAlignmentsDisplay/{models/model.d.ts → model.d.ts} +7 -73
  65. package/dist/LinearAlignmentsDisplay/{models/model.js → model.js} +13 -82
  66. package/dist/LinearAlignmentsDisplay/{models/util.d.ts → util.d.ts} +1 -1
  67. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +34 -181
  68. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +72 -149
  69. package/dist/LinearPileupDisplay/components/ColorByTagDialog.d.ts +5 -4
  70. package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +5 -3
  71. package/dist/LinearPileupDisplay/components/GroupByDialog.d.ts +2 -2
  72. package/dist/LinearPileupDisplay/components/GroupByDialog.js +111 -56
  73. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +2 -6
  74. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +1 -1
  75. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.js +2 -2
  76. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.js +2 -2
  77. package/dist/LinearPileupDisplay/components/SortByTagDialog.js +8 -6
  78. package/dist/LinearPileupDisplay/configSchema.d.ts +13 -16
  79. package/dist/LinearPileupDisplay/configSchema.js +12 -30
  80. package/dist/LinearPileupDisplay/index.d.ts +1 -1
  81. package/dist/LinearPileupDisplay/index.js +2 -2
  82. package/dist/LinearPileupDisplay/model.d.ts +121 -123
  83. package/dist/LinearPileupDisplay/model.js +110 -124
  84. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -1
  85. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +3 -7
  86. package/dist/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  87. package/dist/LinearReadArcsDisplay/configSchema.js +8 -31
  88. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  89. package/dist/LinearReadArcsDisplay/drawFeats.js +1 -9
  90. package/dist/LinearReadArcsDisplay/index.d.ts +1 -1
  91. package/dist/LinearReadArcsDisplay/index.js +1 -2
  92. package/dist/LinearReadArcsDisplay/model.d.ts +13 -90
  93. package/dist/LinearReadArcsDisplay/model.js +24 -112
  94. package/dist/LinearReadArcsDisplay/util.d.ts +1 -1
  95. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -1
  96. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +3 -7
  97. package/dist/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  98. package/dist/LinearReadCloudDisplay/configSchema.js +3 -28
  99. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  100. package/dist/LinearReadCloudDisplay/drawFeats.js +2 -2
  101. package/dist/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  102. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  103. package/dist/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  104. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -3
  105. package/dist/LinearReadCloudDisplay/index.d.ts +1 -1
  106. package/dist/LinearReadCloudDisplay/index.js +1 -2
  107. package/dist/LinearReadCloudDisplay/model.d.ts +14 -64
  108. package/dist/LinearReadCloudDisplay/model.js +24 -76
  109. package/dist/LinearReadCloudDisplay/util.js +0 -1
  110. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  111. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +50 -20
  112. package/dist/LinearSNPCoverageDisplay/{models/configSchema.d.ts → configSchema.d.ts} +17 -22
  113. package/dist/LinearSNPCoverageDisplay/{models/configSchema.js → configSchema.js} +16 -32
  114. package/dist/LinearSNPCoverageDisplay/index.d.ts +1 -1
  115. package/dist/LinearSNPCoverageDisplay/index.js +3 -3
  116. package/{esm/LinearSNPCoverageDisplay/models → dist/LinearSNPCoverageDisplay}/model.d.ts +9 -60
  117. package/dist/LinearSNPCoverageDisplay/{models/model.js → model.js} +68 -146
  118. package/dist/MismatchParser/cigarToMismatches.d.ts +3 -0
  119. package/dist/MismatchParser/cigarToMismatches.js +91 -0
  120. package/dist/MismatchParser/getNextRefPos.d.ts +4 -0
  121. package/dist/MismatchParser/getNextRefPos.js +38 -0
  122. package/dist/MismatchParser/index.d.ts +5 -30
  123. package/dist/MismatchParser/index.js +10 -335
  124. package/dist/MismatchParser/mdToMismatches.d.ts +3 -0
  125. package/dist/MismatchParser/mdToMismatches.js +74 -0
  126. package/dist/ModificationParser/index.d.ts +19 -0
  127. package/dist/ModificationParser/index.js +127 -0
  128. package/dist/PileupRPC/base.d.ts +2 -2
  129. package/dist/PileupRPC/base.js +0 -1
  130. package/dist/PileupRPC/index.d.ts +1 -1
  131. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  132. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +2 -4
  133. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +3 -4
  134. package/dist/PileupRPC/methods/GetReducedFeatures.js +21 -20
  135. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +4 -4
  136. package/dist/PileupRPC/methods/GetVisibleModifications.js +10 -7
  137. package/dist/PileupRPC/util.d.ts +1 -1
  138. package/dist/PileupRenderer/PileupLayoutSession.d.ts +12 -11
  139. package/dist/PileupRenderer/PileupLayoutSession.js +2 -5
  140. package/dist/PileupRenderer/PileupRenderer.d.ts +11 -29
  141. package/dist/PileupRenderer/PileupRenderer.js +17 -20
  142. package/dist/PileupRenderer/colorBy.d.ts +2 -2
  143. package/dist/PileupRenderer/colorBy.js +0 -6
  144. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
  145. package/dist/PileupRenderer/components/PileupRendering.js +0 -3
  146. package/dist/PileupRenderer/configSchema.d.ts +0 -31
  147. package/dist/PileupRenderer/configSchema.js +1 -35
  148. package/dist/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  149. package/dist/PileupRenderer/getAlignmentShapeColor.js +1 -6
  150. package/dist/PileupRenderer/index.d.ts +1 -1
  151. package/dist/PileupRenderer/index.js +1 -1
  152. package/dist/PileupRenderer/layoutFeature.d.ts +2 -2
  153. package/dist/PileupRenderer/layoutFeature.js +0 -1
  154. package/dist/PileupRenderer/layoutFeatures.d.ts +5 -2
  155. package/dist/PileupRenderer/layoutFeatures.js +6 -4
  156. package/dist/PileupRenderer/makeImageData.d.ts +3 -4
  157. package/dist/PileupRenderer/makeImageData.js +8 -2
  158. package/dist/PileupRenderer/renderAlignment.d.ts +3 -3
  159. package/dist/PileupRenderer/renderAlignment.js +19 -8
  160. package/dist/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  161. package/dist/PileupRenderer/renderAlignmentShape.js +102 -21
  162. package/dist/PileupRenderer/renderMethylation.d.ts +6 -5
  163. package/dist/PileupRenderer/renderMethylation.js +13 -9
  164. package/dist/PileupRenderer/renderMismatches.d.ts +3 -3
  165. package/dist/PileupRenderer/renderMismatches.js +17 -28
  166. package/dist/PileupRenderer/renderModifications.d.ts +6 -5
  167. package/dist/PileupRenderer/renderModifications.js +30 -35
  168. package/dist/PileupRenderer/renderPerBaseLettering.d.ts +4 -3
  169. package/dist/PileupRenderer/renderPerBaseLettering.js +1 -4
  170. package/dist/PileupRenderer/renderPerBaseQuality.d.ts +4 -3
  171. package/dist/PileupRenderer/renderPerBaseQuality.js +3 -5
  172. package/dist/PileupRenderer/renderSoftClipping.d.ts +5 -5
  173. package/dist/PileupRenderer/renderSoftClipping.js +6 -10
  174. package/dist/PileupRenderer/sortUtil.d.ts +3 -8
  175. package/dist/PileupRenderer/sortUtil.js +13 -16
  176. package/dist/PileupRenderer/types.d.ts +26 -0
  177. package/dist/PileupRenderer/types.js +2 -0
  178. package/dist/PileupRenderer/util.d.ts +2 -2
  179. package/dist/PileupRenderer/util.js +1 -3
  180. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  181. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +14 -11
  182. package/dist/SNPCoverageAdapter/configSchema.d.ts +0 -4
  183. package/dist/SNPCoverageAdapter/configSchema.js +1 -8
  184. package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +11 -11
  185. package/dist/SNPCoverageAdapter/generateCoverageBins.js +74 -193
  186. package/dist/SNPCoverageAdapter/index.d.ts +1 -1
  187. package/dist/SNPCoverageAdapter/processDepth.d.ts +8 -0
  188. package/dist/SNPCoverageAdapter/processDepth.js +38 -0
  189. package/dist/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  190. package/dist/SNPCoverageAdapter/processMismatches.js +58 -0
  191. package/dist/SNPCoverageAdapter/processModifications.d.ts +10 -0
  192. package/dist/SNPCoverageAdapter/processModifications.js +49 -0
  193. package/dist/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  194. package/dist/SNPCoverageAdapter/processReferenceCpGs.js +63 -0
  195. package/dist/SNPCoverageAdapter/util.d.ts +9 -24
  196. package/dist/SNPCoverageAdapter/util.js +39 -0
  197. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +6 -4
  198. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +165 -72
  199. package/dist/SNPCoverageRenderer/configSchema.d.ts +0 -15
  200. package/dist/SNPCoverageRenderer/configSchema.js +1 -19
  201. package/dist/SNPCoverageRenderer/index.d.ts +1 -1
  202. package/dist/SNPCoverageRenderer/index.js +2 -2
  203. package/dist/index.d.ts +2 -2
  204. package/dist/index.js +12 -12
  205. package/dist/shared/afterAttach.d.ts +1 -1
  206. package/dist/shared/afterAttach.js +0 -2
  207. package/dist/shared/color.d.ts +1 -11
  208. package/dist/shared/color.js +1 -15
  209. package/{esm/shared → dist/shared/components}/BaseDisplayComponent.d.ts +2 -2
  210. package/dist/shared/{BaseDisplayComponent.js → components/BaseDisplayComponent.js} +12 -11
  211. package/{esm/shared → dist/shared/components}/FilterByTagDialog.d.ts +3 -3
  212. package/dist/shared/{FilterByTagDialog.js → components/FilterByTagDialog.js} +7 -3
  213. package/dist/shared/fetchChains.d.ts +2 -2
  214. package/dist/shared/fetchChains.js +2 -4
  215. package/dist/shared/getMaximumModificationAtEachPosition.d.ts +8 -0
  216. package/dist/shared/getMaximumModificationAtEachPosition.js +41 -0
  217. package/dist/shared/getUniqueModifications.d.ts +14 -0
  218. package/dist/shared/getUniqueModifications.js +16 -0
  219. package/dist/shared/getUniqueTags.d.ts +15 -0
  220. package/dist/shared/getUniqueTags.js +18 -0
  221. package/dist/shared/{renderSvg.js → renderSvgUtil.js} +0 -2
  222. package/dist/shared/types.d.ts +94 -0
  223. package/dist/shared/types.js +2 -0
  224. package/dist/shared/util.d.ts +19 -1
  225. package/dist/shared/util.js +52 -0
  226. package/dist/util.d.ts +10 -7
  227. package/dist/util.js +26 -37
  228. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -1
  229. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +6 -13
  230. package/esm/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  231. package/esm/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  232. package/esm/AlignmentsFeatureDetail/Flags.js +2 -2
  233. package/esm/AlignmentsFeatureDetail/Formatter.js +0 -3
  234. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +3 -5
  235. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +5 -10
  236. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +3 -5
  237. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +37 -36
  238. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +2 -2
  239. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +3 -4
  240. package/esm/AlignmentsFeatureDetail/PairLink.d.ts +1 -1
  241. package/esm/AlignmentsFeatureDetail/PairLink.js +0 -1
  242. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +2 -2
  243. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +5 -6
  244. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -1
  245. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +2 -6
  246. package/esm/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  247. package/esm/AlignmentsFeatureDetail/getSAFeatures.js +2 -6
  248. package/esm/AlignmentsFeatureDetail/index.d.ts +1 -1
  249. package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  250. package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +3 -3
  251. package/esm/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  252. package/esm/AlignmentsFeatureDetail/tagInfo.js +1 -1
  253. package/esm/AlignmentsFeatureDetail/util.d.ts +1 -1
  254. package/esm/AlignmentsTrack/configSchemaF.d.ts +1 -1
  255. package/esm/AlignmentsTrack/configSchemaF.js +1 -8
  256. package/esm/AlignmentsTrack/index.d.ts +1 -1
  257. package/esm/AlignmentsTrack/index.js +0 -3
  258. package/esm/BamAdapter/BamAdapter.d.ts +8 -6
  259. package/esm/BamAdapter/BamAdapter.js +36 -31
  260. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +6 -20
  261. package/esm/BamAdapter/BamSlightlyLazyFeature.js +43 -76
  262. package/esm/BamAdapter/configSchema.d.ts +0 -17
  263. package/esm/BamAdapter/configSchema.js +1 -22
  264. package/esm/BamAdapter/index.d.ts +1 -1
  265. package/esm/CramAdapter/CramAdapter.d.ts +8 -10
  266. package/esm/CramAdapter/CramAdapter.js +28 -34
  267. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +23 -29
  268. package/esm/CramAdapter/CramSlightlyLazyFeature.js +59 -75
  269. package/esm/CramAdapter/CramTestAdapters.d.ts +3 -3
  270. package/esm/CramAdapter/CramTestAdapters.js +4 -5
  271. package/esm/CramAdapter/configSchema.d.ts +0 -14
  272. package/esm/CramAdapter/configSchema.js +1 -19
  273. package/esm/CramAdapter/index.d.ts +1 -1
  274. package/esm/CramAdapter/index.js +0 -1
  275. package/esm/CramAdapter/util.d.ts +2 -11
  276. package/esm/CramAdapter/util.js +1 -24
  277. package/esm/GuessAlignmentsTypes/index.d.ts +1 -1
  278. package/esm/GuessAlignmentsTypes/index.js +1 -1
  279. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  280. package/esm/HtsgetBamAdapter/configSchema.d.ts +0 -9
  281. package/esm/HtsgetBamAdapter/configSchema.js +1 -14
  282. package/esm/HtsgetBamAdapter/index.d.ts +1 -1
  283. package/esm/HtsgetBamAdapter/index.js +1 -1
  284. package/esm/LinearAlignmentsDisplay/{models/alignmentsModel.d.ts → alignmentsModel.d.ts} +2 -5
  285. package/esm/LinearAlignmentsDisplay/{models/alignmentsModel.js → alignmentsModel.js} +1 -31
  286. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  287. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +2 -2
  288. package/esm/LinearAlignmentsDisplay/{models/configSchema.d.ts → configSchema.d.ts} +2 -16
  289. package/esm/LinearAlignmentsDisplay/configSchema.js +16 -0
  290. package/esm/LinearAlignmentsDisplay/index.d.ts +1 -1
  291. package/esm/LinearAlignmentsDisplay/index.js +2 -3
  292. package/esm/LinearAlignmentsDisplay/{models/model.d.ts → model.d.ts} +7 -73
  293. package/esm/LinearAlignmentsDisplay/{models/model.js → model.js} +14 -83
  294. package/esm/LinearAlignmentsDisplay/{models/util.d.ts → util.d.ts} +1 -1
  295. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +34 -181
  296. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +74 -151
  297. package/esm/LinearPileupDisplay/components/ColorByTagDialog.d.ts +5 -4
  298. package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +5 -3
  299. package/esm/LinearPileupDisplay/components/GroupByDialog.d.ts +2 -2
  300. package/esm/LinearPileupDisplay/components/GroupByDialog.js +111 -56
  301. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +2 -6
  302. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +1 -1
  303. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.js +2 -2
  304. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.js +2 -2
  305. package/esm/LinearPileupDisplay/components/SortByTagDialog.js +8 -6
  306. package/esm/LinearPileupDisplay/configSchema.d.ts +13 -16
  307. package/esm/LinearPileupDisplay/configSchema.js +12 -30
  308. package/esm/LinearPileupDisplay/index.d.ts +1 -1
  309. package/esm/LinearPileupDisplay/index.js +2 -2
  310. package/esm/LinearPileupDisplay/model.d.ts +121 -123
  311. package/esm/LinearPileupDisplay/model.js +111 -125
  312. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -1
  313. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +3 -7
  314. package/esm/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  315. package/esm/LinearReadArcsDisplay/configSchema.js +8 -31
  316. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  317. package/esm/LinearReadArcsDisplay/drawFeats.js +1 -9
  318. package/esm/LinearReadArcsDisplay/index.d.ts +1 -1
  319. package/esm/LinearReadArcsDisplay/index.js +1 -2
  320. package/esm/LinearReadArcsDisplay/model.d.ts +13 -90
  321. package/esm/LinearReadArcsDisplay/model.js +25 -113
  322. package/esm/LinearReadArcsDisplay/util.d.ts +1 -1
  323. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -1
  324. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +3 -7
  325. package/esm/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  326. package/esm/LinearReadCloudDisplay/configSchema.js +3 -28
  327. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  328. package/esm/LinearReadCloudDisplay/drawFeats.js +2 -2
  329. package/esm/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  330. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  331. package/esm/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  332. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -3
  333. package/esm/LinearReadCloudDisplay/index.d.ts +1 -1
  334. package/esm/LinearReadCloudDisplay/index.js +1 -2
  335. package/esm/LinearReadCloudDisplay/model.d.ts +14 -64
  336. package/esm/LinearReadCloudDisplay/model.js +24 -76
  337. package/esm/LinearReadCloudDisplay/util.js +0 -1
  338. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  339. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +50 -20
  340. package/esm/LinearSNPCoverageDisplay/{models/configSchema.d.ts → configSchema.d.ts} +17 -22
  341. package/esm/LinearSNPCoverageDisplay/{models/configSchema.js → configSchema.js} +16 -32
  342. package/esm/LinearSNPCoverageDisplay/index.d.ts +1 -1
  343. package/esm/LinearSNPCoverageDisplay/index.js +3 -3
  344. package/{dist/LinearSNPCoverageDisplay/models → esm/LinearSNPCoverageDisplay}/model.d.ts +9 -60
  345. package/esm/LinearSNPCoverageDisplay/{models/model.js → model.js} +69 -147
  346. package/esm/MismatchParser/cigarToMismatches.d.ts +3 -0
  347. package/esm/MismatchParser/cigarToMismatches.js +88 -0
  348. package/esm/MismatchParser/getNextRefPos.d.ts +4 -0
  349. package/esm/MismatchParser/getNextRefPos.js +35 -0
  350. package/esm/MismatchParser/index.d.ts +5 -30
  351. package/esm/MismatchParser/index.js +5 -325
  352. package/esm/MismatchParser/mdToMismatches.d.ts +3 -0
  353. package/esm/MismatchParser/mdToMismatches.js +71 -0
  354. package/esm/ModificationParser/index.d.ts +19 -0
  355. package/esm/ModificationParser/index.js +121 -0
  356. package/esm/PileupRPC/base.d.ts +2 -2
  357. package/esm/PileupRPC/base.js +0 -1
  358. package/esm/PileupRPC/index.d.ts +1 -1
  359. package/esm/PileupRPC/index.js +1 -1
  360. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  361. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +2 -4
  362. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +3 -4
  363. package/esm/PileupRPC/methods/GetReducedFeatures.js +21 -20
  364. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +4 -4
  365. package/esm/PileupRPC/methods/GetVisibleModifications.js +10 -7
  366. package/esm/PileupRPC/util.d.ts +1 -1
  367. package/esm/PileupRenderer/PileupLayoutSession.d.ts +12 -11
  368. package/esm/PileupRenderer/PileupLayoutSession.js +2 -5
  369. package/esm/PileupRenderer/PileupRenderer.d.ts +11 -29
  370. package/esm/PileupRenderer/PileupRenderer.js +19 -22
  371. package/esm/PileupRenderer/colorBy.d.ts +2 -2
  372. package/esm/PileupRenderer/colorBy.js +1 -7
  373. package/esm/PileupRenderer/components/PileupRendering.d.ts +1 -1
  374. package/esm/PileupRenderer/components/PileupRendering.js +1 -4
  375. package/esm/PileupRenderer/configSchema.d.ts +0 -31
  376. package/esm/PileupRenderer/configSchema.js +1 -35
  377. package/esm/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  378. package/esm/PileupRenderer/getAlignmentShapeColor.js +2 -7
  379. package/esm/PileupRenderer/index.d.ts +1 -1
  380. package/esm/PileupRenderer/index.js +1 -1
  381. package/esm/PileupRenderer/layoutFeature.d.ts +2 -2
  382. package/esm/PileupRenderer/layoutFeature.js +0 -1
  383. package/esm/PileupRenderer/layoutFeatures.d.ts +5 -2
  384. package/esm/PileupRenderer/layoutFeatures.js +7 -5
  385. package/esm/PileupRenderer/makeImageData.d.ts +3 -4
  386. package/esm/PileupRenderer/makeImageData.js +8 -2
  387. package/esm/PileupRenderer/renderAlignment.d.ts +3 -3
  388. package/esm/PileupRenderer/renderAlignment.js +19 -8
  389. package/esm/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  390. package/esm/PileupRenderer/renderAlignmentShape.js +102 -21
  391. package/esm/PileupRenderer/renderMethylation.d.ts +6 -5
  392. package/esm/PileupRenderer/renderMethylation.js +13 -9
  393. package/esm/PileupRenderer/renderMismatches.d.ts +3 -3
  394. package/esm/PileupRenderer/renderMismatches.js +17 -28
  395. package/esm/PileupRenderer/renderModifications.d.ts +6 -5
  396. package/esm/PileupRenderer/renderModifications.js +29 -34
  397. package/esm/PileupRenderer/renderPerBaseLettering.d.ts +4 -3
  398. package/esm/PileupRenderer/renderPerBaseLettering.js +1 -4
  399. package/esm/PileupRenderer/renderPerBaseQuality.d.ts +4 -3
  400. package/esm/PileupRenderer/renderPerBaseQuality.js +3 -5
  401. package/esm/PileupRenderer/renderSoftClipping.d.ts +5 -5
  402. package/esm/PileupRenderer/renderSoftClipping.js +7 -11
  403. package/esm/PileupRenderer/sortUtil.d.ts +3 -8
  404. package/esm/PileupRenderer/sortUtil.js +13 -16
  405. package/esm/PileupRenderer/types.d.ts +26 -0
  406. package/esm/PileupRenderer/types.js +1 -0
  407. package/esm/PileupRenderer/util.d.ts +2 -2
  408. package/esm/PileupRenderer/util.js +1 -3
  409. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  410. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +15 -12
  411. package/esm/SNPCoverageAdapter/configSchema.d.ts +0 -4
  412. package/esm/SNPCoverageAdapter/configSchema.js +1 -8
  413. package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +11 -11
  414. package/esm/SNPCoverageAdapter/generateCoverageBins.js +73 -192
  415. package/esm/SNPCoverageAdapter/index.d.ts +1 -1
  416. package/esm/SNPCoverageAdapter/processDepth.d.ts +8 -0
  417. package/esm/SNPCoverageAdapter/processDepth.js +35 -0
  418. package/esm/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  419. package/esm/SNPCoverageAdapter/processMismatches.js +55 -0
  420. package/esm/SNPCoverageAdapter/processModifications.d.ts +10 -0
  421. package/esm/SNPCoverageAdapter/processModifications.js +46 -0
  422. package/esm/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  423. package/esm/SNPCoverageAdapter/processReferenceCpGs.js +60 -0
  424. package/esm/SNPCoverageAdapter/util.d.ts +9 -24
  425. package/esm/SNPCoverageAdapter/util.js +35 -1
  426. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +6 -4
  427. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +167 -74
  428. package/esm/SNPCoverageRenderer/configSchema.d.ts +0 -15
  429. package/esm/SNPCoverageRenderer/configSchema.js +1 -19
  430. package/esm/SNPCoverageRenderer/index.d.ts +1 -1
  431. package/esm/SNPCoverageRenderer/index.js +2 -2
  432. package/esm/index.d.ts +2 -2
  433. package/esm/index.js +10 -10
  434. package/esm/shared/afterAttach.d.ts +1 -1
  435. package/esm/shared/afterAttach.js +0 -2
  436. package/esm/shared/color.d.ts +1 -11
  437. package/esm/shared/color.js +0 -14
  438. package/{dist/shared → esm/shared/components}/BaseDisplayComponent.d.ts +2 -2
  439. package/esm/shared/{BaseDisplayComponent.js → components/BaseDisplayComponent.js} +12 -11
  440. package/{dist/shared → esm/shared/components}/FilterByTagDialog.d.ts +3 -3
  441. package/esm/shared/{FilterByTagDialog.js → components/FilterByTagDialog.js} +7 -3
  442. package/esm/shared/fetchChains.d.ts +2 -2
  443. package/esm/shared/fetchChains.js +2 -4
  444. package/esm/shared/getMaximumModificationAtEachPosition.d.ts +8 -0
  445. package/esm/shared/getMaximumModificationAtEachPosition.js +38 -0
  446. package/esm/shared/getUniqueModifications.d.ts +14 -0
  447. package/esm/shared/getUniqueModifications.js +13 -0
  448. package/esm/shared/getUniqueTags.d.ts +15 -0
  449. package/esm/shared/getUniqueTags.js +15 -0
  450. package/esm/shared/{renderSvg.js → renderSvgUtil.js} +0 -2
  451. package/esm/shared/types.d.ts +94 -0
  452. package/esm/shared/types.js +1 -0
  453. package/esm/shared/util.d.ts +19 -1
  454. package/esm/shared/util.js +47 -0
  455. package/esm/util.d.ts +10 -7
  456. package/esm/util.js +24 -34
  457. package/package.json +4 -5
  458. package/dist/LinearPileupDisplay/components/ColorByModificationsDialog.d.ts +0 -15
  459. package/dist/LinearPileupDisplay/components/ColorByModificationsDialog.js +0 -41
  460. package/dist/LinearPileupDisplay/components/ModificationsTable.d.ts +0 -4
  461. package/dist/LinearPileupDisplay/components/ModificationsTable.js +0 -28
  462. package/dist/shared/index.d.ts +0 -49
  463. package/dist/shared/index.js +0 -41
  464. package/esm/LinearAlignmentsDisplay/models/configSchema.js +0 -33
  465. package/esm/LinearPileupDisplay/components/ColorByModificationsDialog.d.ts +0 -15
  466. package/esm/LinearPileupDisplay/components/ColorByModificationsDialog.js +0 -36
  467. package/esm/LinearPileupDisplay/components/ModificationsTable.d.ts +0 -4
  468. package/esm/LinearPileupDisplay/components/ModificationsTable.js +0 -22
  469. package/esm/shared/index.d.ts +0 -49
  470. package/esm/shared/index.js +0 -36
  471. /package/dist/LinearAlignmentsDisplay/{models/util.js → util.js} +0 -0
  472. /package/dist/shared/{renderSvg.d.ts → renderSvgUtil.d.ts} +0 -0
  473. /package/esm/LinearAlignmentsDisplay/{models/util.js → util.js} +0 -0
  474. /package/esm/shared/{renderSvg.d.ts → renderSvgUtil.d.ts} +0 -0
@@ -1,76 +1,27 @@
1
- // locals
2
- import { getClip, getMismatches } from '../MismatchParser';
1
+ import { getMismatches } from '../MismatchParser';
2
+ import { cacheGetter } from '../shared/util';
3
3
  export default class BamSlightlyLazyFeature {
4
- // uses parameter properties to automatically create fields on the class
5
- // https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties
6
4
  constructor(record, adapter, ref) {
7
5
  this.record = record;
8
6
  this.adapter = adapter;
9
7
  this.ref = ref;
10
8
  }
11
- _get_name() {
12
- return this.record.get('name');
13
- }
14
- _get_type() {
15
- return 'match';
16
- }
17
- _get_score() {
18
- return this.record.get('mq');
19
- }
20
- _get_flags() {
21
- return this.record.flags;
22
- }
23
- _get_strand() {
24
- return this.record.isReverseComplemented() ? -1 : 1;
25
- }
26
- _get_pair_orientation() {
27
- return this.record.isPaired() ? this.record.getPairOrientation() : undefined;
28
- }
29
- _get_next_ref() {
30
- return this.record.isPaired()
31
- ? this.adapter.refIdToName(this.record._next_refid())
32
- : undefined;
33
- }
34
- _get_next_pos() {
35
- return this.record.isPaired() ? this.record._next_pos() : undefined;
36
- }
37
- _get_next_segment_position() {
38
- return this.record.isPaired()
39
- ? `${this.adapter.refIdToName(this.record._next_refid())}:${this.record._next_pos() + 1}`
40
- : undefined;
41
- }
42
- _get_seq() {
43
- return this.record.getReadBases();
44
- }
45
- qualRaw() {
46
- return this.record.qualRaw();
9
+ id() {
10
+ return `${this.adapter.id}-${this.record.id}`;
47
11
  }
48
- set() { }
49
- tags() {
50
- const properties = Object.getOwnPropertyNames(BamSlightlyLazyFeature.prototype);
51
- return [
52
- ...new Set(properties
53
- .filter(prop => prop.startsWith('_get_') &&
54
- prop !== '_get_mismatches' &&
55
- prop !== '_get_tags')
56
- .map(methodName => methodName.replace('_get_', ''))
57
- .concat(this.record._tags())),
58
- ];
12
+ get mismatches() {
13
+ return getMismatches(this.record.CIGAR, this.record.tags.MD, this.record.seq, this.ref, this.record.qual);
59
14
  }
60
- id() {
61
- return `${this.adapter.id}-${this.record.id()}`;
15
+ get qual() {
16
+ var _a;
17
+ return (_a = this.record.qual) === null || _a === void 0 ? void 0 : _a.join(' ');
62
18
  }
63
19
  get(field) {
64
- const methodName = `_get_${field}`;
65
- // @ts-expect-error
66
- if (this[methodName]) {
67
- // @ts-expect-error
68
- return this[methodName]();
69
- }
70
- return this.record.get(field);
71
- }
72
- _get_refName() {
73
- return this.adapter.refIdToName(this.record.seq_id());
20
+ return field === 'mismatches'
21
+ ? this.mismatches
22
+ : field === 'qual'
23
+ ? this.qual
24
+ : this.fields[field];
74
25
  }
75
26
  parent() {
76
27
  return undefined;
@@ -78,22 +29,38 @@ export default class BamSlightlyLazyFeature {
78
29
  children() {
79
30
  return undefined;
80
31
  }
81
- pairedFeature() {
82
- return false;
83
- }
84
- toJSON() {
32
+ get fields() {
33
+ const r = this.record;
34
+ const a = this.adapter;
35
+ const p = r.isPaired();
85
36
  return {
86
- ...Object.fromEntries(this.tags()
87
- .map(t => [t, this.get(t)])
88
- .filter(elt => elt[1] !== undefined)),
37
+ start: r.start,
38
+ name: r.name,
39
+ end: r.end,
40
+ score: r.score,
41
+ strand: r.strand,
42
+ template_length: r.template_length,
43
+ flags: r.flags,
44
+ tags: r.tags,
45
+ refName: a.refIdToName(r.ref_id),
46
+ CIGAR: r.CIGAR,
47
+ seq: r.seq,
48
+ type: 'match',
49
+ pair_orientation: r.pair_orientation,
50
+ next_ref: p ? a.refIdToName(r.next_refid) : undefined,
51
+ next_pos: p ? r.next_pos : undefined,
52
+ next_segment_position: p
53
+ ? `${a.refIdToName(r.next_refid)}:${r.next_pos + 1}`
54
+ : undefined,
89
55
  uniqueId: this.id(),
90
56
  };
91
57
  }
92
- _get_mismatches() {
93
- return getMismatches(this.get('CIGAR'), this.get('MD'), this.get('seq'), this.ref, this.qualRaw());
94
- }
95
- _get_clipPos() {
96
- const cigar = this.get('CIGAR') || '';
97
- return getClip(cigar, this.get('strand'));
58
+ toJSON() {
59
+ return {
60
+ ...this.fields,
61
+ qual: this.qual,
62
+ };
98
63
  }
99
64
  }
65
+ cacheGetter(BamSlightlyLazyFeature, 'fields');
66
+ cacheGetter(BamSlightlyLazyFeature, 'mismatches');
@@ -1,7 +1,4 @@
1
1
  declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- /**
3
- * #slot
4
- */
5
2
  bamLocation: {
6
3
  type: string;
7
4
  defaultValue: {
@@ -10,17 +7,11 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
10
7
  };
11
8
  };
12
9
  index: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
13
- /**
14
- * #slot index.indexType
15
- */
16
10
  indexType: {
17
11
  model: import("mobx-state-tree").ISimpleType<string>;
18
12
  type: string;
19
13
  defaultValue: string;
20
14
  };
21
- /**
22
- * #slot index.location
23
- */
24
15
  location: {
25
16
  type: string;
26
17
  defaultValue: {
@@ -29,19 +20,11 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
29
20
  };
30
21
  };
31
22
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
32
- /**
33
- * #slot
34
- */
35
23
  fetchSizeLimit: {
36
24
  type: string;
37
25
  description: string;
38
26
  defaultValue: number;
39
27
  };
40
- /**
41
- * #slot
42
- * generally refers to the reference genome assembly's sequence adapter
43
- * currently needs to be manually added
44
- */
45
28
  sequenceAdapter: {
46
29
  type: string;
47
30
  description: string;
@@ -1,30 +1,17 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
2
  import { types } from 'mobx-state-tree';
3
- /**
4
- * #config BamAdapter
5
- * used to configure BAM adapter
6
- */
7
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
3
+ function x() { }
8
4
  const configSchema = ConfigurationSchema('BamAdapter', {
9
- /**
10
- * #slot
11
- */
12
5
  bamLocation: {
13
6
  type: 'fileLocation',
14
7
  defaultValue: { uri: '/path/to/my.bam', locationType: 'UriLocation' },
15
8
  },
16
9
  index: ConfigurationSchema('BamIndex', {
17
- /**
18
- * #slot index.indexType
19
- */
20
10
  indexType: {
21
11
  model: types.enumeration('IndexType', ['BAI', 'CSI']),
22
12
  type: 'stringEnum',
23
13
  defaultValue: 'BAI',
24
14
  },
25
- /**
26
- * #slot index.location
27
- */
28
15
  location: {
29
16
  type: 'fileLocation',
30
17
  defaultValue: {
@@ -33,19 +20,11 @@ const configSchema = ConfigurationSchema('BamAdapter', {
33
20
  },
34
21
  },
35
22
  }),
36
- /**
37
- * #slot
38
- */
39
23
  fetchSizeLimit: {
40
24
  type: 'number',
41
25
  description: 'size to fetch in bytes over which to display a warning to the user that too much data will be fetched',
42
26
  defaultValue: 5000000,
43
27
  },
44
- /**
45
- * #slot
46
- * generally refers to the reference genome assembly's sequence adapter
47
- * currently needs to be manually added
48
- */
49
28
  sequenceAdapter: {
50
29
  type: 'frozen',
51
30
  description: 'sequence data adapter, used to calculate SNPs when BAM reads lacking MD tags',
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function BamAdapterF(pluginManager: PluginManager): void;
@@ -1,8 +1,10 @@
1
- import { IndexedCramFile, CramRecord } from '@gmod/cram';
2
- import { BaseFeatureDataAdapter, BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
3
- import { Region, Feature } from '@jbrowse/core/util';
1
+ import { IndexedCramFile } from '@gmod/cram';
2
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
4
3
  import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
5
- import { IFilter } from '../shared';
4
+ import type { FilterBy } from '../shared/types';
5
+ import type { CramRecord } from '@gmod/cram';
6
+ import type { BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
7
+ import type { Feature, Region } from '@jbrowse/core/util';
6
8
  interface Header {
7
9
  idToName?: string[];
8
10
  nameToId?: Record<string, number>;
@@ -12,6 +14,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
12
14
  samHeader: Header;
13
15
  private setupP?;
14
16
  private configureP?;
17
+ private ultraLongFeatureCache;
15
18
  private seqIdToRefName;
16
19
  private seqIdToOriginalRefName;
17
20
  configurePre(): Promise<{
@@ -33,7 +36,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
33
36
  getFeatures(region: Region & {
34
37
  originalRefName?: string;
35
38
  }, opts?: BaseOptions & {
36
- filterBy: IFilter;
39
+ filterBy: FilterBy;
37
40
  }): import("rxjs").Observable<Feature>;
38
41
  freeResources(): void;
39
42
  cramRecordToFeature(record: CramRecord): CramSlightlyLazyFeature;
@@ -41,11 +44,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
41
44
  bytes: number;
42
45
  fetchSizeLimit: any;
43
46
  }>;
44
- /**
45
- * get the approximate number of bytes queried from the file for the given
46
- * query regions
47
- * @param regions - list of query regions
48
- */
49
47
  private bytesForRegions;
50
48
  }
51
49
  export {};
@@ -1,17 +1,21 @@
1
1
  import { CraiIndex, IndexedCramFile } from '@gmod/cram';
2
- import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
3
- import { checkAbortSignal, updateStatus, toLocale, } from '@jbrowse/core/util';
2
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import { toLocale, updateStatus } from '@jbrowse/core/util';
4
+ import QuickLRU from '@jbrowse/core/util/QuickLRU';
4
5
  import { openLocation } from '@jbrowse/core/util/io';
5
6
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
6
- import { toArray } from 'rxjs/operators';
7
+ import { checkStopToken } from '@jbrowse/core/util/stopToken';
7
8
  import { firstValueFrom } from 'rxjs';
8
- // locals
9
+ import { toArray } from 'rxjs/operators';
9
10
  import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
11
+ import { filterReadFlag, filterTagValue } from '../shared/util';
10
12
  export default class CramAdapter extends BaseFeatureDataAdapter {
11
13
  constructor() {
12
14
  super(...arguments);
13
15
  this.samHeader = {};
14
- // maps a seqId to original refname, passed specially to render args, to a seqid
16
+ this.ultraLongFeatureCache = new QuickLRU({
17
+ maxSize: 500,
18
+ });
15
19
  this.seqIdToOriginalRefName = [];
16
20
  }
17
21
  async configurePre() {
@@ -51,7 +55,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
51
55
  return cram.cram.getHeaderText();
52
56
  }
53
57
  async seqFetch(seqId, start, end) {
54
- start -= 1; // convert from 1-based closed to interbase
58
+ start -= 1;
55
59
  const { sequenceAdapter } = await this.configure();
56
60
  const refName = this.refIdToOriginalName(seqId) || this.refIdToName(seqId);
57
61
  if (!refName) {
@@ -89,8 +93,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
89
93
  const conf = await this.configure();
90
94
  const { cram } = conf;
91
95
  const samHeader = await cram.cram.getSamHeader();
92
- // use the @SQ lines in the header to figure out the
93
- // mapping between ref ID numbers and names
94
96
  const idToName = [];
95
97
  const nameToId = {};
96
98
  samHeader
@@ -127,8 +129,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
127
129
  }
128
130
  return samHeader.idToName;
129
131
  }
130
- // use info from the SAM header if possible, but fall back to using
131
- // the ref seq order from when the browser's refseqs were loaded
132
132
  refNameToId(refName) {
133
133
  if (this.samHeader.nameToId) {
134
134
  return this.samHeader.nameToId[refName];
@@ -138,8 +138,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
138
138
  }
139
139
  return undefined;
140
140
  }
141
- // use info from the SAM header if possible, but fall back to using
142
- // the ref seq order from when the browser's refseqs were loaded
143
141
  refIdToName(refId) {
144
142
  var _a, _b;
145
143
  return ((_a = this.samHeader.idToName) === null || _a === void 0 ? void 0 : _a[refId]) || ((_b = this.seqIdToRefName) === null || _b === void 0 ? void 0 : _b[refId]);
@@ -148,7 +146,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
148
146
  return this.seqIdToOriginalRefName[refId];
149
147
  }
150
148
  getFeatures(region, opts) {
151
- const { signal, filterBy, statusCallback = () => { } } = opts || {};
149
+ const { stopToken, filterBy, statusCallback = () => { } } = opts || {};
152
150
  const { refName, start, end, originalRefName } = region;
153
151
  return ObservableCreate(async (observer) => {
154
152
  const { cram, samHeader } = await this.setup(opts);
@@ -162,40 +160,41 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
162
160
  this.seqIdToOriginalRefName[refId] = originalRefName;
163
161
  }
164
162
  const records = await updateStatus('Downloading alignments', statusCallback, () => cram.getRecordsForRange(refId, start, end));
165
- checkAbortSignal(signal);
163
+ checkStopToken(stopToken);
166
164
  await updateStatus('Processing alignments', statusCallback, () => {
167
165
  var _a;
168
166
  const { flagInclude = 0, flagExclude = 0, tagFilter, readName, } = filterBy || {};
169
167
  for (const record of records) {
170
- const flags = record.flags;
171
- if ((flags & flagInclude) !== flagInclude && !(flags & flagExclude)) {
168
+ if (filterReadFlag(record.flags, flagInclude, flagExclude)) {
172
169
  continue;
173
170
  }
174
- if (tagFilter) {
175
- const readVal = tagFilter.tag === 'RG'
171
+ if (tagFilter &&
172
+ filterTagValue(tagFilter.tag === 'RG'
176
173
  ? (_a = samHeader.readGroups) === null || _a === void 0 ? void 0 : _a[record.readGroupId]
177
- : record.tags[tagFilter.tag];
178
- const filterVal = tagFilter.value;
179
- if (filterVal === '*'
180
- ? readVal !== undefined
181
- : `${readVal}` !== `${filterVal}`) {
182
- continue;
183
- }
174
+ : record.tags[tagFilter.tag], tagFilter.value)) {
175
+ continue;
184
176
  }
185
177
  if (readName && record.readName !== readName) {
186
178
  continue;
187
179
  }
188
- observer.next(this.cramRecordToFeature(record));
180
+ const ret = this.ultraLongFeatureCache.get(`${record.uniqueId}`);
181
+ if (!ret) {
182
+ const elt = this.cramRecordToFeature(record);
183
+ this.ultraLongFeatureCache.set(`${record.uniqueId}`, elt);
184
+ observer.next(elt);
185
+ }
186
+ else {
187
+ observer.next(ret);
188
+ }
189
189
  }
190
190
  observer.complete();
191
191
  });
192
- }, signal);
192
+ }, stopToken);
193
193
  }
194
- freeResources( /* { region } */) { }
194
+ freeResources() { }
195
195
  cramRecordToFeature(record) {
196
196
  return new CramSlightlyLazyFeature(record, this);
197
197
  }
198
- // we return the configured fetchSizeLimit, and the bytes for the region
199
198
  async getMultiRegionFeatureDensityStats(regions, opts) {
200
199
  const bytes = await this.bytesForRegions(regions, opts);
201
200
  const fetchSizeLimit = this.getConf('fetchSizeLimit');
@@ -204,11 +203,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
204
203
  fetchSizeLimit,
205
204
  };
206
205
  }
207
- /**
208
- * get the approximate number of bytes queried from the file for the given
209
- * query regions
210
- * @param regions - list of query regions
211
- */
212
206
  async bytesForRegions(regions, _opts) {
213
207
  const { cram } = await this.configure();
214
208
  const blockResults = await Promise.all(regions.map(region => {
@@ -1,39 +1,33 @@
1
- import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
2
- import { CramRecord } from '@gmod/cram';
3
- import CramAdapter from './CramAdapter';
1
+ import type CramAdapter from './CramAdapter';
2
+ import type { CramRecord } from '@gmod/cram';
3
+ import type { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util';
4
4
  export default class CramSlightlyLazyFeature implements Feature {
5
5
  private record;
6
6
  private _store;
7
7
  constructor(record: CramRecord, _store: CramAdapter);
8
- _get_name(): string | undefined;
9
- _get_start(): number;
10
- _get_end(): number;
11
- _get_cram_read_features(): import("@gmod/cram/dist/cramFile/record").ReadFeature[] | undefined;
12
- _get_type(): string;
13
- _get_score(): number | undefined;
14
- _get_flags(): number;
15
- _get_strand(): 1 | -1;
16
- _read_group_id(): string | undefined;
17
- _get_qual(): string;
18
- qualRaw(): number[] | null | undefined;
19
- _get_refName(): string | undefined;
20
- _get_is_paired(): boolean;
21
- _get_pair_orientation(): string | null | undefined;
22
- _get_template_length(): number | undefined;
23
- _get_next_ref(): string | undefined;
24
- _get_next_segment_position(): string | undefined;
25
- _get_next_pos(): number | undefined;
26
- _get_tags(): Record<string, string>;
27
- _get_seq(): string | null | undefined;
28
- _get_CIGAR(): string;
29
- tags(): string[];
8
+ get name(): string | undefined;
9
+ get start(): number;
10
+ get end(): number;
11
+ get score(): number | undefined;
12
+ get flags(): number;
13
+ get strand(): 1 | -1;
14
+ get qual(): string;
15
+ get qualRaw(): number[] | null | undefined;
16
+ get refName(): string;
17
+ get pair_orientation(): string | null | undefined;
18
+ get template_length(): number | undefined;
19
+ get next_ref(): string | undefined;
20
+ get next_segment_position(): string | undefined;
21
+ get is_paired(): boolean;
22
+ get next_pos(): number | undefined;
23
+ get tags(): Record<string, string>;
24
+ get seq(): string | null | undefined;
25
+ get CIGAR(): string;
30
26
  id(): string;
31
27
  get(field: string): any;
32
28
  parent(): undefined;
33
29
  children(): undefined;
34
- set(): void;
35
- pairedFeature(): boolean;
36
- _get_clipPos(): any;
30
+ get mismatches(): import("../shared/types").Mismatch[];
31
+ get fields(): SimpleFeatureSerialized;
37
32
  toJSON(): SimpleFeatureSerialized;
38
- _get_mismatches(): import("./util").Mismatch[];
39
33
  }