@jbrowse/plugin-wiggle 2.0.1 → 2.1.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 (414) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.d.ts +8 -7
  2. package/dist/BigWigAdapter/BigWigAdapter.js +59 -29
  3. package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -1
  4. package/dist/BigWigAdapter/configSchema.js +5 -0
  5. package/dist/BigWigAdapter/configSchema.js.map +1 -1
  6. package/dist/BigWigAdapter/index.d.ts +3 -1
  7. package/dist/BigWigAdapter/index.js +39 -3
  8. package/dist/BigWigAdapter/index.js.map +1 -1
  9. package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +9 -0
  10. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +68 -0
  11. package/dist/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -0
  12. package/dist/CreateMultiWiggleExtension/index.d.ts +2 -0
  13. package/dist/CreateMultiWiggleExtension/index.js +111 -0
  14. package/dist/CreateMultiWiggleExtension/index.js.map +1 -0
  15. package/dist/DensityRenderer/DensityRenderer.d.ts +6 -0
  16. package/dist/DensityRenderer/DensityRenderer.js +74 -0
  17. package/dist/DensityRenderer/DensityRenderer.js.map +1 -0
  18. package/dist/DensityRenderer/configSchema.d.ts +2 -0
  19. package/dist/DensityRenderer/configSchema.js +10 -0
  20. package/dist/DensityRenderer/configSchema.js.map +1 -0
  21. package/dist/DensityRenderer/index.d.ts +3 -6
  22. package/dist/DensityRenderer/index.js +12 -149
  23. package/dist/DensityRenderer/index.js.map +1 -1
  24. package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
  25. package/dist/LinePlotRenderer/LinePlotRenderer.js +4 -103
  26. package/dist/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
  27. package/dist/LinePlotRenderer/configSchema.d.ts +2 -0
  28. package/dist/LinePlotRenderer/configSchema.js +16 -0
  29. package/dist/LinePlotRenderer/configSchema.js.map +1 -0
  30. package/dist/LinePlotRenderer/index.d.ts +3 -3
  31. package/dist/LinePlotRenderer/index.js +13 -14
  32. package/dist/LinePlotRenderer/index.js.map +1 -1
  33. package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +6 -2
  34. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +8 -16
  35. package/dist/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  36. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
  37. package/dist/LinearWiggleDisplay/components/Tooltip.js +11 -122
  38. package/dist/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  39. package/dist/LinearWiggleDisplay/index.d.ts +7 -3
  40. package/dist/LinearWiggleDisplay/index.js +23 -8
  41. package/dist/LinearWiggleDisplay/index.js.map +1 -1
  42. package/dist/LinearWiggleDisplay/models/model.d.ts +24 -5
  43. package/dist/LinearWiggleDisplay/models/model.js +79 -126
  44. package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
  45. package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
  46. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +135 -0
  47. package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
  48. package/dist/MultiDensityRenderer/configSchema.d.ts +2 -0
  49. package/dist/MultiDensityRenderer/configSchema.js +10 -0
  50. package/dist/MultiDensityRenderer/configSchema.js.map +1 -0
  51. package/dist/MultiDensityRenderer/index.d.ts +3 -0
  52. package/dist/MultiDensityRenderer/index.js +19 -0
  53. package/dist/MultiDensityRenderer/index.js.map +1 -0
  54. package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
  55. package/dist/MultiLineRenderer/MultiLineRenderer.js +124 -0
  56. package/dist/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
  57. package/dist/MultiLineRenderer/configSchema.d.ts +2 -0
  58. package/dist/MultiLineRenderer/configSchema.js +23 -0
  59. package/dist/MultiLineRenderer/configSchema.js.map +1 -0
  60. package/dist/MultiLineRenderer/index.d.ts +3 -0
  61. package/dist/MultiLineRenderer/index.js +19 -0
  62. package/dist/MultiLineRenderer/index.js.map +1 -0
  63. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
  64. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +239 -0
  65. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  66. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
  67. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +91 -0
  68. package/dist/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  69. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
  70. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +78 -0
  71. package/dist/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
  72. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
  73. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +144 -0
  74. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  75. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
  76. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js +26 -0
  77. package/dist/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  78. package/dist/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
  79. package/dist/MultiLinearWiggleDisplay/components/util.js +38 -0
  80. package/dist/MultiLinearWiggleDisplay/components/util.js.map +1 -0
  81. package/dist/MultiLinearWiggleDisplay/index.d.ts +3 -0
  82. package/dist/MultiLinearWiggleDisplay/index.js +23 -0
  83. package/dist/MultiLinearWiggleDisplay/index.js.map +1 -0
  84. package/dist/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
  85. package/dist/MultiLinearWiggleDisplay/models/configSchema.js +77 -0
  86. package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
  87. package/dist/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
  88. package/dist/MultiLinearWiggleDisplay/models/model.js +675 -0
  89. package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -0
  90. package/dist/MultiQuantitativeTrack/index.d.ts +3 -0
  91. package/dist/MultiQuantitativeTrack/index.js +19 -0
  92. package/dist/MultiQuantitativeTrack/index.js.map +1 -0
  93. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
  94. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +131 -0
  95. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
  96. package/dist/MultiRowLineRenderer/configSchema.d.ts +2 -0
  97. package/dist/MultiRowLineRenderer/configSchema.js +23 -0
  98. package/dist/MultiRowLineRenderer/configSchema.js.map +1 -0
  99. package/dist/MultiRowLineRenderer/index.d.ts +3 -0
  100. package/dist/MultiRowLineRenderer/index.js +19 -0
  101. package/dist/MultiRowLineRenderer/index.js.map +1 -0
  102. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
  103. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +164 -0
  104. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
  105. package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
  106. package/dist/MultiRowXYPlotRenderer/configSchema.js +31 -0
  107. package/dist/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
  108. package/dist/MultiRowXYPlotRenderer/index.d.ts +3 -0
  109. package/dist/MultiRowXYPlotRenderer/index.js +19 -0
  110. package/dist/MultiRowXYPlotRenderer/index.js.map +1 -0
  111. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +28 -0
  112. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +244 -0
  113. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
  114. package/dist/MultiWiggleAdapter/configSchema.d.ts +2 -0
  115. package/dist/MultiWiggleAdapter/configSchema.js +14 -0
  116. package/dist/MultiWiggleAdapter/configSchema.js.map +1 -0
  117. package/dist/MultiWiggleAdapter/index.d.ts +3 -0
  118. package/dist/MultiWiggleAdapter/index.js +47 -0
  119. package/dist/MultiWiggleAdapter/index.js.map +1 -0
  120. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
  121. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +139 -0
  122. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
  123. package/dist/MultiWiggleAddTrackWidget/index.d.ts +3 -0
  124. package/dist/MultiWiggleAddTrackWidget/index.js +19 -0
  125. package/dist/MultiWiggleAddTrackWidget/index.js.map +1 -0
  126. package/dist/MultiWiggleRendering.d.ts +21 -0
  127. package/dist/MultiWiggleRendering.js +164 -0
  128. package/dist/MultiWiggleRendering.js.map +1 -0
  129. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
  130. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +153 -0
  131. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
  132. package/dist/MultiXYPlotRenderer/configSchema.d.ts +2 -0
  133. package/dist/MultiXYPlotRenderer/configSchema.js +31 -0
  134. package/dist/MultiXYPlotRenderer/configSchema.js.map +1 -0
  135. package/dist/MultiXYPlotRenderer/index.d.ts +3 -0
  136. package/dist/MultiXYPlotRenderer/index.js +19 -0
  137. package/dist/MultiXYPlotRenderer/index.js.map +1 -0
  138. package/dist/QuantitativeTrack/index.d.ts +3 -0
  139. package/dist/QuantitativeTrack/index.js +19 -0
  140. package/dist/QuantitativeTrack/index.js.map +1 -0
  141. package/dist/Tooltip.d.ts +20 -0
  142. package/dist/Tooltip.js +124 -0
  143. package/dist/Tooltip.js.map +1 -0
  144. package/dist/WiggleBaseRenderer.d.ts +9 -10
  145. package/dist/WiggleBaseRenderer.js +23 -10
  146. package/dist/WiggleBaseRenderer.js.map +1 -1
  147. package/dist/WiggleRPC/rpcMethods.d.ts +17 -1
  148. package/dist/WiggleRPC/rpcMethods.js +91 -16
  149. package/dist/WiggleRPC/rpcMethods.js.map +1 -1
  150. package/dist/WiggleRendering.d.ts +1 -1
  151. package/dist/WiggleRendering.js +4 -8
  152. package/dist/WiggleRendering.js.map +1 -1
  153. package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
  154. package/dist/XYPlotRenderer/XYPlotRenderer.js +23 -126
  155. package/dist/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
  156. package/dist/XYPlotRenderer/configSchema.d.ts +2 -0
  157. package/dist/XYPlotRenderer/configSchema.js +31 -0
  158. package/dist/XYPlotRenderer/configSchema.js.map +1 -0
  159. package/dist/XYPlotRenderer/index.d.ts +7 -3
  160. package/dist/XYPlotRenderer/index.js +17 -25
  161. package/dist/XYPlotRenderer/index.js.map +1 -1
  162. package/dist/configSchema.js +0 -5
  163. package/dist/configSchema.js.map +1 -1
  164. package/dist/drawxy.d.ts +50 -0
  165. package/dist/drawxy.js +411 -0
  166. package/dist/drawxy.js.map +1 -0
  167. package/dist/index.d.ts +79 -21
  168. package/dist/index.js +56 -89
  169. package/dist/index.js.map +1 -1
  170. package/dist/util.d.ts +34 -1
  171. package/dist/util.js +159 -1
  172. package/dist/util.js.map +1 -1
  173. package/esm/BigWigAdapter/BigWigAdapter.d.ts +8 -7
  174. package/esm/BigWigAdapter/BigWigAdapter.js +37 -18
  175. package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -1
  176. package/esm/BigWigAdapter/configSchema.js +5 -0
  177. package/esm/BigWigAdapter/configSchema.js.map +1 -1
  178. package/esm/BigWigAdapter/index.d.ts +3 -1
  179. package/esm/BigWigAdapter/index.js +14 -1
  180. package/esm/BigWigAdapter/index.js.map +1 -1
  181. package/esm/CreateMultiWiggleExtension/ConfirmDialog.d.ts +9 -0
  182. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +26 -0
  183. package/esm/CreateMultiWiggleExtension/ConfirmDialog.js.map +1 -0
  184. package/esm/CreateMultiWiggleExtension/index.d.ts +2 -0
  185. package/esm/CreateMultiWiggleExtension/index.js +51 -0
  186. package/esm/CreateMultiWiggleExtension/index.js.map +1 -0
  187. package/esm/DensityRenderer/DensityRenderer.d.ts +6 -0
  188. package/esm/DensityRenderer/DensityRenderer.js +8 -0
  189. package/esm/DensityRenderer/DensityRenderer.js.map +1 -0
  190. package/esm/DensityRenderer/configSchema.d.ts +2 -0
  191. package/esm/DensityRenderer/configSchema.js +5 -0
  192. package/esm/DensityRenderer/configSchema.js.map +1 -0
  193. package/esm/DensityRenderer/index.d.ts +3 -6
  194. package/esm/DensityRenderer/index.js +11 -38
  195. package/esm/DensityRenderer/index.js.map +1 -1
  196. package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +4 -2
  197. package/esm/LinePlotRenderer/LinePlotRenderer.js +7 -65
  198. package/esm/LinePlotRenderer/LinePlotRenderer.js.map +1 -1
  199. package/esm/LinePlotRenderer/configSchema.d.ts +2 -0
  200. package/esm/LinePlotRenderer/configSchema.js +11 -0
  201. package/esm/LinePlotRenderer/configSchema.js.map +1 -0
  202. package/esm/LinePlotRenderer/index.d.ts +3 -3
  203. package/esm/LinePlotRenderer/index.js +11 -11
  204. package/esm/LinePlotRenderer/index.js.map +1 -1
  205. package/esm/LinearWiggleDisplay/components/SetColorDialog.d.ts +6 -2
  206. package/esm/LinearWiggleDisplay/components/SetColorDialog.js +9 -16
  207. package/esm/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  208. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +6 -11
  209. package/esm/LinearWiggleDisplay/components/Tooltip.js +3 -76
  210. package/esm/LinearWiggleDisplay/components/Tooltip.js.map +1 -1
  211. package/esm/LinearWiggleDisplay/index.d.ts +7 -3
  212. package/esm/LinearWiggleDisplay/index.js +20 -3
  213. package/esm/LinearWiggleDisplay/index.js.map +1 -1
  214. package/esm/LinearWiggleDisplay/models/model.d.ts +24 -5
  215. package/esm/LinearWiggleDisplay/models/model.js +87 -133
  216. package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
  217. package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +7 -0
  218. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +36 -0
  219. package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -0
  220. package/esm/MultiDensityRenderer/configSchema.d.ts +2 -0
  221. package/esm/MultiDensityRenderer/configSchema.js +5 -0
  222. package/esm/MultiDensityRenderer/configSchema.js.map +1 -0
  223. package/esm/MultiDensityRenderer/index.d.ts +3 -0
  224. package/esm/MultiDensityRenderer/index.js +12 -0
  225. package/esm/MultiDensityRenderer/index.js.map +1 -0
  226. package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +7 -0
  227. package/esm/MultiLineRenderer/MultiLineRenderer.js +25 -0
  228. package/esm/MultiLineRenderer/MultiLineRenderer.js.map +1 -0
  229. package/esm/MultiLineRenderer/configSchema.d.ts +2 -0
  230. package/esm/MultiLineRenderer/configSchema.js +18 -0
  231. package/esm/MultiLineRenderer/configSchema.js.map +1 -0
  232. package/esm/MultiLineRenderer/index.d.ts +3 -0
  233. package/esm/MultiLineRenderer/index.js +12 -0
  234. package/esm/MultiLineRenderer/index.js.map +1 -0
  235. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
  236. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +162 -0
  237. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  238. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
  239. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js +46 -0
  240. package/esm/MultiLinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  241. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +25 -0
  242. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +43 -0
  243. package/esm/MultiLinearWiggleDisplay/components/Tooltip.js.map +1 -0
  244. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +13 -0
  245. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +99 -0
  246. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  247. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
  248. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js +9 -0
  249. package/esm/MultiLinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  250. package/esm/MultiLinearWiggleDisplay/components/util.d.ts +10 -0
  251. package/esm/MultiLinearWiggleDisplay/components/util.js +31 -0
  252. package/esm/MultiLinearWiggleDisplay/components/util.js.map +1 -0
  253. package/esm/MultiLinearWiggleDisplay/index.d.ts +3 -0
  254. package/esm/MultiLinearWiggleDisplay/index.js +18 -0
  255. package/esm/MultiLinearWiggleDisplay/index.js.map +1 -0
  256. package/esm/MultiLinearWiggleDisplay/models/configSchema.d.ts +2 -0
  257. package/esm/MultiLinearWiggleDisplay/models/configSchema.js +74 -0
  258. package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -0
  259. package/esm/MultiLinearWiggleDisplay/models/model.d.ts +339 -0
  260. package/esm/MultiLinearWiggleDisplay/models/model.js +570 -0
  261. package/esm/MultiLinearWiggleDisplay/models/model.js.map +1 -0
  262. package/esm/MultiQuantitativeTrack/index.d.ts +3 -0
  263. package/esm/MultiQuantitativeTrack/index.js +14 -0
  264. package/esm/MultiQuantitativeTrack/index.js.map +1 -0
  265. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +7 -0
  266. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +33 -0
  267. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -0
  268. package/esm/MultiRowLineRenderer/configSchema.d.ts +2 -0
  269. package/esm/MultiRowLineRenderer/configSchema.js +18 -0
  270. package/esm/MultiRowLineRenderer/configSchema.js.map +1 -0
  271. package/esm/MultiRowLineRenderer/index.d.ts +3 -0
  272. package/esm/MultiRowLineRenderer/index.js +12 -0
  273. package/esm/MultiRowLineRenderer/index.js.map +1 -0
  274. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +7 -0
  275. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +39 -0
  276. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -0
  277. package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +2 -0
  278. package/esm/MultiRowXYPlotRenderer/configSchema.js +26 -0
  279. package/esm/MultiRowXYPlotRenderer/configSchema.js.map +1 -0
  280. package/esm/MultiRowXYPlotRenderer/index.d.ts +3 -0
  281. package/esm/MultiRowXYPlotRenderer/index.js +12 -0
  282. package/esm/MultiRowXYPlotRenderer/index.js.map +1 -0
  283. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +28 -0
  284. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +87 -0
  285. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -0
  286. package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -0
  287. package/esm/MultiWiggleAdapter/configSchema.js +12 -0
  288. package/esm/MultiWiggleAdapter/configSchema.js.map +1 -0
  289. package/esm/MultiWiggleAdapter/index.d.ts +3 -0
  290. package/esm/MultiWiggleAdapter/index.js +15 -0
  291. package/esm/MultiWiggleAdapter/index.js.map +1 -0
  292. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +5 -0
  293. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +87 -0
  294. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -0
  295. package/esm/MultiWiggleAddTrackWidget/index.d.ts +3 -0
  296. package/esm/MultiWiggleAddTrackWidget/index.js +12 -0
  297. package/esm/MultiWiggleAddTrackWidget/index.js.map +1 -0
  298. package/esm/MultiWiggleRendering.d.ts +21 -0
  299. package/esm/MultiWiggleRendering.js +75 -0
  300. package/esm/MultiWiggleRendering.js.map +1 -0
  301. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +7 -0
  302. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +28 -0
  303. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -0
  304. package/esm/MultiXYPlotRenderer/configSchema.d.ts +2 -0
  305. package/esm/MultiXYPlotRenderer/configSchema.js +26 -0
  306. package/esm/MultiXYPlotRenderer/configSchema.js.map +1 -0
  307. package/esm/MultiXYPlotRenderer/index.d.ts +3 -0
  308. package/esm/MultiXYPlotRenderer/index.js +12 -0
  309. package/esm/MultiXYPlotRenderer/index.js.map +1 -0
  310. package/esm/QuantitativeTrack/index.d.ts +3 -0
  311. package/esm/QuantitativeTrack/index.js +14 -0
  312. package/esm/QuantitativeTrack/index.js.map +1 -0
  313. package/esm/Tooltip.d.ts +20 -0
  314. package/esm/Tooltip.js +71 -0
  315. package/esm/Tooltip.js.map +1 -0
  316. package/esm/WiggleBaseRenderer.d.ts +9 -10
  317. package/esm/WiggleBaseRenderer.js +7 -5
  318. package/esm/WiggleBaseRenderer.js.map +1 -1
  319. package/esm/WiggleRPC/rpcMethods.d.ts +17 -1
  320. package/esm/WiggleRPC/rpcMethods.js +49 -7
  321. package/esm/WiggleRPC/rpcMethods.js.map +1 -1
  322. package/esm/WiggleRendering.d.ts +1 -1
  323. package/esm/WiggleRendering.js +4 -8
  324. package/esm/WiggleRendering.js.map +1 -1
  325. package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +4 -1
  326. package/esm/XYPlotRenderer/XYPlotRenderer.js +16 -99
  327. package/esm/XYPlotRenderer/XYPlotRenderer.js.map +1 -1
  328. package/esm/XYPlotRenderer/configSchema.d.ts +2 -0
  329. package/esm/XYPlotRenderer/configSchema.js +26 -0
  330. package/esm/XYPlotRenderer/configSchema.js.map +1 -0
  331. package/esm/XYPlotRenderer/index.d.ts +7 -3
  332. package/esm/XYPlotRenderer/index.js +12 -22
  333. package/esm/XYPlotRenderer/index.js.map +1 -1
  334. package/esm/configSchema.js +0 -5
  335. package/esm/configSchema.js.map +1 -1
  336. package/esm/drawxy.d.ts +50 -0
  337. package/esm/drawxy.js +286 -0
  338. package/esm/drawxy.js.map +1 -0
  339. package/esm/index.d.ts +79 -21
  340. package/esm/index.js +49 -74
  341. package/esm/index.js.map +1 -1
  342. package/esm/util.d.ts +34 -1
  343. package/esm/util.js +108 -0
  344. package/esm/util.js.map +1 -1
  345. package/package.json +11 -5
  346. package/src/BigWigAdapter/BigWigAdapter.ts +53 -35
  347. package/src/BigWigAdapter/__snapshots__/BigWigAdapter.test.ts.snap +10 -10
  348. package/src/BigWigAdapter/configSchema.ts +5 -0
  349. package/src/BigWigAdapter/index.ts +19 -1
  350. package/src/CreateMultiWiggleExtension/ConfirmDialog.tsx +66 -0
  351. package/src/CreateMultiWiggleExtension/index.ts +57 -0
  352. package/src/DensityRenderer/DensityRenderer.test.js +8 -2
  353. package/src/DensityRenderer/DensityRenderer.ts +14 -0
  354. package/src/DensityRenderer/__snapshots__/DensityRenderer.test.js.snap +8 -0
  355. package/src/DensityRenderer/configSchema.ts +11 -0
  356. package/src/DensityRenderer/index.ts +14 -53
  357. package/src/LinePlotRenderer/LinePlotRenderer.ts +19 -0
  358. package/src/LinePlotRenderer/{index.js → configSchema.ts} +3 -4
  359. package/src/LinePlotRenderer/index.ts +16 -0
  360. package/src/LinearWiggleDisplay/components/SetColorDialog.tsx +17 -19
  361. package/src/LinearWiggleDisplay/components/Tooltip.tsx +6 -122
  362. package/src/LinearWiggleDisplay/index.ts +24 -3
  363. package/src/LinearWiggleDisplay/models/model.tsx +98 -174
  364. package/src/MultiDensityRenderer/MultiDensityRenderer.ts +39 -0
  365. package/src/MultiDensityRenderer/configSchema.ts +10 -0
  366. package/src/MultiDensityRenderer/index.ts +16 -0
  367. package/src/MultiLineRenderer/MultiLineRenderer.ts +29 -0
  368. package/src/MultiLineRenderer/configSchema.ts +24 -0
  369. package/src/MultiLineRenderer/index.ts +17 -0
  370. package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +322 -0
  371. package/src/MultiLinearWiggleDisplay/components/SetMinMaxDialog.tsx +113 -0
  372. package/src/MultiLinearWiggleDisplay/components/Tooltip.tsx +76 -0
  373. package/src/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.tsx +261 -0
  374. package/src/MultiLinearWiggleDisplay/components/YScaleBar.tsx +25 -0
  375. package/src/MultiLinearWiggleDisplay/components/declare.d.ts +1 -0
  376. package/src/MultiLinearWiggleDisplay/components/util.test.ts +69 -0
  377. package/src/MultiLinearWiggleDisplay/components/util.ts +33 -0
  378. package/src/MultiLinearWiggleDisplay/index.ts +20 -0
  379. package/src/MultiLinearWiggleDisplay/models/configSchema.ts +94 -0
  380. package/src/MultiLinearWiggleDisplay/models/model.tsx +721 -0
  381. package/src/MultiQuantitativeTrack/index.ts +26 -0
  382. package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +36 -0
  383. package/src/MultiRowLineRenderer/configSchema.ts +25 -0
  384. package/src/MultiRowLineRenderer/index.ts +16 -0
  385. package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +43 -0
  386. package/src/MultiRowXYPlotRenderer/configSchema.ts +33 -0
  387. package/src/MultiRowXYPlotRenderer/index.ts +16 -0
  388. package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +120 -0
  389. package/src/MultiWiggleAdapter/configSchema.ts +16 -0
  390. package/src/MultiWiggleAdapter/index.ts +20 -0
  391. package/src/MultiWiggleAdapter/test_data/volvox.bw +0 -0
  392. package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +130 -0
  393. package/src/MultiWiggleAddTrackWidget/index.ts +17 -0
  394. package/src/MultiWiggleRendering.tsx +125 -0
  395. package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +32 -0
  396. package/src/MultiXYPlotRenderer/configSchema.ts +31 -0
  397. package/src/MultiXYPlotRenderer/index.ts +17 -0
  398. package/src/QuantitativeTrack/index.ts +26 -0
  399. package/src/Tooltip.tsx +123 -0
  400. package/src/WiggleBaseRenderer.tsx +15 -9
  401. package/src/WiggleRPC/rpcMethods.ts +68 -17
  402. package/src/WiggleRendering.tsx +12 -18
  403. package/src/XYPlotRenderer/XYPlotRenderer.test.js +3 -1
  404. package/src/XYPlotRenderer/XYPlotRenderer.ts +19 -171
  405. package/src/XYPlotRenderer/__snapshots__/XYPlotRenderer.test.js.snap +8 -0
  406. package/src/XYPlotRenderer/configSchema.ts +32 -0
  407. package/src/XYPlotRenderer/index.ts +16 -27
  408. package/src/__snapshots__/WiggleRendering.test.js.snap +0 -2
  409. package/src/configSchema.ts +0 -5
  410. package/src/declare.d.ts +0 -1
  411. package/src/drawxy.ts +387 -0
  412. package/src/index.ts +75 -129
  413. package/src/util.ts +174 -0
  414. package/src/LinePlotRenderer/LinePlotRenderer.js +0 -91
@@ -6,24 +6,27 @@ import {
6
6
  readConfObject,
7
7
  } from '@jbrowse/core/configuration'
8
8
  import {
9
- isAbortException,
10
9
  getSession,
11
10
  getContainingView,
12
11
  isSelectionContainer,
13
12
  } from '@jbrowse/core/util'
14
- import { getRpcSessionId } from '@jbrowse/core/util/tracks'
15
13
  import {
16
14
  BaseLinearDisplay,
17
15
  LinearGenomeViewModel,
18
16
  } from '@jbrowse/plugin-linear-genome-view'
19
- import { autorun, when } from 'mobx'
20
- import { addDisposer, isAlive, types, getEnv, Instance } from 'mobx-state-tree'
17
+ import { when } from 'mobx'
18
+ import { isAlive, types, getEnv, Instance } from 'mobx-state-tree'
21
19
  import PluginManager from '@jbrowse/core/PluginManager'
22
20
 
23
- import { FeatureStats } from '@jbrowse/core/util/stats'
24
21
  import { Feature } from '@jbrowse/core/util/simpleFeature'
25
22
  import { axisPropsFromTickScale } from 'react-d3-axis-mod'
26
- import { getNiceDomain, getScale } from '../../util'
23
+ import {
24
+ getNiceDomain,
25
+ getScale,
26
+ getStats,
27
+ statsAutorun,
28
+ YSCALEBAR_LABEL_OFFSET,
29
+ } from '../../util'
27
30
 
28
31
  import Tooltip from '../components/Tooltip'
29
32
  import { YScaleBar } from '../components/WiggleDisplayComponent'
@@ -31,9 +34,6 @@ import { YScaleBar } from '../components/WiggleDisplayComponent'
31
34
  const SetMinMaxDlg = lazy(() => import('../components/SetMinMaxDialog'))
32
35
  const SetColorDlg = lazy(() => import('../components/SetColorDialog'))
33
36
 
34
- // fudge factor for making all labels on the YScalebar visible
35
- export const YSCALEBAR_LABEL_OFFSET = 5
36
-
37
37
  // using a map because it preserves order
38
38
  const rendererTypes = new Map([
39
39
  ['xyplot', 'XYPlotRenderer'],
@@ -57,6 +57,7 @@ const stateModelFactory = (
57
57
  selectedRendering: types.optional(types.string, ''),
58
58
  resolution: types.optional(types.number, 1),
59
59
  fill: types.maybe(types.boolean),
60
+ minSize: types.maybe(types.number),
60
61
  color: types.maybe(types.string),
61
62
  posColor: types.maybe(types.string),
62
63
  negColor: types.maybe(types.string),
@@ -81,20 +82,16 @@ const stateModelFactory = (
81
82
  statsFetchInProgress: undefined as undefined | AbortController,
82
83
  }))
83
84
  .actions(self => ({
84
- updateStats({
85
- scoreMin,
86
- scoreMax,
87
- }: {
88
- scoreMin: number
89
- scoreMax: number
90
- }) {
85
+ updateStats(stats: { scoreMin: number; scoreMax: number }) {
86
+ const { scoreMin, scoreMax } = stats
87
+ const EPSILON = 0.000001
91
88
  if (
92
- self.stats.scoreMin !== scoreMin ||
93
- self.stats.scoreMax !== scoreMax
89
+ Math.abs(self.stats.scoreMax - scoreMax) > EPSILON ||
90
+ Math.abs(self.stats.scoreMin - scoreMin) > EPSILON
94
91
  ) {
95
92
  self.stats = { scoreMin, scoreMax }
93
+ self.statsReady = true
96
94
  }
97
- self.statsReady = true
98
95
  },
99
96
  setColor(color: string) {
100
97
  self.color = color
@@ -127,8 +124,17 @@ const stateModelFactory = (
127
124
  self.resolution = res
128
125
  },
129
126
 
130
- setFill(fill: boolean) {
131
- self.fill = fill
127
+ setFill(fill: number) {
128
+ if (fill === 0) {
129
+ self.fill = true
130
+ self.minSize = 0
131
+ } else if (fill === 1) {
132
+ self.fill = false
133
+ self.minSize = 1
134
+ } else if (fill === 2) {
135
+ self.fill = false
136
+ self.minSize = 2
137
+ }
132
138
  },
133
139
 
134
140
  toggleLogScale() {
@@ -180,12 +186,15 @@ const stateModelFactory = (
180
186
  return self.adapterConfig.type
181
187
  },
182
188
 
189
+ get rendererTypeNameSimple() {
190
+ return self.rendererTypeNameState || getConf(self, 'defaultRendering')
191
+ },
192
+
183
193
  get rendererTypeName() {
184
- const viewName =
185
- self.rendererTypeNameState || getConf(self, 'defaultRendering')
186
- const rendererType = rendererTypes.get(viewName)
194
+ const name = this.rendererTypeNameSimple
195
+ const rendererType = rendererTypes.get(name)
187
196
  if (!rendererType) {
188
- throw new Error(`unknown alignments view name ${viewName}`)
197
+ throw new Error(`unknown renderer ${name}`)
189
198
  }
190
199
  return rendererType
191
200
  },
@@ -200,13 +209,11 @@ const stateModelFactory = (
200
209
  },
201
210
 
202
211
  get maxScore() {
203
- const { max } = self.constraints
204
- return max ?? getConf(self, 'maxScore')
212
+ return self.constraints.max ?? getConf(self, 'maxScore')
205
213
  },
206
214
 
207
215
  get minScore() {
208
- const { min } = self.constraints
209
- return min ?? getConf(self, 'minScore')
216
+ return self.constraints.min ?? getConf(self, 'minScore')
210
217
  },
211
218
  }))
212
219
  .views(self => ({
@@ -216,24 +223,28 @@ const stateModelFactory = (
216
223
 
217
224
  const {
218
225
  color,
219
- posColor,
226
+ displayCrossHatches,
227
+ fill,
228
+ minSize,
220
229
  negColor,
230
+ posColor,
221
231
  summaryScoreMode,
222
232
  scaleType,
223
- displayCrossHatches,
224
- fill,
225
233
  } = self
226
234
 
227
235
  return self.rendererType.configSchema.create(
228
236
  {
229
237
  ...configBlob,
230
238
  ...(scaleType ? { scaleType } : {}),
231
- ...(fill ? { filled: fill } : {}),
232
- ...(displayCrossHatches ? { displayCrossHatches } : {}),
233
- ...(summaryScoreMode ? { summaryScoreMode } : {}),
234
- ...(color ? { color } : {}),
235
- ...(negColor ? { negColor } : {}),
236
- ...(posColor ? { posColor } : {}),
239
+ ...(fill !== undefined ? { filled: fill } : {}),
240
+ ...(displayCrossHatches !== undefined
241
+ ? { displayCrossHatches }
242
+ : {}),
243
+ ...(summaryScoreMode !== undefined ? { summaryScoreMode } : {}),
244
+ ...(color !== undefined ? { color } : {}),
245
+ ...(negColor !== undefined ? { negColor } : {}),
246
+ ...(posColor !== undefined ? { posColor } : {}),
247
+ ...(minSize !== undefined ? { minSize } : {}),
237
248
  },
238
249
  getEnv(self),
239
250
  )
@@ -306,18 +317,24 @@ const stateModelFactory = (
306
317
  get ticks() {
307
318
  const { scaleType, domain, height } = self
308
319
  const minimalTicks = getConf(self, 'minimalTicks')
320
+ const inverted = getConf(self, 'inverted')
309
321
  const range = [height - YSCALEBAR_LABEL_OFFSET, YSCALEBAR_LABEL_OFFSET]
310
322
  const scale = getScale({
311
323
  scaleType,
312
324
  domain,
313
325
  range,
314
- inverted: getConf(self, 'inverted'),
326
+ inverted,
315
327
  })
316
328
  const ticks = axisPropsFromTickScale(scale, 4)
317
329
  return height < 100 || minimalTicks
318
330
  ? { ...ticks, values: domain }
319
331
  : ticks
320
332
  },
333
+
334
+ get adapterCapabilities() {
335
+ return pluginManager.getAdapterType(self.adapterTypeName)
336
+ .adapterCapabilities
337
+ },
321
338
  }))
322
339
  .views(self => {
323
340
  const { renderProps: superRenderProps } = self
@@ -339,18 +356,22 @@ const stateModelFactory = (
339
356
  filters,
340
357
  }
341
358
  },
342
-
343
- get adapterCapabilities() {
344
- return pluginManager.getAdapterType(self.adapterTypeName)
345
- .adapterCapabilities
346
- },
347
-
348
359
  get hasResolution() {
349
- return this.adapterCapabilities.includes('hasResolution')
360
+ return self.adapterCapabilities.includes('hasResolution')
350
361
  },
351
362
 
352
363
  get hasGlobalStats() {
353
- return this.adapterCapabilities.includes('hasGlobalStats')
364
+ return self.adapterCapabilities.includes('hasGlobalStats')
365
+ },
366
+
367
+ get fillSetting() {
368
+ if (self.filled) {
369
+ return 0
370
+ } else if (!self.filled && self.minSize === 1) {
371
+ return 1
372
+ } else {
373
+ return 2
374
+ }
354
375
  },
355
376
  }
356
377
  })
@@ -380,18 +401,26 @@ const stateModelFactory = (
380
401
  label: 'Summary score mode',
381
402
  subMenu: ['min', 'max', 'avg', 'whiskers'].map(elt => ({
382
403
  label: elt,
404
+ type: 'radio',
405
+ checked: self.summaryScoreModeSetting === elt,
383
406
  onClick: () => self.setSummaryScoreMode(elt),
384
407
  })),
385
408
  },
386
409
  ]
387
410
  : []),
411
+
388
412
  ...(self.canHaveFill
389
413
  ? [
390
414
  {
391
- label: self.filled
392
- ? 'Turn off histogram fill'
393
- : 'Turn on histogram fill',
394
- onClick: () => self.setFill(!self.filled),
415
+ label: 'Fill mode',
416
+ subMenu: ['filled', 'no fill', 'no fill w/ emphasis'].map(
417
+ (elt, idx) => ({
418
+ label: elt,
419
+ type: 'radio',
420
+ checked: self.fillSetting === idx,
421
+ onClick: () => self.setFill(idx),
422
+ }),
423
+ ),
395
424
  },
396
425
  ]
397
426
  : []),
@@ -400,18 +429,26 @@ const stateModelFactory = (
400
429
  self.scaleType === 'log' ? 'Set linear scale' : 'Set log scale',
401
430
  onClick: () => self.toggleLogScale(),
402
431
  },
403
- {
404
- type: 'checkbox',
405
- label: 'Draw cross hatches',
406
- checked: self.displayCrossHatchesSetting,
407
- onClick: () => self.toggleCrossHatches(),
408
- },
432
+
433
+ ...(self.needsScalebar
434
+ ? [
435
+ {
436
+ type: 'checkbox',
437
+ label: 'Draw cross hatches',
438
+ checked: self.displayCrossHatchesSetting,
439
+ onClick: () => self.toggleCrossHatches(),
440
+ },
441
+ ]
442
+ : []),
443
+
409
444
  ...(hasRenderings
410
445
  ? [
411
446
  {
412
447
  label: 'Renderer type',
413
448
  subMenu: ['xyplot', 'density', 'line'].map(key => ({
414
449
  label: key,
450
+ type: 'radio',
451
+ checked: self.rendererTypeNameSimple === key,
415
452
  onClick: () => self.setRendererType(key),
416
453
  })),
417
454
  },
@@ -430,6 +467,8 @@ const stateModelFactory = (
430
467
  ['localsd', 'Local ± 3σ'],
431
468
  ].map(([val, label]) => ({
432
469
  label,
470
+ type: 'radio',
471
+ checked: self.autoscaleType === val,
433
472
  onClick: () => self.setAutoscale(val),
434
473
  })),
435
474
  },
@@ -460,84 +499,6 @@ const stateModelFactory = (
460
499
 
461
500
  type ExportSvgOpts = Parameters<typeof superRenderSvg>[0]
462
501
 
463
- async function getStats(opts: {
464
- headers?: Record<string, string>
465
- signal?: AbortSignal
466
- filters?: string[]
467
- }): Promise<FeatureStats> {
468
- const { rpcManager } = getSession(self)
469
- const nd = getConf(self, 'numStdDev') || 3
470
- const { adapterConfig, autoscaleType } = self
471
- const sessionId = getRpcSessionId(self)
472
- const params = {
473
- sessionId,
474
- adapterConfig,
475
- statusCallback: (message: string) => {
476
- if (isAlive(self)) {
477
- self.setMessage(message)
478
- }
479
- },
480
- ...opts,
481
- }
482
-
483
- if (autoscaleType === 'global' || autoscaleType === 'globalsd') {
484
- const results: FeatureStats = (await rpcManager.call(
485
- sessionId,
486
- 'WiggleGetGlobalStats',
487
- params,
488
- )) as FeatureStats
489
- const { scoreMin, scoreMean, scoreStdDev } = results
490
- // globalsd uses heuristic to avoid unnecessary scoreMin<0
491
- // if the scoreMin is never less than 0
492
- // helps with most coverage bigwigs just being >0
493
- return autoscaleType === 'globalsd'
494
- ? {
495
- ...results,
496
- scoreMin: scoreMin >= 0 ? 0 : scoreMean - nd * scoreStdDev,
497
- scoreMax: scoreMean + nd * scoreStdDev,
498
- }
499
- : results
500
- }
501
- if (autoscaleType === 'local' || autoscaleType === 'localsd') {
502
- const { dynamicBlocks, bpPerPx } = getContainingView(self) as LGV
503
- const results = (await rpcManager.call(
504
- sessionId,
505
- 'WiggleGetMultiRegionStats',
506
- {
507
- ...params,
508
- regions: dynamicBlocks.contentBlocks.map(region => {
509
- const { start, end } = region
510
- return {
511
- ...JSON.parse(JSON.stringify(region)),
512
- start: Math.floor(start),
513
- end: Math.ceil(end),
514
- }
515
- }),
516
- bpPerPx,
517
- },
518
- )) as FeatureStats
519
- const { scoreMin, scoreMean, scoreStdDev } = results
520
-
521
- // localsd uses heuristic to avoid unnecessary scoreMin<0 if the
522
- // scoreMin is never less than 0 helps with most coverage bigwigs
523
- // just being >0
524
- return autoscaleType === 'localsd'
525
- ? {
526
- ...results,
527
- scoreMin: scoreMin >= 0 ? 0 : scoreMean - nd * scoreStdDev,
528
- scoreMax: scoreMean + nd * scoreStdDev,
529
- }
530
- : results
531
- }
532
- if (autoscaleType === 'zscale') {
533
- return rpcManager.call(
534
- sessionId,
535
- 'WiggleGetGlobalStats',
536
- params,
537
- ) as Promise<FeatureStats>
538
- }
539
- throw new Error(`invalid autoscaleType '${autoscaleType}'`)
540
- }
541
502
  return {
542
503
  // re-runs stats and refresh whole display on reload
543
504
  async reload() {
@@ -545,7 +506,7 @@ const stateModelFactory = (
545
506
  const aborter = new AbortController()
546
507
  self.setLoading(aborter)
547
508
  try {
548
- const stats = await getStats({
509
+ const stats = await getStats(self, {
549
510
  signal: aborter.signal,
550
511
  ...self.renderProps(),
551
512
  })
@@ -558,44 +519,7 @@ const stateModelFactory = (
558
519
  }
559
520
  },
560
521
  afterAttach() {
561
- addDisposer(
562
- self,
563
- autorun(
564
- async () => {
565
- try {
566
- const view = getContainingView(self) as LGV
567
-
568
- if (!view.initialized) {
569
- return
570
- }
571
-
572
- if (!self.estimatedStatsReady) {
573
- return
574
- }
575
- if (self.regionTooLarge) {
576
- return
577
- }
578
- const aborter = new AbortController()
579
- self.setLoading(aborter)
580
-
581
- const wiggleStats = await getStats({
582
- signal: aborter.signal,
583
- ...self.renderProps(),
584
- })
585
-
586
- if (isAlive(self)) {
587
- self.updateStats(wiggleStats)
588
- }
589
- } catch (e) {
590
- if (!isAbortException(e) && isAlive(self)) {
591
- console.error(e)
592
- self.setError(e)
593
- }
594
- }
595
- },
596
- { delay: 1000 },
597
- ),
598
- )
522
+ statsAutorun(self)
599
523
  },
600
524
  async renderSvg(opts: ExportSvgOpts) {
601
525
  await when(() => self.statsReady && !!self.regionCannotBeRenderedText)
@@ -0,0 +1,39 @@
1
+ import { Feature } from '@jbrowse/core/util'
2
+ import { groupBy } from '../util'
3
+ import WiggleBaseRenderer, {
4
+ MultiRenderArgsDeserialized as MultiArgs,
5
+ } from '../WiggleBaseRenderer'
6
+ import { drawDensity } from '../drawxy'
7
+
8
+ export default class MultiXYPlotRenderer extends WiggleBaseRenderer {
9
+ // @ts-ignore
10
+ async draw(ctx: CanvasRenderingContext2D, props: MultiArgs) {
11
+ const { bpPerPx, sources, regions, features } = props
12
+ const [region] = regions
13
+ const groups = groupBy([...features.values()], f => f.get('source'))
14
+ const height = props.height / Object.keys(groups).length
15
+ const width = (region.end - region.start) / bpPerPx
16
+ let feats = [] as Feature[]
17
+ ctx.save()
18
+ sources.forEach(source => {
19
+ const features = groups[source.name]
20
+ if (!features) {
21
+ return
22
+ }
23
+ const { reducedFeatures } = drawDensity(ctx, {
24
+ ...props,
25
+ features,
26
+ height,
27
+ })
28
+ ctx.strokeStyle = 'rgba(200,200,200,0.8)'
29
+ ctx.beginPath()
30
+ ctx.moveTo(0, height)
31
+ ctx.lineTo(width, height)
32
+ ctx.stroke()
33
+ ctx.translate(0, height)
34
+ feats = feats.concat(reducedFeatures)
35
+ })
36
+ ctx.restore()
37
+ return { reducedFeatures: feats }
38
+ }
39
+ }
@@ -0,0 +1,10 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration'
2
+ import ConfigSchema from '../configSchema'
3
+
4
+ const configSchema = ConfigurationSchema(
5
+ 'MultiDensityRenderer',
6
+ {},
7
+ { baseConfiguration: ConfigSchema, explicitlyTyped: true },
8
+ )
9
+
10
+ export default configSchema
@@ -0,0 +1,16 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager'
2
+ import configSchema from './configSchema'
3
+ import ReactComponent from '../MultiWiggleRendering'
4
+ import MultiDensityRenderer from './MultiDensityRenderer'
5
+
6
+ export default (pluginManager: PluginManager) => {
7
+ pluginManager.addRendererType(
8
+ () =>
9
+ new MultiDensityRenderer({
10
+ name: 'MultiDensityRenderer',
11
+ ReactComponent,
12
+ configSchema,
13
+ pluginManager,
14
+ }),
15
+ )
16
+ }
@@ -0,0 +1,29 @@
1
+ import { Feature } from '@jbrowse/core/util'
2
+ import { drawLine } from '../drawxy'
3
+ import { groupBy } from '../util'
4
+
5
+ import WiggleBaseRenderer, {
6
+ MultiRenderArgsDeserialized as MultiArgs,
7
+ } from '../WiggleBaseRenderer'
8
+
9
+ export default class MultiLineRenderer extends WiggleBaseRenderer {
10
+ // @ts-ignore
11
+ async draw(ctx: CanvasRenderingContext2D, props: MultiArgs) {
12
+ const { sources, features } = props
13
+ const groups = groupBy([...features.values()], f => f.get('source'))
14
+ let feats = [] as Feature[]
15
+ sources.forEach(source => {
16
+ const features = groups[source.name]
17
+ if (!features) {
18
+ return
19
+ }
20
+ const { reducedFeatures } = drawLine(ctx, {
21
+ ...props,
22
+ features,
23
+ colorCallback: () => source.color || 'blue',
24
+ })
25
+ feats = feats.concat(reducedFeatures)
26
+ })
27
+ return { reducedFeatures: feats }
28
+ }
29
+ }
@@ -0,0 +1,24 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration'
2
+ import { types } from 'mobx-state-tree'
3
+ import ConfigSchema from '../configSchema'
4
+
5
+ const configSchema = ConfigurationSchema(
6
+ 'MultiLineRenderer',
7
+ {
8
+ displayCrossHatches: {
9
+ type: 'boolean',
10
+ description: 'choose to draw cross hatches (sideways lines)',
11
+ defaultValue: false,
12
+ },
13
+
14
+ summaryScoreMode: {
15
+ type: 'stringEnum',
16
+ model: types.enumeration('Score type', ['max', 'min', 'avg', 'whiskers']),
17
+ description:
18
+ 'choose whether to use max/min/average or whiskers which combines all three into the same rendering',
19
+ defaultValue: 'avg',
20
+ },
21
+ },
22
+ { baseConfiguration: ConfigSchema, explicitlyTyped: true },
23
+ )
24
+ export default configSchema
@@ -0,0 +1,17 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager'
2
+
3
+ import ReactComponent from '../MultiWiggleRendering'
4
+ import MultiLineRenderer from './MultiLineRenderer'
5
+ import configSchema from './configSchema'
6
+
7
+ export default (pluginManager: PluginManager) => {
8
+ pluginManager.addRendererType(
9
+ () =>
10
+ new MultiLineRenderer({
11
+ name: 'MultiLineRenderer',
12
+ ReactComponent,
13
+ configSchema,
14
+ pluginManager,
15
+ }),
16
+ )
17
+ }