@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
package/src/index.ts CHANGED
@@ -1,105 +1,77 @@
1
- import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
2
- import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType'
3
1
  import Plugin from '@jbrowse/core/Plugin'
4
2
  import PluginManager from '@jbrowse/core/PluginManager'
5
- import { ConfigurationSchema } from '@jbrowse/core/configuration'
6
-
7
- import {
8
- createBaseTrackConfig,
9
- createBaseTrackModel,
10
- } from '@jbrowse/core/pluggableElementTypes/models'
11
- import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType'
12
3
  import { FileLocation } from '@jbrowse/core/util/types'
4
+ import {
5
+ AdapterGuesser,
6
+ getFileName,
7
+ TrackTypeGuesser,
8
+ } from '@jbrowse/core/util/tracks'
9
+
10
+ // locals
13
11
  import WiggleBaseRenderer from './WiggleBaseRenderer'
14
12
  import WiggleRendering from './WiggleRendering'
15
- import { configSchema as bigWigAdapterConfigSchema } from './BigWigAdapter'
16
- import DensityRenderer, {
17
- configSchema as densityRendererConfigSchema,
18
- ReactComponent as DensityRendererReactComponent,
19
- } from './DensityRenderer'
13
+ import BigWigAdapterF from './BigWigAdapter'
14
+ import QuantitativeTrackF from './QuantitativeTrack'
15
+ import MultiQuantitativeTrackF from './MultiQuantitativeTrack'
16
+ import MultiWiggleAdapterF from './MultiWiggleAdapter'
17
+ import DensityRendererF from './DensityRenderer'
18
+ import XYPlotRendererF from './XYPlotRenderer'
19
+ import LinePlotRendererF from './LinePlotRenderer'
20
+ import LinearWiggleDisplayF from './LinearWiggleDisplay'
21
+ import MultiLinearWiggleDisplayF from './MultiLinearWiggleDisplay'
22
+ import MultiXYPlotRendererF from './MultiXYPlotRenderer'
23
+ import MultiRowXYPlotRendererF from './MultiRowXYPlotRenderer'
24
+ import MultiDensityRendererF from './MultiDensityRenderer'
25
+ import MultiLineRendererF from './MultiLineRenderer'
26
+ import MultiRowLineRendererF from './MultiRowLineRenderer'
27
+ import CreateMultiWiggleExtensionF from './CreateMultiWiggleExtension'
28
+ import MultiWiggleAddTrackWidgetF from './MultiWiggleAddTrackWidget'
29
+
20
30
  import * as utils from './util'
21
- import {
22
- configSchemaFactory as linearWiggleDisplayConfigSchemaFactory,
23
- modelFactory as linearWiggleDisplayModelFactory,
24
- ReactComponent as LinearWiggleDisplayReactComponent,
25
- YSCALEBAR_LABEL_OFFSET,
26
- } from './LinearWiggleDisplay'
27
- import XYPlotRenderer, {
28
- configSchema as xyPlotRendererConfigSchema,
29
- ReactComponent as XYPlotRendererReactComponent,
30
- } from './XYPlotRenderer'
31
- import LinePlotRenderer, {
32
- configSchema as linePlotRendererConfigSchema,
33
- ReactComponent as LinePlotRendererReactComponent,
34
- } from './LinePlotRenderer'
31
+
35
32
  import {
36
33
  WiggleGetGlobalStats,
37
34
  WiggleGetMultiRegionStats,
35
+ MultiWiggleGetSources,
38
36
  } from './WiggleRPC/rpcMethods'
37
+
39
38
  import {
40
- AdapterGuesser,
41
- getFileName,
42
- TrackTypeGuesser,
43
- } from '@jbrowse/core/util/tracks'
39
+ ReactComponent as LinearWiggleDisplayReactComponent,
40
+ modelFactory as linearWiggleDisplayModelFactory,
41
+ Tooltip,
42
+ } from './LinearWiggleDisplay'
43
+ import { TooltipContentsComponent } from './Tooltip'
44
+ import {
45
+ ReactComponent as XYPlotRendererReactComponent,
46
+ configSchema as xyPlotRendererConfigSchema,
47
+ XYPlotRenderer,
48
+ } from './XYPlotRenderer'
44
49
 
45
50
  export default class WigglePlugin extends Plugin {
46
51
  name = 'WigglePlugin'
47
52
 
48
- install(pluginManager: PluginManager) {
49
- pluginManager.addTrackType(() => {
50
- const configSchema = ConfigurationSchema(
51
- 'QuantitativeTrack',
52
- {},
53
- { baseConfiguration: createBaseTrackConfig(pluginManager) },
54
- )
55
- return new TrackType({
56
- name: 'QuantitativeTrack',
57
- configSchema,
58
- stateModel: createBaseTrackModel(
59
- pluginManager,
60
- 'QuantitativeTrack',
61
- configSchema,
62
- ),
63
- })
64
- })
65
-
66
- pluginManager.addDisplayType(() => {
67
- const configSchema = linearWiggleDisplayConfigSchemaFactory(pluginManager)
68
- return new DisplayType({
69
- name: 'LinearWiggleDisplay',
70
- configSchema,
71
- stateModel: linearWiggleDisplayModelFactory(
72
- pluginManager,
73
- configSchema,
74
- ),
75
- trackType: 'QuantitativeTrack',
76
- viewType: 'LinearGenomeView',
77
- ReactComponent: LinearWiggleDisplayReactComponent,
78
- })
79
- })
53
+ install(pm: PluginManager) {
54
+ MultiWiggleAdapterF(pm)
55
+ BigWigAdapterF(pm)
56
+ QuantitativeTrackF(pm)
57
+ MultiQuantitativeTrackF(pm)
58
+ LinearWiggleDisplayF(pm)
59
+ MultiLinearWiggleDisplayF(pm)
60
+ LinePlotRendererF(pm)
61
+ XYPlotRendererF(pm)
62
+ DensityRendererF(pm)
63
+ MultiXYPlotRendererF(pm)
64
+ MultiRowXYPlotRendererF(pm)
65
+ MultiDensityRendererF(pm)
66
+ MultiLineRendererF(pm)
67
+ MultiRowLineRendererF(pm)
68
+ MultiWiggleAddTrackWidgetF(pm)
69
+ CreateMultiWiggleExtensionF(pm)
80
70
 
81
- pluginManager.addAdapterType(
82
- () =>
83
- new AdapterType({
84
- name: 'BigWigAdapter',
85
- configSchema: bigWigAdapterConfigSchema,
86
- adapterCapabilities: [
87
- 'hasResolution',
88
- 'hasLocalStats',
89
- 'hasGlobalStats',
90
- ],
91
- getAdapterClass: () =>
92
- import('./BigWigAdapter/BigWigAdapter').then(r => r.default),
93
- }),
94
- )
95
- pluginManager.addToExtensionPoint(
71
+ pm.addToExtensionPoint(
96
72
  'Core-guessAdapterForLocation',
97
- (adapterGuesser: AdapterGuesser) => {
98
- return (
99
- file: FileLocation,
100
- index?: FileLocation,
101
- adapterHint?: string,
102
- ) => {
73
+ (cb: AdapterGuesser) => {
74
+ return (file: FileLocation, index?: FileLocation, hint?: string) => {
103
75
  const regexGuess = /\.(bw|bigwig)$/i
104
76
  const adapterName = 'BigWigAdapter'
105
77
  const fileName = getFileName(file)
@@ -108,17 +80,17 @@ export default class WigglePlugin extends Plugin {
108
80
  bigWigLocation: file,
109
81
  }
110
82
 
111
- if (regexGuess.test(fileName) && !adapterHint) {
83
+ if (regexGuess.test(fileName) && !hint) {
112
84
  return obj
113
- } else if (adapterHint === adapterName) {
85
+ } else if (hint === adapterName) {
114
86
  return obj
115
87
  }
116
88
 
117
- return adapterGuesser(file, index, adapterHint)
89
+ return cb(file, index, hint)
118
90
  }
119
91
  },
120
92
  )
121
- pluginManager.addToExtensionPoint(
93
+ pm.addToExtensionPoint(
122
94
  'Core-guessTrackTypeForLocation',
123
95
  (trackTypeGuesser: TrackTypeGuesser) => {
124
96
  return (adapterName: string) => {
@@ -130,57 +102,31 @@ export default class WigglePlugin extends Plugin {
130
102
  },
131
103
  )
132
104
 
133
- pluginManager.addRendererType(
134
- () =>
135
- new DensityRenderer({
136
- name: 'DensityRenderer',
137
- ReactComponent: DensityRendererReactComponent,
138
- configSchema: densityRendererConfigSchema,
139
- pluginManager,
140
- }),
141
- )
142
-
143
- pluginManager.addRendererType(
144
- () =>
145
- new LinePlotRenderer({
146
- name: 'LinePlotRenderer',
147
- ReactComponent: LinePlotRendererReactComponent,
148
- configSchema: linePlotRendererConfigSchema,
149
- pluginManager,
150
- }),
151
- )
152
-
153
- pluginManager.addRendererType(
154
- () =>
155
- new XYPlotRenderer({
156
- name: 'XYPlotRenderer',
157
- ReactComponent: XYPlotRendererReactComponent,
158
- configSchema: xyPlotRendererConfigSchema,
159
- pluginManager,
160
- }),
161
- )
162
-
163
- pluginManager.addRpcMethod(() => new WiggleGetGlobalStats(pluginManager))
164
- pluginManager.addRpcMethod(
165
- () => new WiggleGetMultiRegionStats(pluginManager),
166
- )
105
+ pm.addRpcMethod(() => new WiggleGetGlobalStats(pm))
106
+ pm.addRpcMethod(() => new WiggleGetMultiRegionStats(pm))
107
+ pm.addRpcMethod(() => new MultiWiggleGetSources(pm))
167
108
  }
168
109
 
169
110
  exports = {
170
111
  LinearWiggleDisplayReactComponent,
171
112
  XYPlotRendererReactComponent,
172
113
  XYPlotRenderer,
114
+ WiggleBaseRenderer,
115
+
173
116
  xyPlotRendererConfigSchema,
174
117
  utils,
175
- WiggleBaseRenderer,
176
118
  linearWiggleDisplayModelFactory,
177
119
  }
178
120
  }
179
121
 
180
122
  export * from './util'
181
123
 
182
- export { WiggleRendering }
183
- export { WiggleBaseRenderer }
184
- export { LinearWiggleDisplayReactComponent, linearWiggleDisplayModelFactory }
185
- export { Tooltip } from './LinearWiggleDisplay/components/Tooltip'
186
- export { YSCALEBAR_LABEL_OFFSET }
124
+ export {
125
+ LinearWiggleDisplayReactComponent,
126
+ Tooltip,
127
+ WiggleRendering,
128
+ WiggleBaseRenderer,
129
+ linearWiggleDisplayModelFactory,
130
+ }
131
+
132
+ export type { TooltipContentsComponent }
package/src/util.ts CHANGED
@@ -1,4 +1,20 @@
1
1
  import { scaleLinear, scaleLog, scaleQuantize } from 'd3-scale'
2
+ import { autorun } from 'mobx'
3
+ import {
4
+ isAbortException,
5
+ getSession,
6
+ getContainingView,
7
+ } from '@jbrowse/core/util'
8
+ import { FeatureStats } from '@jbrowse/core/util/stats'
9
+ import { getRpcSessionId } from '@jbrowse/core/util/tracks'
10
+ import { addDisposer, isAlive } from 'mobx-state-tree'
11
+
12
+ import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'
13
+ import { AnyConfigurationModel, getConf } from '@jbrowse/core/configuration'
14
+
15
+ type LGV = LinearGenomeViewModel
16
+
17
+ export const YSCALEBAR_LABEL_OFFSET = 5
2
18
 
3
19
  export interface ScaleOpts {
4
20
  domain: number[]
@@ -7,6 +23,13 @@ export interface ScaleOpts {
7
23
  pivotValue?: number
8
24
  inverted: boolean
9
25
  }
26
+
27
+ export interface Source {
28
+ name: string
29
+ color?: string
30
+ group?: string
31
+ }
32
+
10
33
  /**
11
34
  * produces a d3-scale from arguments. applies a "nice domain" adjustment
12
35
  *
@@ -143,3 +166,154 @@ export function getNiceDomain({
143
166
  scale.nice()
144
167
  return scale.domain() as [number, number]
145
168
  }
169
+
170
+ export function groupBy<T>(array: T[], predicate: (v: T) => string) {
171
+ return array.reduce((acc, value) => {
172
+ const entry = (acc[predicate(value)] ||= [])
173
+ entry.push(value)
174
+ return acc
175
+ }, {} as { [key: string]: T[] })
176
+ }
177
+
178
+ export async function getStats(
179
+ self: {
180
+ adapterConfig: AnyConfigurationModel
181
+ autoscaleType: string
182
+ setMessage: (str: string) => void
183
+ },
184
+ opts: {
185
+ headers?: Record<string, string>
186
+ signal?: AbortSignal
187
+ filters?: string[]
188
+ },
189
+ ): Promise<FeatureStats> {
190
+ const { rpcManager } = getSession(self)
191
+ const nd = getConf(self, 'numStdDev') || 3
192
+ const { adapterConfig, autoscaleType } = self
193
+ const sessionId = getRpcSessionId(self)
194
+ const params = {
195
+ sessionId,
196
+ adapterConfig,
197
+ statusCallback: (message: string) => {
198
+ if (isAlive(self)) {
199
+ self.setMessage(message)
200
+ }
201
+ },
202
+ ...opts,
203
+ }
204
+
205
+ if (autoscaleType === 'global' || autoscaleType === 'globalsd') {
206
+ const results: FeatureStats = (await rpcManager.call(
207
+ sessionId,
208
+ 'WiggleGetGlobalStats',
209
+ params,
210
+ )) as FeatureStats
211
+ const { scoreMin, scoreMean, scoreStdDev } = results
212
+ // globalsd uses heuristic to avoid unnecessary scoreMin<0
213
+ // if the scoreMin is never less than 0
214
+ // helps with most coverage bigwigs just being >0
215
+ return autoscaleType === 'globalsd'
216
+ ? {
217
+ ...results,
218
+ scoreMin: scoreMin >= 0 ? 0 : scoreMean - nd * scoreStdDev,
219
+ scoreMax: scoreMean + nd * scoreStdDev,
220
+ }
221
+ : results
222
+ }
223
+ if (autoscaleType === 'local' || autoscaleType === 'localsd') {
224
+ const { dynamicBlocks, bpPerPx } = getContainingView(self) as LGV
225
+ const results = (await rpcManager.call(
226
+ sessionId,
227
+ 'WiggleGetMultiRegionStats',
228
+ {
229
+ ...params,
230
+ regions: dynamicBlocks.contentBlocks.map(region => {
231
+ const { start, end } = region
232
+ return {
233
+ ...JSON.parse(JSON.stringify(region)),
234
+ start: Math.floor(start),
235
+ end: Math.ceil(end),
236
+ }
237
+ }),
238
+ bpPerPx,
239
+ },
240
+ )) as FeatureStats
241
+ const { scoreMin, scoreMean, scoreStdDev } = results
242
+
243
+ // localsd uses heuristic to avoid unnecessary scoreMin<0 if the
244
+ // scoreMin is never less than 0 helps with most coverage bigwigs
245
+ // just being >0
246
+ return autoscaleType === 'localsd'
247
+ ? {
248
+ ...results,
249
+ scoreMin: scoreMin >= 0 ? 0 : scoreMean - nd * scoreStdDev,
250
+ scoreMax: scoreMean + nd * scoreStdDev,
251
+ }
252
+ : results
253
+ }
254
+ if (autoscaleType === 'zscale') {
255
+ return rpcManager.call(
256
+ sessionId,
257
+ 'WiggleGetGlobalStats',
258
+ params,
259
+ ) as Promise<FeatureStats>
260
+ }
261
+ throw new Error(`invalid autoscaleType '${autoscaleType}'`)
262
+ }
263
+
264
+ export function statsAutorun(self: {
265
+ estimatedStatsReady: boolean
266
+ regionTooLarge: boolean
267
+ setLoading: (aborter: AbortController) => void
268
+ setError: (error: unknown) => void
269
+ updateStats: (stats: FeatureStats, statsRegion: string) => void
270
+ renderProps: () => Record<string, unknown>
271
+ adapterConfig: AnyConfigurationModel
272
+ autoscaleType: string
273
+ setMessage: (str: string) => void
274
+ }) {
275
+ addDisposer(
276
+ self,
277
+ autorun(
278
+ async () => {
279
+ try {
280
+ const aborter = new AbortController()
281
+ const view = getContainingView(self) as LGV
282
+ self.setLoading(aborter)
283
+
284
+ if (
285
+ !view.initialized ||
286
+ !self.estimatedStatsReady ||
287
+ self.regionTooLarge
288
+ ) {
289
+ return
290
+ }
291
+ const statsRegion = JSON.stringify(view.dynamicBlocks)
292
+
293
+ const wiggleStats = await getStats(self, {
294
+ signal: aborter.signal,
295
+ ...self.renderProps(),
296
+ })
297
+
298
+ if (isAlive(self)) {
299
+ self.updateStats(wiggleStats, statsRegion)
300
+ }
301
+ } catch (e) {
302
+ if (!isAbortException(e) && isAlive(self)) {
303
+ console.error(e)
304
+ self.setError(e)
305
+ }
306
+ }
307
+ },
308
+ { delay: 1000 },
309
+ ),
310
+ )
311
+ }
312
+
313
+ export function toP(s = 0) {
314
+ return +(+s).toPrecision(6)
315
+ }
316
+
317
+ export function round(value: number) {
318
+ return Math.round(value * 1e5) / 1e5
319
+ }
@@ -1,91 +0,0 @@
1
- import { readConfObject } from '@jbrowse/core/configuration'
2
- import { featureSpanPx } from '@jbrowse/core/util'
3
- import { getScale } from '../util'
4
- import WiggleBaseRenderer from '../WiggleBaseRenderer'
5
- import { YSCALEBAR_LABEL_OFFSET } from '../LinearWiggleDisplay/models/model'
6
-
7
- export default class LinePlotRenderer extends WiggleBaseRenderer {
8
- async draw(ctx, props) {
9
- const {
10
- features,
11
- regions,
12
- bpPerPx,
13
- scaleOpts,
14
- height: unadjustedHeight,
15
- ticks: { values },
16
- displayCrossHatches,
17
- config,
18
- } = props
19
- const [region] = regions
20
- const width = (region.end - region.start) / bpPerPx
21
- const offset = YSCALEBAR_LABEL_OFFSET
22
-
23
- // the adjusted height takes into account YSCALEBAR_LABEL_OFFSET from the
24
- // wiggle display, and makes the height of the actual drawn area add
25
- // "padding" to the top and bottom of the display
26
- const height = unadjustedHeight - offset * 2
27
- const clipColor = readConfObject(config, 'clipColor')
28
- const highlightColor = readConfObject(config, 'highlightColor')
29
- const scale = getScale({ ...scaleOpts, range: [0, height] })
30
- const [niceMin, niceMax] = scale.domain()
31
- const toY = rawscore => height - scale(rawscore) + offset
32
- const colorCallback =
33
- readConfObject(config, 'color') === '#f0f'
34
- ? () => 'grey'
35
- : feature => readConfObject(config, 'color', { feature })
36
-
37
- let lastVal
38
- for (const feature of features.values()) {
39
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx)
40
- const score = feature.get('score')
41
- const lowClipping = score < niceMin
42
- const highClipping = score > niceMax
43
- const w = rightPx - leftPx + 0.3 // fudge factor for subpixel rendering
44
-
45
- const c = colorCallback(feature)
46
-
47
- ctx.strokeStyle = c
48
- ctx.beginPath()
49
- if (!region.reversed) {
50
- ctx.moveTo(
51
- leftPx,
52
- toY(typeof lastVal !== 'undefined' ? lastVal : score),
53
- )
54
- ctx.lineTo(leftPx, toY(score))
55
- ctx.lineTo(rightPx, toY(score))
56
- } else {
57
- ctx.moveTo(
58
- rightPx,
59
- toY(typeof lastVal !== 'undefined' ? lastVal : score),
60
- )
61
- ctx.lineTo(rightPx, toY(score))
62
- ctx.lineTo(leftPx, toY(score))
63
- }
64
- ctx.stroke()
65
- lastVal = score
66
-
67
- if (highClipping) {
68
- ctx.fillStyle = clipColor
69
- ctx.fillRect(leftPx, 0, w, 4)
70
- } else if (lowClipping && scaleOpts.scaleType !== 'log') {
71
- ctx.fillStyle = clipColor
72
- ctx.fillRect(leftPx, height - 4, w, height)
73
- }
74
- if (feature.get('highlighted')) {
75
- ctx.fillStyle = highlightColor
76
- ctx.fillRect(leftPx, 0, w, height)
77
- }
78
- }
79
-
80
- if (displayCrossHatches) {
81
- ctx.lineWidth = 1
82
- ctx.strokeStyle = 'rgba(200,200,200,0.8)'
83
- values.forEach(tick => {
84
- ctx.beginPath()
85
- ctx.moveTo(0, Math.round(toY(tick)))
86
- ctx.lineTo(width, Math.round(toY(tick)))
87
- ctx.stroke()
88
- })
89
- }
90
- }
91
- }