@jbrowse/plugin-dotplot-view 3.6.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/esm/ComparativeRenderer/index.d.ts +10 -10
  2. package/esm/ComparativeRenderer/index.js +4 -17
  3. package/esm/DiagonalizeDotplotRpc.d.ts +30 -0
  4. package/esm/DiagonalizeDotplotRpc.js +147 -0
  5. package/esm/DotplotDisplay/components/DotplotDisplay.d.ts +1 -1
  6. package/esm/DotplotDisplay/index.d.ts +3 -3
  7. package/esm/DotplotDisplay/index.js +4 -4
  8. package/esm/DotplotDisplay/renderDotplotBlock.d.ts +2 -1
  9. package/esm/DotplotDisplay/renderDotplotBlock.js +9 -4
  10. package/esm/DotplotDisplay/stateModelFactory.d.ts +148 -29
  11. package/esm/DotplotDisplay/stateModelFactory.js +17 -11
  12. package/esm/DotplotReadVsRef/DotplotReadVsRef.js +5 -6
  13. package/esm/DotplotReadVsRef/index.js +1 -1
  14. package/esm/DotplotRenderer/DotplotRenderer.d.ts +30 -48
  15. package/esm/DotplotRenderer/DotplotRenderer.js +55 -22
  16. package/esm/DotplotRenderer/clamp.d.ts +7 -0
  17. package/esm/DotplotRenderer/clamp.js +58 -0
  18. package/esm/DotplotRenderer/components/DotplotRendering.d.ts +1 -1
  19. package/esm/DotplotRenderer/components/DotplotRendering.js +1 -1
  20. package/esm/DotplotRenderer/configSchema.d.ts +3 -3
  21. package/esm/DotplotRenderer/configSchema.js +1 -1
  22. package/esm/DotplotRenderer/drawDotplot.d.ts +7 -6
  23. package/esm/DotplotRenderer/drawDotplot.js +95 -100
  24. package/esm/DotplotRenderer/index.js +4 -4
  25. package/esm/DotplotView/1dview.d.ts +25 -25
  26. package/esm/DotplotView/1dview.js +16 -4
  27. package/esm/DotplotView/components/Axes.d.ts +1 -1
  28. package/esm/DotplotView/components/Axes.js +31 -41
  29. package/esm/DotplotView/components/ColorBySelector.d.ts +5 -0
  30. package/esm/DotplotView/components/ColorBySelector.js +73 -0
  31. package/esm/DotplotView/components/DiagonalizationProgressDialog.d.ts +6 -0
  32. package/esm/DotplotView/components/DiagonalizationProgressDialog.js +123 -0
  33. package/esm/DotplotView/components/DotplotControls.d.ts +1 -1
  34. package/esm/DotplotView/components/DotplotControls.js +53 -15
  35. package/esm/DotplotView/components/DotplotGrid.d.ts +6 -0
  36. package/esm/DotplotView/components/{Grid.js → DotplotGrid.js} +19 -20
  37. package/esm/DotplotView/components/DotplotGridWrapper.d.ts +6 -0
  38. package/esm/DotplotView/components/DotplotGridWrapper.js +8 -0
  39. package/esm/DotplotView/components/DotplotTooltipClick.d.ts +2 -2
  40. package/esm/DotplotView/components/DotplotTooltipClick.js +4 -4
  41. package/esm/DotplotView/components/DotplotTooltipMouseover.d.ts +1 -1
  42. package/esm/DotplotView/components/DotplotTooltipMouseover.js +2 -2
  43. package/esm/DotplotView/components/DotplotTooltips.d.ts +15 -0
  44. package/esm/DotplotView/components/DotplotTooltips.js +7 -0
  45. package/esm/DotplotView/components/DotplotView.d.ts +2 -2
  46. package/esm/DotplotView/components/DotplotView.js +31 -171
  47. package/esm/DotplotView/components/DotplotWarnings.d.ts +1 -1
  48. package/esm/DotplotView/components/DotplotWarnings.js +7 -7
  49. package/esm/DotplotView/components/ExportSvgDialog.d.ts +1 -1
  50. package/esm/DotplotView/components/Header.d.ts +1 -1
  51. package/esm/DotplotView/components/Header.js +5 -5
  52. package/esm/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +1 -1
  53. package/esm/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +6 -5
  54. package/esm/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.d.ts +1 -1
  55. package/esm/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.js +2 -3
  56. package/esm/DotplotView/components/ImportForm/TrackSelector.d.ts +10 -1
  57. package/esm/DotplotView/components/ImportForm/TrackSelector.js +8 -4
  58. package/esm/DotplotView/components/ImportForm/index.d.ts +1 -1
  59. package/esm/DotplotView/components/ImportForm/index.js +4 -10
  60. package/esm/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.d.ts +1 -1
  61. package/esm/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.js +2 -2
  62. package/esm/DotplotView/components/ImportForm/selectors/PifGzSelector.d.ts +1 -1
  63. package/esm/DotplotView/components/ImportForm/selectors/PifGzSelector.js +2 -2
  64. package/esm/DotplotView/components/ImportForm/selectors/SwapAssemblies.js +3 -3
  65. package/esm/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.d.ts +1 -1
  66. package/esm/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.js +3 -3
  67. package/esm/DotplotView/components/ImportForm/selectors/index.d.ts +3 -3
  68. package/esm/DotplotView/components/ImportForm/selectors/index.js +3 -3
  69. package/esm/DotplotView/components/MinLengthSlider.d.ts +5 -0
  70. package/esm/DotplotView/components/MinLengthSlider.js +39 -0
  71. package/esm/DotplotView/components/MouseInteractionLayer.d.ts +17 -0
  72. package/esm/DotplotView/components/MouseInteractionLayer.js +14 -0
  73. package/esm/DotplotView/components/OpacitySlider.d.ts +5 -0
  74. package/esm/DotplotView/components/OpacitySlider.js +37 -0
  75. package/esm/DotplotView/components/PanButtons.d.ts +1 -1
  76. package/esm/DotplotView/components/PanButtons.js +1 -1
  77. package/esm/DotplotView/components/SelectionContextMenu.d.ts +13 -0
  78. package/esm/DotplotView/components/SelectionContextMenu.js +39 -0
  79. package/esm/DotplotView/components/SliderTooltip.d.ts +2 -0
  80. package/esm/DotplotView/components/SliderTooltip.js +6 -0
  81. package/esm/DotplotView/components/WarningDialog.js +1 -1
  82. package/esm/DotplotView/components/hooks/useCtrlKeyTracking.d.ts +1 -0
  83. package/esm/DotplotView/components/hooks/useCtrlKeyTracking.js +21 -0
  84. package/esm/DotplotView/components/hooks/useCursorMode.d.ts +7 -0
  85. package/esm/DotplotView/components/hooks/useCursorMode.js +16 -0
  86. package/esm/DotplotView/components/hooks/useMouseCoordinates.d.ts +29 -0
  87. package/esm/DotplotView/components/hooks/useMouseCoordinates.js +49 -0
  88. package/esm/DotplotView/components/hooks/useMouseMoveHandler.d.ts +6 -0
  89. package/esm/DotplotView/components/hooks/useMouseMoveHandler.js +24 -0
  90. package/esm/DotplotView/components/hooks/useMouseUpHandler.d.ts +3 -0
  91. package/esm/DotplotView/components/hooks/useMouseUpHandler.js +28 -0
  92. package/esm/DotplotView/components/hooks/useWheelHandler.d.ts +8 -0
  93. package/esm/DotplotView/components/hooks/useWheelHandler.js +44 -0
  94. package/esm/DotplotView/components/util.d.ts +1 -1
  95. package/esm/DotplotView/components/util.js +18 -8
  96. package/esm/DotplotView/index.js +2 -2
  97. package/esm/DotplotView/model.d.ts +213 -90
  98. package/esm/DotplotView/model.js +147 -93
  99. package/esm/DotplotView/svgcomponents/SVGDotplotView.d.ts +1 -1
  100. package/esm/DotplotView/svgcomponents/SVGDotplotView.js +5 -6
  101. package/esm/DotplotView/types.d.ts +7 -1
  102. package/esm/LaunchDotplotView.js +6 -36
  103. package/esm/ServerSideRenderedBlockContent.js +6 -27
  104. package/esm/ServerSideSyntenyRendering.d.ts +1 -1
  105. package/esm/ServerSideSyntenyRendering.js +1 -1
  106. package/esm/index.d.ts +1 -0
  107. package/esm/index.js +9 -10
  108. package/esm/util.d.ts +1 -1
  109. package/package.json +28 -35
  110. package/dist/ComparativeRenderer/index.d.ts +0 -22
  111. package/dist/ComparativeRenderer/index.js +0 -53
  112. package/dist/DotplotDisplay/components/DotplotDisplay.d.ts +0 -6
  113. package/dist/DotplotDisplay/components/DotplotDisplay.js +0 -18
  114. package/dist/DotplotDisplay/index.d.ts +0 -5
  115. package/dist/DotplotDisplay/index.js +0 -36
  116. package/dist/DotplotDisplay/renderDotplotBlock.d.ts +0 -11
  117. package/dist/DotplotDisplay/renderDotplotBlock.js +0 -49
  118. package/dist/DotplotDisplay/stateModelFactory.d.ts +0 -102
  119. package/dist/DotplotDisplay/stateModelFactory.js +0 -119
  120. package/dist/DotplotReadVsRef/DotplotReadVsRef.d.ts +0 -3
  121. package/dist/DotplotReadVsRef/DotplotReadVsRef.js +0 -100
  122. package/dist/DotplotReadVsRef/index.d.ts +0 -2
  123. package/dist/DotplotReadVsRef/index.js +0 -41
  124. package/dist/DotplotRenderer/ComparativeRenderRpc.d.ts +0 -22
  125. package/dist/DotplotRenderer/ComparativeRenderRpc.js +0 -53
  126. package/dist/DotplotRenderer/DotplotRenderer.d.ts +0 -74
  127. package/dist/DotplotRenderer/DotplotRenderer.js +0 -102
  128. package/dist/DotplotRenderer/components/DotplotRendering.d.ts +0 -3
  129. package/dist/DotplotRenderer/components/DotplotRendering.js +0 -9
  130. package/dist/DotplotRenderer/configSchema.d.ts +0 -40
  131. package/dist/DotplotRenderer/configSchema.js +0 -57
  132. package/dist/DotplotRenderer/drawDotplot.d.ts +0 -21
  133. package/dist/DotplotRenderer/drawDotplot.js +0 -213
  134. package/dist/DotplotRenderer/index.d.ts +0 -2
  135. package/dist/DotplotRenderer/index.js +0 -17
  136. package/dist/DotplotView/1dview.d.ts +0 -199
  137. package/dist/DotplotView/1dview.js +0 -63
  138. package/dist/DotplotView/components/Axes.d.ts +0 -13
  139. package/dist/DotplotView/components/Axes.js +0 -107
  140. package/dist/DotplotView/components/CursorIcon.d.ts +0 -3
  141. package/dist/DotplotView/components/CursorIcon.js +0 -15
  142. package/dist/DotplotView/components/DotplotControls.d.ts +0 -5
  143. package/dist/DotplotView/components/DotplotControls.js +0 -115
  144. package/dist/DotplotView/components/DotplotTooltipClick.d.ts +0 -10
  145. package/dist/DotplotView/components/DotplotTooltipClick.js +0 -17
  146. package/dist/DotplotView/components/DotplotTooltipMouseover.d.ts +0 -9
  147. package/dist/DotplotView/components/DotplotTooltipMouseover.js +0 -16
  148. package/dist/DotplotView/components/DotplotView.d.ts +0 -5
  149. package/dist/DotplotView/components/DotplotView.js +0 -275
  150. package/dist/DotplotView/components/DotplotWarnings.d.ts +0 -5
  151. package/dist/DotplotView/components/DotplotWarnings.js +0 -53
  152. package/dist/DotplotView/components/ExportSvgDialog.d.ts +0 -7
  153. package/dist/DotplotView/components/ExportSvgDialog.js +0 -53
  154. package/dist/DotplotView/components/Grid.d.ts +0 -9
  155. package/dist/DotplotView/components/Grid.js +0 -47
  156. package/dist/DotplotView/components/Header.d.ts +0 -9
  157. package/dist/DotplotView/components/Header.js +0 -33
  158. package/dist/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +0 -7
  159. package/dist/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +0 -78
  160. package/dist/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.d.ts +0 -7
  161. package/dist/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.js +0 -42
  162. package/dist/DotplotView/components/ImportForm/TrackSelector.d.ts +0 -7
  163. package/dist/DotplotView/components/ImportForm/TrackSelector.js +0 -23
  164. package/dist/DotplotView/components/ImportForm/getAdapter.d.ts +0 -117
  165. package/dist/DotplotView/components/ImportForm/getAdapter.js +0 -68
  166. package/dist/DotplotView/components/ImportForm/index.d.ts +0 -5
  167. package/dist/DotplotView/components/ImportForm/index.js +0 -76
  168. package/dist/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.d.ts +0 -3
  169. package/dist/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.js +0 -23
  170. package/dist/DotplotView/components/ImportForm/selectors/PifGzSelector.d.ts +0 -3
  171. package/dist/DotplotView/components/ImportForm/selectors/PifGzSelector.js +0 -13
  172. package/dist/DotplotView/components/ImportForm/selectors/SelectorTypes.d.ts +0 -23
  173. package/dist/DotplotView/components/ImportForm/selectors/SelectorTypes.js +0 -10
  174. package/dist/DotplotView/components/ImportForm/selectors/SwapAssemblies.d.ts +0 -13
  175. package/dist/DotplotView/components/ImportForm/selectors/SwapAssemblies.js +0 -32
  176. package/dist/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.d.ts +0 -3
  177. package/dist/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.js +0 -24
  178. package/dist/DotplotView/components/ImportForm/selectors/index.d.ts +0 -3
  179. package/dist/DotplotView/components/ImportForm/selectors/index.js +0 -12
  180. package/dist/DotplotView/components/ImportForm/util.d.ts +0 -10
  181. package/dist/DotplotView/components/ImportForm/util.js +0 -24
  182. package/dist/DotplotView/components/PanButtons.d.ts +0 -5
  183. package/dist/DotplotView/components/PanButtons.js +0 -47
  184. package/dist/DotplotView/components/WarningDialog.d.ts +0 -16
  185. package/dist/DotplotView/components/WarningDialog.js +0 -39
  186. package/dist/DotplotView/components/util.d.ts +0 -14
  187. package/dist/DotplotView/components/util.js +0 -82
  188. package/dist/DotplotView/index.d.ts +0 -2
  189. package/dist/DotplotView/index.js +0 -52
  190. package/dist/DotplotView/model.d.ts +0 -435
  191. package/dist/DotplotView/model.js +0 -487
  192. package/dist/DotplotView/svgcomponents/SVGBackground.d.ts +0 -4
  193. package/dist/DotplotView/svgcomponents/SVGBackground.js +0 -10
  194. package/dist/DotplotView/svgcomponents/SVGDotplotView.d.ts +0 -2
  195. package/dist/DotplotView/svgcomponents/SVGDotplotView.js +0 -30
  196. package/dist/DotplotView/types.d.ts +0 -12
  197. package/dist/DotplotView/types.js +0 -2
  198. package/dist/LaunchDotplotView.d.ts +0 -2
  199. package/dist/LaunchDotplotView.js +0 -43
  200. package/dist/ServerSideRenderedBlockContent.d.ts +0 -12
  201. package/dist/ServerSideRenderedBlockContent.js +0 -65
  202. package/dist/ServerSideSyntenyRendering.d.ts +0 -13
  203. package/dist/ServerSideSyntenyRendering.js +0 -23
  204. package/dist/index.d.ts +0 -7
  205. package/dist/index.js +0 -40
  206. package/dist/util.d.ts +0 -9
  207. package/dist/util.js +0 -7
  208. package/esm/DotplotRenderer/ComparativeRenderRpc.d.ts +0 -22
  209. package/esm/DotplotRenderer/ComparativeRenderRpc.js +0 -47
  210. package/esm/DotplotView/components/Grid.d.ts +0 -9
@@ -1,22 +1,22 @@
1
1
  import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType';
2
- import type { RenderArgs as ComparativeRenderArgs, RenderArgsSerialized as ComparativeRenderArgsSerialized, RenderResults, ResultsSerialized } from '@jbrowse/core/pluggableElementTypes/renderers/ComparativeServerSideRendererType';
3
- import type ComparativeRenderer from '@jbrowse/core/pluggableElementTypes/renderers/ComparativeServerSideRendererType';
4
- interface RenderArgs extends ComparativeRenderArgs {
5
- adapterConfig: Record<string, unknown>;
2
+ import type { DotplotRenderArgs, RenderArgsSerialized, ResultsSerialized } from '../DotplotRenderer/DotplotRenderer.ts';
3
+ import type DotplotRenderer from '../DotplotRenderer/DotplotRenderer.ts';
4
+ import type { RenderResults } from '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType';
5
+ interface RenderArgs extends DotplotRenderArgs {
6
6
  rendererType: string;
7
7
  }
8
- interface RenderArgsSerialized extends ComparativeRenderArgsSerialized {
8
+ interface RenderArgsSerializedWithRenderer extends RenderArgsSerialized {
9
9
  adapterConfig: Record<string, unknown>;
10
10
  rendererType: string;
11
11
  }
12
12
  export default class ComparativeRender extends RpcMethodType {
13
13
  name: string;
14
- renameRegionsIfNeeded(args: RenderArgs, rend: ComparativeRenderer): Promise<ComparativeRenderArgs>;
15
- getRenderer(rendererType: string): ComparativeRenderer;
16
- serializeArguments(args: RenderArgs, rpcDriver: string): Promise<ComparativeRenderArgs | import("@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType").RenderArgsSerialized>;
17
- execute(args: RenderArgsSerialized & {
14
+ renameRegionsIfNeeded(args: RenderArgs, rend: DotplotRenderer): Promise<DotplotRenderArgs>;
15
+ getRenderer(rendererType: string): DotplotRenderer;
16
+ serializeArguments(args: RenderArgs, rpcDriver: string): Promise<import("@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType").RenderArgsSerialized>;
17
+ execute(args: RenderArgsSerializedWithRenderer & {
18
18
  stopToken?: string;
19
- }, rpcDriver: string): Promise<RenderResults | import("@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType").ResultsSerialized>;
19
+ }, rpcDriver: string): Promise<import("@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType").ResultsSerialized>;
20
20
  deserializeReturn(val: RenderResults | ResultsSerialized, args: RenderArgs, rpcDriver: string): Promise<unknown>;
21
21
  }
22
22
  export {};
@@ -1,10 +1,7 @@
1
1
  import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType';
2
2
  import { checkStopToken } from '@jbrowse/core/util/stopToken';
3
3
  export default class ComparativeRender extends RpcMethodType {
4
- constructor() {
5
- super(...arguments);
6
- this.name = 'ComparativeRender';
7
- }
4
+ name = 'ComparativeRender';
8
5
  async renameRegionsIfNeeded(args, rend) {
9
6
  return rend.renameRegionsIfNeeded(args);
10
7
  }
@@ -17,30 +14,20 @@ export default class ComparativeRender extends RpcMethodType {
17
14
  const renderer = this.getRenderer(rendererType);
18
15
  const n = (await super.serializeArguments(args, rpcDriver));
19
16
  const result = await this.renameRegionsIfNeeded(n, renderer);
20
- return rpcDriver === 'MainThreadRpcDriver'
21
- ? result
22
- : renderer.serializeArgsInClient(result);
17
+ return renderer.serializeArgsInClient(result);
23
18
  }
24
19
  async execute(args, rpcDriver) {
25
- let deserializedArgs = args;
26
- if (rpcDriver !== 'MainThreadRpcDriver') {
27
- deserializedArgs = await this.deserializeArguments(args, rpcDriver);
28
- }
20
+ const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
29
21
  const { sessionId, rendererType, stopToken } = deserializedArgs;
30
22
  if (!sessionId) {
31
23
  throw new Error('must pass a unique session id');
32
24
  }
33
25
  checkStopToken(stopToken);
34
26
  const renderer = this.getRenderer(rendererType);
35
- return rpcDriver === 'MainThreadRpcDriver'
36
- ? renderer.render(deserializedArgs)
37
- : renderer.renderInWorker(deserializedArgs);
27
+ return renderer.renderInWorker(deserializedArgs);
38
28
  }
39
29
  async deserializeReturn(val, args, rpcDriver) {
40
30
  const ret = (await super.deserializeReturn(val, args, rpcDriver));
41
- if (rpcDriver === 'MainThreadRpcDriver') {
42
- return ret;
43
- }
44
31
  const renderer = this.getRenderer(args.rendererType);
45
32
  return renderer.deserializeResultsInClient(ret, args);
46
33
  }
@@ -0,0 +1,30 @@
1
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
2
+ import type { Region } from '@jbrowse/core/util';
3
+ interface DiagonalizationResult {
4
+ newRegions: Region[];
5
+ stats: {
6
+ totalAlignments: number;
7
+ regionsProcessed: number;
8
+ regionsReordered: number;
9
+ regionsReversed: number;
10
+ };
11
+ }
12
+ interface DiagonalizeDotplotArgs {
13
+ sessionId: string;
14
+ view: {
15
+ hview: {
16
+ displayedRegions: Region[];
17
+ };
18
+ vview: {
19
+ displayedRegions: Region[];
20
+ };
21
+ };
22
+ adapterConfig: Record<string, unknown>;
23
+ stopToken?: string;
24
+ statusCallback?: (message: string) => void;
25
+ }
26
+ export default class DiagonalizeDotplotRpc extends RpcMethodTypeWithFiltersAndRenameRegions {
27
+ name: string;
28
+ execute(args: DiagonalizeDotplotArgs, rpcDriverClassName: string): Promise<DiagonalizationResult>;
29
+ }
30
+ export {};
@@ -0,0 +1,147 @@
1
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
2
+ import { checkStopToken } from '@jbrowse/core/util/stopToken';
3
+ import { Dotplot1DView } from "./DotplotView/model.js";
4
+ async function diagonalizeRegions(alignments, currentRegions, progressCallback) {
5
+ const updateProgress = (progress, message) => {
6
+ if (progressCallback) {
7
+ progressCallback(progress, message);
8
+ }
9
+ };
10
+ updateProgress(20, `Grouping ${alignments.length} alignments...`);
11
+ const queryGroups = new Map();
12
+ for (const aln of alignments) {
13
+ const targetRefName = aln.refRefName;
14
+ if (!queryGroups.has(targetRefName)) {
15
+ queryGroups.set(targetRefName, {
16
+ refAlignments: new Map(),
17
+ strandWeightedSum: 0,
18
+ });
19
+ }
20
+ const group = queryGroups.get(targetRefName);
21
+ const alnLength = Math.abs(aln.queryEnd - aln.queryStart);
22
+ if (!group.refAlignments.has(aln.queryRefName)) {
23
+ group.refAlignments.set(aln.queryRefName, {
24
+ bases: 0,
25
+ positions: [],
26
+ });
27
+ }
28
+ const refData = group.refAlignments.get(aln.queryRefName);
29
+ refData.bases += alnLength;
30
+ refData.positions.push((aln.queryStart + aln.queryEnd) / 2);
31
+ const direction = aln.strand >= 0 ? 1 : -1;
32
+ group.strandWeightedSum += direction * alnLength;
33
+ }
34
+ updateProgress(50, 'Determining optimal ordering and orientation...');
35
+ const queryOrdering = [];
36
+ for (const [targetRefName, group] of queryGroups) {
37
+ let bestRefName = '';
38
+ let maxBases = 0;
39
+ let bestPositions = [];
40
+ for (const [firstViewRefName, data] of group.refAlignments) {
41
+ if (data.bases > maxBases) {
42
+ maxBases = data.bases;
43
+ bestRefName = firstViewRefName;
44
+ bestPositions = data.positions;
45
+ }
46
+ }
47
+ const bestRefPos = bestPositions.reduce((a, b) => a + b, 0) / bestPositions.length;
48
+ const shouldReverse = group.strandWeightedSum < 0;
49
+ queryOrdering.push({
50
+ refName: targetRefName,
51
+ bestRefName,
52
+ bestRefPos,
53
+ shouldReverse,
54
+ });
55
+ }
56
+ updateProgress(70, `Sorting ${queryOrdering.length} query regions...`);
57
+ queryOrdering.sort((a, b) => {
58
+ if (a.bestRefName !== b.bestRefName) {
59
+ return a.bestRefName.localeCompare(b.bestRefName);
60
+ }
61
+ return a.bestRefPos - b.bestRefPos;
62
+ });
63
+ updateProgress(85, 'Building new region layout...');
64
+ const newQueryRegions = [];
65
+ let regionsReversed = 0;
66
+ for (const { refName, shouldReverse } of queryOrdering) {
67
+ const region = currentRegions.find(r => r.refName === refName);
68
+ if (region) {
69
+ newQueryRegions.push({
70
+ ...region,
71
+ reversed: shouldReverse,
72
+ });
73
+ if (shouldReverse !== region.reversed) {
74
+ regionsReversed++;
75
+ }
76
+ }
77
+ }
78
+ const regionsWithoutAlignments = currentRegions.filter(r => !newQueryRegions.some(nr => nr.refName === r.refName));
79
+ updateProgress(100, 'Diagonalization complete!');
80
+ return {
81
+ newRegions: [...newQueryRegions, ...regionsWithoutAlignments],
82
+ stats: {
83
+ totalAlignments: alignments.length,
84
+ regionsProcessed: queryOrdering.length,
85
+ regionsReordered: newQueryRegions.length,
86
+ regionsReversed,
87
+ },
88
+ };
89
+ }
90
+ export default class DiagonalizeDotplotRpc extends RpcMethodTypeWithFiltersAndRenameRegions {
91
+ name = 'DiagonalizeDotplot';
92
+ async execute(args, rpcDriverClassName) {
93
+ const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
94
+ const { view, sessionId, adapterConfig, stopToken, statusCallback } = deserializedArgs;
95
+ if (!sessionId) {
96
+ throw new Error('must pass a unique session id');
97
+ }
98
+ statusCallback?.('Initializing diagonalization...');
99
+ const dimensions = [800, 800];
100
+ const views = [view.hview, view.vview].map((snap, idx) => {
101
+ const v = Dotplot1DView.create(snap);
102
+ v.setVolatileWidth(dimensions[idx]);
103
+ return v;
104
+ });
105
+ const targetView = views[0];
106
+ checkStopToken(stopToken);
107
+ statusCallback?.('Getting renderer...');
108
+ const rendererType = this.pluginManager.getRendererType('DotplotRenderer');
109
+ if (!rendererType) {
110
+ throw new Error('DotplotRenderer not found');
111
+ }
112
+ checkStopToken(stopToken);
113
+ statusCallback?.('Fetching features...');
114
+ const feats = await rendererType.getFeatures({
115
+ regions: targetView.dynamicBlocks.contentBlocks,
116
+ adapterConfig,
117
+ sessionId,
118
+ });
119
+ checkStopToken(stopToken);
120
+ statusCallback?.('Extracting alignment data...');
121
+ const alignments = [];
122
+ for (const feat of feats.values()) {
123
+ const mate = feat.get('mate');
124
+ if (mate) {
125
+ alignments.push({
126
+ queryRefName: feat.get('refName'),
127
+ refRefName: mate.refName,
128
+ queryStart: feat.get('start'),
129
+ queryEnd: feat.get('end'),
130
+ refStart: mate.start,
131
+ refEnd: mate.end,
132
+ strand: feat.get('strand') || 1,
133
+ });
134
+ }
135
+ }
136
+ if (alignments.length === 0) {
137
+ throw new Error('No alignments found to diagonalize');
138
+ }
139
+ statusCallback?.(`Running diagonalization on ${alignments.length} alignments...`);
140
+ const result = await diagonalizeRegions(alignments, view.vview.displayedRegions, (progress, message) => {
141
+ checkStopToken(stopToken);
142
+ statusCallback?.(message);
143
+ });
144
+ statusCallback?.('Diagonalization complete!');
145
+ return result;
146
+ }
147
+ }
@@ -1,4 +1,4 @@
1
- import type { DotplotDisplayModel } from '../stateModelFactory';
1
+ import type { DotplotDisplayModel } from '../stateModelFactory.tsx';
2
2
  declare const DotplotDisplay: (props: {
3
3
  model: DotplotDisplayModel;
4
4
  children?: React.ReactNode;
@@ -1,5 +1,5 @@
1
1
  import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function DotplotDisplayF(pm: PluginManager): void;
3
- export declare function configSchemaFactory(pm: any): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
4
- renderer: import("mobx-state-tree").IOptionalIType<any, [undefined]>;
5
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "displayId">>;
3
+ export declare function configSchemaFactory(pm: any): import("node_modules/@jbrowse/core/src/configuration/configurationSchema.ts").ConfigurationSchemaType<{
4
+ renderer: import("@jbrowse/mobx-state-tree").IOptionalIType<any, [undefined]>;
5
+ }, import("node_modules/@jbrowse/core/src/configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "displayId">>;
@@ -1,8 +1,8 @@
1
+ import { lazy } from 'react';
1
2
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
3
  import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
3
- import { types } from 'mobx-state-tree';
4
- import ReactComponent from './components/DotplotDisplay';
5
- import { stateModelFactory } from './stateModelFactory';
4
+ import { types } from '@jbrowse/mobx-state-tree';
5
+ import { stateModelFactory } from "./stateModelFactory.js";
6
6
  export default function DotplotDisplayF(pm) {
7
7
  pm.addDisplayType(() => {
8
8
  const configSchema = configSchemaFactory(pm);
@@ -13,7 +13,7 @@ export default function DotplotDisplayF(pm) {
13
13
  stateModel: stateModelFactory(configSchema),
14
14
  trackType: 'SyntenyTrack',
15
15
  viewType: 'DotplotView',
16
- ReactComponent,
16
+ ReactComponent: lazy(() => import("./components/DotplotDisplay.js")),
17
17
  });
18
18
  });
19
19
  }
@@ -1,8 +1,9 @@
1
- import type { IAnyStateTreeNode } from 'mobx-state-tree';
1
+ import type { IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
2
2
  export declare function renderBlockData(self: IAnyStateTreeNode): {
3
3
  rendererType: any;
4
4
  rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
5
5
  renderProps: any;
6
+ renderingProps: Record<string, unknown> | undefined;
6
7
  } | undefined;
7
8
  export declare function renderBlockEffect(props?: ReturnType<typeof renderBlockData>): Promise<{
8
9
  reactElement: any;
@@ -1,7 +1,7 @@
1
1
  import { readConfObject } from '@jbrowse/core/configuration';
2
- import { getContainingView, getSession } from '@jbrowse/core/util';
2
+ import { getContainingTrack, getContainingView, getSession, } from '@jbrowse/core/util';
3
3
  import { getRpcSessionId } from '@jbrowse/core/util/tracks';
4
- import { getSnapshot } from 'mobx-state-tree';
4
+ import { getSnapshot } from '@jbrowse/mobx-state-tree';
5
5
  export function renderBlockData(self) {
6
6
  const { rpcManager } = getSession(self);
7
7
  const { rendererType } = self;
@@ -25,8 +25,13 @@ export function renderBlockData(self) {
25
25
  adapterConfig,
26
26
  rendererType: rendererType.name,
27
27
  sessionId: getRpcSessionId(self),
28
+ trackInstanceId: getContainingTrack(self).id,
28
29
  timeout: 1000000,
30
+ alpha: self.alpha,
31
+ minAlignmentLength: self.minAlignmentLength,
32
+ colorBy: self.colorBy,
29
33
  },
34
+ renderingProps: self.renderingProps?.(),
30
35
  };
31
36
  }
32
37
  return undefined;
@@ -35,8 +40,8 @@ export async function renderBlockEffect(props) {
35
40
  if (!props) {
36
41
  return;
37
42
  }
38
- const { rendererType, rpcManager, renderProps } = props;
39
- const { reactElement, ...data } = await rendererType.renderInClient(rpcManager, renderProps);
43
+ const { rendererType, rpcManager, renderProps, renderingProps } = props;
44
+ const { reactElement, ...data } = await rendererType.renderInClient(rpcManager, { ...renderProps, renderingProps });
40
45
  return {
41
46
  reactElement,
42
47
  data,
@@ -1,37 +1,39 @@
1
- import type { ExportSvgOptions } from '../DotplotView/model';
1
+ import type { ExportSvgOptions } from '../DotplotView/model.ts';
2
2
  import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
3
+ import type { StopToken } from '@jbrowse/core/util/stopToken';
4
+ import type { Instance } from '@jbrowse/mobx-state-tree';
3
5
  import type { ThemeOptions } from '@mui/material';
4
- import type { Instance } from 'mobx-state-tree';
5
- export declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("mobx-state-tree").IModelType<{
6
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
7
- type: import("mobx-state-tree").ISimpleType<string>;
8
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
6
+ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("@jbrowse/mobx-state-tree").IModelType<{
7
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
8
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
9
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
9
10
  } & {
10
- type: import("mobx-state-tree").ISimpleType<"DotplotDisplay">;
11
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<"DotplotDisplay">;
11
12
  configuration: AnyConfigurationSchemaType;
13
+ colorBy: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
12
14
  }, {
13
15
  rendererTypeName: string;
14
16
  error: unknown;
15
- message: string | undefined;
17
+ statusMessage: string | undefined;
16
18
  } & {
17
19
  readonly RenderingComponent: React.FC<{
18
20
  model: {
19
21
  id: string;
20
22
  type: string;
21
23
  rpcDriverName: string | undefined;
22
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
24
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
23
25
  rendererTypeName: string;
24
26
  error: unknown;
25
- message: string | undefined;
26
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
27
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
28
- type: import("mobx-state-tree").ISimpleType<string>;
29
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
27
+ statusMessage: string | undefined;
28
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
29
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
30
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
31
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
30
32
  }, {
31
33
  rendererTypeName: string;
32
34
  error: unknown;
33
- message: string | undefined;
34
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
35
+ statusMessage: string | undefined;
36
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
35
37
  onHorizontalScroll?: () => void;
36
38
  blockState?: Record<string, any>;
37
39
  }>;
@@ -40,35 +42,147 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
40
42
  id: string;
41
43
  type: string;
42
44
  rpcDriverName: string | undefined;
43
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
45
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
44
46
  rendererTypeName: string;
45
47
  error: unknown;
46
- message: string | undefined;
47
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
48
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
49
- type: import("mobx-state-tree").ISimpleType<string>;
50
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
48
+ statusMessage: string | undefined;
49
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
50
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
51
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
52
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
51
53
  }, {
52
54
  rendererTypeName: string;
53
55
  error: unknown;
54
- message: string | undefined;
55
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
56
+ statusMessage: string | undefined;
57
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
56
58
  }> | null;
57
59
  readonly adapterConfig: any;
58
- readonly parentTrack: any;
60
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
61
+ readonly parentDisplay: any;
62
+ readonly effectiveRpcDriverName: any;
63
+ } & {
59
64
  renderProps(): any;
65
+ renderingProps(): {
66
+ displayModel: {
67
+ id: string;
68
+ type: string;
69
+ rpcDriverName: string | undefined;
70
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
71
+ rendererTypeName: string;
72
+ error: unknown;
73
+ statusMessage: string | undefined;
74
+ } & {
75
+ readonly RenderingComponent: React.FC<{
76
+ model: {
77
+ id: string;
78
+ type: string;
79
+ rpcDriverName: string | undefined;
80
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
81
+ rendererTypeName: string;
82
+ error: unknown;
83
+ statusMessage: string | undefined;
84
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
85
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
86
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
87
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
88
+ }, {
89
+ rendererTypeName: string;
90
+ error: unknown;
91
+ statusMessage: string | undefined;
92
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
93
+ onHorizontalScroll?: () => void;
94
+ blockState?: Record<string, any>;
95
+ }>;
96
+ readonly DisplayBlurb: React.FC<{
97
+ model: {
98
+ id: string;
99
+ type: string;
100
+ rpcDriverName: string | undefined;
101
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
102
+ rendererTypeName: string;
103
+ error: unknown;
104
+ statusMessage: string | undefined;
105
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
106
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
107
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
108
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
109
+ }, {
110
+ rendererTypeName: string;
111
+ error: unknown;
112
+ statusMessage: string | undefined;
113
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
114
+ }> | null;
115
+ readonly adapterConfig: any;
116
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
117
+ readonly parentDisplay: any;
118
+ readonly effectiveRpcDriverName: any;
119
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
120
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
121
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
122
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
123
+ }, {
124
+ rendererTypeName: string;
125
+ error: unknown;
126
+ statusMessage: string | undefined;
127
+ } & {
128
+ readonly RenderingComponent: React.FC<{
129
+ model: {
130
+ id: string;
131
+ type: string;
132
+ rpcDriverName: string | undefined;
133
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
134
+ rendererTypeName: string;
135
+ error: unknown;
136
+ statusMessage: string | undefined;
137
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
138
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
139
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
140
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
141
+ }, {
142
+ rendererTypeName: string;
143
+ error: unknown;
144
+ statusMessage: string | undefined;
145
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
146
+ onHorizontalScroll?: () => void;
147
+ blockState?: Record<string, any>;
148
+ }>;
149
+ readonly DisplayBlurb: React.FC<{
150
+ model: {
151
+ id: string;
152
+ type: string;
153
+ rpcDriverName: string | undefined;
154
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
155
+ rendererTypeName: string;
156
+ error: unknown;
157
+ statusMessage: string | undefined;
158
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
159
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
160
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
161
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
162
+ }, {
163
+ rendererTypeName: string;
164
+ error: unknown;
165
+ statusMessage: string | undefined;
166
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
167
+ }> | null;
168
+ readonly adapterConfig: any;
169
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
170
+ readonly parentDisplay: any;
171
+ readonly effectiveRpcDriverName: any;
172
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
173
+ };
60
174
  readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
61
175
  readonly DisplayMessageComponent: undefined | React.FC<any>;
62
176
  trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
63
177
  readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
64
178
  regionCannotBeRendered(): null;
65
179
  } & {
66
- setMessage(arg?: string): void;
180
+ setStatusMessage(arg?: string): void;
67
181
  setError(error?: unknown): void;
68
182
  setRpcDriverName(rpcDriverName: string): void;
69
183
  reload(): void;
70
184
  } & {
71
- stopToken: string | undefined;
185
+ stopToken: StopToken | undefined;
72
186
  warnings: {
73
187
  message: string;
74
188
  effect: string;
@@ -79,6 +193,8 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
79
193
  message: string | undefined;
80
194
  renderingComponent: any;
81
195
  ReactComponent2: React.FC<any>;
196
+ alpha: number;
197
+ minAlignmentLength: number;
82
198
  } & {
83
199
  readonly shouldDisplay: boolean;
84
200
  readonly rendererTypeName: any;
@@ -89,7 +205,7 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
89
205
  }): Promise<import("react/jsx-runtime").JSX.Element | null>;
90
206
  } & {
91
207
  afterAttach(): void;
92
- setLoading(stopToken?: string): void;
208
+ setLoading(stopToken?: StopToken): void;
93
209
  setMessage(messageText: string): void;
94
210
  setRendered(args?: {
95
211
  data: any;
@@ -97,6 +213,9 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
97
213
  renderingComponent: React.Component;
98
214
  }): void;
99
215
  setError(error: unknown): void;
100
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
216
+ setAlpha(value: number): void;
217
+ setMinAlignmentLength(value: number): void;
218
+ setColorBy(value: string): void;
219
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
101
220
  export type DotplotDisplayStateModel = ReturnType<typeof stateModelFactory>;
102
221
  export type DotplotDisplayModel = Instance<DotplotDisplayStateModel>;