@jbrowse/plugin-wiggle 3.6.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/esm/BigWigAdapter/BigWigAdapter.d.ts +14 -1
  2. package/esm/BigWigAdapter/BigWigAdapter.js +118 -22
  3. package/esm/BigWigAdapter/configSchema.d.ts +2 -2
  4. package/esm/BigWigAdapter/configSchema.js +1 -1
  5. package/esm/BigWigAdapter/index.js +2 -2
  6. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +1 -1
  7. package/esm/CreateMultiWiggleExtension/index.js +2 -2
  8. package/esm/DensityRenderer/DensityRenderer.d.ts +5 -6
  9. package/esm/DensityRenderer/DensityRenderer.js +6 -5
  10. package/esm/DensityRenderer/configSchema.d.ts +3 -3
  11. package/esm/DensityRenderer/configSchema.js +1 -1
  12. package/esm/DensityRenderer/index.js +11 -9
  13. package/esm/DensityRenderer/makeImageData.d.ts +3 -0
  14. package/esm/DensityRenderer/makeImageData.js +13 -0
  15. package/esm/DensityRenderer/renderDensity.d.ts +3 -0
  16. package/esm/DensityRenderer/renderDensity.js +18 -0
  17. package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +5 -7
  18. package/esm/LinePlotRenderer/LinePlotRenderer.js +6 -15
  19. package/esm/LinePlotRenderer/configSchema.d.ts +4 -4
  20. package/esm/LinePlotRenderer/configSchema.js +1 -1
  21. package/esm/LinePlotRenderer/index.js +4 -4
  22. package/esm/LinePlotRenderer/makeImageData.d.ts +3 -0
  23. package/esm/LinePlotRenderer/makeImageData.js +13 -0
  24. package/esm/LinePlotRenderer/renderLinePlot.d.ts +3 -0
  25. package/esm/LinePlotRenderer/renderLinePlot.js +23 -0
  26. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
  27. package/esm/LinearWiggleDisplay/components/Tooltip.js +10 -6
  28. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  29. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
  30. package/esm/LinearWiggleDisplay/configSchema.d.ts +9 -9
  31. package/esm/LinearWiggleDisplay/configSchema.js +2 -2
  32. package/esm/LinearWiggleDisplay/index.d.ts +3 -3
  33. package/esm/LinearWiggleDisplay/index.js +6 -6
  34. package/esm/LinearWiggleDisplay/model.d.ts +1130 -92
  35. package/esm/LinearWiggleDisplay/model.js +58 -18
  36. package/esm/LinearWiggleDisplay/renderSvg.d.ts +1 -1
  37. package/esm/LinearWiggleDisplay/renderSvg.js +3 -2
  38. package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +5 -7
  39. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +6 -24
  40. package/esm/MultiDensityRenderer/configSchema.d.ts +3 -3
  41. package/esm/MultiDensityRenderer/configSchema.js +1 -1
  42. package/esm/MultiDensityRenderer/index.js +4 -4
  43. package/esm/MultiDensityRenderer/makeImageData.d.ts +3 -0
  44. package/esm/MultiDensityRenderer/makeImageData.js +7 -0
  45. package/esm/MultiDensityRenderer/renderMultiDensity.d.ts +3 -0
  46. package/esm/MultiDensityRenderer/renderMultiDensity.js +37 -0
  47. package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +5 -7
  48. package/esm/MultiLineRenderer/MultiLineRenderer.js +6 -17
  49. package/esm/MultiLineRenderer/configSchema.d.ts +5 -5
  50. package/esm/MultiLineRenderer/configSchema.js +2 -2
  51. package/esm/MultiLineRenderer/index.js +4 -4
  52. package/esm/MultiLineRenderer/makeImageData.d.ts +3 -0
  53. package/esm/MultiLineRenderer/makeImageData.js +7 -0
  54. package/esm/MultiLineRenderer/renderMultiLine.d.ts +3 -0
  55. package/esm/MultiLineRenderer/renderMultiLine.js +34 -0
  56. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +2 -2
  57. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.js +11 -5
  58. package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +1 -1
  59. package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +4 -4
  60. package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +1 -1
  61. package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +5 -5
  62. package/esm/MultiLinearWiggleDisplay/components/LegendItem.d.ts +3 -3
  63. package/esm/MultiLinearWiggleDisplay/components/LegendItem.js +2 -4
  64. package/esm/MultiLinearWiggleDisplay/components/LegendItemText.d.ts +12 -0
  65. package/esm/MultiLinearWiggleDisplay/components/LegendItemText.js +11 -0
  66. package/esm/MultiLinearWiggleDisplay/components/RectBg.d.ts +1 -1
  67. package/esm/MultiLinearWiggleDisplay/components/RectBg.js +4 -3
  68. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +2 -2
  69. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.js +3 -3
  70. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +1 -1
  71. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +4 -34
  72. package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +1 -1
  73. package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.js +3 -3
  74. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +2 -4
  75. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +15 -12
  76. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.d.ts +1 -1
  77. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.js +3 -3
  78. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.d.ts +1 -1
  79. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.js +13 -6
  80. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.d.ts +1 -1
  81. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.js +24 -21
  82. package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.d.ts +2 -1
  83. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  84. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
  85. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +2 -2
  86. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.js +5 -16
  87. package/esm/MultiLinearWiggleDisplay/components/YScaleBarsWrapper.d.ts +7 -0
  88. package/esm/MultiLinearWiggleDisplay/components/YScaleBarsWrapper.js +15 -0
  89. package/esm/MultiLinearWiggleDisplay/components/types.d.ts +10 -0
  90. package/esm/MultiLinearWiggleDisplay/components/types.js +1 -0
  91. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialog.d.ts +31 -0
  92. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialog.js +45 -0
  93. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogBulkEditPanel.d.ts +10 -0
  94. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogBulkEditPanel.js +81 -0
  95. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogHelpfulTips.d.ts +1 -0
  96. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogHelpfulTips.js +4 -0
  97. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogRowPalettizer.d.ts +10 -0
  98. package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogRowPalettizer.js +39 -0
  99. package/esm/MultiLinearWiggleDisplay/components/util.d.ts +5 -9
  100. package/esm/MultiLinearWiggleDisplay/configSchema.d.ts +9 -9
  101. package/esm/MultiLinearWiggleDisplay/configSchema.js +2 -2
  102. package/esm/MultiLinearWiggleDisplay/index.js +3 -3
  103. package/esm/MultiLinearWiggleDisplay/model.d.ts +3628 -93
  104. package/esm/MultiLinearWiggleDisplay/model.js +80 -50
  105. package/esm/MultiLinearWiggleDisplay/renderSvg.d.ts +1 -1
  106. package/esm/MultiLinearWiggleDisplay/renderSvg.js +3 -2
  107. package/esm/MultiLinearWiggleDisplay/types.d.ts +1 -0
  108. package/esm/MultiLinearWiggleDisplay/util.d.ts +0 -1
  109. package/esm/MultiLinearWiggleDisplay/util.js +1 -7
  110. package/esm/MultiQuantitativeTrack/configSchema.d.ts +16 -11
  111. package/esm/MultiQuantitativeTrack/index.js +13 -2
  112. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +5 -7
  113. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +6 -29
  114. package/esm/MultiRowLineRenderer/configSchema.d.ts +5 -5
  115. package/esm/MultiRowLineRenderer/configSchema.js +2 -2
  116. package/esm/MultiRowLineRenderer/index.js +4 -4
  117. package/esm/MultiRowLineRenderer/makeImageData.d.ts +3 -0
  118. package/esm/MultiRowLineRenderer/makeImageData.js +7 -0
  119. package/esm/MultiRowLineRenderer/renderMultiRowLine.d.ts +3 -0
  120. package/esm/MultiRowLineRenderer/renderMultiRowLine.js +44 -0
  121. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +5 -7
  122. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +6 -29
  123. package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +5 -5
  124. package/esm/MultiRowXYPlotRenderer/configSchema.js +2 -2
  125. package/esm/MultiRowXYPlotRenderer/index.js +4 -4
  126. package/esm/MultiRowXYPlotRenderer/makeImageData.d.ts +3 -0
  127. package/esm/MultiRowXYPlotRenderer/makeImageData.js +7 -0
  128. package/esm/MultiRowXYPlotRenderer/renderMultiRowXYPlot.d.ts +3 -0
  129. package/esm/MultiRowXYPlotRenderer/renderMultiRowXYPlot.js +42 -0
  130. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +7 -1
  131. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +81 -26
  132. package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -2
  133. package/esm/MultiWiggleAdapter/index.js +2 -2
  134. package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +1 -1
  135. package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +4 -5
  136. package/esm/MultiWiggleAddTrackWorkflow/index.js +2 -2
  137. package/esm/MultiWiggleRendering.d.ts +7 -7
  138. package/esm/MultiWiggleRendering.js +9 -7
  139. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +5 -7
  140. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +6 -20
  141. package/esm/MultiXYPlotRenderer/configSchema.d.ts +5 -5
  142. package/esm/MultiXYPlotRenderer/configSchema.js +2 -2
  143. package/esm/MultiXYPlotRenderer/index.js +4 -4
  144. package/esm/MultiXYPlotRenderer/makeImageData.d.ts +3 -0
  145. package/esm/MultiXYPlotRenderer/makeImageData.js +7 -0
  146. package/esm/MultiXYPlotRenderer/renderMultiXYPlot.d.ts +3 -0
  147. package/esm/MultiXYPlotRenderer/renderMultiXYPlot.js +35 -0
  148. package/esm/QuantitativeTrack/configSchema.d.ts +16 -11
  149. package/esm/QuantitativeTrack/index.js +13 -2
  150. package/esm/SVGErrorBox.d.ts +5 -0
  151. package/esm/SVGErrorBox.js +4 -0
  152. package/esm/Tooltip.d.ts +1 -3
  153. package/esm/Tooltip.js +7 -7
  154. package/esm/WiggleRPC/MultiWiggleClusterScoreMatrix.d.ts +2 -10
  155. package/esm/WiggleRPC/MultiWiggleClusterScoreMatrix.js +3 -15
  156. package/esm/WiggleRPC/MultiWiggleGetScoreMatrix.d.ts +1 -1
  157. package/esm/WiggleRPC/MultiWiggleGetScoreMatrix.js +2 -5
  158. package/esm/WiggleRPC/MultiWiggleGetSources.js +1 -4
  159. package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +1 -4
  160. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +10 -0
  161. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +26 -5
  162. package/esm/WiggleRPC/executeClusterScoreMatrix.d.ts +6 -0
  163. package/esm/WiggleRPC/executeClusterScoreMatrix.js +15 -0
  164. package/esm/WiggleRPC/getScoreMatrix.d.ts +1 -1
  165. package/esm/WiggleRPC/getScoreMatrix.js +9 -6
  166. package/esm/WiggleRPC/rpcMethods.d.ts +5 -5
  167. package/esm/WiggleRPC/rpcMethods.js +5 -5
  168. package/esm/WiggleRPC/types.d.ts +1 -1
  169. package/esm/WiggleRendering.d.ts +2 -3
  170. package/esm/WiggleRendering.js +16 -3
  171. package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +5 -6
  172. package/esm/XYPlotRenderer/XYPlotRenderer.js +6 -20
  173. package/esm/XYPlotRenderer/configSchema.d.ts +5 -5
  174. package/esm/XYPlotRenderer/configSchema.js +2 -2
  175. package/esm/XYPlotRenderer/index.d.ts +3 -3
  176. package/esm/XYPlotRenderer/index.js +14 -12
  177. package/esm/XYPlotRenderer/makeImageData.d.ts +3 -0
  178. package/esm/XYPlotRenderer/makeImageData.js +13 -0
  179. package/esm/XYPlotRenderer/renderXYPlot.d.ts +3 -0
  180. package/esm/XYPlotRenderer/renderXYPlot.js +23 -0
  181. package/esm/configSchema.d.ts +3 -3
  182. package/esm/configSchema.js +1 -1
  183. package/esm/drawDensity.d.ts +4 -2
  184. package/esm/drawDensity.js +25 -15
  185. package/esm/drawLine.d.ts +5 -3
  186. package/esm/drawLine.js +118 -41
  187. package/esm/drawXY.d.ts +4 -2
  188. package/esm/drawXY.js +75 -36
  189. package/esm/getMultiWiggleSourcesAutorun.d.ts +4 -2
  190. package/esm/getMultiWiggleSourcesAutorun.js +7 -2
  191. package/esm/getQuantitativeStats.d.ts +4 -2
  192. package/esm/getQuantitativeStats.js +18 -7
  193. package/esm/getQuantitativeStatsAutorun.d.ts +3 -2
  194. package/esm/getQuantitativeStatsAutorun.js +3 -3
  195. package/esm/index.d.ts +15 -19
  196. package/esm/index.js +31 -37
  197. package/esm/multiRendererHelper.d.ts +7 -0
  198. package/esm/multiRendererHelper.js +12 -0
  199. package/esm/saveTrackFormats/bedGraph.d.ts +4 -0
  200. package/esm/saveTrackFormats/bedGraph.js +11 -0
  201. package/esm/shared/SharedWiggleConfigSchema.d.ts +5 -5
  202. package/esm/shared/SharedWiggleConfigSchema.js +1 -1
  203. package/esm/shared/SharedWiggleMixin.d.ts +1083 -120
  204. package/esm/shared/SharedWiggleMixin.js +48 -26
  205. package/esm/shared/YScaleBar.d.ts +1 -1
  206. package/esm/shared/YScaleBar.js +16 -4
  207. package/esm/shared/axisPropsFromTickScale.d.ts +7 -0
  208. package/esm/shared/axisPropsFromTickScale.js +12 -0
  209. package/esm/svgExportUtil.d.ts +9 -0
  210. package/esm/svgExportUtil.js +6 -0
  211. package/esm/types.d.ts +24 -0
  212. package/esm/types.js +1 -0
  213. package/esm/util.d.ts +35 -1
  214. package/esm/util.js +61 -2
  215. package/package.json +35 -38
  216. package/dist/BigWigAdapter/BigWigAdapter.d.ts +0 -25
  217. package/dist/BigWigAdapter/BigWigAdapter.js +0 -81
  218. package/dist/BigWigAdapter/configSchema.d.ts +0 -20
  219. package/dist/BigWigAdapter/configSchema.js +0 -37
  220. package/dist/BigWigAdapter/index.d.ts +0 -2
  221. package/dist/BigWigAdapter/index.js +0 -54
  222. package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +0 -8
  223. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +0 -26
  224. package/dist/CreateMultiWiggleExtension/index.d.ts +0 -2
  225. package/dist/CreateMultiWiggleExtension/index.js +0 -95
  226. package/dist/DensityRenderer/DensityRenderer.d.ts +0 -7
  227. package/dist/DensityRenderer/DensityRenderer.js +0 -46
  228. package/dist/DensityRenderer/configSchema.d.ts +0 -37
  229. package/dist/DensityRenderer/configSchema.js +0 -13
  230. package/dist/DensityRenderer/index.d.ts +0 -2
  231. package/dist/DensityRenderer/index.js +0 -17
  232. package/dist/GuessAdapter/index.d.ts +0 -2
  233. package/dist/GuessAdapter/index.js +0 -25
  234. package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +0 -8
  235. package/dist/LinePlotRenderer/LinePlotRenderer.js +0 -56
  236. package/dist/LinePlotRenderer/configSchema.d.ts +0 -43
  237. package/dist/LinePlotRenderer/configSchema.js +0 -19
  238. package/dist/LinePlotRenderer/index.d.ts +0 -2
  239. package/dist/LinePlotRenderer/index.js +0 -17
  240. package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +0 -12
  241. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +0 -31
  242. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +0 -15
  243. package/dist/LinearWiggleDisplay/components/Tooltip.js +0 -32
  244. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
  245. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -28
  246. package/dist/LinearWiggleDisplay/configSchema.d.ts +0 -78
  247. package/dist/LinearWiggleDisplay/configSchema.js +0 -29
  248. package/dist/LinearWiggleDisplay/index.d.ts +0 -5
  249. package/dist/LinearWiggleDisplay/index.js +0 -65
  250. package/dist/LinearWiggleDisplay/model.d.ts +0 -419
  251. package/dist/LinearWiggleDisplay/model.js +0 -262
  252. package/dist/LinearWiggleDisplay/renderSvg.d.ts +0 -3
  253. package/dist/LinearWiggleDisplay/renderSvg.js +0 -16
  254. package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +0 -8
  255. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +0 -65
  256. package/dist/MultiDensityRenderer/configSchema.d.ts +0 -37
  257. package/dist/MultiDensityRenderer/configSchema.js +0 -13
  258. package/dist/MultiDensityRenderer/index.d.ts +0 -2
  259. package/dist/MultiDensityRenderer/index.js +0 -17
  260. package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +0 -8
  261. package/dist/MultiLineRenderer/MultiLineRenderer.js +0 -58
  262. package/dist/MultiLineRenderer/configSchema.d.ts +0 -49
  263. package/dist/MultiLineRenderer/configSchema.js +0 -26
  264. package/dist/MultiLineRenderer/index.d.ts +0 -2
  265. package/dist/MultiLineRenderer/index.js +0 -17
  266. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +0 -7
  267. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.js +0 -18
  268. package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +0 -7
  269. package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +0 -17
  270. package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +0 -7
  271. package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +0 -15
  272. package/dist/MultiLinearWiggleDisplay/components/LegendItem.d.ts +0 -11
  273. package/dist/MultiLinearWiggleDisplay/components/LegendItem.js +0 -19
  274. package/dist/MultiLinearWiggleDisplay/components/RectBg.d.ts +0 -8
  275. package/dist/MultiLinearWiggleDisplay/components/RectBg.js +0 -9
  276. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +0 -5
  277. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.js +0 -19
  278. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +0 -9
  279. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +0 -42
  280. package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +0 -7
  281. package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.js +0 -130
  282. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +0 -18
  283. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +0 -35
  284. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.d.ts +0 -6
  285. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.js +0 -29
  286. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.d.ts +0 -7
  287. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.js +0 -79
  288. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.d.ts +0 -7
  289. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.js +0 -145
  290. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.d.ts +0 -7
  291. package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.js +0 -2
  292. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
  293. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -14
  294. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +0 -7
  295. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.js +0 -28
  296. package/dist/MultiLinearWiggleDisplay/components/util.d.ts +0 -13
  297. package/dist/MultiLinearWiggleDisplay/components/util.js +0 -45
  298. package/dist/MultiLinearWiggleDisplay/configSchema.d.ts +0 -84
  299. package/dist/MultiLinearWiggleDisplay/configSchema.js +0 -44
  300. package/dist/MultiLinearWiggleDisplay/index.d.ts +0 -2
  301. package/dist/MultiLinearWiggleDisplay/index.js +0 -57
  302. package/dist/MultiLinearWiggleDisplay/model.d.ts +0 -436
  303. package/dist/MultiLinearWiggleDisplay/model.js +0 -413
  304. package/dist/MultiLinearWiggleDisplay/renderSvg.d.ts +0 -3
  305. package/dist/MultiLinearWiggleDisplay/renderSvg.js +0 -15
  306. package/dist/MultiLinearWiggleDisplay/types.d.ts +0 -14
  307. package/dist/MultiLinearWiggleDisplay/types.js +0 -2
  308. package/dist/MultiLinearWiggleDisplay/util.d.ts +0 -1
  309. package/dist/MultiLinearWiggleDisplay/util.js +0 -10
  310. package/dist/MultiQuantitativeTrack/configSchema.d.ts +0 -80
  311. package/dist/MultiQuantitativeTrack/configSchema.js +0 -11
  312. package/dist/MultiQuantitativeTrack/index.d.ts +0 -2
  313. package/dist/MultiQuantitativeTrack/index.js +0 -20
  314. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +0 -8
  315. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +0 -70
  316. package/dist/MultiRowLineRenderer/configSchema.d.ts +0 -49
  317. package/dist/MultiRowLineRenderer/configSchema.js +0 -26
  318. package/dist/MultiRowLineRenderer/index.d.ts +0 -2
  319. package/dist/MultiRowLineRenderer/index.js +0 -17
  320. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +0 -8
  321. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +0 -70
  322. package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +0 -57
  323. package/dist/MultiRowXYPlotRenderer/configSchema.js +0 -34
  324. package/dist/MultiRowXYPlotRenderer/index.d.ts +0 -2
  325. package/dist/MultiRowXYPlotRenderer/index.js +0 -17
  326. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +0 -30
  327. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +0 -85
  328. package/dist/MultiWiggleAdapter/configSchema.d.ts +0 -13
  329. package/dist/MultiWiggleAdapter/configSchema.js +0 -17
  330. package/dist/MultiWiggleAdapter/index.d.ts +0 -2
  331. package/dist/MultiWiggleAdapter/index.js +0 -57
  332. package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +0 -5
  333. package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +0 -89
  334. package/dist/MultiWiggleAddTrackWorkflow/index.d.ts +0 -2
  335. package/dist/MultiWiggleAddTrackWorkflow/index.js +0 -46
  336. package/dist/MultiWiggleRendering.d.ts +0 -19
  337. package/dist/MultiWiggleRendering.js +0 -81
  338. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +0 -8
  339. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +0 -61
  340. package/dist/MultiXYPlotRenderer/configSchema.d.ts +0 -57
  341. package/dist/MultiXYPlotRenderer/configSchema.js +0 -34
  342. package/dist/MultiXYPlotRenderer/index.d.ts +0 -2
  343. package/dist/MultiXYPlotRenderer/index.js +0 -17
  344. package/dist/QuantitativeTrack/configSchema.d.ts +0 -80
  345. package/dist/QuantitativeTrack/configSchema.js +0 -11
  346. package/dist/QuantitativeTrack/index.d.ts +0 -2
  347. package/dist/QuantitativeTrack/index.js +0 -20
  348. package/dist/Tooltip.d.ts +0 -18
  349. package/dist/Tooltip.js +0 -34
  350. package/dist/WiggleBaseRenderer.d.ts +0 -57
  351. package/dist/WiggleBaseRenderer.js +0 -42
  352. package/dist/WiggleRPC/MultiWiggleClusterScoreMatrix.d.ts +0 -14
  353. package/dist/WiggleRPC/MultiWiggleClusterScoreMatrix.js +0 -31
  354. package/dist/WiggleRPC/MultiWiggleGetScoreMatrix.d.ts +0 -6
  355. package/dist/WiggleRPC/MultiWiggleGetScoreMatrix.js +0 -22
  356. package/dist/WiggleRPC/MultiWiggleGetSources.d.ts +0 -14
  357. package/dist/WiggleRPC/MultiWiggleGetSources.js +0 -22
  358. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.d.ts +0 -12
  359. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +0 -22
  360. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +0 -13
  361. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +0 -22
  362. package/dist/WiggleRPC/getScoreMatrix.d.ts +0 -6
  363. package/dist/WiggleRPC/getScoreMatrix.js +0 -35
  364. package/dist/WiggleRPC/rpcMethods.d.ts +0 -5
  365. package/dist/WiggleRPC/rpcMethods.js +0 -21
  366. package/dist/WiggleRPC/type.d.ts +0 -0
  367. package/dist/WiggleRPC/type.js +0 -1
  368. package/dist/WiggleRPC/types.d.ts +0 -13
  369. package/dist/WiggleRPC/types.js +0 -2
  370. package/dist/WiggleRendering.d.ts +0 -14
  371. package/dist/WiggleRendering.js +0 -35
  372. package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +0 -7
  373. package/dist/XYPlotRenderer/XYPlotRenderer.js +0 -61
  374. package/dist/XYPlotRenderer/configSchema.d.ts +0 -57
  375. package/dist/XYPlotRenderer/configSchema.js +0 -34
  376. package/dist/XYPlotRenderer/index.d.ts +0 -5
  377. package/dist/XYPlotRenderer/index.js +0 -24
  378. package/dist/configSchema.d.ts +0 -37
  379. package/dist/configSchema.js +0 -47
  380. package/dist/drawDensity.d.ts +0 -18
  381. package/dist/drawDensity.js +0 -81
  382. package/dist/drawLine.d.ts +0 -20
  383. package/dist/drawLine.js +0 -77
  384. package/dist/drawXY.d.ts +0 -21
  385. package/dist/drawXY.js +0 -191
  386. package/dist/getMultiWiggleSourcesAutorun.d.ts +0 -17
  387. package/dist/getMultiWiggleSourcesAutorun.js +0 -38
  388. package/dist/getQuantitativeStats.d.ts +0 -13
  389. package/dist/getQuantitativeStats.js +0 -70
  390. package/dist/getQuantitativeStatsAutorun.d.ts +0 -13
  391. package/dist/getQuantitativeStatsAutorun.js +0 -35
  392. package/dist/index.d.ts +0 -91
  393. package/dist/index.js +0 -112
  394. package/dist/shared/SetMinMaxDialog.d.ts +0 -10
  395. package/dist/shared/SetMinMaxDialog.js +0 -26
  396. package/dist/shared/SharedWiggleConfigSchema.d.ts +0 -66
  397. package/dist/shared/SharedWiggleConfigSchema.js +0 -56
  398. package/dist/shared/SharedWiggleMixin.d.ts +0 -405
  399. package/dist/shared/SharedWiggleMixin.js +0 -343
  400. package/dist/shared/YScaleBar.d.ts +0 -9
  401. package/dist/shared/YScaleBar.js +0 -12
  402. package/dist/util.d.ts +0 -24
  403. package/dist/util.js +0 -105
  404. package/esm/WiggleBaseRenderer.d.ts +0 -57
  405. package/esm/WiggleBaseRenderer.js +0 -36
  406. package/esm/WiggleRPC/type.d.ts +0 -0
  407. package/esm/WiggleRPC/type.js +0 -1
@@ -0,0 +1,23 @@
1
+ import { renderToAbstractCanvas, updateStatus } from '@jbrowse/core/util';
2
+ import { rpcResult } from '@jbrowse/core/util/librpc';
3
+ import { collectTransferables } from '@jbrowse/core/util/offscreenCanvasPonyfill';
4
+ import { drawXY } from "../drawXY.js";
5
+ import { getColorCallback, serializeWiggleFeature } from "../util.js";
6
+ export async function renderXYPlot(renderProps, features) {
7
+ const { config, height, regions, bpPerPx, statusCallback = () => { }, } = renderProps;
8
+ const region = regions[0];
9
+ const width = (region.end - region.start) / bpPerPx;
10
+ const colorCallback = getColorCallback(config);
11
+ const { reducedFeatures, ...rest } = await updateStatus('Rendering plot', statusCallback, () => renderToAbstractCanvas(width, height, renderProps, ctx => drawXY(ctx, {
12
+ ...renderProps,
13
+ colorCallback,
14
+ features,
15
+ })));
16
+ const serialized = {
17
+ ...rest,
18
+ features: reducedFeatures.map(serializeWiggleFeature),
19
+ height,
20
+ width,
21
+ };
22
+ return rpcResult(serialized, collectTransferables(rest));
23
+ }
@@ -1,4 +1,4 @@
1
- declare const WiggleRenderer: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
1
+ declare const WiggleRenderer: import("node_modules/@jbrowse/core/src/configuration/configurationSchema").ConfigurationSchemaType<{
2
2
  color: {
3
3
  type: string;
4
4
  description: string;
@@ -24,7 +24,7 @@ declare const WiggleRenderer: import("@jbrowse/core/configuration/configurationS
24
24
  };
25
25
  bicolorPivot: {
26
26
  type: string;
27
- model: import("mobx-state-tree").ISimpleType<string>;
27
+ model: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
28
28
  description: string;
29
29
  defaultValue: string;
30
30
  };
@@ -33,5 +33,5 @@ declare const WiggleRenderer: import("@jbrowse/core/configuration/configurationS
33
33
  defaultValue: number;
34
34
  description: string;
35
35
  };
36
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
36
+ }, import("node_modules/@jbrowse/core/src/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
37
37
  export default WiggleRenderer;
@@ -1,5 +1,5 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
- import { types } from 'mobx-state-tree';
2
+ import { types } from '@jbrowse/mobx-state-tree';
3
3
  function x() { }
4
4
  const WiggleRenderer = ConfigurationSchema('WiggleRenderer', {
5
5
  color: {
@@ -1,6 +1,7 @@
1
- import type { ScaleOpts } from './util';
1
+ import type { ScaleOpts } from './util.ts';
2
2
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import type { Feature, Region } from '@jbrowse/core/util';
4
+ import type { LastStopTokenCheck, StopToken } from '@jbrowse/core/util/stopToken';
4
5
  export declare function drawDensity(ctx: CanvasRenderingContext2D, props: {
5
6
  features: Map<string, Feature> | Feature[];
6
7
  regions: Region[];
@@ -12,7 +13,8 @@ export declare function drawDensity(ctx: CanvasRenderingContext2D, props: {
12
13
  };
13
14
  displayCrossHatches: boolean;
14
15
  config: AnyConfigurationModel;
15
- stopToken?: string;
16
+ stopToken?: StopToken;
17
+ lastCheck?: LastStopTokenCheck;
16
18
  }): {
17
19
  reducedFeatures: Feature[];
18
20
  };
@@ -1,12 +1,15 @@
1
1
  import { readConfObject } from '@jbrowse/core/configuration';
2
- import { featureSpanPx } from '@jbrowse/core/util';
3
- import { checkStopToken } from '@jbrowse/core/util/stopToken';
4
- import { fillRectCtx, getScale } from './util';
2
+ import { checkStopToken2, createStopTokenChecker, } from '@jbrowse/core/util/stopToken';
3
+ import { fillRectCtx, getScale } from "./util.js";
5
4
  const fudgeFactor = 0.3;
6
5
  const clipHeight = 2;
7
6
  export function drawDensity(ctx, props) {
8
- const { stopToken, features, regions, bpPerPx, scaleOpts, height, config } = props;
7
+ const { features, regions, bpPerPx, scaleOpts, height, config, stopToken, lastCheck = createStopTokenChecker(stopToken), } = props;
9
8
  const region = regions[0];
9
+ const regionStart = region.start;
10
+ const regionEnd = region.end;
11
+ const regionReversed = region.reversed;
12
+ const inverseBpPerPx = 1 / bpPerPx;
10
13
  const pivot = readConfObject(config, 'bicolorPivot');
11
14
  const pivotValue = readConfObject(config, 'bicolorPivotValue');
12
15
  const negColor = readConfObject(config, 'negColor');
@@ -29,13 +32,16 @@ export function drawDensity(ctx, props) {
29
32
  let prevLeftPx = Number.NEGATIVE_INFINITY;
30
33
  let hasClipping = false;
31
34
  const reducedFeatures = [];
32
- let start = performance.now();
33
35
  for (const feature of features.values()) {
34
- if (performance.now() - start > 400) {
35
- checkStopToken(stopToken);
36
- start = performance.now();
37
- }
38
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
36
+ checkStopToken2(lastCheck);
37
+ const fStart = feature.get('start');
38
+ const fEnd = feature.get('end');
39
+ const leftPx = regionReversed
40
+ ? (regionEnd - fEnd) * inverseBpPerPx
41
+ : (fStart - regionStart) * inverseBpPerPx;
42
+ const rightPx = regionReversed
43
+ ? (regionEnd - fStart) * inverseBpPerPx
44
+ : (fEnd - regionStart) * inverseBpPerPx;
39
45
  if (Math.floor(leftPx) !== Math.floor(prevLeftPx) || rightPx - leftPx > 1) {
40
46
  reducedFeatures.push(feature);
41
47
  prevLeftPx = leftPx;
@@ -56,11 +62,15 @@ export function drawDensity(ctx, props) {
56
62
  if (hasClipping) {
57
63
  ctx.fillStyle = clipColor;
58
64
  for (const feature of features.values()) {
59
- if (performance.now() - start > 400) {
60
- checkStopToken(stopToken);
61
- start = performance.now();
62
- }
63
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
65
+ checkStopToken2(lastCheck);
66
+ const fStart = feature.get('start');
67
+ const fEnd = feature.get('end');
68
+ const leftPx = regionReversed
69
+ ? (regionEnd - fEnd) * inverseBpPerPx
70
+ : (fStart - regionStart) * inverseBpPerPx;
71
+ const rightPx = regionReversed
72
+ ? (regionEnd - fStart) * inverseBpPerPx
73
+ : (fEnd - regionStart) * inverseBpPerPx;
64
74
  const w = rightPx - leftPx + fudgeFactor;
65
75
  const score = feature.get('score');
66
76
  if (score > niceMax) {
package/esm/drawLine.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { ScaleOpts } from './util';
1
+ import type { ScaleOpts } from './util.ts';
2
2
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
- import type { Feature, Region } from '@jbrowse/core/util';
3
+ import type { Feature, LastStopTokenCheck, Region, StopToken } from '@jbrowse/core/util';
4
4
  export declare function drawLine(ctx: CanvasRenderingContext2D, props: {
5
5
  features: Map<string, Feature> | Feature[];
6
6
  regions: Region[];
@@ -14,7 +14,9 @@ export declare function drawLine(ctx: CanvasRenderingContext2D, props: {
14
14
  colorCallback: (f: Feature, score: number) => string;
15
15
  config: AnyConfigurationModel;
16
16
  offset?: number;
17
- stopToken?: string;
17
+ stopToken?: StopToken;
18
+ lastCheck?: LastStopTokenCheck;
19
+ staticColor?: string;
18
20
  }): {
19
21
  reducedFeatures: Feature[];
20
22
  };
package/esm/drawLine.js CHANGED
@@ -1,61 +1,138 @@
1
1
  import { readConfObject } from '@jbrowse/core/configuration';
2
- import { clamp, featureSpanPx } from '@jbrowse/core/util';
3
- import { checkStopToken } from '@jbrowse/core/util/stopToken';
4
- import { getScale } from './util';
5
- const fudgeFactor = 0.3;
6
- const clipHeight = 2;
2
+ import { clamp } from '@jbrowse/core/util';
3
+ import { checkStopToken2, createStopTokenChecker, } from '@jbrowse/core/util/stopToken';
4
+ import { WIGGLE_CLIP_HEIGHT, WIGGLE_FUDGE_FACTOR, getScale } from "./util.js";
7
5
  export function drawLine(ctx, props) {
8
- const { features, regions, bpPerPx, scaleOpts, height: unadjustedHeight, ticks: { values }, displayCrossHatches, colorCallback, config, offset = 0, stopToken, } = props;
6
+ const { features, regions, bpPerPx, scaleOpts, height: unadjustedHeight, ticks: { values }, displayCrossHatches, colorCallback, config, offset = 0, staticColor, stopToken, lastCheck = createStopTokenChecker(stopToken), } = props;
9
7
  const region = regions[0];
10
- const width = (region.end - region.start) / bpPerPx;
8
+ const regionStart = region.start;
9
+ const regionEnd = region.end;
10
+ const reversed = region.reversed;
11
+ const invBpPerPx = 1 / bpPerPx;
12
+ const width = (regionEnd - regionStart) * invBpPerPx;
11
13
  const height = unadjustedHeight - offset * 2;
12
14
  const clipColor = readConfObject(config, 'clipColor');
13
15
  const scale = getScale({ ...scaleOpts, range: [0, height] });
14
16
  const domain = scale.domain();
15
17
  const niceMin = domain[0];
16
18
  const niceMax = domain[1];
17
- const toY = (n) => clamp(height - (scale(n) || 0), 0, height) + offset;
19
+ const domainSpan = niceMax - niceMin;
20
+ const isLog = scaleOpts.scaleType === 'log';
21
+ const linearRatio = domainSpan !== 0 ? height / domainSpan : 0;
22
+ const log2 = Math.log(2);
23
+ const logMin = Math.log(niceMin) / log2;
24
+ const logMax = Math.log(niceMax) / log2;
25
+ const logSpan = logMax - logMin;
26
+ const logRatio = logSpan !== 0 ? height / logSpan : 0;
27
+ const toY = isLog
28
+ ? (n) => clamp(height - (Math.log(n) / log2 - logMin) * logRatio, 0, height) +
29
+ offset
30
+ : (n) => clamp(height - (n - niceMin) * linearRatio, 0, height) + offset;
18
31
  let lastVal;
19
32
  let prevLeftPx = Number.NEGATIVE_INFINITY;
20
33
  const reducedFeatures = [];
21
- let start = performance.now();
22
- for (const feature of features.values()) {
23
- if (performance.now() - start > 400) {
24
- checkStopToken(stopToken);
25
- start = performance.now();
26
- }
27
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
28
- if (Math.floor(leftPx) !== Math.floor(prevLeftPx) || rightPx - leftPx > 1) {
29
- reducedFeatures.push(feature);
30
- prevLeftPx = leftPx;
31
- }
32
- const score = feature.get('score');
33
- const lowClipping = score < niceMin;
34
- const highClipping = score > niceMax;
35
- const w = rightPx - leftPx + fudgeFactor;
36
- const c = colorCallback(feature, score);
34
+ if (staticColor) {
37
35
  ctx.beginPath();
38
- ctx.strokeStyle = c;
39
- const startPos = lastVal !== undefined ? lastVal : score;
40
- if (!region.reversed) {
41
- ctx.moveTo(leftPx, toY(startPos));
42
- ctx.lineTo(leftPx, toY(score));
43
- ctx.lineTo(rightPx, toY(score));
44
- }
45
- else {
46
- ctx.moveTo(rightPx, toY(startPos));
47
- ctx.lineTo(rightPx, toY(score));
48
- ctx.lineTo(leftPx, toY(score));
36
+ ctx.strokeStyle = staticColor;
37
+ const clippingFeatures = [];
38
+ for (const feature of features.values()) {
39
+ checkStopToken2(lastCheck);
40
+ const fStart = feature.get('start');
41
+ const fEnd = feature.get('end');
42
+ const leftPx = reversed
43
+ ? (regionEnd - fEnd) * invBpPerPx
44
+ : (fStart - regionStart) * invBpPerPx;
45
+ const rightPx = reversed
46
+ ? (regionEnd - fStart) * invBpPerPx
47
+ : (fEnd - regionStart) * invBpPerPx;
48
+ if ((leftPx | 0) !== (prevLeftPx | 0) || rightPx - leftPx > 1) {
49
+ reducedFeatures.push(feature);
50
+ prevLeftPx = leftPx;
51
+ }
52
+ const score = feature.get('score');
53
+ const scoreY = toY(score);
54
+ if (score > niceMax) {
55
+ clippingFeatures.push({
56
+ leftPx,
57
+ w: rightPx - leftPx + WIGGLE_FUDGE_FACTOR,
58
+ high: true,
59
+ });
60
+ }
61
+ else if (score < niceMin && !isLog) {
62
+ clippingFeatures.push({
63
+ leftPx,
64
+ w: rightPx - leftPx + WIGGLE_FUDGE_FACTOR,
65
+ high: false,
66
+ });
67
+ }
68
+ const startY = lastVal !== undefined ? toY(lastVal) : scoreY;
69
+ if (!reversed) {
70
+ ctx.moveTo(leftPx, startY);
71
+ ctx.lineTo(leftPx, scoreY);
72
+ ctx.lineTo(rightPx, scoreY);
73
+ }
74
+ else {
75
+ ctx.moveTo(rightPx, startY);
76
+ ctx.lineTo(rightPx, scoreY);
77
+ ctx.lineTo(leftPx, scoreY);
78
+ }
79
+ lastVal = score;
49
80
  }
50
81
  ctx.stroke();
51
- lastVal = score;
52
- if (highClipping) {
82
+ if (clippingFeatures.length > 0) {
53
83
  ctx.fillStyle = clipColor;
54
- ctx.fillRect(leftPx, offset, w, clipHeight);
84
+ for (const { leftPx, w, high } of clippingFeatures) {
85
+ if (high) {
86
+ ctx.fillRect(leftPx, offset, w, WIGGLE_CLIP_HEIGHT);
87
+ }
88
+ else {
89
+ ctx.fillRect(leftPx, height - WIGGLE_CLIP_HEIGHT, w, WIGGLE_CLIP_HEIGHT);
90
+ }
91
+ }
55
92
  }
56
- else if (lowClipping && scaleOpts.scaleType !== 'log') {
57
- ctx.fillStyle = clipColor;
58
- ctx.fillRect(leftPx, height - clipHeight, w, height);
93
+ }
94
+ else {
95
+ for (const feature of features.values()) {
96
+ checkStopToken2(lastCheck);
97
+ const fStart = feature.get('start');
98
+ const fEnd = feature.get('end');
99
+ const leftPx = reversed
100
+ ? (regionEnd - fEnd) * invBpPerPx
101
+ : (fStart - regionStart) * invBpPerPx;
102
+ const rightPx = reversed
103
+ ? (regionEnd - fStart) * invBpPerPx
104
+ : (fEnd - regionStart) * invBpPerPx;
105
+ if ((leftPx | 0) !== (prevLeftPx | 0) || rightPx - leftPx > 1) {
106
+ reducedFeatures.push(feature);
107
+ prevLeftPx = leftPx;
108
+ }
109
+ const score = feature.get('score');
110
+ const scoreY = toY(score);
111
+ const w = rightPx - leftPx + WIGGLE_FUDGE_FACTOR;
112
+ const c = colorCallback(feature, score);
113
+ ctx.beginPath();
114
+ ctx.strokeStyle = c;
115
+ const startY = lastVal !== undefined ? toY(lastVal) : scoreY;
116
+ if (!reversed) {
117
+ ctx.moveTo(leftPx, startY);
118
+ ctx.lineTo(leftPx, scoreY);
119
+ ctx.lineTo(rightPx, scoreY);
120
+ }
121
+ else {
122
+ ctx.moveTo(rightPx, startY);
123
+ ctx.lineTo(rightPx, scoreY);
124
+ ctx.lineTo(leftPx, scoreY);
125
+ }
126
+ ctx.stroke();
127
+ lastVal = score;
128
+ if (score > niceMax) {
129
+ ctx.fillStyle = clipColor;
130
+ ctx.fillRect(leftPx, offset, w, WIGGLE_CLIP_HEIGHT);
131
+ }
132
+ else if (score < niceMin && !isLog) {
133
+ ctx.fillStyle = clipColor;
134
+ ctx.fillRect(leftPx, height - WIGGLE_CLIP_HEIGHT, w, WIGGLE_CLIP_HEIGHT);
135
+ }
59
136
  }
60
137
  }
61
138
  if (displayCrossHatches) {
package/esm/drawXY.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import type { ScaleOpts } from './util';
1
+ import type { ScaleOpts } from './util.ts';
2
2
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
3
  import type { Feature, Region } from '@jbrowse/core/util';
4
+ import type { LastStopTokenCheck, StopToken } from '@jbrowse/core/util/stopToken';
4
5
  export declare function drawXY(ctx: CanvasRenderingContext2D, props: {
5
- stopToken?: string;
6
6
  features: Map<string, Feature> | Feature[];
7
7
  bpPerPx: number;
8
8
  regions: Region[];
@@ -15,6 +15,8 @@ export declare function drawXY(ctx: CanvasRenderingContext2D, props: {
15
15
  displayCrossHatches: boolean;
16
16
  inverted: boolean;
17
17
  offset?: number;
18
+ lastCheck?: LastStopTokenCheck;
19
+ stopToken?: StopToken;
18
20
  colorCallback: (f: Feature, score: number) => string;
19
21
  }): {
20
22
  reducedFeatures: Feature[];
package/esm/drawXY.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { readConfObject } from '@jbrowse/core/configuration';
2
- import { clamp, featureSpanPx } from '@jbrowse/core/util';
2
+ import { clamp } from '@jbrowse/core/util';
3
3
  import { colord } from '@jbrowse/core/util/colord';
4
- import { checkStopToken } from '@jbrowse/core/util/stopToken';
5
- import { fillRectCtx, getOrigin, getScale } from './util';
4
+ import { checkStopToken2, createStopTokenChecker, } from '@jbrowse/core/util/stopToken';
5
+ import { fillRectCtx, getOrigin, getScale } from "./util.js";
6
6
  function lighten(color, amount) {
7
7
  const hslColor = color.toHsl();
8
8
  const l = hslColor.l * (1 + amount);
@@ -22,9 +22,12 @@ function darken(color, amount) {
22
22
  const fudgeFactor = 0.3;
23
23
  const clipHeight = 2;
24
24
  export function drawXY(ctx, props) {
25
- const { features, bpPerPx, regions, scaleOpts, height: unadjustedHeight, config, ticks, displayCrossHatches, offset = 0, colorCallback, inverted, stopToken, } = props;
25
+ const { features, bpPerPx, regions, scaleOpts, height: unadjustedHeight, config, ticks, displayCrossHatches, offset = 0, colorCallback, inverted, stopToken, lastCheck = createStopTokenChecker(stopToken), } = props;
26
26
  const region = regions[0];
27
27
  const width = (region.end - region.start) / bpPerPx;
28
+ const regionStart = region.start;
29
+ const regionEnd = region.end;
30
+ const regionReversed = region.reversed;
28
31
  const height = unadjustedHeight - offset * 2;
29
32
  const filled = readConfObject(config, 'filled');
30
33
  const clipColor = readConfObject(config, 'clipColor');
@@ -36,24 +39,48 @@ export function drawXY(ctx, props) {
36
39
  const domain = scale.domain();
37
40
  const niceMin = domain[0];
38
41
  const niceMax = domain[1];
39
- const toY = (n) => clamp(height - (scale(n) || 0), 0, height) + offset;
42
+ const isLog = scaleOpts.scaleType === 'log';
43
+ const log2 = Math.log(2);
44
+ const domainSpan = niceMax - niceMin;
45
+ const linearRatio = domainSpan !== 0 ? height / domainSpan : 0;
46
+ const logMin = isLog ? Math.log(niceMin) / log2 : 0;
47
+ const logMax = isLog ? Math.log(niceMax) / log2 : 0;
48
+ const logSpan = logMax - logMin;
49
+ const logRatio = logSpan !== 0 ? height / logSpan : 0;
50
+ const effectiveRange = inverted ? [height, 0] : [0, height];
51
+ const rangeFlipped = effectiveRange[0] === height;
52
+ const toY = isLog
53
+ ? (n) => {
54
+ const logVal = Math.log(n) / log2;
55
+ const scaled = (logVal - logMin) * logRatio;
56
+ const result = rangeFlipped ? scaled : height - scaled;
57
+ return clamp(result, 0, height) + offset;
58
+ }
59
+ : (n) => {
60
+ const scaled = (n - niceMin) * linearRatio;
61
+ const result = rangeFlipped ? scaled : height - scaled;
62
+ return clamp(result, 0, height) + offset;
63
+ };
40
64
  const toOrigin = (n) => toY(originY) - toY(n);
41
65
  const getHeight = (n) => (filled ? toOrigin(n) : Math.max(minSize, 1));
66
+ const inverseBpPerPx = 1 / bpPerPx;
42
67
  let hasClipping = false;
43
68
  let prevLeftPx = Number.NEGATIVE_INFINITY;
44
69
  const reducedFeatures = [];
45
70
  const crossingOrigin = niceMin < pivotValue && niceMax > pivotValue;
46
- let start = performance.now();
47
71
  if (summaryScoreMode === 'whiskers') {
48
72
  let lastCol;
49
73
  let lastMix;
50
- start = performance.now();
51
74
  for (const feature of features.values()) {
52
- if (performance.now() - start > 400) {
53
- checkStopToken(stopToken);
54
- start = performance.now();
55
- }
56
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
75
+ checkStopToken2(lastCheck);
76
+ const fStart = feature.get('start');
77
+ const fEnd = feature.get('end');
78
+ const leftPx = regionReversed
79
+ ? (regionEnd - fEnd) * inverseBpPerPx
80
+ : (fStart - regionStart) * inverseBpPerPx;
81
+ const rightPx = regionReversed
82
+ ? (regionEnd - fStart) * inverseBpPerPx
83
+ : (fEnd - regionStart) * inverseBpPerPx;
57
84
  if (feature.get('summary')) {
58
85
  const w = Math.max(rightPx - leftPx + fudgeFactor, minSize);
59
86
  const max = feature.get('maxScore');
@@ -69,13 +96,16 @@ export function drawXY(ctx, props) {
69
96
  }
70
97
  lastMix = undefined;
71
98
  lastCol = undefined;
72
- start = performance.now();
73
99
  for (const feature of features.values()) {
74
- if (performance.now() - start > 400) {
75
- checkStopToken(stopToken);
76
- start = performance.now();
77
- }
78
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
100
+ checkStopToken2(lastCheck);
101
+ const fStart = feature.get('start');
102
+ const fEnd = feature.get('end');
103
+ const leftPx = regionReversed
104
+ ? (regionEnd - fEnd) * inverseBpPerPx
105
+ : (fStart - regionStart) * inverseBpPerPx;
106
+ const rightPx = regionReversed
107
+ ? (regionEnd - fStart) * inverseBpPerPx
108
+ : (fEnd - regionStart) * inverseBpPerPx;
79
109
  const score = feature.get('score');
80
110
  const max = feature.get('maxScore');
81
111
  const min = feature.get('minScore');
@@ -100,13 +130,16 @@ export function drawXY(ctx, props) {
100
130
  }
101
131
  lastMix = undefined;
102
132
  lastCol = undefined;
103
- start = performance.now();
104
133
  for (const feature of features.values()) {
105
- if (performance.now() - start > 400) {
106
- checkStopToken(stopToken);
107
- start = performance.now();
108
- }
109
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
134
+ checkStopToken2(lastCheck);
135
+ const fStart = feature.get('start');
136
+ const fEnd = feature.get('end');
137
+ const leftPx = regionReversed
138
+ ? (regionEnd - fEnd) * inverseBpPerPx
139
+ : (fStart - regionStart) * inverseBpPerPx;
140
+ const rightPx = regionReversed
141
+ ? (regionEnd - fStart) * inverseBpPerPx
142
+ : (fEnd - regionStart) * inverseBpPerPx;
110
143
  if (feature.get('summary')) {
111
144
  const min = feature.get('minScore');
112
145
  const c = colorCallback(feature, min);
@@ -122,13 +155,16 @@ export function drawXY(ctx, props) {
122
155
  }
123
156
  }
124
157
  else {
125
- start = performance.now();
126
158
  for (const feature of features.values()) {
127
- if (performance.now() - start > 400) {
128
- checkStopToken(stopToken);
129
- start = performance.now();
130
- }
131
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
159
+ checkStopToken2(lastCheck);
160
+ const fStart = feature.get('start');
161
+ const fEnd = feature.get('end');
162
+ const leftPx = regionReversed
163
+ ? (regionEnd - fEnd) * inverseBpPerPx
164
+ : (fStart - regionStart) * inverseBpPerPx;
165
+ const rightPx = regionReversed
166
+ ? (regionEnd - fStart) * inverseBpPerPx
167
+ : (fEnd - regionStart) * inverseBpPerPx;
132
168
  if (Math.floor(leftPx) !== Math.floor(prevLeftPx) ||
133
169
  rightPx - leftPx > 1) {
134
170
  reducedFeatures.push(feature);
@@ -154,13 +190,16 @@ export function drawXY(ctx, props) {
154
190
  ctx.save();
155
191
  if (hasClipping) {
156
192
  ctx.fillStyle = clipColor;
157
- start = performance.now();
158
193
  for (const feature of features.values()) {
159
- if (performance.now() - start > 400) {
160
- checkStopToken(stopToken);
161
- start = performance.now();
162
- }
163
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
194
+ checkStopToken2(lastCheck);
195
+ const fStart = feature.get('start');
196
+ const fEnd = feature.get('end');
197
+ const leftPx = regionReversed
198
+ ? (regionEnd - fEnd) * inverseBpPerPx
199
+ : (fStart - regionStart) * inverseBpPerPx;
200
+ const rightPx = regionReversed
201
+ ? (regionEnd - fStart) * inverseBpPerPx
202
+ : (fEnd - regionStart) * inverseBpPerPx;
164
203
  const w = rightPx - leftPx + fudgeFactor;
165
204
  const score = feature.get('score');
166
205
  if (score > niceMax) {
@@ -1,6 +1,8 @@
1
1
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ import type { StopToken } from '@jbrowse/core/util/stopToken';
2
3
  export interface Source {
3
4
  name: string;
5
+ source: string;
4
6
  color?: string;
5
7
  group?: string;
6
8
  }
@@ -10,8 +12,8 @@ export declare function getMultiWiggleSourcesAutorun(self: {
10
12
  adapterConfig: AnyConfigurationModel;
11
13
  autoscaleType: string;
12
14
  adapterProps: () => Record<string, unknown>;
13
- setSourcesLoading: (aborter: string) => void;
15
+ setSourcesLoading: (aborter: StopToken) => void;
14
16
  setError: (error: unknown) => void;
15
- setMessage: (str: string) => void;
17
+ setStatusMessage: (str: string) => void;
16
18
  setSources: (sources: Source[]) => void;
17
19
  }): void;
@@ -2,8 +2,8 @@ import { getContainingView, getSession } from '@jbrowse/core/util';
2
2
  import { isAbortException } from '@jbrowse/core/util/aborting';
3
3
  import { createStopToken } from '@jbrowse/core/util/stopToken';
4
4
  import { getRpcSessionId } from '@jbrowse/core/util/tracks';
5
+ import { addDisposer, isAlive } from '@jbrowse/mobx-state-tree';
5
6
  import { autorun } from 'mobx';
6
- import { addDisposer, isAlive } from 'mobx-state-tree';
7
7
  export function getMultiWiggleSourcesAutorun(self) {
8
8
  addDisposer(self, autorun(async () => {
9
9
  try {
@@ -20,6 +20,11 @@ export function getMultiWiggleSourcesAutorun(self) {
20
20
  regions: view.staticBlocks.contentBlocks,
21
21
  sessionId,
22
22
  adapterConfig,
23
+ statusCallback: (arg) => {
24
+ if (isAlive(self)) {
25
+ self.setStatusMessage(arg);
26
+ }
27
+ },
23
28
  }));
24
29
  if (isAlive(self)) {
25
30
  self.setSources(sources);
@@ -31,5 +36,5 @@ export function getMultiWiggleSourcesAutorun(self) {
31
36
  getSession(self).notifyError(`${e}`, e);
32
37
  }
33
38
  }
34
- }));
39
+ }, { name: 'MultiWiggleGetSources' }));
35
40
  }
@@ -1,13 +1,15 @@
1
1
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
2
  import type { QuantitativeStats } from '@jbrowse/core/util/stats';
3
+ import type { StopToken } from '@jbrowse/core/util/stopToken';
3
4
  export declare function getQuantitativeStats(self: {
4
5
  adapterConfig: AnyConfigurationModel;
5
6
  configuration: AnyConfigurationModel;
6
7
  autoscaleType: string;
7
- setMessage: (str: string) => void;
8
+ setStatusMessage: (str: string) => void;
9
+ effectiveRpcDriverName?: string;
8
10
  }, opts: {
9
11
  headers?: Record<string, string>;
10
- stopToken?: string;
12
+ stopToken?: StopToken;
11
13
  filters: string[];
12
14
  currStatsBpPerPx: number;
13
15
  }): Promise<QuantitativeStats>;