@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-wiggle",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "JBrowse 2 wiggle adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -38,19 +38,25 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@babel/runtime": "^7.17.9",
41
- "@gmod/bbi": "^1.0.35",
41
+ "@gmod/bbi": "^2.0.2",
42
42
  "@mui/icons-material": "^5.0.2",
43
43
  "@popperjs/core": "^2.11.0",
44
+ "clone": "^2.1.2",
44
45
  "color": "^3.1.1",
46
+ "d3-color": "^3.0.2",
45
47
  "d3-scale": "^3.0.2",
46
- "react-color": "^2.19.3",
47
- "react-d3-axis-mod": "^0.1.3",
48
+ "fast-deep-equal": "^3.1.3",
49
+ "is-object": "^1.0.1",
50
+ "react-d3-axis-mod": "^0.1.8",
51
+ "react-draggable": "^4.4.5",
48
52
  "react-popper": "^2.0.0"
49
53
  },
50
54
  "peerDependencies": {
51
55
  "@jbrowse/core": "^2.0.0",
56
+ "@jbrowse/plugin-data-management": "^2.0.0",
52
57
  "@jbrowse/plugin-linear-genome-view": "^2.0.0",
53
58
  "@mui/material": "^5.0.0",
59
+ "@mui/x-data-grid": "^5.0.1",
54
60
  "mobx": "^6.0.0",
55
61
  "mobx-react": "^7.0.0",
56
62
  "mobx-state-tree": "^5.0.0",
@@ -65,5 +71,5 @@
65
71
  "distModule": "esm/index.js",
66
72
  "srcModule": "src/index.ts",
67
73
  "module": "esm/index.js",
68
- "gitHead": "ed935bf5612af3818abdc8ef52d100d5d81d33a2"
74
+ "gitHead": "0db0462fa1f9f15ab4869da085bcab032b9483c3"
69
75
  }
@@ -5,23 +5,17 @@ import {
5
5
  } from '@jbrowse/core/data_adapters/BaseAdapter'
6
6
  import { AugmentedRegion as Region } from '@jbrowse/core/util/types'
7
7
  import { openLocation } from '@jbrowse/core/util/io'
8
- import { updateStatus } from '@jbrowse/core/util'
8
+ import { updateStatus, Feature } from '@jbrowse/core/util'
9
9
  import { ObservableCreate } from '@jbrowse/core/util/rxjs'
10
- import SimpleFeature, { Feature } from '@jbrowse/core/util/simpleFeature'
11
- import { map, mergeAll } from 'rxjs/operators'
12
- import { readConfObject } from '@jbrowse/core/configuration'
13
- import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema'
14
10
  import { rectifyStats, UnrectifiedFeatureStats } from '@jbrowse/core/util/stats'
15
- import PluginManager from '@jbrowse/core/PluginManager'
16
-
17
- import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache'
18
11
 
19
12
  interface WiggleOptions extends BaseOptions {
20
13
  resolution?: number
21
14
  }
22
15
 
23
16
  export default class BigWigAdapter extends BaseFeatureDataAdapter {
24
- private bigwig: BigWig
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ private setupP?: Promise<{ bigwig: BigWig; header: any }>
25
19
 
26
20
  public static capabilities = [
27
21
  'hasResolution',
@@ -29,39 +23,50 @@ export default class BigWigAdapter extends BaseFeatureDataAdapter {
29
23
  'hasGlobalStats',
30
24
  ]
31
25
 
32
- public constructor(
33
- config: AnyConfigurationModel,
34
- getSubAdapter?: getSubAdapterType,
35
- pluginManager?: PluginManager,
36
- ) {
37
- super(config, getSubAdapter, pluginManager)
38
- this.bigwig = new BigWig({
26
+ private async setupPre(opts?: BaseOptions) {
27
+ const { statusCallback = () => {} } = opts || {}
28
+ const bigwig = new BigWig({
39
29
  filehandle: openLocation(
40
- readConfObject(config, 'bigWigLocation'),
30
+ this.getConf('bigWigLocation'),
41
31
  this.pluginManager,
42
32
  ),
43
33
  })
34
+ const header = await updateStatus(
35
+ 'Downloading bigwig header',
36
+ statusCallback,
37
+ () => bigwig.getHeader(opts),
38
+ )
39
+ return { bigwig, header }
44
40
  }
45
41
 
46
- private async setup(opts?: BaseOptions) {
47
- const { statusCallback = () => {} } = opts || {}
48
- return updateStatus('Downloading bigwig header', statusCallback, () =>
49
- this.bigwig.getHeader(opts),
50
- )
42
+ async setup(opts?: BaseOptions) {
43
+ if (!this.setupP) {
44
+ this.setupP = this.setupPre(opts).catch(e => {
45
+ this.setupP = undefined
46
+ throw e
47
+ })
48
+ }
49
+ return this.setupP
51
50
  }
52
51
 
53
52
  public async getRefNames(opts?: BaseOptions) {
54
- const { refsByName } = await this.setup(opts)
53
+ const {
54
+ header: { refsByName },
55
+ } = await this.setup(opts)
55
56
  return Object.keys(refsByName)
56
57
  }
57
58
 
58
59
  public async refIdToName(refId: number) {
59
- const { refsByNumber } = await this.setup()
60
+ const {
61
+ header: { refsByNumber },
62
+ } = await this.setup()
60
63
  return refsByNumber[refId]?.name
61
64
  }
62
65
 
63
66
  public async getGlobalStats(opts?: BaseOptions) {
64
- const { totalSummary } = await this.setup(opts)
67
+ const {
68
+ header: { totalSummary },
69
+ } = await this.setup(opts)
65
70
  return rectifyStats(totalSummary as UnrectifiedFeatureStats)
66
71
  }
67
72
 
@@ -75,19 +80,32 @@ export default class BigWigAdapter extends BaseFeatureDataAdapter {
75
80
  } = opts
76
81
  return ObservableCreate<Feature>(async observer => {
77
82
  statusCallback('Downloading bigwig data')
78
- const ob = await this.bigwig.getFeatureStream(refName, start, end, {
83
+ const source = this.getConf('source')
84
+ const { bigwig } = await this.setup(opts)
85
+ const feats = await bigwig.getFeatures(refName, start, end, {
79
86
  ...opts,
80
87
  basesPerSpan: bpPerPx / resolution,
81
88
  })
82
- ob.pipe(
83
- mergeAll(),
84
- map(record => {
85
- return new SimpleFeature({
86
- id: `${refName}:${record.start}-${record.end}`,
87
- data: { ...record, refName },
88
- })
89
- }),
90
- ).subscribe(observer)
89
+
90
+ for (let i = 0; i < feats.length; i++) {
91
+ const data = feats[i]
92
+ if (source) {
93
+ // @ts-ignore
94
+ data.source = source
95
+ }
96
+ const uniqueId = `${source}:${region.refName}:${data.start}-${data.end}`
97
+ // @ts-ignore
98
+ data.refName = refName
99
+ data.uniqueId = uniqueId
100
+ observer.next({
101
+ // @ts-ignore
102
+ get: (str: string) => (data as Record<string, unknown>)[str],
103
+ id: () => uniqueId,
104
+ // @ts-ignore
105
+ toJSON: () => data,
106
+ })
107
+ }
108
+ observer.complete()
91
109
  }, signal)
92
110
  }
93
111
 
@@ -48,70 +48,70 @@ Array [
48
48
  "refName": "ctgA",
49
49
  "score": 18,
50
50
  "start": 1002,
51
- "uniqueId": "ctgA:1002-1003",
51
+ "uniqueId": ":ctgA:1002-1003",
52
52
  },
53
53
  Object {
54
54
  "end": 1004,
55
55
  "refName": "ctgA",
56
56
  "score": 18,
57
57
  "start": 1003,
58
- "uniqueId": "ctgA:1003-1004",
58
+ "uniqueId": ":ctgA:1003-1004",
59
59
  },
60
60
  Object {
61
61
  "end": 1005,
62
62
  "refName": "ctgA",
63
63
  "score": 18,
64
64
  "start": 1004,
65
- "uniqueId": "ctgA:1004-1005",
65
+ "uniqueId": ":ctgA:1004-1005",
66
66
  },
67
67
  Object {
68
68
  "end": 1006,
69
69
  "refName": "ctgA",
70
70
  "score": 19,
71
71
  "start": 1005,
72
- "uniqueId": "ctgA:1005-1006",
72
+ "uniqueId": ":ctgA:1005-1006",
73
73
  },
74
74
  Object {
75
75
  "end": 1007,
76
76
  "refName": "ctgA",
77
77
  "score": 20,
78
78
  "start": 1006,
79
- "uniqueId": "ctgA:1006-1007",
79
+ "uniqueId": ":ctgA:1006-1007",
80
80
  },
81
81
  Object {
82
82
  "end": 1008,
83
83
  "refName": "ctgA",
84
84
  "score": 20,
85
85
  "start": 1007,
86
- "uniqueId": "ctgA:1007-1008",
86
+ "uniqueId": ":ctgA:1007-1008",
87
87
  },
88
88
  Object {
89
89
  "end": 1009,
90
90
  "refName": "ctgA",
91
91
  "score": 20,
92
92
  "start": 1008,
93
- "uniqueId": "ctgA:1008-1009",
93
+ "uniqueId": ":ctgA:1008-1009",
94
94
  },
95
95
  Object {
96
96
  "end": 1010,
97
97
  "refName": "ctgA",
98
98
  "score": 20,
99
99
  "start": 1009,
100
- "uniqueId": "ctgA:1009-1010",
100
+ "uniqueId": ":ctgA:1009-1010",
101
101
  },
102
102
  Object {
103
103
  "end": 1011,
104
104
  "refName": "ctgA",
105
105
  "score": 20,
106
106
  "start": 1010,
107
- "uniqueId": "ctgA:1010-1011",
107
+ "uniqueId": ":ctgA:1010-1011",
108
108
  },
109
109
  Object {
110
110
  "end": 1012,
111
111
  "refName": "ctgA",
112
112
  "score": 19,
113
113
  "start": 1011,
114
- "uniqueId": "ctgA:1011-1012",
114
+ "uniqueId": ":ctgA:1011-1012",
115
115
  },
116
116
  ]
117
117
  `;
@@ -10,6 +10,11 @@ export default ConfigurationSchema(
10
10
  locationType: 'UriLocation',
11
11
  },
12
12
  },
13
+ source: {
14
+ type: 'string',
15
+ defaultValue: '',
16
+ description: 'Used for multiwiggle',
17
+ },
13
18
  },
14
19
  { explicitlyTyped: true },
15
20
  )
@@ -1 +1,19 @@
1
- export { default as configSchema } from './configSchema'
1
+ import PluginManager from '@jbrowse/core/PluginManager'
2
+ import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
3
+ import configSchema from './configSchema'
4
+
5
+ export default (pluginManager: PluginManager) => {
6
+ pluginManager.addAdapterType(
7
+ () =>
8
+ new AdapterType({
9
+ name: 'BigWigAdapter',
10
+ configSchema,
11
+ adapterCapabilities: [
12
+ 'hasResolution',
13
+ 'hasLocalStats',
14
+ 'hasGlobalStats',
15
+ ],
16
+ getAdapterClass: () => import('./BigWigAdapter').then(r => r.default),
17
+ }),
18
+ )
19
+ }
@@ -0,0 +1,66 @@
1
+ import React, { useState } from 'react'
2
+ import {
3
+ Button,
4
+ Dialog,
5
+ DialogActions,
6
+ DialogContent,
7
+ DialogTitle,
8
+ TextField,
9
+ Typography,
10
+ } from '@mui/material'
11
+ import {
12
+ AnyConfigurationModel,
13
+ readConfObject,
14
+ } from '@jbrowse/core/configuration'
15
+
16
+ const ConfirmDialog = ({
17
+ tracks,
18
+ onClose,
19
+ }: {
20
+ tracks: AnyConfigurationModel[]
21
+ onClose: (arg: boolean, arg1?: { name: string }) => void
22
+ }) => {
23
+ const [val, setVal] = useState('MultiWiggle ' + Date.now())
24
+ const allQuant = tracks.every(t => t.type === 'QuantitativeTrack')
25
+ return (
26
+ <Dialog open onClose={() => onClose(false)}>
27
+ <DialogTitle>Confirm multi-wiggle track create</DialogTitle>
28
+ <DialogContent>
29
+ <Typography>
30
+ {!allQuant
31
+ ? 'Not every track looks like a QuantitativeTrack. This could have unexpected behavior, confirm if it looks ok.'
32
+ : null}
33
+ Listing:
34
+ </Typography>
35
+ <ul>
36
+ {tracks.map(track => (
37
+ <li key={track.trackId}>
38
+ {readConfObject(track, 'name')} - {track.type}
39
+ </li>
40
+ ))}
41
+ </ul>
42
+ <TextField
43
+ value={val}
44
+ onChange={event => setVal(event.target.value)}
45
+ helperText="Track name"
46
+ />
47
+ <Typography>Confirm creation of track?</Typography>
48
+ </DialogContent>
49
+ <DialogActions>
50
+ <Button onClick={() => onClose(false)} color="primary">
51
+ Cancel
52
+ </Button>
53
+ <Button
54
+ onClick={() => onClose(true, { name: val })}
55
+ color="primary"
56
+ variant="contained"
57
+ autoFocus
58
+ >
59
+ Submit
60
+ </Button>
61
+ </DialogActions>
62
+ </Dialog>
63
+ )
64
+ }
65
+
66
+ export default ConfirmDialog
@@ -0,0 +1,57 @@
1
+ import { lazy } from 'react'
2
+ import PluginManager from '@jbrowse/core/PluginManager'
3
+ import { readConfObject } from '@jbrowse/core/configuration'
4
+ import { getSession } from '@jbrowse/core/util'
5
+ import { HierarchicalTrackSelectorModel } from '@jbrowse/plugin-data-management'
6
+
7
+ const ConfirmDialog = lazy(() => import('./ConfirmDialog'))
8
+
9
+ export default function (pm: PluginManager) {
10
+ pm.addToExtensionPoint('TrackSelector-multiTrackMenuItems', () => {
11
+ return [
12
+ {
13
+ label: 'Create multi-wiggle track',
14
+ onClick: (model: HierarchicalTrackSelectorModel) => {
15
+ const tracks = model.selection
16
+ const trackIds = tracks.map(c => readConfObject(c, 'name'))
17
+ function makeTrack(arg: { name: string }) {
18
+ const subadapters = tracks
19
+ .map(c => readConfObject(c, 'adapter'))
20
+ .map((c, idx) => ({ ...c, source: trackIds[idx] }))
21
+ const assemblyNames = [
22
+ ...new Set(
23
+ tracks.map(c => readConfObject(c, 'assemblyNames')).flat(),
24
+ ),
25
+ ]
26
+ const now = +Date.now()
27
+ const trackId = `multitrack-${now}-sessionTrack`
28
+
29
+ getSession(model).addTrackConf({
30
+ type: 'MultiQuantitativeTrack',
31
+ trackId,
32
+ name: arg.name,
33
+ assemblyNames,
34
+ adapter: {
35
+ type: 'MultiWiggleAdapter',
36
+ subadapters,
37
+ },
38
+ })
39
+ model.view.showTrack(trackId)
40
+ }
41
+ getSession(model).queueDialog(handleClose => [
42
+ ConfirmDialog,
43
+ {
44
+ tracks,
45
+ onClose: (arg: boolean, arg1: { name: string }) => {
46
+ if (arg) {
47
+ makeTrack(arg1)
48
+ }
49
+ handleClose()
50
+ },
51
+ },
52
+ ])
53
+ },
54
+ },
55
+ ]
56
+ })
57
+ }
@@ -1,6 +1,8 @@
1
1
  import SimpleFeature from '@jbrowse/core/util/simpleFeature'
2
2
  import { renderToAbstractCanvas } from '@jbrowse/core/util/offscreenCanvasUtils'
3
- import DensityRenderer, { configSchema, ReactComponent } from '.'
3
+ import DensityRenderer from './DensityRenderer'
4
+ import configSchema from './configSchema'
5
+ import ReactComponent from '../WiggleRendering'
4
6
 
5
7
  import { Image, createCanvas } from 'canvas'
6
8
 
@@ -32,12 +34,16 @@ test('inverted mode and reversed', async () => {
32
34
  ],
33
35
  scaleOpts: {
34
36
  domain: [0, 100],
37
+ range: [0, 200],
35
38
  inverted: true,
36
39
  scaleType: 'linear',
37
40
  },
41
+ config: {
42
+ posColor: 'red',
43
+ negColor: 'blue',
44
+ },
38
45
  bpPerPx: 3,
39
46
  highResolutionScaling: 1,
40
- config: {},
41
47
  height: 100,
42
48
  }
43
49
 
@@ -0,0 +1,14 @@
1
+ import { drawDensity } from '../drawxy'
2
+
3
+ import WiggleBaseRenderer, {
4
+ RenderArgsDeserializedWithFeatures,
5
+ } from '../WiggleBaseRenderer'
6
+
7
+ export default class DensityRenderer extends WiggleBaseRenderer {
8
+ async draw(
9
+ ctx: CanvasRenderingContext2D,
10
+ props: RenderArgsDeserializedWithFeatures,
11
+ ) {
12
+ return drawDensity(ctx, props)
13
+ }
14
+ }
@@ -3,5 +3,13 @@
3
3
  exports[`inverted mode and reversed 1`] = `
4
4
  Object {
5
5
  "imageData": Any<Object>,
6
+ "reducedFeatures": Array [
7
+ Object {
8
+ "end": 200,
9
+ "score": 2,
10
+ "start": 101,
11
+ "uniqueId": "t2",
12
+ },
13
+ ],
6
14
  }
7
15
  `;
@@ -0,0 +1,11 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration'
2
+
3
+ import ConfigSchema from '../configSchema'
4
+
5
+ const configSchema = ConfigurationSchema(
6
+ 'DensityRenderer',
7
+ {},
8
+ { baseConfiguration: ConfigSchema, explicitlyTyped: true },
9
+ )
10
+
11
+ export default configSchema
@@ -1,56 +1,17 @@
1
- import {
2
- readConfObject,
3
- ConfigurationSchema,
4
- } from '@jbrowse/core/configuration'
5
- import { featureSpanPx } from '@jbrowse/core/util'
6
- import { Feature } from '@jbrowse/core/util/simpleFeature'
7
- import { getScale } from '../util'
1
+ import configSchema from './configSchema'
8
2
 
9
- import ConfigSchema from '../configSchema'
10
- import WiggleBaseRenderer, {
11
- RenderArgsDeserializedWithFeatures,
12
- } from '../WiggleBaseRenderer'
3
+ import PluginManager from '@jbrowse/core/PluginManager'
4
+ import DensityRenderer from './DensityRenderer'
5
+ import ReactComponent from '../WiggleRendering'
13
6
 
14
- export { default as ReactComponent } from '../WiggleRendering'
15
-
16
- export default class DensityRenderer extends WiggleBaseRenderer {
17
- async draw(
18
- ctx: CanvasRenderingContext2D,
19
- props: RenderArgsDeserializedWithFeatures,
20
- ) {
21
- const { features, regions, bpPerPx, scaleOpts, height, config } = props
22
- const [region] = regions
23
- const pivot = readConfObject(config, 'bicolorPivot')
24
- const pivotValue = readConfObject(config, 'bicolorPivotValue')
25
- const negColor = readConfObject(config, 'negColor')
26
- const posColor = readConfObject(config, 'posColor')
27
- const color = readConfObject(config, 'color')
28
- let colorCallback
29
- if (color === '#f0f') {
30
- const colorScale =
31
- pivot !== 'none'
32
- ? getScale({
33
- ...scaleOpts,
34
- pivotValue,
35
- range: [negColor, 'white', posColor],
36
- })
37
- : getScale({ ...scaleOpts, range: ['white', posColor] })
38
- colorCallback = (feature: Feature) => colorScale(feature.get('score'))
39
- } else {
40
- colorCallback = (feature: Feature) =>
41
- readConfObject(config, 'color', { feature })
42
- }
43
-
44
- for (const feature of features.values()) {
45
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx)
46
- const w = rightPx - leftPx + 0.3 // fudge factor for subpixel rendering
47
- ctx.fillStyle = colorCallback(feature)
48
- ctx.fillRect(leftPx, 0, w, height)
49
- }
50
- }
7
+ export default (pluginManager: PluginManager) => {
8
+ pluginManager.addRendererType(
9
+ () =>
10
+ new DensityRenderer({
11
+ name: 'DensityRenderer',
12
+ ReactComponent,
13
+ configSchema,
14
+ pluginManager,
15
+ }),
16
+ )
51
17
  }
52
- export const configSchema = ConfigurationSchema(
53
- 'DensityRenderer',
54
- {},
55
- { baseConfiguration: ConfigSchema, explicitlyTyped: true },
56
- )
@@ -0,0 +1,19 @@
1
+ import WiggleBaseRenderer, {
2
+ RenderArgsDeserializedWithFeatures,
3
+ } from '../WiggleBaseRenderer'
4
+
5
+ import { YSCALEBAR_LABEL_OFFSET } from '../util'
6
+ import { drawLine } from '../drawxy'
7
+
8
+ export default class LinePlotRenderer extends WiggleBaseRenderer {
9
+ async draw(
10
+ ctx: CanvasRenderingContext2D,
11
+ props: RenderArgsDeserializedWithFeatures,
12
+ ) {
13
+ return drawLine(ctx, {
14
+ ...props,
15
+ offset: YSCALEBAR_LABEL_OFFSET,
16
+ colorCallback: () => 'grey',
17
+ })
18
+ }
19
+ }
@@ -1,10 +1,7 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration'
2
2
  import ConfigSchema from '../configSchema'
3
3
 
4
- export { default as ReactComponent } from '../WiggleRendering'
5
- export { default } from './LinePlotRenderer'
6
-
7
- export const configSchema = ConfigurationSchema(
4
+ const configSchema = ConfigurationSchema(
8
5
  'LinePlotRenderer',
9
6
  {
10
7
  displayCrossHatches: {
@@ -15,3 +12,5 @@ export const configSchema = ConfigurationSchema(
15
12
  },
16
13
  { baseConfiguration: ConfigSchema, explicitlyTyped: true },
17
14
  )
15
+
16
+ export default configSchema
@@ -0,0 +1,16 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager'
2
+ import configSchema from './configSchema'
3
+ import ReactComponent from '../WiggleRendering'
4
+ import LinePlotRenderer from './LinePlotRenderer'
5
+
6
+ export default (pluginManager: PluginManager) => {
7
+ pluginManager.addRendererType(
8
+ () =>
9
+ new LinePlotRenderer({
10
+ name: 'LinePlotRenderer',
11
+ ReactComponent,
12
+ configSchema,
13
+ pluginManager,
14
+ }),
15
+ )
16
+ }