@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,7 +1,7 @@
1
1
  import React, { useState } from 'react';
2
- import { observer } from 'mobx-react';
3
- import { Button, DialogActions, DialogContent, Link, Paper, TextField, Typography, } from '@mui/material';
4
2
  import { Dialog } from '@jbrowse/core/ui';
3
+ import { Button, DialogActions, DialogContent, Link, Paper, TextField, Typography, } from '@mui/material';
4
+ import { observer } from 'mobx-react';
5
5
  import { makeStyles } from 'tss-react/mui';
6
6
  const useStyles = makeStyles()(theme => ({
7
7
  paper: {
@@ -78,7 +78,11 @@ const FilterByTagDialog = observer(function (props) {
78
78
  React.createElement(Typography, null, "Filter by tag name and value. Use * in the value field to get all reads containing any value for that tag. Example: filter tag name SA with value * to get all split/supplementary reads. Other examples include HP for haplotype, or RG for read group"),
79
79
  React.createElement(TextField, { className: classes.field, value: tag, onChange: event => {
80
80
  setTag(event.target.value);
81
- }, placeholder: "Enter tag name", inputProps: { maxLength: 2 }, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '' }),
81
+ }, placeholder: "Enter tag name", error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', slotProps: {
82
+ htmlInput: {
83
+ maxLength: 2,
84
+ },
85
+ } }),
82
86
  React.createElement(TextField, { className: classes.field, value: tagValue, onChange: event => {
83
87
  setTagValue(event.target.value);
84
88
  }, placeholder: "Enter tag value" })),
@@ -1,5 +1,5 @@
1
- import { LinearReadArcsDisplayModel } from '../LinearReadArcsDisplay/model';
2
- import { LinearReadCloudDisplayModel } from '../LinearReadCloudDisplay/model';
1
+ import type { LinearReadArcsDisplayModel } from '../LinearReadArcsDisplay/model';
2
+ import type { LinearReadCloudDisplayModel } from '../LinearReadCloudDisplay/model';
3
3
  export interface ReducedFeature {
4
4
  name: string;
5
5
  strand: number;
@@ -1,18 +1,16 @@
1
1
  import { getContainingTrack, getContainingView, getSession, } from '@jbrowse/core/util';
2
- import { getSnapshot } from 'mobx-state-tree';
3
2
  export async function fetchChains(self) {
4
- // @ts-expect-error
5
3
  const { rpcSessionId: sessionId } = getContainingTrack(self);
6
4
  const { rpcManager } = getSession(self);
7
5
  const view = getContainingView(self);
8
- if (!view.initialized || self.error || self.regionTooLarge) {
6
+ if (!view.initialized || self.error || !self.statsReadyAndRegionNotTooLarge) {
9
7
  return;
10
8
  }
11
9
  self.setLoading(true);
12
10
  const ret = (await rpcManager.call(sessionId, 'PileupGetReducedFeatures', {
13
11
  sessionId,
14
12
  regions: view.staticBlocks.contentBlocks,
15
- filterBy: getSnapshot(self.filterBy),
13
+ filterBy: self.filterBy,
16
14
  adapterConfig: self.adapterConfig,
17
15
  }));
18
16
  self.setChainData(ret);
@@ -0,0 +1,8 @@
1
+ import type { Feature } from '@jbrowse/core/util';
2
+ interface MaximumProbabilityMod {
3
+ type: string;
4
+ prob: number;
5
+ allProbs: number[];
6
+ }
7
+ export declare function getMaxProbModAtEachPosition(feature: Feature, cigarOps?: string[]): MaximumProbabilityMod[] | undefined;
8
+ export {};
@@ -0,0 +1,38 @@
1
+ import { getNextRefPos, parseCigar } from '../MismatchParser';
2
+ import { getModPositions, getModProbabilities } from '../ModificationParser';
3
+ import { getTagAlt } from '../util';
4
+ export function getMaxProbModAtEachPosition(feature, cigarOps) {
5
+ const fstrand = feature.get('strand');
6
+ const seq = feature.get('seq');
7
+ const mm = getTagAlt(feature, 'MM', 'Mm') || '';
8
+ const ops = cigarOps || parseCigar(feature.get('CIGAR'));
9
+ if (seq) {
10
+ const modifications = getModPositions(mm, seq, fstrand);
11
+ const probabilities = getModProbabilities(feature);
12
+ const maxProbModForPosition = [];
13
+ let probIndex = 0;
14
+ for (const { type, positions } of modifications) {
15
+ for (const { ref, idx } of getNextRefPos(ops, positions)) {
16
+ const prob = (probabilities === null || probabilities === void 0 ? void 0 : probabilities[probIndex + (fstrand === -1 ? positions.length - 1 - idx : idx)]) || 0;
17
+ if (!maxProbModForPosition[ref]) {
18
+ maxProbModForPosition[ref] = {
19
+ type,
20
+ prob,
21
+ allProbs: [prob],
22
+ };
23
+ }
24
+ else {
25
+ const old = maxProbModForPosition[ref];
26
+ maxProbModForPosition[ref] = {
27
+ allProbs: [...old.allProbs, prob],
28
+ prob: Math.max(old.prob, prob),
29
+ type: old.prob > prob ? old.type : type,
30
+ };
31
+ }
32
+ }
33
+ probIndex += positions.length;
34
+ }
35
+ return maxProbModForPosition;
36
+ }
37
+ return undefined;
38
+ }
@@ -0,0 +1,14 @@
1
+ import type { ModificationType } from './types';
2
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
+ import type { BlockSet } from '@jbrowse/core/util/blockTypes';
4
+ import type { IAnyStateTreeNode } from 'mobx-state-tree';
5
+ export declare function getUniqueModifications({ self, adapterConfig, blocks, opts, }: {
6
+ self: IAnyStateTreeNode;
7
+ adapterConfig: AnyConfigurationModel;
8
+ blocks: BlockSet;
9
+ opts?: {
10
+ headers?: Record<string, string>;
11
+ stopToken?: string;
12
+ filters: string[];
13
+ };
14
+ }): Promise<ModificationType[]>;
@@ -0,0 +1,13 @@
1
+ import { getSession } from '@jbrowse/core/util';
2
+ import { getRpcSessionId } from '@jbrowse/core/util/tracks';
3
+ export async function getUniqueModifications({ self, adapterConfig, blocks, opts, }) {
4
+ const { rpcManager } = getSession(self);
5
+ const sessionId = getRpcSessionId(self);
6
+ const values = await rpcManager.call(sessionId, 'PileupGetVisibleModifications', {
7
+ adapterConfig,
8
+ sessionId,
9
+ regions: blocks.contentBlocks,
10
+ ...opts,
11
+ });
12
+ return values;
13
+ }
@@ -0,0 +1,15 @@
1
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ import type { BlockSet } from '@jbrowse/core/util/blockTypes';
3
+ import type { IAnyStateTreeNode } from 'mobx-state-tree';
4
+ export declare function getUniqueTags({ self, tag, blocks, opts, }: {
5
+ self: IAnyStateTreeNode & {
6
+ adapterConfig: AnyConfigurationModel;
7
+ };
8
+ tag: string;
9
+ blocks: BlockSet;
10
+ opts?: {
11
+ headers?: Record<string, string>;
12
+ stopToken?: string;
13
+ filters: string[];
14
+ };
15
+ }): Promise<string[]>;
@@ -0,0 +1,15 @@
1
+ import { getSession } from '@jbrowse/core/util';
2
+ import { getRpcSessionId } from '@jbrowse/core/util/tracks';
3
+ export async function getUniqueTags({ self, tag, blocks, opts, }) {
4
+ const { rpcManager } = getSession(self);
5
+ const { adapterConfig } = self;
6
+ const sessionId = getRpcSessionId(self);
7
+ const values = await rpcManager.call(getRpcSessionId(self), 'PileupGetGlobalValueForTag', {
8
+ adapterConfig,
9
+ tag,
10
+ sessionId,
11
+ regions: blocks.contentBlocks,
12
+ ...opts,
13
+ });
14
+ return values;
15
+ }
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { getContainingView } from '@jbrowse/core/util';
3
- // stabilize clipid under test for snapshot
4
3
  function getId(id) {
5
4
  const isJest = typeof jest === 'undefined';
6
5
  return `arc-clip-${isJest ? id : 'jest'}`;
@@ -22,7 +21,6 @@ export async function renderSvg(self, opts, cb) {
22
21
  return (React.createElement("image", { width: width, height: height, xlinkHref: canvas.toDataURL('image/png') }));
23
22
  }
24
23
  else {
25
- // @ts-ignore
26
24
  const C2S = await import('canvas2svg');
27
25
  const ctx = new C2S.default(width, height);
28
26
  cb(self, ctx, width, height);
@@ -0,0 +1,94 @@
1
+ export type SkipMap = Record<string, {
2
+ score: number;
3
+ feature: unknown;
4
+ start: number;
5
+ end: number;
6
+ strand: number;
7
+ effectiveStrand: number;
8
+ }>;
9
+ export interface BinEntry {
10
+ entryDepth: number;
11
+ '-1': number;
12
+ '0': number;
13
+ '1': number;
14
+ avgProbability?: number;
15
+ }
16
+ type BinType = Record<string, BinEntry>;
17
+ export interface BaseCoverageBin {
18
+ refbase?: string;
19
+ depth: number;
20
+ readsCounted: number;
21
+ ref: BinEntry;
22
+ snps: BinType;
23
+ mods: BinType;
24
+ nonmods: BinType;
25
+ delskips: BinType;
26
+ noncov: BinType;
27
+ }
28
+ export interface PreBinEntry {
29
+ entryDepth: number;
30
+ '-1': number;
31
+ '0': number;
32
+ '1': number;
33
+ probabilities: number[];
34
+ }
35
+ type PreBinType = Record<string, PreBinEntry>;
36
+ export interface PreBaseCoverageBin extends PreBaseCoverageBinSubtypes {
37
+ refbase?: string;
38
+ depth: number;
39
+ readsCounted: number;
40
+ ref: PreBinEntry;
41
+ }
42
+ export interface PreBaseCoverageBinSubtypes {
43
+ snps: PreBinType;
44
+ mods: PreBinType;
45
+ nonmods: PreBinType;
46
+ delskips: PreBinType;
47
+ noncov: PreBinType;
48
+ }
49
+ export interface ModificationType {
50
+ type: string;
51
+ base: string;
52
+ strand: string;
53
+ }
54
+ export interface ModificationTypeWithColor {
55
+ color: string;
56
+ type: string;
57
+ base: string;
58
+ strand: string;
59
+ }
60
+ export interface ColorBy {
61
+ type: string;
62
+ tag?: string;
63
+ modifications?: {
64
+ twoColor?: boolean;
65
+ isolatedModification?: string;
66
+ };
67
+ }
68
+ export interface FilterBy {
69
+ flagExclude: number;
70
+ flagInclude: number;
71
+ readName?: string;
72
+ tagFilter?: {
73
+ tag: string;
74
+ value?: string;
75
+ };
76
+ }
77
+ export interface SortedBy {
78
+ type: string;
79
+ pos: number;
80
+ refName: string;
81
+ assemblyName: string;
82
+ tag?: string;
83
+ }
84
+ export interface Mismatch {
85
+ qual?: number;
86
+ start: number;
87
+ length: number;
88
+ type: string;
89
+ base: string;
90
+ altbase?: string;
91
+ seq?: string;
92
+ cliplen?: number;
93
+ }
94
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,20 @@
1
- import { ChainData } from './fetchChains';
1
+ import type { ChainData } from './fetchChains';
2
2
  export declare function hasPairedReads(features: ChainData): boolean;
3
+ export declare function alphaColor(baseColor: string, p: number): string;
4
+ export declare const defaultFilterFlags: {
5
+ flagInclude: number;
6
+ flagExclude: number;
7
+ };
8
+ export declare const negFlags: {
9
+ flagInclude: number;
10
+ flagExclude: number;
11
+ };
12
+ export declare const posFlags: {
13
+ flagInclude: number;
14
+ flagExclude: number;
15
+ };
16
+ export declare function cacheGetter<T>(ctor: {
17
+ prototype: T;
18
+ }, prop: keyof T): void;
19
+ export declare function filterReadFlag(flags: number, flagInclude: number, flagExclude: number): boolean;
20
+ export declare function filterTagValue(readVal: unknown, filterVal?: string): boolean;
@@ -1,3 +1,4 @@
1
+ import { colord } from '@jbrowse/core/util/colord';
1
2
  export function hasPairedReads(features) {
2
3
  for (const f of features.chains.values()) {
3
4
  if (f[0].flags & 1) {
@@ -6,3 +7,49 @@ export function hasPairedReads(features) {
6
7
  }
7
8
  return false;
8
9
  }
10
+ export function alphaColor(baseColor, p) {
11
+ return p !== 1
12
+ ? colord(baseColor)
13
+ .alpha(p * p)
14
+ .toHslString()
15
+ : baseColor;
16
+ }
17
+ export const defaultFilterFlags = {
18
+ flagInclude: 0,
19
+ flagExclude: 1540,
20
+ };
21
+ export const negFlags = {
22
+ flagInclude: 16,
23
+ flagExclude: 1540,
24
+ };
25
+ export const posFlags = {
26
+ flagInclude: 0,
27
+ flagExclude: 1556,
28
+ };
29
+ export function cacheGetter(ctor, prop) {
30
+ const desc = Object.getOwnPropertyDescriptor(ctor.prototype, prop);
31
+ const getter = desc.get;
32
+ Object.defineProperty(ctor.prototype, prop, {
33
+ get() {
34
+ const ret = getter.call(this);
35
+ Object.defineProperty(this, prop, { value: ret });
36
+ return ret;
37
+ },
38
+ });
39
+ }
40
+ export function filterReadFlag(flags, flagInclude, flagExclude) {
41
+ if ((flags & flagInclude) !== flagInclude) {
42
+ return true;
43
+ }
44
+ else if (flags & flagExclude) {
45
+ return true;
46
+ }
47
+ else {
48
+ return false;
49
+ }
50
+ }
51
+ export function filterTagValue(readVal, filterVal) {
52
+ return filterVal === '*'
53
+ ? readVal === undefined
54
+ : `${readVal}` !== `${filterVal}`;
55
+ }
package/esm/util.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import { Feature, AugmentedRegion } from '@jbrowse/core/util';
3
- import { IAnyStateTreeNode } from 'mobx-state-tree';
4
- import { IAutorunOptions } from 'mobx';
5
- export declare function getTag(feature: Feature, tag: string): any;
1
+ import type { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import type { AugmentedRegion, Feature } from '@jbrowse/core/util';
3
+ import type { IAutorunOptions } from 'mobx';
4
+ import type { IAnyStateTreeNode } from 'mobx-state-tree';
6
5
  export declare function getTagAlt(feature: Feature, tag: string, alt: string): any;
7
6
  export declare const orientationTypes: {
8
7
  fr: Record<string, string>;
@@ -17,11 +16,15 @@ export declare const pairMap: {
17
16
  };
18
17
  export declare function getColorWGBS(strand: number, base: string): "#f00" | "#00f" | "#888";
19
18
  export declare function fetchSequence(region: AugmentedRegion, adapter: BaseFeatureDataAdapter): Promise<any>;
20
- export declare function shouldFetchReferenceSequence(type?: string): type is "methylation";
21
- export declare const modificationColors: Record<string, string>;
19
+ interface ModificationData {
20
+ color: string;
21
+ name: string;
22
+ }
23
+ export declare const modificationData: Record<string, ModificationData>;
22
24
  type DisplayModel = IAnyStateTreeNode & {
23
25
  setError: (arg: unknown) => void;
24
26
  };
25
27
  export declare function createAutorun(self: DisplayModel, cb: () => Promise<void>, opts?: IAutorunOptions): void;
26
28
  export declare function randomColor(str: string): string;
29
+ export declare function getColorForModification(str: string): string;
27
30
  export {};
package/esm/util.js CHANGED
@@ -1,21 +1,12 @@
1
- import { toArray } from 'rxjs/operators';
2
- import { firstValueFrom } from 'rxjs';
3
- import { addDisposer, isAlive } from 'mobx-state-tree';
4
1
  import { autorun } from 'mobx';
5
- // get tag from BAM or CRAM feature, where CRAM uses feature.get('tags') and
6
- // BAM does not
7
- export function getTag(feature, tag) {
8
- const tags = feature.get('tags');
9
- return tags !== undefined ? tags[tag] : feature.get(tag);
10
- }
11
- // use fallback alt tag, used in situations where upper case/lower case tags
12
- // exist e.g. Mm/MM for base modifications
2
+ import { addDisposer, isAlive } from 'mobx-state-tree';
3
+ import { firstValueFrom } from 'rxjs';
4
+ import { toArray } from 'rxjs/operators';
13
5
  export function getTagAlt(feature, tag, alt) {
14
6
  var _a;
15
- return (_a = getTag(feature, tag)) !== null && _a !== void 0 ? _a : getTag(feature, alt);
7
+ const tags = feature.get('tags');
8
+ return (_a = tags[tag]) !== null && _a !== void 0 ? _a : tags[alt];
16
9
  }
17
- // orientation definitions from igv.js, see also
18
- // https://software.broadinstitute.org/software/igv/interpreting_pair_orientations
19
10
  export const orientationTypes = {
20
11
  fr: {
21
12
  F1R2: 'LR',
@@ -73,8 +64,6 @@ export function getColorWGBS(strand, base) {
73
64
  }
74
65
  return '#888';
75
66
  }
76
- // fetches region sequence augmenting by +/- 1bp for CpG on either side of
77
- // requested region
78
67
  export async function fetchSequence(region, adapter) {
79
68
  var _a;
80
69
  const { start, end, originalRefName, refName } = region;
@@ -82,28 +71,25 @@ export async function fetchSequence(region, adapter) {
82
71
  .getFeatures({
83
72
  ...region,
84
73
  refName: originalRefName || refName,
85
- end: end + 1,
86
- start: Math.max(0, start - 1),
74
+ end,
75
+ start,
87
76
  })
88
77
  .pipe(toArray()));
89
78
  return (_a = feats[0]) === null || _a === void 0 ? void 0 : _a.get('seq');
90
79
  }
91
- // has to check underlying C-G (aka CpG) on the reference sequence
92
- export function shouldFetchReferenceSequence(type) {
93
- return type === 'methylation';
94
- }
95
- // adapted from IGV
96
- // https://github.com/igvteam/igv/blob/e803e3af2d8c9ea049961dfd4628146bdde9a574/src/main/java/org/broad/igv/sam/mods/BaseModificationColors.java#L27
97
- export const modificationColors = {
98
- m: 'rgb(255,0,0)',
99
- h: 'rgb(11, 132, 165)',
100
- o: 'rgb(111, 78, 129)',
101
- f: 'rgb(246, 200, 95)',
102
- c: 'rgb(157, 216, 102)',
103
- g: 'rgb(255, 160, 86)',
104
- e: 'rgb(141, 221, 208)',
105
- b: 'rgb(202, 71, 47)',
106
- a: 'hsl(136, 50%, 50%)',
80
+ export const modificationData = {
81
+ m: { color: 'rgb(255,0,0)', name: '5mC' },
82
+ h: { color: 'rgb(255,0,255)', name: '5hmC' },
83
+ o: { color: 'rgb(111, 78, 129)', name: '8oxoG' },
84
+ f: { color: 'rgb(246, 200, 95)', name: '5fC' },
85
+ c: { color: 'rgb(157, 216, 102)', name: '5cac' },
86
+ g: { color: 'rgb(255, 160, 86)', name: '5hmu' },
87
+ e: { color: 'rgb(141, 221, 208)', name: '5fU' },
88
+ b: { color: 'rgb(0,100,47)', name: '5caU' },
89
+ a: { color: 'rgb(51,0,111)', name: '6mA' },
90
+ 17082: { color: 'rgb(51,153,255)', name: 'pseU' },
91
+ 17596: { color: 'rgb(102,153,0)', name: 'inosine' },
92
+ 21839: { color: 'rgb(153,0,153)', name: '4mC' },
107
93
  };
108
94
  export function createAutorun(self, cb, opts) {
109
95
  addDisposer(self, autorun(async () => {
@@ -124,3 +110,7 @@ export function randomColor(str) {
124
110
  }
125
111
  return `hsl(${sum * 10}, 20%, 50%)`;
126
112
  }
113
+ export function getColorForModification(str) {
114
+ var _a;
115
+ return ((_a = modificationData[str]) === null || _a === void 0 ? void 0 : _a.color) || randomColor(str);
116
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-alignments",
3
- "version": "2.16.1",
3
+ "version": "2.18.0",
4
4
  "description": "JBrowse 2 alignments adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -36,12 +36,11 @@
36
36
  "clean": "rimraf dist esm *.tsbuildinfo"
37
37
  },
38
38
  "dependencies": {
39
- "@gmod/bam": "^2.0.0",
39
+ "@gmod/bam": "^4.0.1",
40
40
  "@gmod/cram": "^3.0.3",
41
- "@jbrowse/sv-core": "^2.16.1",
41
+ "@jbrowse/sv-core": "^2.18.0",
42
42
  "@mui/icons-material": "^6.0.0",
43
43
  "canvas2svg": "^1.0.16",
44
- "clone": "^2.1.2",
45
44
  "copy-to-clipboard": "^3.3.1",
46
45
  "fast-deep-equal": "^3.1.3",
47
46
  "generic-filehandle": "^3.0.0"
@@ -64,5 +63,5 @@
64
63
  "distModule": "esm/index.js",
65
64
  "srcModule": "src/index.ts",
66
65
  "module": "esm/index.js",
67
- "gitHead": "c6a658d2344989895543f0456b1cf7dd3b937769"
66
+ "gitHead": "c344ea60099cb7e460b77f15808946b24a7eee74"
68
67
  }
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import { ObservableMap } from 'mobx';
3
- declare const ColorByModificationsDialog: ({ model, handleClose, }: {
4
- model: {
5
- setColorScheme: (arg: {
6
- type: string;
7
- }) => void;
8
- modificationTagMap: ObservableMap<string, string>;
9
- colorBy?: {
10
- type: string;
11
- };
12
- };
13
- handleClose: () => void;
14
- }) => React.JSX.Element;
15
- export default ColorByModificationsDialog;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const mobx_react_1 = require("mobx-react");
8
- const material_1 = require("@mui/material");
9
- const ui_1 = require("@jbrowse/core/ui");
10
- const ModificationsTable_1 = __importDefault(require("./ModificationsTable"));
11
- const ColorByModificationsDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
12
- const { colorBy, modificationTagMap } = model;
13
- const modifications = [...modificationTagMap.entries()];
14
- return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: handleClose, title: "Color by modifications" },
15
- react_1.default.createElement(material_1.DialogContent, null,
16
- react_1.default.createElement(material_1.Typography, null, "You can choose to color the modifications in the BAM/CRAM MM/ML specification using this dialog. Choosing modifications colors the modified positions and can color multiple modification types. Choosing the methylation setting colors methylated and unmethylated CpG."),
17
- react_1.default.createElement(material_1.Typography, null, "Note: you can revisit this dialog to see the current mapping of colors to modification type for the modification coloring mode"),
18
- react_1.default.createElement("div", { style: { margin: 20 } },
19
- (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications' ? (react_1.default.createElement("div", null, modifications.length ? (react_1.default.createElement(react_1.default.Fragment, null,
20
- "Current modification-type-to-color mapping",
21
- react_1.default.createElement(ModificationsTable_1.default, { modifications: [...modificationTagMap.entries()] }))) : (react_1.default.createElement(react_1.default.Fragment, null,
22
- react_1.default.createElement(material_1.Typography, null, "Note: color by modifications is already enabled. Loading current modifications..."),
23
- react_1.default.createElement(material_1.CircularProgress, { size: 15 }))))) : null,
24
- (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'methylation' ? (react_1.default.createElement(ModificationsTable_1.default, { modifications: [
25
- ['methylated', 'red'],
26
- ['unmethylated', 'blue'],
27
- ] })) : null),
28
- react_1.default.createElement(material_1.DialogActions, null,
29
- react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => {
30
- model.setColorScheme({ type: 'modifications' });
31
- handleClose();
32
- } }, "Modifications"),
33
- react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => {
34
- model.setColorScheme({ type: 'methylation' });
35
- handleClose();
36
- } }, "Methylation"),
37
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
38
- handleClose();
39
- } }, "Cancel")))));
40
- });
41
- exports.default = ColorByModificationsDialog;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- export default function ModificationTable({ modifications, }: {
3
- modifications: [string, string | undefined][];
4
- }): React.JSX.Element;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = ModificationTable;
7
- const react_1 = __importDefault(require("react"));
8
- const mui_1 = require("tss-react/mui");
9
- const useStyles = (0, mui_1.makeStyles)()(theme => ({
10
- table: {
11
- border: '1px solid #888',
12
- margin: theme.spacing(4),
13
- '& td': {
14
- padding: theme.spacing(1),
15
- },
16
- },
17
- }));
18
- function ModificationTable({ modifications, }) {
19
- const { classes } = useStyles();
20
- return (react_1.default.createElement("table", { className: classes.table },
21
- react_1.default.createElement("tbody", null, modifications.map(([key, value]) => (react_1.default.createElement("tr", { key: key },
22
- react_1.default.createElement("td", null, key),
23
- react_1.default.createElement("td", null, value),
24
- react_1.default.createElement("td", { style: {
25
- width: '1em',
26
- background: value,
27
- } })))))));
28
- }
@@ -1,49 +0,0 @@
1
- import { IAnyStateTreeNode } from 'mobx-state-tree';
2
- import { BlockSet } from '@jbrowse/core/util/blockTypes';
3
- import { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
- export declare function getUniqueTagValues({ self, tag, blocks, opts, }: {
5
- self: IAnyStateTreeNode & {
6
- adapterConfig: AnyConfigurationModel;
7
- };
8
- tag: string;
9
- blocks: BlockSet;
10
- opts?: {
11
- headers?: Record<string, string>;
12
- signal?: AbortSignal;
13
- filters: string[];
14
- };
15
- }): Promise<string[]>;
16
- type Track = IAnyStateTreeNode & {
17
- configuration: AnyConfigurationModel;
18
- };
19
- export declare function getUniqueModificationValues({ self, adapterConfig, blocks, opts, }: {
20
- self: IAnyStateTreeNode & {
21
- parentTrack: Track;
22
- };
23
- adapterConfig: AnyConfigurationModel;
24
- blocks: BlockSet;
25
- opts?: {
26
- headers?: Record<string, string>;
27
- signal?: AbortSignal;
28
- filters: string[];
29
- };
30
- }): Promise<string[]>;
31
- export declare const FilterModel: import("mobx-state-tree").IModelType<{
32
- flagInclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
33
- flagExclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
34
- readName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
35
- tagFilter: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
36
- tag: import("mobx-state-tree").ISimpleType<string>;
37
- value: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
38
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
39
- }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
40
- export interface IFilter {
41
- flagExclude: number;
42
- flagInclude: number;
43
- readName?: string;
44
- tagFilter?: {
45
- tag: string;
46
- value?: string;
47
- };
48
- }
49
- export {};