@jbrowse/plugin-alignments 2.17.0 → 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 (445) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +6 -12
  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 +0 -4
  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 +2 -2
  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 +6 -5
  32. package/dist/BamAdapter/BamAdapter.js +21 -39
  33. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -3
  34. package/dist/BamAdapter/BamSlightlyLazyFeature.js +0 -3
  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 +6 -9
  39. package/dist/CramAdapter/CramAdapter.js +18 -41
  40. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +3 -3
  41. package/dist/CramAdapter/CramSlightlyLazyFeature.js +0 -17
  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 -2
  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/alignmentsModel.d.ts +2 -5
  57. package/dist/LinearAlignmentsDisplay/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/configSchema.d.ts +2 -16
  61. package/dist/LinearAlignmentsDisplay/configSchema.js +3 -20
  62. package/dist/LinearAlignmentsDisplay/index.d.ts +1 -1
  63. package/dist/LinearAlignmentsDisplay/index.js +1 -2
  64. package/dist/LinearAlignmentsDisplay/model.d.ts +6 -75
  65. package/dist/LinearAlignmentsDisplay/model.js +5 -78
  66. package/dist/LinearAlignmentsDisplay/util.d.ts +1 -1
  67. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +31 -157
  68. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +34 -133
  69. package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +2 -2
  70. package/dist/LinearPileupDisplay/components/GroupByDialog.d.ts +2 -2
  71. package/dist/LinearPileupDisplay/components/GroupByDialog.js +109 -56
  72. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +2 -6
  73. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +1 -1
  74. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.js +2 -2
  75. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.js +2 -2
  76. package/dist/LinearPileupDisplay/components/SortByTagDialog.js +2 -2
  77. package/dist/LinearPileupDisplay/configSchema.d.ts +13 -16
  78. package/dist/LinearPileupDisplay/configSchema.js +12 -30
  79. package/dist/LinearPileupDisplay/index.d.ts +1 -1
  80. package/dist/LinearPileupDisplay/index.js +2 -2
  81. package/dist/LinearPileupDisplay/model.d.ts +103 -105
  82. package/dist/LinearPileupDisplay/model.js +10 -101
  83. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -1
  84. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +2 -6
  85. package/dist/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  86. package/dist/LinearReadArcsDisplay/configSchema.js +8 -31
  87. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  88. package/dist/LinearReadArcsDisplay/drawFeats.js +1 -9
  89. package/dist/LinearReadArcsDisplay/index.d.ts +1 -1
  90. package/dist/LinearReadArcsDisplay/index.js +1 -2
  91. package/dist/LinearReadArcsDisplay/model.d.ts +15 -93
  92. package/dist/LinearReadArcsDisplay/model.js +17 -104
  93. package/dist/LinearReadArcsDisplay/util.d.ts +1 -1
  94. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -1
  95. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +2 -6
  96. package/dist/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  97. package/dist/LinearReadCloudDisplay/configSchema.js +3 -28
  98. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  99. package/dist/LinearReadCloudDisplay/drawFeats.js +2 -2
  100. package/dist/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  101. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  102. package/dist/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  103. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -3
  104. package/dist/LinearReadCloudDisplay/index.d.ts +1 -1
  105. package/dist/LinearReadCloudDisplay/index.js +1 -2
  106. package/dist/LinearReadCloudDisplay/model.d.ts +13 -55
  107. package/dist/LinearReadCloudDisplay/model.js +17 -68
  108. package/dist/LinearReadCloudDisplay/util.js +0 -1
  109. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  110. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +1 -1
  111. package/dist/LinearSNPCoverageDisplay/configSchema.d.ts +17 -22
  112. package/dist/LinearSNPCoverageDisplay/configSchema.js +16 -32
  113. package/dist/LinearSNPCoverageDisplay/index.d.ts +1 -1
  114. package/dist/LinearSNPCoverageDisplay/index.js +1 -2
  115. package/dist/LinearSNPCoverageDisplay/model.d.ts +9 -50
  116. package/dist/LinearSNPCoverageDisplay/model.js +20 -124
  117. package/dist/MismatchParser/cigarToMismatches.d.ts +1 -1
  118. package/dist/MismatchParser/cigarToMismatches.js +4 -7
  119. package/dist/MismatchParser/getNextRefPos.js +0 -2
  120. package/dist/MismatchParser/index.d.ts +2 -2
  121. package/dist/MismatchParser/index.js +1 -9
  122. package/dist/MismatchParser/mdToMismatches.d.ts +2 -2
  123. package/dist/MismatchParser/mdToMismatches.js +0 -6
  124. package/dist/ModificationParser/index.d.ts +1 -1
  125. package/dist/ModificationParser/index.js +1 -18
  126. package/dist/PileupRPC/base.d.ts +2 -2
  127. package/dist/PileupRPC/base.js +0 -1
  128. package/dist/PileupRPC/index.d.ts +1 -1
  129. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  130. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
  131. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +2 -3
  132. package/dist/PileupRPC/methods/GetReducedFeatures.js +3 -5
  133. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +3 -4
  134. package/dist/PileupRPC/methods/GetVisibleModifications.js +1 -1
  135. package/dist/PileupRPC/util.d.ts +1 -1
  136. package/dist/PileupRenderer/PileupLayoutSession.d.ts +5 -5
  137. package/dist/PileupRenderer/PileupLayoutSession.js +2 -5
  138. package/dist/PileupRenderer/PileupRenderer.d.ts +10 -20
  139. package/dist/PileupRenderer/PileupRenderer.js +11 -16
  140. package/dist/PileupRenderer/colorBy.d.ts +2 -2
  141. package/dist/PileupRenderer/colorBy.js +0 -6
  142. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
  143. package/dist/PileupRenderer/components/PileupRendering.js +0 -3
  144. package/dist/PileupRenderer/configSchema.d.ts +0 -31
  145. package/dist/PileupRenderer/configSchema.js +1 -35
  146. package/dist/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  147. package/dist/PileupRenderer/getAlignmentShapeColor.js +1 -6
  148. package/dist/PileupRenderer/index.d.ts +1 -1
  149. package/dist/PileupRenderer/index.js +1 -1
  150. package/dist/PileupRenderer/layoutFeature.d.ts +2 -2
  151. package/dist/PileupRenderer/layoutFeature.js +0 -1
  152. package/dist/PileupRenderer/layoutFeatures.d.ts +5 -2
  153. package/dist/PileupRenderer/layoutFeatures.js +6 -4
  154. package/dist/PileupRenderer/makeImageData.d.ts +3 -4
  155. package/dist/PileupRenderer/makeImageData.js +8 -2
  156. package/dist/PileupRenderer/renderAlignment.d.ts +3 -3
  157. package/dist/PileupRenderer/renderAlignment.js +3 -5
  158. package/dist/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  159. package/dist/PileupRenderer/renderAlignmentShape.js +1 -1
  160. package/dist/PileupRenderer/renderMethylation.d.ts +4 -4
  161. package/dist/PileupRenderer/renderMethylation.js +0 -4
  162. package/dist/PileupRenderer/renderMismatches.d.ts +3 -3
  163. package/dist/PileupRenderer/renderMismatches.js +1 -12
  164. package/dist/PileupRenderer/renderModifications.d.ts +3 -3
  165. package/dist/PileupRenderer/renderModifications.js +1 -3
  166. package/dist/PileupRenderer/renderPerBaseLettering.d.ts +2 -2
  167. package/dist/PileupRenderer/renderPerBaseLettering.js +0 -1
  168. package/dist/PileupRenderer/renderPerBaseQuality.d.ts +2 -2
  169. package/dist/PileupRenderer/renderPerBaseQuality.js +2 -2
  170. package/dist/PileupRenderer/renderSoftClipping.d.ts +5 -5
  171. package/dist/PileupRenderer/renderSoftClipping.js +0 -4
  172. package/dist/PileupRenderer/sortUtil.d.ts +2 -2
  173. package/dist/PileupRenderer/sortUtil.js +1 -4
  174. package/dist/PileupRenderer/types.d.ts +26 -0
  175. package/dist/PileupRenderer/types.js +2 -0
  176. package/dist/PileupRenderer/util.d.ts +2 -2
  177. package/dist/PileupRenderer/util.js +1 -3
  178. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  179. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +4 -6
  180. package/dist/SNPCoverageAdapter/configSchema.d.ts +0 -4
  181. package/dist/SNPCoverageAdapter/configSchema.js +1 -8
  182. package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +4 -8
  183. package/dist/SNPCoverageAdapter/generateCoverageBins.js +25 -247
  184. package/dist/SNPCoverageAdapter/index.d.ts +1 -1
  185. package/dist/SNPCoverageAdapter/processDepth.d.ts +8 -0
  186. package/dist/SNPCoverageAdapter/processDepth.js +38 -0
  187. package/dist/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  188. package/dist/SNPCoverageAdapter/processMismatches.js +58 -0
  189. package/dist/SNPCoverageAdapter/processModifications.d.ts +10 -0
  190. package/dist/SNPCoverageAdapter/processModifications.js +49 -0
  191. package/dist/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  192. package/dist/SNPCoverageAdapter/processReferenceCpGs.js +63 -0
  193. package/dist/SNPCoverageAdapter/util.d.ts +10 -0
  194. package/dist/SNPCoverageAdapter/util.js +41 -0
  195. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +5 -4
  196. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +14 -38
  197. package/dist/SNPCoverageRenderer/configSchema.d.ts +0 -15
  198. package/dist/SNPCoverageRenderer/configSchema.js +1 -19
  199. package/dist/SNPCoverageRenderer/index.d.ts +1 -1
  200. package/dist/SNPCoverageRenderer/index.js +2 -2
  201. package/dist/index.d.ts +2 -2
  202. package/dist/index.js +12 -12
  203. package/dist/shared/afterAttach.d.ts +1 -1
  204. package/dist/shared/afterAttach.js +0 -2
  205. package/dist/shared/color.d.ts +1 -1
  206. package/dist/shared/color.js +0 -8
  207. package/dist/shared/components/BaseDisplayComponent.d.ts +2 -2
  208. package/dist/shared/components/BaseDisplayComponent.js +12 -11
  209. package/dist/shared/components/FilterByTagDialog.d.ts +1 -1
  210. package/dist/shared/components/FilterByTagDialog.js +2 -2
  211. package/dist/shared/fetchChains.d.ts +2 -2
  212. package/dist/shared/fetchChains.js +1 -2
  213. package/dist/shared/getMaximumModificationAtEachPosition.d.ts +1 -1
  214. package/dist/shared/getMaximumModificationAtEachPosition.js +1 -2
  215. package/dist/shared/getUniqueModifications.d.ts +5 -5
  216. package/dist/shared/getUniqueTags.d.ts +4 -4
  217. package/dist/shared/renderSvgUtil.js +0 -2
  218. package/dist/shared/util.d.ts +11 -1
  219. package/dist/shared/util.js +27 -1
  220. package/dist/util.d.ts +4 -4
  221. package/dist/util.js +3 -9
  222. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -1
  223. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +6 -12
  224. package/esm/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  225. package/esm/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  226. package/esm/AlignmentsFeatureDetail/Flags.js +2 -2
  227. package/esm/AlignmentsFeatureDetail/Formatter.js +0 -3
  228. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +3 -5
  229. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +5 -10
  230. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +3 -5
  231. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +37 -36
  232. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +2 -2
  233. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +3 -4
  234. package/esm/AlignmentsFeatureDetail/PairLink.d.ts +1 -1
  235. package/esm/AlignmentsFeatureDetail/PairLink.js +0 -1
  236. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +2 -2
  237. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +5 -6
  238. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -1
  239. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +2 -6
  240. package/esm/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  241. package/esm/AlignmentsFeatureDetail/getSAFeatures.js +0 -4
  242. package/esm/AlignmentsFeatureDetail/index.d.ts +1 -1
  243. package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  244. package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +2 -2
  245. package/esm/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  246. package/esm/AlignmentsFeatureDetail/tagInfo.js +1 -1
  247. package/esm/AlignmentsFeatureDetail/util.d.ts +1 -1
  248. package/esm/AlignmentsTrack/configSchemaF.d.ts +1 -1
  249. package/esm/AlignmentsTrack/configSchemaF.js +1 -8
  250. package/esm/AlignmentsTrack/index.d.ts +1 -1
  251. package/esm/AlignmentsTrack/index.js +0 -3
  252. package/esm/BamAdapter/BamAdapter.d.ts +6 -5
  253. package/esm/BamAdapter/BamAdapter.js +19 -37
  254. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -3
  255. package/esm/BamAdapter/BamSlightlyLazyFeature.js +0 -3
  256. package/esm/BamAdapter/configSchema.d.ts +0 -17
  257. package/esm/BamAdapter/configSchema.js +1 -22
  258. package/esm/BamAdapter/index.d.ts +1 -1
  259. package/esm/CramAdapter/CramAdapter.d.ts +6 -9
  260. package/esm/CramAdapter/CramAdapter.js +17 -40
  261. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +3 -3
  262. package/esm/CramAdapter/CramSlightlyLazyFeature.js +0 -17
  263. package/esm/CramAdapter/CramTestAdapters.d.ts +3 -3
  264. package/esm/CramAdapter/CramTestAdapters.js +4 -5
  265. package/esm/CramAdapter/configSchema.d.ts +0 -14
  266. package/esm/CramAdapter/configSchema.js +1 -19
  267. package/esm/CramAdapter/index.d.ts +1 -1
  268. package/esm/CramAdapter/index.js +0 -1
  269. package/esm/CramAdapter/util.d.ts +2 -2
  270. package/esm/CramAdapter/util.js +1 -24
  271. package/esm/GuessAlignmentsTypes/index.d.ts +1 -1
  272. package/esm/GuessAlignmentsTypes/index.js +1 -1
  273. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  274. package/esm/HtsgetBamAdapter/configSchema.d.ts +0 -9
  275. package/esm/HtsgetBamAdapter/configSchema.js +1 -14
  276. package/esm/HtsgetBamAdapter/index.d.ts +1 -1
  277. package/esm/HtsgetBamAdapter/index.js +1 -1
  278. package/esm/LinearAlignmentsDisplay/alignmentsModel.d.ts +2 -5
  279. package/esm/LinearAlignmentsDisplay/alignmentsModel.js +1 -31
  280. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  281. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +2 -2
  282. package/esm/LinearAlignmentsDisplay/configSchema.d.ts +2 -16
  283. package/esm/LinearAlignmentsDisplay/configSchema.js +3 -20
  284. package/esm/LinearAlignmentsDisplay/index.d.ts +1 -1
  285. package/esm/LinearAlignmentsDisplay/index.js +1 -2
  286. package/esm/LinearAlignmentsDisplay/model.d.ts +6 -75
  287. package/esm/LinearAlignmentsDisplay/model.js +6 -79
  288. package/esm/LinearAlignmentsDisplay/util.d.ts +1 -1
  289. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +31 -157
  290. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +36 -135
  291. package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +2 -2
  292. package/esm/LinearPileupDisplay/components/GroupByDialog.d.ts +2 -2
  293. package/esm/LinearPileupDisplay/components/GroupByDialog.js +109 -56
  294. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +2 -6
  295. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +1 -1
  296. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.js +2 -2
  297. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.js +2 -2
  298. package/esm/LinearPileupDisplay/components/SortByTagDialog.js +2 -2
  299. package/esm/LinearPileupDisplay/configSchema.d.ts +13 -16
  300. package/esm/LinearPileupDisplay/configSchema.js +12 -30
  301. package/esm/LinearPileupDisplay/index.d.ts +1 -1
  302. package/esm/LinearPileupDisplay/index.js +2 -2
  303. package/esm/LinearPileupDisplay/model.d.ts +103 -105
  304. package/esm/LinearPileupDisplay/model.js +11 -102
  305. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -1
  306. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +2 -6
  307. package/esm/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  308. package/esm/LinearReadArcsDisplay/configSchema.js +8 -31
  309. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  310. package/esm/LinearReadArcsDisplay/drawFeats.js +1 -9
  311. package/esm/LinearReadArcsDisplay/index.d.ts +1 -1
  312. package/esm/LinearReadArcsDisplay/index.js +1 -2
  313. package/esm/LinearReadArcsDisplay/model.d.ts +15 -93
  314. package/esm/LinearReadArcsDisplay/model.js +18 -105
  315. package/esm/LinearReadArcsDisplay/util.d.ts +1 -1
  316. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -1
  317. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +2 -6
  318. package/esm/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  319. package/esm/LinearReadCloudDisplay/configSchema.js +3 -28
  320. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  321. package/esm/LinearReadCloudDisplay/drawFeats.js +2 -2
  322. package/esm/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  323. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  324. package/esm/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  325. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -3
  326. package/esm/LinearReadCloudDisplay/index.d.ts +1 -1
  327. package/esm/LinearReadCloudDisplay/index.js +1 -2
  328. package/esm/LinearReadCloudDisplay/model.d.ts +13 -55
  329. package/esm/LinearReadCloudDisplay/model.js +17 -68
  330. package/esm/LinearReadCloudDisplay/util.js +0 -1
  331. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  332. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +1 -1
  333. package/esm/LinearSNPCoverageDisplay/configSchema.d.ts +17 -22
  334. package/esm/LinearSNPCoverageDisplay/configSchema.js +16 -32
  335. package/esm/LinearSNPCoverageDisplay/index.d.ts +1 -1
  336. package/esm/LinearSNPCoverageDisplay/index.js +1 -2
  337. package/esm/LinearSNPCoverageDisplay/model.d.ts +9 -50
  338. package/esm/LinearSNPCoverageDisplay/model.js +21 -125
  339. package/esm/MismatchParser/cigarToMismatches.d.ts +1 -1
  340. package/esm/MismatchParser/cigarToMismatches.js +4 -7
  341. package/esm/MismatchParser/getNextRefPos.js +0 -2
  342. package/esm/MismatchParser/index.d.ts +2 -2
  343. package/esm/MismatchParser/index.js +1 -9
  344. package/esm/MismatchParser/mdToMismatches.d.ts +2 -2
  345. package/esm/MismatchParser/mdToMismatches.js +0 -6
  346. package/esm/ModificationParser/index.d.ts +1 -1
  347. package/esm/ModificationParser/index.js +1 -18
  348. package/esm/PileupRPC/base.d.ts +2 -2
  349. package/esm/PileupRPC/base.js +0 -1
  350. package/esm/PileupRPC/index.d.ts +1 -1
  351. package/esm/PileupRPC/index.js +1 -1
  352. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  353. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
  354. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +2 -3
  355. package/esm/PileupRPC/methods/GetReducedFeatures.js +3 -5
  356. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +3 -4
  357. package/esm/PileupRPC/methods/GetVisibleModifications.js +1 -1
  358. package/esm/PileupRPC/util.d.ts +1 -1
  359. package/esm/PileupRenderer/PileupLayoutSession.d.ts +5 -5
  360. package/esm/PileupRenderer/PileupLayoutSession.js +2 -5
  361. package/esm/PileupRenderer/PileupRenderer.d.ts +10 -20
  362. package/esm/PileupRenderer/PileupRenderer.js +12 -17
  363. package/esm/PileupRenderer/colorBy.d.ts +2 -2
  364. package/esm/PileupRenderer/colorBy.js +1 -7
  365. package/esm/PileupRenderer/components/PileupRendering.d.ts +1 -1
  366. package/esm/PileupRenderer/components/PileupRendering.js +1 -4
  367. package/esm/PileupRenderer/configSchema.d.ts +0 -31
  368. package/esm/PileupRenderer/configSchema.js +1 -35
  369. package/esm/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  370. package/esm/PileupRenderer/getAlignmentShapeColor.js +2 -7
  371. package/esm/PileupRenderer/index.d.ts +1 -1
  372. package/esm/PileupRenderer/index.js +1 -1
  373. package/esm/PileupRenderer/layoutFeature.d.ts +2 -2
  374. package/esm/PileupRenderer/layoutFeature.js +0 -1
  375. package/esm/PileupRenderer/layoutFeatures.d.ts +5 -2
  376. package/esm/PileupRenderer/layoutFeatures.js +7 -5
  377. package/esm/PileupRenderer/makeImageData.d.ts +3 -4
  378. package/esm/PileupRenderer/makeImageData.js +8 -2
  379. package/esm/PileupRenderer/renderAlignment.d.ts +3 -3
  380. package/esm/PileupRenderer/renderAlignment.js +3 -5
  381. package/esm/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  382. package/esm/PileupRenderer/renderAlignmentShape.js +1 -1
  383. package/esm/PileupRenderer/renderMethylation.d.ts +4 -4
  384. package/esm/PileupRenderer/renderMethylation.js +0 -4
  385. package/esm/PileupRenderer/renderMismatches.d.ts +3 -3
  386. package/esm/PileupRenderer/renderMismatches.js +1 -12
  387. package/esm/PileupRenderer/renderModifications.d.ts +3 -3
  388. package/esm/PileupRenderer/renderModifications.js +1 -3
  389. package/esm/PileupRenderer/renderPerBaseLettering.d.ts +2 -2
  390. package/esm/PileupRenderer/renderPerBaseLettering.js +0 -1
  391. package/esm/PileupRenderer/renderPerBaseQuality.d.ts +2 -2
  392. package/esm/PileupRenderer/renderPerBaseQuality.js +2 -2
  393. package/esm/PileupRenderer/renderSoftClipping.d.ts +5 -5
  394. package/esm/PileupRenderer/renderSoftClipping.js +1 -5
  395. package/esm/PileupRenderer/sortUtil.d.ts +2 -2
  396. package/esm/PileupRenderer/sortUtil.js +1 -4
  397. package/esm/PileupRenderer/types.d.ts +26 -0
  398. package/esm/PileupRenderer/types.js +1 -0
  399. package/esm/PileupRenderer/util.d.ts +2 -2
  400. package/esm/PileupRenderer/util.js +1 -3
  401. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  402. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +5 -7
  403. package/esm/SNPCoverageAdapter/configSchema.d.ts +0 -4
  404. package/esm/SNPCoverageAdapter/configSchema.js +1 -8
  405. package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +4 -8
  406. package/esm/SNPCoverageAdapter/generateCoverageBins.js +24 -246
  407. package/esm/SNPCoverageAdapter/index.d.ts +1 -1
  408. package/esm/SNPCoverageAdapter/processDepth.d.ts +8 -0
  409. package/esm/SNPCoverageAdapter/processDepth.js +35 -0
  410. package/esm/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  411. package/esm/SNPCoverageAdapter/processMismatches.js +55 -0
  412. package/esm/SNPCoverageAdapter/processModifications.d.ts +10 -0
  413. package/esm/SNPCoverageAdapter/processModifications.js +46 -0
  414. package/esm/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  415. package/esm/SNPCoverageAdapter/processReferenceCpGs.js +60 -0
  416. package/esm/SNPCoverageAdapter/util.d.ts +10 -0
  417. package/esm/SNPCoverageAdapter/util.js +35 -0
  418. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +5 -4
  419. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +16 -40
  420. package/esm/SNPCoverageRenderer/configSchema.d.ts +0 -15
  421. package/esm/SNPCoverageRenderer/configSchema.js +1 -19
  422. package/esm/SNPCoverageRenderer/index.d.ts +1 -1
  423. package/esm/SNPCoverageRenderer/index.js +2 -2
  424. package/esm/index.d.ts +2 -2
  425. package/esm/index.js +10 -10
  426. package/esm/shared/afterAttach.d.ts +1 -1
  427. package/esm/shared/afterAttach.js +0 -2
  428. package/esm/shared/color.d.ts +1 -1
  429. package/esm/shared/color.js +0 -8
  430. package/esm/shared/components/BaseDisplayComponent.d.ts +2 -2
  431. package/esm/shared/components/BaseDisplayComponent.js +12 -11
  432. package/esm/shared/components/FilterByTagDialog.d.ts +1 -1
  433. package/esm/shared/components/FilterByTagDialog.js +2 -2
  434. package/esm/shared/fetchChains.d.ts +2 -2
  435. package/esm/shared/fetchChains.js +1 -2
  436. package/esm/shared/getMaximumModificationAtEachPosition.d.ts +1 -1
  437. package/esm/shared/getMaximumModificationAtEachPosition.js +1 -2
  438. package/esm/shared/getUniqueModifications.d.ts +5 -5
  439. package/esm/shared/getUniqueTags.d.ts +4 -4
  440. package/esm/shared/renderSvgUtil.js +0 -2
  441. package/esm/shared/util.d.ts +11 -1
  442. package/esm/shared/util.js +24 -0
  443. package/esm/util.d.ts +4 -4
  444. package/esm/util.js +3 -9
  445. package/package.json +3 -4
@@ -1,13 +1,11 @@
1
- import { createJBrowseTheme } from '@jbrowse/core/ui';
2
- import { featureSpanPx, bpSpanPx } from '@jbrowse/core/util';
3
1
  import { readConfObject } from '@jbrowse/core/configuration';
4
- import { getOrigin, getScale, WiggleBaseRenderer, YSCALEBAR_LABEL_OFFSET, } from '@jbrowse/plugin-wiggle';
2
+ import { createJBrowseTheme } from '@jbrowse/core/ui';
3
+ import { bpSpanPx, featureSpanPx } from '@jbrowse/core/util';
4
+ import { checkStopToken } from '@jbrowse/core/util/stopToken';
5
+ import { WiggleBaseRenderer, YSCALEBAR_LABEL_OFFSET, getOrigin, getScale, } from '@jbrowse/plugin-wiggle';
5
6
  import { alphaColor } from '../shared/util';
6
- // width/height of the triangle above e.g. insertion indicators
7
7
  const INTERBASE_INDICATOR_WIDTH = 7;
8
8
  const INTERBASE_INDICATOR_HEIGHT = 4.5;
9
- // minimum read depth to draw the insertion indicators, below this the
10
- // 'statistical significance' is low
11
9
  const MINIMUM_INTERBASE_INDICATOR_READ_DEPTH = 7;
12
10
  const complementBase = {
13
11
  C: 'G',
@@ -17,22 +15,16 @@ const complementBase = {
17
15
  };
18
16
  const fudgeFactor = 0.6;
19
17
  export default class SNPCoverageRenderer extends WiggleBaseRenderer {
20
- // note: the snps are drawn on linear scale even if the data is drawn in log
21
- // scape hence the two different scales being used
22
18
  async draw(ctx, props) {
23
19
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
24
- const { features, regions, bpPerPx, colorBy, displayCrossHatches, visibleModifications = {}, scaleOpts, height: unadjustedHeight, theme: configTheme, config: cfg, ticks, } = props;
20
+ const { features, regions, bpPerPx, colorBy, displayCrossHatches, visibleModifications = {}, scaleOpts, height: unadjustedHeight, theme: configTheme, config: cfg, ticks, stopToken, } = props;
25
21
  const theme = createJBrowseTheme(configTheme);
26
22
  const region = regions[0];
27
23
  const width = (region.end - region.start) / bpPerPx;
28
- // the adjusted height takes into account YSCALEBAR_LABEL_OFFSET from the
29
- // wiggle display, and makes the height of the actual drawn area add
30
- // "padding" to the top and bottom of the display
31
24
  const offset = YSCALEBAR_LABEL_OFFSET;
32
25
  const height = unadjustedHeight - offset * 2;
33
26
  const opts = { ...scaleOpts, range: [0, height] };
34
27
  const viewScale = getScale(opts);
35
- // clipping and insertion indicators, uses a smaller height/2 scale
36
28
  const indicatorViewScale = getScale({
37
29
  ...opts,
38
30
  range: [0, height / 2],
@@ -44,10 +36,8 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
44
36
  const drawInterbaseCounts = readConfObject(cfg, 'drawInterbaseCounts');
45
37
  const drawArcs = readConfObject(cfg, 'drawArcs');
46
38
  const drawIndicators = readConfObject(cfg, 'drawIndicators');
47
- // get the y coordinate that we are plotting at, this can be log scale
48
39
  const toY = (n) => height - (viewScale(n) || 0) + offset;
49
40
  const toHeight = (n) => toY(originY) - toY(n);
50
- // used specifically for indicator
51
41
  const toY2 = (n) => height - (indicatorViewScale(n) || 0) + offset;
52
42
  const toHeight2 = (n) => toY2(originLinear) - toY2(n);
53
43
  const { bases } = theme.palette;
@@ -65,9 +55,8 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
65
55
  cpg_unmeth: 'blue',
66
56
  };
67
57
  const feats = [...features.values()];
68
- // Use two pass rendering, which helps in visualizing the SNPs at higher
69
- // bpPerPx First pass: draw the gray background
70
58
  ctx.fillStyle = colorForBase.total;
59
+ let start = performance.now();
71
60
  for (const feature of feats) {
72
61
  if (feature.get('type') === 'skip') {
73
62
  continue;
@@ -76,29 +65,22 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
76
65
  const w = rightPx - leftPx + fudgeFactor;
77
66
  const score = feature.get('score');
78
67
  ctx.fillRect(leftPx, toY(score), w, toHeight(score));
68
+ if (performance.now() - start > 400) {
69
+ checkStopToken(stopToken);
70
+ start = performance.now();
71
+ }
79
72
  }
80
- // Keep track of previous total which we will use it to draw the interbase
81
- // indicator (if there is a sudden clip, there will be no read coverage but
82
- // there will be "clip" coverage) at that position beyond the read.
83
- //
84
- // if the clip is right at a block boundary then prevTotal will not be
85
- // available, so this is a best attempt to plot interbase indicator at the
86
- // "cliffs"
87
73
  let prevTotal = 0;
88
- // extraHorizontallyFlippedOffset is used to draw interbase items, which
89
- // are located to the left when forward and right when reversed
90
74
  const extraHorizontallyFlippedOffset = region.reversed ? 1 / bpPerPx : 0;
91
- // @ts-expect-error
92
75
  const drawingModifications = (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications';
93
- // @ts-expect-error
94
76
  const drawingMethylation = (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'methylation';
95
- const isolatedModification =
96
- // @ts-expect-error
97
- (_a = colorBy === null || colorBy === void 0 ? void 0 : colorBy.modifications) === null || _a === void 0 ? void 0 : _a.isolatedModification;
98
- // Second pass: draw the SNP data, and add a minimum feature width of 1px
99
- // which can be wider than the actual bpPerPx This reduces overdrawing of
100
- // the grey background over the SNPs
77
+ const isolatedModification = (_a = colorBy === null || colorBy === void 0 ? void 0 : colorBy.modifications) === null || _a === void 0 ? void 0 : _a.isolatedModification;
78
+ start = performance.now();
101
79
  for (const feature of feats) {
80
+ const now = performance.now();
81
+ if (now - start > 400) {
82
+ checkStopToken(stopToken);
83
+ }
102
84
  if (feature.get('type') === 'skip') {
103
85
  continue;
104
86
  }
@@ -121,8 +103,6 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
121
103
  continue;
122
104
  }
123
105
  const cmp = complementBase[mod.base];
124
- // this approach is inspired from the 'simplex' approach in igv
125
- // https://github.com/igvteam/igv/blob/af07c3b1be8806cfd77343ee04982aeff17d2beb/src/main/java/org/broad/igv/sam/mods/BaseModificationCoverageRenderer.java#L51
126
106
  const detectable = mod.base === 'N'
127
107
  ? score0
128
108
  : (((_c = snps[mod.base]) === null || _c === void 0 ? void 0 : _c.entryDepth) || 0) +
@@ -155,8 +135,6 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
155
135
  continue;
156
136
  }
157
137
  const cmp = complementBase[mod.base];
158
- // this approach is inspired from the 'simplex' approach in igv
159
- // https://github.com/igvteam/igv/blob/af07c3b1be8806cfd77343ee04982aeff17d2beb/src/main/java/org/broad/igv/sam/mods/BaseModificationCoverageRenderer.java#L51
160
138
  const detectable = mod.base === 'N'
161
139
  ? score0
162
140
  : (((_g = snps[mod.base]) === null || _g === void 0 ? void 0 : _g.entryDepth) || 0) +
@@ -235,8 +213,6 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
235
213
  maxBase = base;
236
214
  }
237
215
  }
238
- // avoid drawing a bunch of indicators if coverage is very low. note:
239
- // also uses the prev total in the case of the "cliff"
240
216
  const indicatorComparatorScore = Math.max(score0, prevTotal);
241
217
  if (accum > indicatorComparatorScore * indicatorThreshold &&
242
218
  indicatorComparatorScore > MINIMUM_INTERBASE_INDICATOR_READ_DEPTH) {
@@ -1,39 +1,24 @@
1
1
  declare const SNPCoverageRenderer: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- /**
3
- * #slot
4
- */
5
2
  clipColor: {
6
3
  type: string;
7
4
  description: string;
8
5
  defaultValue: string;
9
6
  };
10
- /**
11
- * #slot
12
- */
13
7
  indicatorThreshold: {
14
8
  type: string;
15
9
  description: string;
16
10
  defaultValue: number;
17
11
  };
18
- /**
19
- * #slot
20
- */
21
12
  drawArcs: {
22
13
  type: string;
23
14
  description: string;
24
15
  defaultValue: boolean;
25
16
  };
26
- /**
27
- * #slot
28
- */
29
17
  drawInterbaseCounts: {
30
18
  type: string;
31
19
  description: string;
32
20
  defaultValue: boolean;
33
21
  };
34
- /**
35
- * #slot
36
- */
37
22
  drawIndicators: {
38
23
  type: string;
39
24
  description: string;
@@ -1,44 +1,26 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
- /**
3
- * #config SNPCoverageRenderer
4
- */
5
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
2
+ function x() { }
6
3
  const SNPCoverageRenderer = ConfigurationSchema('SNPCoverageRenderer', {
7
- /**
8
- * #slot
9
- */
10
4
  clipColor: {
11
5
  type: 'color',
12
6
  description: 'the color of the clipping marker',
13
7
  defaultValue: 'red',
14
8
  },
15
- /**
16
- * #slot
17
- */
18
9
  indicatorThreshold: {
19
10
  type: 'number',
20
11
  description: 'the proportion of reads containing a insertion/clip indicator',
21
12
  defaultValue: 0.4,
22
13
  },
23
- /**
24
- * #slot
25
- */
26
14
  drawArcs: {
27
15
  type: 'boolean',
28
16
  description: 'Draw sashimi-style arcs for intron features',
29
17
  defaultValue: true,
30
18
  },
31
- /**
32
- * #slot
33
- */
34
19
  drawInterbaseCounts: {
35
20
  type: 'boolean',
36
21
  description: 'draw count "upsidedown histogram" of the interbase events that don\'t contribute to the coverage count so are not drawn in the normal histogram',
37
22
  defaultValue: true,
38
23
  },
39
- /**
40
- * #slot
41
- */
42
24
  drawIndicators: {
43
25
  type: 'boolean',
44
26
  description: 'draw a triangular indicator where an event has been detected',
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function register(pluginManager: PluginManager): void;
@@ -1,6 +1,6 @@
1
- import configSchema from './configSchema';
2
- import SNPCoverageRenderer from './SNPCoverageRenderer';
3
1
  import { WiggleRendering } from '@jbrowse/plugin-wiggle';
2
+ import SNPCoverageRenderer from './SNPCoverageRenderer';
3
+ import configSchema from './configSchema';
4
4
  export default function register(pluginManager) {
5
5
  pluginManager.addRendererType(() => new SNPCoverageRenderer({
6
6
  name: 'SNPCoverageRenderer',
package/esm/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import Plugin from '@jbrowse/core/Plugin';
2
- import PluginManager from '@jbrowse/core/PluginManager';
2
+ import type PluginManager from '@jbrowse/core/PluginManager';
3
3
  export default class AlignmentsPlugin extends Plugin {
4
4
  name: string;
5
5
  install(pluginManager: PluginManager): void;
6
6
  }
7
- export { linearPileupDisplayStateModelFactory, linearPileupDisplayConfigSchemaFactory, SharedLinearPileupDisplayMixin, } from './LinearPileupDisplay';
7
+ export { SharedLinearPileupDisplayMixin, linearPileupDisplayConfigSchemaFactory, linearPileupDisplayStateModelFactory, } from './LinearPileupDisplay';
8
8
  export { type LinearPileupDisplayModel } from './LinearPileupDisplay/model';
9
9
  export * as MismatchParser from './MismatchParser';
package/esm/index.js CHANGED
@@ -1,19 +1,19 @@
1
1
  import Plugin from '@jbrowse/core/Plugin';
2
- import BamAdapterF from './CramAdapter';
2
+ import AlignmentsFeatureWidgetF from './AlignmentsFeatureDetail';
3
+ import AlignmentsTrackF from './AlignmentsTrack';
3
4
  import CramAdapterF from './BamAdapter';
5
+ import BamAdapterF from './CramAdapter';
6
+ import GuessAlignmentsTypesF from './GuessAlignmentsTypes';
4
7
  import HtsgetBamAdapterF from './HtsgetBamAdapter';
5
- import SNPCoverageAdapterF from './SNPCoverageAdapter';
6
- import SNPCoverageRendererF from './SNPCoverageRenderer';
7
- import PileupRendererF from './PileupRenderer';
8
8
  import LinearAlignmentsDisplayF from './LinearAlignmentsDisplay';
9
- import LinearSNPCoverageDisplayF from './LinearSNPCoverageDisplay';
9
+ import LinearPileupDisplayF from './LinearPileupDisplay';
10
10
  import LinearReadArcsDisplayF from './LinearReadArcsDisplay';
11
11
  import LinearReadCloudDisplayF from './LinearReadCloudDisplay';
12
- import AlignmentsTrackF from './AlignmentsTrack';
13
- import AlignmentsFeatureWidgetF from './AlignmentsFeatureDetail';
12
+ import LinearSNPCoverageDisplayF from './LinearSNPCoverageDisplay';
14
13
  import PileupRPCMethodsF from './PileupRPC';
15
- import GuessAlignmentsTypesF from './GuessAlignmentsTypes';
16
- import LinearPileupDisplayF from './LinearPileupDisplay';
14
+ import PileupRendererF from './PileupRenderer';
15
+ import SNPCoverageAdapterF from './SNPCoverageAdapter';
16
+ import SNPCoverageRendererF from './SNPCoverageRenderer';
17
17
  export default class AlignmentsPlugin extends Plugin {
18
18
  constructor() {
19
19
  super(...arguments);
@@ -42,5 +42,5 @@ export default class AlignmentsPlugin extends Plugin {
42
42
  });
43
43
  }
44
44
  }
45
- export { linearPileupDisplayStateModelFactory, linearPileupDisplayConfigSchemaFactory, SharedLinearPileupDisplayMixin, } from './LinearPileupDisplay';
45
+ export { SharedLinearPileupDisplayMixin, linearPileupDisplayConfigSchemaFactory, linearPileupDisplayStateModelFactory, } from './LinearPileupDisplay';
46
46
  export * as MismatchParser from './MismatchParser';
@@ -1,2 +1,2 @@
1
- import { IAnyStateTreeNode } from 'mobx-state-tree';
1
+ import type { IAnyStateTreeNode } from 'mobx-state-tree';
2
2
  export declare function doAfterAttach<T extends IAnyStateTreeNode>(self: T, cb: (self: T, ctx: CanvasRenderingContext2D, width: number, height: number) => void): void;
@@ -24,14 +24,12 @@ export function doAfterAttach(self, cb) {
24
24
  self.setLastDrawnOffsetPx(view.offsetPx);
25
25
  self.setLastDrawnBpPerPx(view.bpPerPx);
26
26
  }
27
- // first autorun instantly draws if bpPerPx changes
28
27
  createAutorun(self, async () => {
29
28
  const view = getContainingView(self);
30
29
  if (view.bpPerPx !== self.lastDrawnBpPerPx) {
31
30
  draw(view);
32
31
  }
33
32
  });
34
- // second autorun draws after delay 1000 e.g. if offsetPx changes
35
33
  createAutorun(self, async () => {
36
34
  const view = getContainingView(self);
37
35
  draw(view);
@@ -1,4 +1,4 @@
1
- import { ChainStats } from './fetchChains';
1
+ import type { ChainStats } from './fetchChains';
2
2
  export declare const fillColor: {
3
3
  color_fwd_strand_not_proper: string;
4
4
  color_rev_strand_not_proper: string;
@@ -18,12 +18,6 @@ export const fillColor = {
18
18
  color_shortinsert: 'pink',
19
19
  color_unknown: 'grey',
20
20
  };
21
- // manually calculated by running
22
- // const color = require('color')
23
- // Object.fromEntries(Object.entries(fillColor).map(([key,val])=>{
24
- // return [key, color(val).darken('0.3').hex()]
25
- // }))
26
- // this avoids (expensive) use of Color module at runtime
27
21
  export const strokeColor = {
28
22
  color_fwd_strand_not_proper: '#CA6767',
29
23
  color_rev_strand_not_proper: '#7272AA',
@@ -60,8 +54,6 @@ export function getPairedInsertSizeColor(f1, f2, stats) {
60
54
  }
61
55
  }
62
56
  const defaultColor = [fillColor.color_unknown, fillColor.color_unknown];
63
- // return color scheme with both insert size and orientation coloring,
64
- // prioritzing orientation coloring
65
57
  export function getPairedInsertSizeAndOrientationColor(f1, f2, stats) {
66
58
  return (getPairedOrientationColorOrDefault(f1) ||
67
59
  getPairedInsertSizeColor(f1, f2, stats) ||
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { LinearReadCloudDisplayModel } from '../../LinearReadCloudDisplay/model';
3
- import { LinearReadArcsDisplayModel } from '../../LinearReadArcsDisplay/model';
2
+ import type { LinearReadArcsDisplayModel } from '../../LinearReadArcsDisplay/model';
3
+ import type { LinearReadCloudDisplayModel } from '../../LinearReadCloudDisplay/model';
4
4
  declare const BaseDisplayComponent: ({ model, children, }: {
5
5
  model: LinearReadArcsDisplayModel | LinearReadCloudDisplayModel;
6
6
  children?: React.ReactNode;
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { LoadingEllipses } from '@jbrowse/core/ui';
3
- import { BlockMsg, } from '@jbrowse/plugin-linear-genome-view';
4
- import { makeStyles } from 'tss-react/mui';
5
- import { observer } from 'mobx-react';
6
3
  import { getContainingView } from '@jbrowse/core/util';
4
+ import { BlockMsg } from '@jbrowse/plugin-linear-genome-view';
7
5
  import { Button, Tooltip } from '@mui/material';
6
+ import { observer } from 'mobx-react';
7
+ import { makeStyles } from 'tss-react/mui';
8
8
  const useStyles = makeStyles()(theme => ({
9
9
  loading: {
10
10
  backgroundColor: theme.palette.background.default,
@@ -18,21 +18,22 @@ const useStyles = makeStyles()(theme => ({
18
18
  textAlign: 'center',
19
19
  },
20
20
  }));
21
- const BaseDisplayComponent = observer(function ({ model, children, }) {
22
- const { error, regionTooLarge } = model;
23
- return error ? (React.createElement(BlockMsg, { message: `${error}`, severity: "error", action: React.createElement(Tooltip, { title: "Reload" },
21
+ const BlockError = observer(function ({ model, }) {
22
+ const { error } = model;
23
+ return (React.createElement(BlockMsg, { message: `${error}`, severity: "error", action: React.createElement(Tooltip, { title: "Reload" },
24
24
  React.createElement(Button, { "data-testid": "reload_button", onClick: () => {
25
25
  model.reload();
26
- } }, "Reload")) })) : regionTooLarge ? (model.regionCannotBeRendered()) : (React.createElement(DataDisplay, { model: model }, children));
26
+ } }, "Reload")) }));
27
+ });
28
+ const BaseDisplayComponent = observer(function ({ model, children, }) {
29
+ const { error, regionTooLarge } = model;
30
+ return error ? (React.createElement(BlockError, { model: model })) : regionTooLarge ? (model.regionCannotBeRendered()) : (React.createElement(DataDisplay, { model: model }, children));
27
31
  });
28
32
  const DataDisplay = observer(function ({ model, children, }) {
29
33
  const { drawn, loading } = model;
30
34
  const view = getContainingView(model);
31
35
  const left = (model.lastDrawnOffsetPx || 0) - view.offsetPx;
32
- return (
33
- // this data-testid is located here because changing props on the canvas
34
- // itself is very sensitive to triggering ref invalidation
35
- React.createElement("div", { "data-testid": `drawn-${drawn}` },
36
+ return (React.createElement("div", { "data-testid": `drawn-${drawn}` },
36
37
  React.createElement("div", { style: { position: 'absolute', left } }, children),
37
38
  left !== 0 || loading ? React.createElement(LoadingBar, { model: model }) : null));
38
39
  });
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { FilterBy } from '../types';
2
+ import type { FilterBy } from '../types';
3
3
  declare const FilterByTagDialog: (props: {
4
4
  model: {
5
5
  filterBy: FilterBy;
@@ -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: {
@@ -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,10 +1,9 @@
1
1
  import { getContainingTrack, getContainingView, getSession, } from '@jbrowse/core/util';
2
2
  export async function fetchChains(self) {
3
- // @ts-expect-error
4
3
  const { rpcSessionId: sessionId } = getContainingTrack(self);
5
4
  const { rpcManager } = getSession(self);
6
5
  const view = getContainingView(self);
7
- if (!view.initialized || self.error || self.regionTooLarge) {
6
+ if (!view.initialized || self.error || !self.statsReadyAndRegionNotTooLarge) {
8
7
  return;
9
8
  }
10
9
  self.setLoading(true);
@@ -1,4 +1,4 @@
1
- import { Feature } from '@jbrowse/core/util';
1
+ import type { Feature } from '@jbrowse/core/util';
2
2
  interface MaximumProbabilityMod {
3
3
  type: string;
4
4
  prob: number;
@@ -1,6 +1,5 @@
1
- // locals
2
- import { getModPositions, getModProbabilities } from '../ModificationParser';
3
1
  import { getNextRefPos, parseCigar } from '../MismatchParser';
2
+ import { getModPositions, getModProbabilities } from '../ModificationParser';
4
3
  import { getTagAlt } from '../util';
5
4
  export function getMaxProbModAtEachPosition(feature, cigarOps) {
6
5
  const fstrand = feature.get('strand');
@@ -1,14 +1,14 @@
1
- import { IAnyStateTreeNode } from 'mobx-state-tree';
2
- import { BlockSet } from '@jbrowse/core/util/blockTypes';
3
- import { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
- import { ModificationType } from './types';
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
5
  export declare function getUniqueModifications({ self, adapterConfig, blocks, opts, }: {
6
6
  self: IAnyStateTreeNode;
7
7
  adapterConfig: AnyConfigurationModel;
8
8
  blocks: BlockSet;
9
9
  opts?: {
10
10
  headers?: Record<string, string>;
11
- signal?: AbortSignal;
11
+ stopToken?: string;
12
12
  filters: string[];
13
13
  };
14
14
  }): Promise<ModificationType[]>;
@@ -1,6 +1,6 @@
1
- import { IAnyStateTreeNode } from 'mobx-state-tree';
2
- import { BlockSet } from '@jbrowse/core/util/blockTypes';
3
- import { AnyConfigurationModel } from '@jbrowse/core/configuration';
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
4
  export declare function getUniqueTags({ self, tag, blocks, opts, }: {
5
5
  self: IAnyStateTreeNode & {
6
6
  adapterConfig: AnyConfigurationModel;
@@ -9,7 +9,7 @@ export declare function getUniqueTags({ self, tag, blocks, opts, }: {
9
9
  blocks: BlockSet;
10
10
  opts?: {
11
11
  headers?: Record<string, string>;
12
- signal?: AbortSignal;
12
+ stopToken?: string;
13
13
  filters: string[];
14
14
  };
15
15
  }): Promise<string[]>;
@@ -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);
@@ -1,10 +1,20 @@
1
- import { ChainData } from './fetchChains';
1
+ import type { ChainData } from './fetchChains';
2
2
  export declare function hasPairedReads(features: ChainData): boolean;
3
3
  export declare function alphaColor(baseColor: string, p: number): string;
4
4
  export declare const defaultFilterFlags: {
5
5
  flagInclude: number;
6
6
  flagExclude: number;
7
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
+ };
8
16
  export declare function cacheGetter<T>(ctor: {
9
17
  prototype: T;
10
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;
@@ -18,6 +18,14 @@ export const defaultFilterFlags = {
18
18
  flagInclude: 0,
19
19
  flagExclude: 1540,
20
20
  };
21
+ export const negFlags = {
22
+ flagInclude: 16,
23
+ flagExclude: 1540,
24
+ };
25
+ export const posFlags = {
26
+ flagInclude: 0,
27
+ flagExclude: 1556,
28
+ };
21
29
  export function cacheGetter(ctor, prop) {
22
30
  const desc = Object.getOwnPropertyDescriptor(ctor.prototype, prop);
23
31
  const getter = desc.get;
@@ -29,3 +37,19 @@ export function cacheGetter(ctor, prop) {
29
37
  },
30
38
  });
31
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,7 +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';
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';
5
5
  export declare function getTagAlt(feature: Feature, tag: string, alt: string): any;
6
6
  export declare const orientationTypes: {
7
7
  fr: Record<string, string>;
package/esm/util.js CHANGED
@@ -1,16 +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
- // use fallback alt tag, used in situations where upper case/lower case tags
6
- // 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';
7
5
  export function getTagAlt(feature, tag, alt) {
8
6
  var _a;
9
7
  const tags = feature.get('tags');
10
8
  return (_a = tags[tag]) !== null && _a !== void 0 ? _a : tags[alt];
11
9
  }
12
- // orientation definitions from igv.js, see also
13
- // https://software.broadinstitute.org/software/igv/interpreting_pair_orientations
14
10
  export const orientationTypes = {
15
11
  fr: {
16
12
  F1R2: 'LR',
@@ -81,8 +77,6 @@ export async function fetchSequence(region, adapter) {
81
77
  .pipe(toArray()));
82
78
  return (_a = feats[0]) === null || _a === void 0 ? void 0 : _a.get('seq');
83
79
  }
84
- // adapted from IGV
85
- // https://github.com/igvteam/igv/blob/af07c3b1be8806cfd77343ee04982aeff17d2beb/src/main/resources/org/broad/igv/prefs/preferences.tab#L230-L242
86
80
  export const modificationData = {
87
81
  m: { color: 'rgb(255,0,0)', name: '5mC' },
88
82
  h: { color: 'rgb(255,0,255)', name: '5hmC' },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-alignments",
3
- "version": "2.17.0",
3
+ "version": "2.18.0",
4
4
  "description": "JBrowse 2 alignments adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -38,10 +38,9 @@
38
38
  "dependencies": {
39
39
  "@gmod/bam": "^4.0.1",
40
40
  "@gmod/cram": "^3.0.3",
41
- "@jbrowse/sv-core": "^2.17.0",
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": "eed30b5e671f8f7823652d7cecc51aa89226de46"
66
+ "gitHead": "c344ea60099cb7e460b77f15808946b24a7eee74"
68
67
  }