@jbrowse/plugin-wiggle 2.4.2 → 2.6.1

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 (220) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.d.ts +2 -2
  2. package/dist/BigWigAdapter/BigWigAdapter.js +4 -3
  3. package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -1
  4. package/dist/BigWigAdapter/configSchema.d.ts +20 -1
  5. package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +2 -2
  6. package/dist/DensityRenderer/configSchema.d.ts +33 -1
  7. package/dist/LinePlotRenderer/configSchema.d.ts +44 -1
  8. package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +2 -2
  9. package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +1 -1
  10. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +2 -2
  11. package/dist/LinearWiggleDisplay/index.js +27 -4
  12. package/dist/LinearWiggleDisplay/index.js.map +1 -1
  13. package/dist/LinearWiggleDisplay/models/configSchema.d.ts +81 -1
  14. package/dist/LinearWiggleDisplay/models/configSchema.js +6 -67
  15. package/dist/LinearWiggleDisplay/models/configSchema.js.map +1 -1
  16. package/dist/LinearWiggleDisplay/models/model.d.ts +172 -320
  17. package/dist/LinearWiggleDisplay/models/model.js +18 -450
  18. package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
  19. package/dist/LinearWiggleDisplay/models/renderSvg.d.ts +4 -0
  20. package/dist/LinearWiggleDisplay/models/renderSvg.js +21 -0
  21. package/dist/LinearWiggleDisplay/models/renderSvg.js.map +1 -0
  22. package/dist/MultiDensityRenderer/MultiDensityRenderer.js +1 -1
  23. package/dist/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -1
  24. package/dist/MultiDensityRenderer/configSchema.d.ts +33 -1
  25. package/dist/MultiLineRenderer/MultiLineRenderer.js +1 -1
  26. package/dist/MultiLineRenderer/MultiLineRenderer.js.map +1 -1
  27. package/dist/MultiLineRenderer/configSchema.d.ts +51 -1
  28. package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.d.ts +2 -2
  29. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +2 -2
  30. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +37 -38
  31. package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  32. package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +1 -1
  33. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +3 -3
  34. package/dist/MultiLinearWiggleDisplay/index.js +25 -2
  35. package/dist/MultiLinearWiggleDisplay/index.js.map +1 -1
  36. package/dist/MultiLinearWiggleDisplay/models/configSchema.d.ts +87 -1
  37. package/dist/MultiLinearWiggleDisplay/models/configSchema.js +6 -66
  38. package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -1
  39. package/dist/MultiLinearWiggleDisplay/models/model.d.ts +288 -153
  40. package/dist/MultiLinearWiggleDisplay/models/model.js +334 -523
  41. package/dist/MultiLinearWiggleDisplay/models/model.js.map +1 -1
  42. package/dist/MultiLinearWiggleDisplay/models/renderSvg.d.ts +4 -0
  43. package/dist/MultiLinearWiggleDisplay/models/renderSvg.js +20 -0
  44. package/dist/MultiLinearWiggleDisplay/models/renderSvg.js.map +1 -0
  45. package/dist/MultiQuantitativeTrack/configSchema.d.ts +73 -1
  46. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +1 -1
  47. package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -1
  48. package/dist/MultiRowLineRenderer/configSchema.d.ts +51 -1
  49. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +1 -1
  50. package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -1
  51. package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +68 -1
  52. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +1 -1
  53. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +2 -2
  54. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
  55. package/dist/MultiWiggleAdapter/configSchema.d.ts +18 -1
  56. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +2 -2
  57. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +1 -1
  58. package/dist/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -1
  59. package/dist/MultiWiggleRendering.d.ts +2 -2
  60. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +3 -2
  61. package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -1
  62. package/dist/MultiXYPlotRenderer/configSchema.d.ts +65 -1
  63. package/dist/QuantitativeTrack/configSchema.d.ts +73 -1
  64. package/dist/Tooltip.d.ts +1 -1
  65. package/dist/WiggleBaseRenderer.d.ts +1 -1
  66. package/dist/WiggleRPC/MultiWiggleGetSources.d.ts +21 -0
  67. package/dist/WiggleRPC/MultiWiggleGetSources.js +51 -0
  68. package/dist/WiggleRPC/MultiWiggleGetSources.js.map +1 -0
  69. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.d.ts +14 -0
  70. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +37 -0
  71. package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js.map +1 -0
  72. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +20 -0
  73. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +54 -0
  74. package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js.map +1 -0
  75. package/dist/WiggleRPC/rpcMethods.d.ts +3 -47
  76. package/dist/WiggleRPC/rpcMethods.js +16 -117
  77. package/dist/WiggleRPC/rpcMethods.js.map +1 -1
  78. package/dist/WiggleRendering.d.ts +2 -2
  79. package/dist/XYPlotRenderer/configSchema.d.ts +65 -1
  80. package/dist/configSchema.d.ts +51 -1
  81. package/dist/index.d.ts +329 -180
  82. package/dist/index.js +2 -2
  83. package/dist/index.js.map +1 -1
  84. package/dist/shared/SetMinMaxDialog.d.ts +2 -2
  85. package/dist/shared/YScaleBar.d.ts +4 -3
  86. package/dist/shared/YScaleBar.js +1 -1
  87. package/dist/shared/YScaleBar.js.map +1 -1
  88. package/dist/shared/configShared.d.ts +85 -0
  89. package/dist/shared/configShared.js +84 -0
  90. package/dist/shared/configShared.js.map +1 -0
  91. package/dist/shared/modelShared.d.ts +576 -0
  92. package/dist/shared/modelShared.js +480 -0
  93. package/dist/shared/modelShared.js.map +1 -0
  94. package/dist/util.d.ts +9 -9
  95. package/dist/util.js +13 -22
  96. package/dist/util.js.map +1 -1
  97. package/esm/BigWigAdapter/BigWigAdapter.d.ts +2 -2
  98. package/esm/BigWigAdapter/BigWigAdapter.js +6 -4
  99. package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -1
  100. package/esm/BigWigAdapter/configSchema.d.ts +20 -1
  101. package/esm/CreateMultiWiggleExtension/ConfirmDialog.d.ts +2 -2
  102. package/esm/DensityRenderer/configSchema.d.ts +33 -1
  103. package/esm/LinePlotRenderer/configSchema.d.ts +44 -1
  104. package/esm/LinearWiggleDisplay/components/SetColorDialog.d.ts +2 -2
  105. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +1 -1
  106. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +2 -2
  107. package/esm/LinearWiggleDisplay/index.js +2 -2
  108. package/esm/LinearWiggleDisplay/index.js.map +1 -1
  109. package/esm/LinearWiggleDisplay/models/configSchema.d.ts +81 -1
  110. package/esm/LinearWiggleDisplay/models/configSchema.js +3 -67
  111. package/esm/LinearWiggleDisplay/models/configSchema.js.map +1 -1
  112. package/esm/LinearWiggleDisplay/models/model.d.ts +172 -320
  113. package/esm/LinearWiggleDisplay/models/model.js +22 -454
  114. package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
  115. package/esm/LinearWiggleDisplay/models/renderSvg.d.ts +4 -0
  116. package/esm/LinearWiggleDisplay/models/renderSvg.js +14 -0
  117. package/esm/LinearWiggleDisplay/models/renderSvg.js.map +1 -0
  118. package/esm/MultiDensityRenderer/MultiDensityRenderer.js +1 -1
  119. package/esm/MultiDensityRenderer/MultiDensityRenderer.js.map +1 -1
  120. package/esm/MultiDensityRenderer/configSchema.d.ts +33 -1
  121. package/esm/MultiLineRenderer/MultiLineRenderer.js +1 -1
  122. package/esm/MultiLineRenderer/MultiLineRenderer.js.map +1 -1
  123. package/esm/MultiLineRenderer/configSchema.d.ts +51 -1
  124. package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.d.ts +2 -2
  125. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +2 -2
  126. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +37 -38
  127. package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js.map +1 -1
  128. package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +1 -1
  129. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +3 -3
  130. package/esm/MultiLinearWiggleDisplay/index.js +2 -2
  131. package/esm/MultiLinearWiggleDisplay/index.js.map +1 -1
  132. package/esm/MultiLinearWiggleDisplay/models/configSchema.d.ts +87 -1
  133. package/esm/MultiLinearWiggleDisplay/models/configSchema.js +3 -66
  134. package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -1
  135. package/esm/MultiLinearWiggleDisplay/models/model.d.ts +288 -153
  136. package/esm/MultiLinearWiggleDisplay/models/model.js +336 -527
  137. package/esm/MultiLinearWiggleDisplay/models/model.js.map +1 -1
  138. package/esm/MultiLinearWiggleDisplay/models/renderSvg.d.ts +4 -0
  139. package/esm/MultiLinearWiggleDisplay/models/renderSvg.js +13 -0
  140. package/esm/MultiLinearWiggleDisplay/models/renderSvg.js.map +1 -0
  141. package/esm/MultiQuantitativeTrack/configSchema.d.ts +73 -1
  142. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +1 -1
  143. package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js.map +1 -1
  144. package/esm/MultiRowLineRenderer/configSchema.d.ts +51 -1
  145. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +1 -1
  146. package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js.map +1 -1
  147. package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +68 -1
  148. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +1 -1
  149. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +3 -2
  150. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js.map +1 -1
  151. package/esm/MultiWiggleAdapter/configSchema.d.ts +18 -1
  152. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.d.ts +2 -2
  153. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js +1 -1
  154. package/esm/MultiWiggleAddTrackWidget/AddTrackWorkflow.js.map +1 -1
  155. package/esm/MultiWiggleRendering.d.ts +2 -2
  156. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +2 -1
  157. package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js.map +1 -1
  158. package/esm/MultiXYPlotRenderer/configSchema.d.ts +65 -1
  159. package/esm/QuantitativeTrack/configSchema.d.ts +73 -1
  160. package/esm/Tooltip.d.ts +1 -1
  161. package/esm/WiggleBaseRenderer.d.ts +1 -1
  162. package/esm/WiggleRPC/MultiWiggleGetSources.d.ts +21 -0
  163. package/esm/WiggleRPC/MultiWiggleGetSources.js +44 -0
  164. package/esm/WiggleRPC/MultiWiggleGetSources.js.map +1 -0
  165. package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.d.ts +14 -0
  166. package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +30 -0
  167. package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js.map +1 -0
  168. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +20 -0
  169. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +47 -0
  170. package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js.map +1 -0
  171. package/esm/WiggleRPC/rpcMethods.d.ts +3 -47
  172. package/esm/WiggleRPC/rpcMethods.js +3 -111
  173. package/esm/WiggleRPC/rpcMethods.js.map +1 -1
  174. package/esm/WiggleRendering.d.ts +2 -2
  175. package/esm/XYPlotRenderer/configSchema.d.ts +65 -1
  176. package/esm/configSchema.d.ts +51 -1
  177. package/esm/index.d.ts +329 -180
  178. package/esm/index.js +3 -3
  179. package/esm/index.js.map +1 -1
  180. package/esm/shared/SetMinMaxDialog.d.ts +2 -2
  181. package/esm/shared/YScaleBar.d.ts +4 -3
  182. package/esm/shared/YScaleBar.js +1 -1
  183. package/esm/shared/YScaleBar.js.map +1 -1
  184. package/esm/shared/configShared.d.ts +85 -0
  185. package/esm/shared/configShared.js +81 -0
  186. package/esm/shared/configShared.js.map +1 -0
  187. package/esm/shared/modelShared.d.ts +576 -0
  188. package/esm/shared/modelShared.js +454 -0
  189. package/esm/shared/modelShared.js.map +1 -0
  190. package/esm/util.d.ts +9 -9
  191. package/esm/util.js +10 -18
  192. package/esm/util.js.map +1 -1
  193. package/package.json +4 -4
  194. package/src/BigWigAdapter/BigWigAdapter.test.ts +8 -3
  195. package/src/BigWigAdapter/BigWigAdapter.ts +8 -7
  196. package/src/LinearWiggleDisplay/index.ts +2 -2
  197. package/src/LinearWiggleDisplay/models/configSchema.ts +4 -73
  198. package/src/LinearWiggleDisplay/models/model.tsx +25 -524
  199. package/src/LinearWiggleDisplay/models/renderSvg.tsx +29 -0
  200. package/src/MultiDensityRenderer/MultiDensityRenderer.ts +1 -2
  201. package/src/MultiLineRenderer/MultiLineRenderer.ts +1 -2
  202. package/src/MultiLinearWiggleDisplay/components/SetColorDialog.tsx +54 -51
  203. package/src/MultiLinearWiggleDisplay/index.ts +2 -2
  204. package/src/MultiLinearWiggleDisplay/models/configSchema.ts +4 -72
  205. package/src/MultiLinearWiggleDisplay/models/model.tsx +134 -389
  206. package/src/MultiLinearWiggleDisplay/models/renderSvg.tsx +26 -0
  207. package/src/MultiRowLineRenderer/MultiRowLineRenderer.ts +1 -2
  208. package/src/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.ts +1 -2
  209. package/src/MultiWiggleAdapter/MultiWiggleAdapter.ts +1 -1
  210. package/src/MultiWiggleAddTrackWidget/AddTrackWorkflow.tsx +1 -1
  211. package/src/MultiXYPlotRenderer/MultiXYPlotRenderer.ts +2 -2
  212. package/src/WiggleRPC/MultiWiggleGetSources.ts +68 -0
  213. package/src/WiggleRPC/WiggleGetGlobalQuantitativeStats.ts +44 -0
  214. package/src/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.ts +73 -0
  215. package/src/WiggleRPC/rpcMethods.ts +3 -170
  216. package/src/index.ts +4 -4
  217. package/src/shared/YScaleBar.tsx +4 -2
  218. package/src/shared/configShared.ts +90 -0
  219. package/src/shared/modelShared.ts +510 -0
  220. package/src/util.ts +24 -26
@@ -0,0 +1,26 @@
1
+ import React from 'react'
2
+ import { getContainingView } from '@jbrowse/core/util'
3
+ import { when } from 'mobx'
4
+ import {
5
+ ExportSvgDisplayOptions,
6
+ LinearGenomeViewModel,
7
+ } from '@jbrowse/plugin-linear-genome-view'
8
+ import { WiggleDisplayModel } from './model'
9
+ import { StatBars } from '../components/WiggleDisplayComponent'
10
+
11
+ export async function renderSvg(
12
+ self: WiggleDisplayModel,
13
+ opts: ExportSvgDisplayOptions,
14
+ superRenderSvg: (opts: ExportSvgDisplayOptions) => Promise<React.ReactNode>,
15
+ ) {
16
+ await when(() => !!self.stats && !!self.regionCannotBeRenderedText)
17
+ const { offsetPx } = getContainingView(self) as LinearGenomeViewModel
18
+ return (
19
+ <>
20
+ <g id="snpcov">{await superRenderSvg(opts)}</g>
21
+ <g transform={`translate(${Math.max(-offsetPx, 0)})`}>
22
+ <StatBars model={self} orientation="left" exportSVG />
23
+ </g>
24
+ </>
25
+ )
26
+ }
@@ -1,5 +1,4 @@
1
- import { Feature } from '@jbrowse/core/util'
2
- import { groupBy } from '../util'
1
+ import { groupBy, Feature } from '@jbrowse/core/util'
3
2
  import { drawLine } from '../drawxy'
4
3
  import WiggleBaseRenderer, {
5
4
  MultiRenderArgsDeserialized as MultiArgs,
@@ -1,5 +1,4 @@
1
- import { Feature } from '@jbrowse/core/util'
2
- import { groupBy } from '../util'
1
+ import { groupBy, Feature } from '@jbrowse/core/util'
3
2
  import { drawXY } from '../drawxy'
4
3
 
5
4
  import WiggleBaseRenderer, {
@@ -106,7 +106,7 @@ export default class MultiWiggleAdapter extends BaseFeatureDataAdapter {
106
106
  }
107
107
 
108
108
  // always render bigwig instead of calculating a feature density for it
109
- async estimateRegionsStats(_regions: Region[]) {
109
+ async getMultiRegionFeatureDensityStats(_regions: Region[]) {
110
110
  return { featureDensity: 0 }
111
111
  }
112
112
 
@@ -77,7 +77,7 @@ export default function MultiWiggleWidget({ model }: { model: AddTrackModel }) {
77
77
  const session = getSession(model)
78
78
 
79
79
  const trackId = [
80
- `${trackName.toLowerCase().replace(/ /g, '_')}-${Date.now()}`,
80
+ `${trackName.toLowerCase().replaceAll(' ', '_')}-${Date.now()}`,
81
81
  `${session.adminMode ? '' : '-sessionTrack'}`,
82
82
  ].join('')
83
83
 
@@ -1,6 +1,6 @@
1
- import { Feature } from '@jbrowse/core/util'
1
+ import { groupBy, Feature } from '@jbrowse/core/util'
2
2
  import { drawXY } from '../drawxy'
3
- import { groupBy, YSCALEBAR_LABEL_OFFSET } from '../util'
3
+ import { YSCALEBAR_LABEL_OFFSET } from '../util'
4
4
 
5
5
  import WiggleBaseRenderer, {
6
6
  MultiRenderArgsDeserialized as MultiArgs,
@@ -0,0 +1,68 @@
1
+ import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType'
2
+ import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain'
3
+ import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
4
+ import { RenderArgs } from '@jbrowse/core/rpc/coreRpcMethods'
5
+ import { renameRegionsIfNeeded, Region } from '@jbrowse/core/util'
6
+ import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals'
7
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration'
8
+
9
+ export class MultiWiggleGetSources extends RpcMethodType {
10
+ name = 'MultiWiggleGetSources'
11
+
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ async deserializeArguments(args: any, rpcDriverClassName: string) {
14
+ const l = await super.deserializeArguments(args, rpcDriverClassName)
15
+ return {
16
+ ...l,
17
+ filters: args.filters
18
+ ? new SerializableFilterChain({
19
+ filters: args.filters,
20
+ })
21
+ : undefined,
22
+ }
23
+ }
24
+
25
+ async serializeArguments(
26
+ args: RenderArgs & {
27
+ signal?: AbortSignal
28
+ statusCallback?: (arg: string) => void
29
+ },
30
+ rpcDriverClassName: string,
31
+ ) {
32
+ const pm = this.pluginManager
33
+ const assemblyManager = pm.rootModel?.session?.assemblyManager
34
+ if (!assemblyManager) {
35
+ return args
36
+ }
37
+
38
+ const renamedArgs = await renameRegionsIfNeeded(assemblyManager, {
39
+ ...args,
40
+ filters: args.filters?.toJSON().filters,
41
+ })
42
+
43
+ return super.serializeArguments(renamedArgs, rpcDriverClassName)
44
+ }
45
+
46
+ async execute(
47
+ args: {
48
+ adapterConfig: AnyConfigurationModel
49
+ signal?: RemoteAbortSignal
50
+ sessionId: string
51
+ headers?: Record<string, string>
52
+ regions: Region[]
53
+ bpPerPx: number
54
+ },
55
+ rpcDriverClassName: string,
56
+ ) {
57
+ const pm = this.pluginManager
58
+ const deserializedArgs = await this.deserializeArguments(
59
+ args,
60
+ rpcDriverClassName,
61
+ )
62
+ const { regions, adapterConfig, sessionId } = deserializedArgs
63
+ const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
64
+
65
+ // @ts-expect-error
66
+ return dataAdapter.getSources(regions, deserializedArgs)
67
+ }
68
+ }
@@ -0,0 +1,44 @@
1
+ import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType'
2
+ import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain'
3
+ import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
4
+ import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals'
5
+ import { QuantitativeStats } from '@jbrowse/core/util/stats'
6
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration'
7
+
8
+ export class WiggleGetGlobalQuantitativeStats extends RpcMethodType {
9
+ name = 'WiggleGetGlobalQuantitativeStats'
10
+
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ async deserializeArguments(args: any, rpcDriverClassName: string) {
13
+ const l = await super.deserializeArguments(args, rpcDriverClassName)
14
+ return {
15
+ ...l,
16
+ filters: args.filters
17
+ ? new SerializableFilterChain({
18
+ filters: args.filters,
19
+ })
20
+ : undefined,
21
+ }
22
+ }
23
+
24
+ async execute(
25
+ args: {
26
+ adapterConfig: AnyConfigurationModel
27
+ signal?: RemoteAbortSignal
28
+ headers?: Record<string, string>
29
+ sessionId: string
30
+ },
31
+ rpcDriverClassName: string,
32
+ ): Promise<QuantitativeStats> {
33
+ const pm = this.pluginManager
34
+ const deserializedArgs = await this.deserializeArguments(
35
+ args,
36
+ rpcDriverClassName,
37
+ )
38
+ const { adapterConfig, sessionId } = deserializedArgs
39
+ const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
40
+
41
+ // @ts-expect-error
42
+ return dataAdapter.getGlobalStats(deserializedArgs)
43
+ }
44
+ }
@@ -0,0 +1,73 @@
1
+ import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType'
2
+ import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain'
3
+ import { RenderArgs } from '@jbrowse/core/rpc/coreRpcMethods'
4
+ import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
5
+ import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals'
6
+ import { Region, renameRegionsIfNeeded } from '@jbrowse/core/util'
7
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
8
+
9
+ export class WiggleGetMultiRegionQuantitativeStats extends RpcMethodType {
10
+ name = 'WiggleGetMultiRegionQuantitativeStats'
11
+
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ async deserializeArguments(args: any, rpcDriverClassName: string) {
14
+ const l = await super.deserializeArguments(args, rpcDriverClassName)
15
+ return {
16
+ ...l,
17
+ filters: args.filters
18
+ ? new SerializableFilterChain({
19
+ filters: args.filters,
20
+ })
21
+ : undefined,
22
+ }
23
+ }
24
+
25
+ async serializeArguments(
26
+ args: RenderArgs & {
27
+ signal?: AbortSignal
28
+ statusCallback?: (arg: string) => void
29
+ },
30
+ rpcDriverClassName: string,
31
+ ) {
32
+ const pm = this.pluginManager
33
+ const assemblyManager = pm.rootModel?.session?.assemblyManager
34
+ if (!assemblyManager) {
35
+ return args
36
+ }
37
+
38
+ const renamedArgs = await renameRegionsIfNeeded(assemblyManager, {
39
+ ...args,
40
+ filters: args.filters?.toJSON().filters,
41
+ })
42
+
43
+ return super.serializeArguments(renamedArgs, rpcDriverClassName)
44
+ }
45
+
46
+ async execute(
47
+ args: {
48
+ adapterConfig: {}
49
+ signal?: RemoteAbortSignal
50
+ sessionId: string
51
+ headers?: Record<string, string>
52
+ regions: Region[]
53
+ bpPerPx: number
54
+ },
55
+ rpcDriverClassName: string,
56
+ ) {
57
+ const pm = this.pluginManager
58
+ const deserializedArgs = await this.deserializeArguments(
59
+ args,
60
+ rpcDriverClassName,
61
+ )
62
+ const { regions, adapterConfig, sessionId } = deserializedArgs
63
+ const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
64
+
65
+ if (dataAdapter instanceof BaseFeatureDataAdapter) {
66
+ return dataAdapter.getMultiRegionQuantitativeStats(
67
+ regions,
68
+ deserializedArgs,
69
+ )
70
+ }
71
+ throw new Error('Data adapter not found')
72
+ }
73
+ }
@@ -1,170 +1,3 @@
1
- import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType'
2
- import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain'
3
- import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
4
- import { RenderArgs } from '@jbrowse/core/rpc/coreRpcMethods'
5
- import { renameRegionsIfNeeded, Region } from '@jbrowse/core/util'
6
- import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals'
7
- import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
8
- import { FeatureStats } from '@jbrowse/core/util/stats'
9
-
10
- export class WiggleGetGlobalStats extends RpcMethodType {
11
- name = 'WiggleGetGlobalStats'
12
-
13
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- async deserializeArguments(args: any, rpcDriverClassName: string) {
15
- const l = await super.deserializeArguments(args, rpcDriverClassName)
16
- return {
17
- ...l,
18
- filters: args.filters
19
- ? new SerializableFilterChain({
20
- filters: args.filters,
21
- })
22
- : undefined,
23
- }
24
- }
25
-
26
- async execute(
27
- args: {
28
- adapterConfig: {}
29
- signal?: RemoteAbortSignal
30
- headers?: Record<string, string>
31
- sessionId: string
32
- },
33
- rpcDriverClassName: string,
34
- ): Promise<FeatureStats> {
35
- const pm = this.pluginManager
36
- const deserializedArgs = await this.deserializeArguments(
37
- args,
38
- rpcDriverClassName,
39
- )
40
- const { adapterConfig, sessionId } = deserializedArgs
41
- const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
42
-
43
- // @ts-expect-error
44
- return dataAdapter.getGlobalStats(deserializedArgs)
45
- }
46
- }
47
-
48
- export class WiggleGetMultiRegionStats extends RpcMethodType {
49
- name = 'WiggleGetMultiRegionStats'
50
-
51
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
- async deserializeArguments(args: any, rpcDriverClassName: string) {
53
- const l = await super.deserializeArguments(args, rpcDriverClassName)
54
- return {
55
- ...l,
56
- filters: args.filters
57
- ? new SerializableFilterChain({
58
- filters: args.filters,
59
- })
60
- : undefined,
61
- }
62
- }
63
-
64
- async serializeArguments(
65
- args: RenderArgs & {
66
- signal?: AbortSignal
67
- statusCallback?: (arg: string) => void
68
- },
69
- rpcDriverClassName: string,
70
- ) {
71
- const pm = this.pluginManager
72
- const assemblyManager = pm.rootModel?.session?.assemblyManager
73
- if (!assemblyManager) {
74
- return args
75
- }
76
-
77
- const renamedArgs = await renameRegionsIfNeeded(assemblyManager, {
78
- ...args,
79
- filters: args.filters?.toJSON().filters,
80
- })
81
-
82
- return super.serializeArguments(renamedArgs, rpcDriverClassName)
83
- }
84
-
85
- async execute(
86
- args: {
87
- adapterConfig: {}
88
- signal?: RemoteAbortSignal
89
- sessionId: string
90
- headers?: Record<string, string>
91
- regions: Region[]
92
- bpPerPx: number
93
- },
94
- rpcDriverClassName: string,
95
- ) {
96
- const pm = this.pluginManager
97
- const deserializedArgs = await this.deserializeArguments(
98
- args,
99
- rpcDriverClassName,
100
- )
101
- const { regions, adapterConfig, sessionId } = deserializedArgs
102
- const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
103
-
104
- if (dataAdapter instanceof BaseFeatureDataAdapter) {
105
- return dataAdapter.getMultiRegionStats(regions, deserializedArgs)
106
- }
107
- throw new Error('Data adapter not found')
108
- }
109
- }
110
-
111
- export class MultiWiggleGetSources extends RpcMethodType {
112
- name = 'MultiWiggleGetSources'
113
-
114
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
- async deserializeArguments(args: any, rpcDriverClassName: string) {
116
- const l = await super.deserializeArguments(args, rpcDriverClassName)
117
- return {
118
- ...l,
119
- filters: args.filters
120
- ? new SerializableFilterChain({
121
- filters: args.filters,
122
- })
123
- : undefined,
124
- }
125
- }
126
-
127
- async serializeArguments(
128
- args: RenderArgs & {
129
- signal?: AbortSignal
130
- statusCallback?: (arg: string) => void
131
- },
132
- rpcDriverClassName: string,
133
- ) {
134
- const pm = this.pluginManager
135
- const assemblyManager = pm.rootModel?.session?.assemblyManager
136
- if (!assemblyManager) {
137
- return args
138
- }
139
-
140
- const renamedArgs = await renameRegionsIfNeeded(assemblyManager, {
141
- ...args,
142
- filters: args.filters?.toJSON().filters,
143
- })
144
-
145
- return super.serializeArguments(renamedArgs, rpcDriverClassName)
146
- }
147
-
148
- async execute(
149
- args: {
150
- adapterConfig: {}
151
- signal?: RemoteAbortSignal
152
- sessionId: string
153
- headers?: Record<string, string>
154
- regions: Region[]
155
- bpPerPx: number
156
- },
157
- rpcDriverClassName: string,
158
- ) {
159
- const pm = this.pluginManager
160
- const deserializedArgs = await this.deserializeArguments(
161
- args,
162
- rpcDriverClassName,
163
- )
164
- const { regions, adapterConfig, sessionId } = deserializedArgs
165
- const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig)
166
-
167
- // @ts-expect-error
168
- return dataAdapter.getSources(regions, deserializedArgs)
169
- }
170
- }
1
+ export * from './MultiWiggleGetSources'
2
+ export * from './WiggleGetMultiRegionQuantitativeStats'
3
+ export * from './WiggleGetGlobalQuantitativeStats'
package/src/index.ts CHANGED
@@ -30,8 +30,8 @@ import MultiWiggleAddTrackWidgetF from './MultiWiggleAddTrackWidget'
30
30
  import * as utils from './util'
31
31
 
32
32
  import {
33
- WiggleGetGlobalStats,
34
- WiggleGetMultiRegionStats,
33
+ WiggleGetGlobalQuantitativeStats,
34
+ WiggleGetMultiRegionQuantitativeStats,
35
35
  MultiWiggleGetSources,
36
36
  } from './WiggleRPC/rpcMethods'
37
37
 
@@ -101,8 +101,8 @@ export default class WigglePlugin extends Plugin {
101
101
  },
102
102
  )
103
103
 
104
- pm.addRpcMethod(() => new WiggleGetGlobalStats(pm))
105
- pm.addRpcMethod(() => new WiggleGetMultiRegionStats(pm))
104
+ pm.addRpcMethod(() => new WiggleGetGlobalQuantitativeStats(pm))
105
+ pm.addRpcMethod(() => new WiggleGetMultiRegionQuantitativeStats(pm))
106
106
  pm.addRpcMethod(() => new MultiWiggleGetSources(pm))
107
107
  }
108
108
 
@@ -3,11 +3,13 @@ import { useTheme } from '@mui/material'
3
3
  import { observer } from 'mobx-react'
4
4
  import { axisPropsFromTickScale, Axis, LEFT, RIGHT } from 'react-d3-axis-mod'
5
5
 
6
- export default observer(function ({
6
+ type Ticks = ReturnType<typeof axisPropsFromTickScale>
7
+
8
+ export default observer(function YScaleBar({
7
9
  model,
8
10
  orientation,
9
11
  }: {
10
- model: { ticks?: ReturnType<typeof axisPropsFromTickScale> }
12
+ model: { ticks?: Ticks }
11
13
  orientation?: string
12
14
  }) {
13
15
  const { ticks } = model
@@ -0,0 +1,90 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration'
2
+ import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-view'
3
+ import { types } from 'mobx-state-tree'
4
+
5
+ /**
6
+ * #config SharedWiggleDisplay
7
+ */
8
+ export default function sharedWiggleConfigFactory() {
9
+ return ConfigurationSchema(
10
+ 'MultiLinearWiggleDisplay',
11
+ {
12
+ /**
13
+ * #slot
14
+ */
15
+ autoscale: {
16
+ type: 'stringEnum',
17
+ defaultValue: 'local',
18
+ model: types.enumeration('Autoscale type', [
19
+ 'global',
20
+ 'local',
21
+ 'globalsd',
22
+ 'localsd',
23
+ 'zscore',
24
+ ]),
25
+ description:
26
+ 'global/local using their min/max values or w/ standard deviations (globalsd/localsd)',
27
+ },
28
+
29
+ /**
30
+ * #slot
31
+ */
32
+ minimalTicks: {
33
+ type: 'boolean',
34
+ defaultValue: false,
35
+ description: 'use the minimal amount of ticks',
36
+ },
37
+
38
+ /**
39
+ * #slot
40
+ */
41
+ minScore: {
42
+ type: 'number',
43
+ defaultValue: Number.MIN_VALUE,
44
+ description: 'minimum value for the y-scale',
45
+ },
46
+ /**
47
+ * #slot
48
+ */
49
+ maxScore: {
50
+ type: 'number',
51
+ description: 'maximum value for the y-scale',
52
+ defaultValue: Number.MAX_VALUE,
53
+ },
54
+ /**
55
+ * #slot
56
+ */
57
+ numStdDev: {
58
+ type: 'number',
59
+ description:
60
+ 'number of standard deviations to use for autoscale types globalsd or localsd',
61
+ defaultValue: 3,
62
+ },
63
+ /**
64
+ * #slot
65
+ */
66
+ scaleType: {
67
+ type: 'stringEnum',
68
+ model: types.enumeration('Scale type', ['linear', 'log']), // todo zscale
69
+ description: 'The type of scale to use',
70
+ defaultValue: 'linear',
71
+ },
72
+
73
+ /**
74
+ * #slot
75
+ */
76
+ inverted: {
77
+ type: 'boolean',
78
+ description: 'draw upside down',
79
+ defaultValue: false,
80
+ },
81
+ },
82
+ {
83
+ /**
84
+ * #baseConfiguration
85
+ */
86
+ baseConfiguration: baseLinearDisplayConfigSchema,
87
+ explicitlyTyped: true,
88
+ },
89
+ )
90
+ }