@jbrowse/plugin-dotplot-view 3.7.0 → 4.0.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 (224) hide show
  1. package/esm/ComparativeRenderer/index.d.ts +10 -10
  2. package/esm/ComparativeRenderer/index.js +4 -17
  3. package/esm/DiagonalizeDotplotRpc.js +9 -12
  4. package/esm/DotplotDisplay/components/DotplotDisplay.d.ts +1 -1
  5. package/esm/DotplotDisplay/index.d.ts +3 -3
  6. package/esm/DotplotDisplay/index.js +4 -4
  7. package/esm/DotplotDisplay/renderDotplotBlock.d.ts +2 -1
  8. package/esm/DotplotDisplay/renderDotplotBlock.js +6 -4
  9. package/esm/DotplotDisplay/stateModelFactory.d.ts +143 -30
  10. package/esm/DotplotDisplay/stateModelFactory.js +5 -14
  11. package/esm/DotplotReadVsRef/DotplotReadVsRef.js +5 -6
  12. package/esm/DotplotReadVsRef/index.js +1 -1
  13. package/esm/DotplotRenderer/DotplotRenderer.d.ts +30 -39
  14. package/esm/DotplotRenderer/DotplotRenderer.js +55 -22
  15. package/esm/DotplotRenderer/components/DotplotRendering.d.ts +1 -1
  16. package/esm/DotplotRenderer/components/DotplotRendering.js +1 -1
  17. package/esm/DotplotRenderer/configSchema.d.ts +3 -3
  18. package/esm/DotplotRenderer/configSchema.js +1 -1
  19. package/esm/DotplotRenderer/drawDotplot.d.ts +3 -3
  20. package/esm/DotplotRenderer/drawDotplot.js +5 -6
  21. package/esm/DotplotRenderer/index.js +4 -4
  22. package/esm/DotplotView/1dview.d.ts +25 -25
  23. package/esm/DotplotView/1dview.js +13 -3
  24. package/esm/DotplotView/components/Axes.d.ts +1 -1
  25. package/esm/DotplotView/components/Axes.js +31 -41
  26. package/esm/DotplotView/components/ColorBySelector.d.ts +1 -1
  27. package/esm/DotplotView/components/ColorBySelector.js +3 -4
  28. package/esm/DotplotView/components/DiagonalizationProgressDialog.d.ts +1 -1
  29. package/esm/DotplotView/components/DiagonalizationProgressDialog.js +1 -1
  30. package/esm/DotplotView/components/DotplotControls.d.ts +1 -1
  31. package/esm/DotplotView/components/DotplotControls.js +7 -8
  32. package/esm/DotplotView/components/DotplotGrid.d.ts +6 -0
  33. package/esm/DotplotView/components/{Grid.js → DotplotGrid.js} +19 -20
  34. package/esm/DotplotView/components/DotplotGridWrapper.d.ts +6 -0
  35. package/esm/DotplotView/components/DotplotGridWrapper.js +8 -0
  36. package/esm/DotplotView/components/DotplotTooltipClick.d.ts +2 -2
  37. package/esm/DotplotView/components/DotplotTooltipClick.js +4 -4
  38. package/esm/DotplotView/components/DotplotTooltipMouseover.d.ts +1 -1
  39. package/esm/DotplotView/components/DotplotTooltipMouseover.js +2 -2
  40. package/esm/DotplotView/components/DotplotTooltips.d.ts +1 -1
  41. package/esm/DotplotView/components/DotplotTooltips.js +2 -2
  42. package/esm/DotplotView/components/DotplotView.d.ts +2 -2
  43. package/esm/DotplotView/components/DotplotView.js +23 -21
  44. package/esm/DotplotView/components/DotplotWarnings.d.ts +1 -1
  45. package/esm/DotplotView/components/DotplotWarnings.js +3 -3
  46. package/esm/DotplotView/components/ExportSvgDialog.d.ts +1 -1
  47. package/esm/DotplotView/components/Header.d.ts +1 -1
  48. package/esm/DotplotView/components/Header.js +5 -5
  49. package/esm/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +1 -1
  50. package/esm/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +6 -5
  51. package/esm/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.d.ts +1 -1
  52. package/esm/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.js +2 -3
  53. package/esm/DotplotView/components/ImportForm/TrackSelector.d.ts +10 -1
  54. package/esm/DotplotView/components/ImportForm/TrackSelector.js +8 -4
  55. package/esm/DotplotView/components/ImportForm/index.d.ts +1 -1
  56. package/esm/DotplotView/components/ImportForm/index.js +4 -9
  57. package/esm/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.d.ts +1 -1
  58. package/esm/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.js +2 -2
  59. package/esm/DotplotView/components/ImportForm/selectors/PifGzSelector.d.ts +1 -1
  60. package/esm/DotplotView/components/ImportForm/selectors/PifGzSelector.js +2 -2
  61. package/esm/DotplotView/components/ImportForm/selectors/SwapAssemblies.js +3 -3
  62. package/esm/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.d.ts +1 -1
  63. package/esm/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.js +3 -3
  64. package/esm/DotplotView/components/ImportForm/selectors/index.d.ts +3 -3
  65. package/esm/DotplotView/components/ImportForm/selectors/index.js +3 -3
  66. package/esm/DotplotView/components/MinLengthSlider.d.ts +1 -1
  67. package/esm/DotplotView/components/MinLengthSlider.js +7 -7
  68. package/esm/DotplotView/components/MouseInteractionLayer.d.ts +3 -3
  69. package/esm/DotplotView/components/MouseInteractionLayer.js +6 -4
  70. package/esm/DotplotView/components/OpacitySlider.d.ts +1 -1
  71. package/esm/DotplotView/components/OpacitySlider.js +5 -6
  72. package/esm/DotplotView/components/PanButtons.d.ts +1 -1
  73. package/esm/DotplotView/components/PanButtons.js +1 -1
  74. package/esm/DotplotView/components/SelectionContextMenu.d.ts +1 -1
  75. package/esm/DotplotView/components/WarningDialog.js +1 -1
  76. package/esm/DotplotView/components/util.d.ts +1 -1
  77. package/esm/DotplotView/components/util.js +17 -5
  78. package/esm/DotplotView/index.js +2 -2
  79. package/esm/DotplotView/model.d.ts +208 -90
  80. package/esm/DotplotView/model.js +118 -79
  81. package/esm/DotplotView/svgcomponents/SVGDotplotView.d.ts +1 -1
  82. package/esm/DotplotView/svgcomponents/SVGDotplotView.js +5 -6
  83. package/esm/DotplotView/types.d.ts +7 -1
  84. package/esm/LaunchDotplotView.js +6 -36
  85. package/esm/ServerSideRenderedBlockContent.js +2 -6
  86. package/esm/ServerSideSyntenyRendering.d.ts +1 -1
  87. package/esm/ServerSideSyntenyRendering.js +1 -1
  88. package/esm/index.d.ts +1 -0
  89. package/esm/index.js +8 -11
  90. package/esm/util.d.ts +1 -1
  91. package/package.json +28 -35
  92. package/dist/ComparativeRenderer/index.d.ts +0 -22
  93. package/dist/ComparativeRenderer/index.js +0 -53
  94. package/dist/DiagonalizeDotplotRpc.d.ts +0 -30
  95. package/dist/DiagonalizeDotplotRpc.js +0 -156
  96. package/dist/DotplotDisplay/components/DotplotDisplay.d.ts +0 -6
  97. package/dist/DotplotDisplay/components/DotplotDisplay.js +0 -18
  98. package/dist/DotplotDisplay/index.d.ts +0 -5
  99. package/dist/DotplotDisplay/index.js +0 -36
  100. package/dist/DotplotDisplay/renderDotplotBlock.d.ts +0 -11
  101. package/dist/DotplotDisplay/renderDotplotBlock.js +0 -52
  102. package/dist/DotplotDisplay/stateModelFactory.d.ts +0 -108
  103. package/dist/DotplotDisplay/stateModelFactory.js +0 -134
  104. package/dist/DotplotReadVsRef/DotplotReadVsRef.d.ts +0 -3
  105. package/dist/DotplotReadVsRef/DotplotReadVsRef.js +0 -100
  106. package/dist/DotplotReadVsRef/index.d.ts +0 -2
  107. package/dist/DotplotReadVsRef/index.js +0 -41
  108. package/dist/DotplotRenderer/ComparativeRenderRpc.d.ts +0 -22
  109. package/dist/DotplotRenderer/ComparativeRenderRpc.js +0 -53
  110. package/dist/DotplotRenderer/DotplotRenderer.d.ts +0 -65
  111. package/dist/DotplotRenderer/DotplotRenderer.js +0 -102
  112. package/dist/DotplotRenderer/clamp.d.ts +0 -7
  113. package/dist/DotplotRenderer/clamp.js +0 -62
  114. package/dist/DotplotRenderer/components/DotplotRendering.d.ts +0 -3
  115. package/dist/DotplotRenderer/components/DotplotRendering.js +0 -9
  116. package/dist/DotplotRenderer/configSchema.d.ts +0 -40
  117. package/dist/DotplotRenderer/configSchema.js +0 -57
  118. package/dist/DotplotRenderer/drawDotplot.d.ts +0 -22
  119. package/dist/DotplotRenderer/drawDotplot.js +0 -209
  120. package/dist/DotplotRenderer/index.d.ts +0 -2
  121. package/dist/DotplotRenderer/index.js +0 -17
  122. package/dist/DotplotView/1dview.d.ts +0 -199
  123. package/dist/DotplotView/1dview.js +0 -65
  124. package/dist/DotplotView/components/Axes.d.ts +0 -13
  125. package/dist/DotplotView/components/Axes.js +0 -107
  126. package/dist/DotplotView/components/ColorBySelector.d.ts +0 -5
  127. package/dist/DotplotView/components/ColorBySelector.js +0 -79
  128. package/dist/DotplotView/components/CursorIcon.d.ts +0 -3
  129. package/dist/DotplotView/components/CursorIcon.js +0 -15
  130. package/dist/DotplotView/components/DiagonalizationProgressDialog.d.ts +0 -6
  131. package/dist/DotplotView/components/DiagonalizationProgressDialog.js +0 -125
  132. package/dist/DotplotView/components/DotplotControls.d.ts +0 -5
  133. package/dist/DotplotView/components/DotplotControls.js +0 -187
  134. package/dist/DotplotView/components/DotplotTooltipClick.d.ts +0 -10
  135. package/dist/DotplotView/components/DotplotTooltipClick.js +0 -17
  136. package/dist/DotplotView/components/DotplotTooltipMouseover.d.ts +0 -9
  137. package/dist/DotplotView/components/DotplotTooltipMouseover.js +0 -16
  138. package/dist/DotplotView/components/DotplotTooltips.d.ts +0 -15
  139. package/dist/DotplotView/components/DotplotTooltips.js +0 -43
  140. package/dist/DotplotView/components/DotplotView.d.ts +0 -5
  141. package/dist/DotplotView/components/DotplotView.js +0 -100
  142. package/dist/DotplotView/components/DotplotWarnings.d.ts +0 -5
  143. package/dist/DotplotView/components/DotplotWarnings.js +0 -53
  144. package/dist/DotplotView/components/ExportSvgDialog.d.ts +0 -7
  145. package/dist/DotplotView/components/ExportSvgDialog.js +0 -53
  146. package/dist/DotplotView/components/Grid.d.ts +0 -9
  147. package/dist/DotplotView/components/Grid.js +0 -47
  148. package/dist/DotplotView/components/Header.d.ts +0 -9
  149. package/dist/DotplotView/components/Header.js +0 -33
  150. package/dist/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +0 -7
  151. package/dist/DotplotView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +0 -78
  152. package/dist/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.d.ts +0 -7
  153. package/dist/DotplotView/components/ImportForm/ImportSyntenyTrackSelector.js +0 -42
  154. package/dist/DotplotView/components/ImportForm/TrackSelector.d.ts +0 -7
  155. package/dist/DotplotView/components/ImportForm/TrackSelector.js +0 -23
  156. package/dist/DotplotView/components/ImportForm/getAdapter.d.ts +0 -117
  157. package/dist/DotplotView/components/ImportForm/getAdapter.js +0 -68
  158. package/dist/DotplotView/components/ImportForm/index.d.ts +0 -5
  159. package/dist/DotplotView/components/ImportForm/index.js +0 -75
  160. package/dist/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.d.ts +0 -3
  161. package/dist/DotplotView/components/ImportForm/selectors/AnchorsFileSelector.js +0 -23
  162. package/dist/DotplotView/components/ImportForm/selectors/PifGzSelector.d.ts +0 -3
  163. package/dist/DotplotView/components/ImportForm/selectors/PifGzSelector.js +0 -13
  164. package/dist/DotplotView/components/ImportForm/selectors/SelectorTypes.d.ts +0 -23
  165. package/dist/DotplotView/components/ImportForm/selectors/SelectorTypes.js +0 -10
  166. package/dist/DotplotView/components/ImportForm/selectors/SwapAssemblies.d.ts +0 -13
  167. package/dist/DotplotView/components/ImportForm/selectors/SwapAssemblies.js +0 -32
  168. package/dist/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.d.ts +0 -3
  169. package/dist/DotplotView/components/ImportForm/selectors/SyntenyFileSelector.js +0 -24
  170. package/dist/DotplotView/components/ImportForm/selectors/index.d.ts +0 -3
  171. package/dist/DotplotView/components/ImportForm/selectors/index.js +0 -12
  172. package/dist/DotplotView/components/ImportForm/util.d.ts +0 -10
  173. package/dist/DotplotView/components/ImportForm/util.js +0 -24
  174. package/dist/DotplotView/components/MinLengthSlider.d.ts +0 -5
  175. package/dist/DotplotView/components/MinLengthSlider.js +0 -44
  176. package/dist/DotplotView/components/MouseInteractionLayer.d.ts +0 -17
  177. package/dist/DotplotView/components/MouseInteractionLayer.js +0 -18
  178. package/dist/DotplotView/components/OpacitySlider.d.ts +0 -5
  179. package/dist/DotplotView/components/OpacitySlider.js +0 -43
  180. package/dist/DotplotView/components/PanButtons.d.ts +0 -5
  181. package/dist/DotplotView/components/PanButtons.js +0 -47
  182. package/dist/DotplotView/components/SelectionContextMenu.d.ts +0 -13
  183. package/dist/DotplotView/components/SelectionContextMenu.js +0 -42
  184. package/dist/DotplotView/components/SliderTooltip.d.ts +0 -2
  185. package/dist/DotplotView/components/SliderTooltip.js +0 -9
  186. package/dist/DotplotView/components/WarningDialog.d.ts +0 -16
  187. package/dist/DotplotView/components/WarningDialog.js +0 -39
  188. package/dist/DotplotView/components/hooks/useCtrlKeyTracking.d.ts +0 -1
  189. package/dist/DotplotView/components/hooks/useCtrlKeyTracking.js +0 -24
  190. package/dist/DotplotView/components/hooks/useCursorMode.d.ts +0 -7
  191. package/dist/DotplotView/components/hooks/useCursorMode.js +0 -19
  192. package/dist/DotplotView/components/hooks/useMouseCoordinates.d.ts +0 -29
  193. package/dist/DotplotView/components/hooks/useMouseCoordinates.js +0 -52
  194. package/dist/DotplotView/components/hooks/useMouseMoveHandler.d.ts +0 -6
  195. package/dist/DotplotView/components/hooks/useMouseMoveHandler.js +0 -27
  196. package/dist/DotplotView/components/hooks/useMouseUpHandler.d.ts +0 -3
  197. package/dist/DotplotView/components/hooks/useMouseUpHandler.js +0 -31
  198. package/dist/DotplotView/components/hooks/useWheelHandler.d.ts +0 -8
  199. package/dist/DotplotView/components/hooks/useWheelHandler.js +0 -47
  200. package/dist/DotplotView/components/util.d.ts +0 -14
  201. package/dist/DotplotView/components/util.js +0 -80
  202. package/dist/DotplotView/index.d.ts +0 -2
  203. package/dist/DotplotView/index.js +0 -52
  204. package/dist/DotplotView/model.d.ts +0 -440
  205. package/dist/DotplotView/model.js +0 -502
  206. package/dist/DotplotView/svgcomponents/SVGBackground.d.ts +0 -4
  207. package/dist/DotplotView/svgcomponents/SVGBackground.js +0 -10
  208. package/dist/DotplotView/svgcomponents/SVGDotplotView.d.ts +0 -2
  209. package/dist/DotplotView/svgcomponents/SVGDotplotView.js +0 -30
  210. package/dist/DotplotView/types.d.ts +0 -12
  211. package/dist/DotplotView/types.js +0 -2
  212. package/dist/LaunchDotplotView.d.ts +0 -2
  213. package/dist/LaunchDotplotView.js +0 -43
  214. package/dist/ServerSideRenderedBlockContent.d.ts +0 -12
  215. package/dist/ServerSideRenderedBlockContent.js +0 -48
  216. package/dist/ServerSideSyntenyRendering.d.ts +0 -13
  217. package/dist/ServerSideSyntenyRendering.js +0 -23
  218. package/dist/index.d.ts +0 -7
  219. package/dist/index.js +0 -42
  220. package/dist/util.d.ts +0 -9
  221. package/dist/util.js +0 -7
  222. package/esm/DotplotRenderer/ComparativeRenderRpc.d.ts +0 -22
  223. package/esm/DotplotRenderer/ComparativeRenderRpc.js +0 -47
  224. package/esm/DotplotView/components/Grid.d.ts +0 -9
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const RpcMethodType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/RpcMethodType"));
7
- const stopToken_1 = require("@jbrowse/core/util/stopToken");
8
- class ComparativeRender extends RpcMethodType_1.default {
9
- constructor() {
10
- super(...arguments);
11
- this.name = 'ComparativeRender';
12
- }
13
- async renameRegionsIfNeeded(args, rend) {
14
- return rend.renameRegionsIfNeeded(args);
15
- }
16
- getRenderer(rendererType) {
17
- const pm = this.pluginManager;
18
- return pm.getRendererType(rendererType);
19
- }
20
- async serializeArguments(args, rpcDriver) {
21
- const { rendererType } = args;
22
- const renderer = this.getRenderer(rendererType);
23
- const n = (await super.serializeArguments(args, rpcDriver));
24
- const result = await this.renameRegionsIfNeeded(n, renderer);
25
- return rpcDriver === 'MainThreadRpcDriver'
26
- ? result
27
- : renderer.serializeArgsInClient(result);
28
- }
29
- async execute(args, rpcDriver) {
30
- let deserializedArgs = args;
31
- if (rpcDriver !== 'MainThreadRpcDriver') {
32
- deserializedArgs = await this.deserializeArguments(args, rpcDriver);
33
- }
34
- const { sessionId, rendererType, stopToken } = deserializedArgs;
35
- if (!sessionId) {
36
- throw new Error('must pass a unique session id');
37
- }
38
- (0, stopToken_1.checkStopToken)(stopToken);
39
- const renderer = this.getRenderer(rendererType);
40
- return rpcDriver === 'MainThreadRpcDriver'
41
- ? renderer.render(deserializedArgs)
42
- : renderer.renderInWorker(deserializedArgs);
43
- }
44
- async deserializeReturn(val, args, rpcDriver) {
45
- const ret = (await super.deserializeReturn(val, args, rpcDriver));
46
- if (rpcDriver === 'MainThreadRpcDriver') {
47
- return ret;
48
- }
49
- const renderer = this.getRenderer(args.rendererType);
50
- return renderer.deserializeResultsInClient(ret, args);
51
- }
52
- }
53
- exports.default = ComparativeRender;
@@ -1,30 +0,0 @@
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 {};
@@ -1,156 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const RpcMethodTypeWithFiltersAndRenameRegions_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions"));
7
- const stopToken_1 = require("@jbrowse/core/util/stopToken");
8
- const model_1 = require("./DotplotView/model");
9
- async function diagonalizeRegions(alignments, currentRegions, progressCallback) {
10
- const updateProgress = (progress, message) => {
11
- if (progressCallback) {
12
- progressCallback(progress, message);
13
- }
14
- };
15
- updateProgress(20, `Grouping ${alignments.length} alignments...`);
16
- const queryGroups = new Map();
17
- for (const aln of alignments) {
18
- const targetRefName = aln.refRefName;
19
- if (!queryGroups.has(targetRefName)) {
20
- queryGroups.set(targetRefName, {
21
- refAlignments: new Map(),
22
- strandWeightedSum: 0,
23
- });
24
- }
25
- const group = queryGroups.get(targetRefName);
26
- const alnLength = Math.abs(aln.queryEnd - aln.queryStart);
27
- if (!group.refAlignments.has(aln.queryRefName)) {
28
- group.refAlignments.set(aln.queryRefName, {
29
- bases: 0,
30
- positions: [],
31
- });
32
- }
33
- const refData = group.refAlignments.get(aln.queryRefName);
34
- refData.bases += alnLength;
35
- refData.positions.push((aln.queryStart + aln.queryEnd) / 2);
36
- const direction = aln.strand >= 0 ? 1 : -1;
37
- group.strandWeightedSum += direction * alnLength;
38
- }
39
- updateProgress(50, 'Determining optimal ordering and orientation...');
40
- const queryOrdering = [];
41
- for (const [targetRefName, group] of queryGroups) {
42
- let bestRefName = '';
43
- let maxBases = 0;
44
- let bestPositions = [];
45
- for (const [firstViewRefName, data] of group.refAlignments) {
46
- if (data.bases > maxBases) {
47
- maxBases = data.bases;
48
- bestRefName = firstViewRefName;
49
- bestPositions = data.positions;
50
- }
51
- }
52
- const bestRefPos = bestPositions.reduce((a, b) => a + b, 0) / bestPositions.length;
53
- const shouldReverse = group.strandWeightedSum < 0;
54
- queryOrdering.push({
55
- refName: targetRefName,
56
- bestRefName,
57
- bestRefPos,
58
- shouldReverse,
59
- });
60
- }
61
- updateProgress(70, `Sorting ${queryOrdering.length} query regions...`);
62
- queryOrdering.sort((a, b) => {
63
- if (a.bestRefName !== b.bestRefName) {
64
- return a.bestRefName.localeCompare(b.bestRefName);
65
- }
66
- return a.bestRefPos - b.bestRefPos;
67
- });
68
- updateProgress(85, 'Building new region layout...');
69
- const newQueryRegions = [];
70
- let regionsReversed = 0;
71
- for (const { refName, shouldReverse } of queryOrdering) {
72
- const region = currentRegions.find(r => r.refName === refName);
73
- if (region) {
74
- newQueryRegions.push({
75
- ...region,
76
- reversed: shouldReverse,
77
- });
78
- if (shouldReverse !== region.reversed) {
79
- regionsReversed++;
80
- }
81
- }
82
- }
83
- const regionsWithoutAlignments = currentRegions.filter(r => !newQueryRegions.some(nr => nr.refName === r.refName));
84
- updateProgress(100, 'Diagonalization complete!');
85
- return {
86
- newRegions: [...newQueryRegions, ...regionsWithoutAlignments],
87
- stats: {
88
- totalAlignments: alignments.length,
89
- regionsProcessed: queryOrdering.length,
90
- regionsReordered: newQueryRegions.length,
91
- regionsReversed,
92
- },
93
- };
94
- }
95
- class DiagonalizeDotplotRpc extends RpcMethodTypeWithFiltersAndRenameRegions_1.default {
96
- constructor() {
97
- super(...arguments);
98
- this.name = 'DiagonalizeDotplot';
99
- }
100
- async execute(args, rpcDriverClassName) {
101
- const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
102
- const { view, sessionId, adapterConfig, stopToken, statusCallback } = deserializedArgs;
103
- if (!sessionId) {
104
- throw new Error('must pass a unique session id');
105
- }
106
- statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback('Initializing diagonalization...');
107
- const dimensions = [800, 800];
108
- const views = [view.hview, view.vview].map((snap, idx) => {
109
- const v = model_1.Dotplot1DView.create(snap);
110
- v.setVolatileWidth(dimensions[idx]);
111
- return v;
112
- });
113
- const targetView = views[0];
114
- (0, stopToken_1.checkStopToken)(stopToken);
115
- statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback('Getting renderer...');
116
- const rendererType = this.pluginManager.getRendererType('DotplotRenderer');
117
- if (!rendererType) {
118
- throw new Error('DotplotRenderer not found');
119
- }
120
- (0, stopToken_1.checkStopToken)(stopToken);
121
- statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback('Fetching features...');
122
- const feats = await rendererType.getFeatures({
123
- regions: targetView.dynamicBlocks.contentBlocks,
124
- adapterConfig,
125
- sessionId,
126
- });
127
- (0, stopToken_1.checkStopToken)(stopToken);
128
- statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback('Extracting alignment data...');
129
- const alignments = [];
130
- for (const feat of feats.values()) {
131
- const mate = feat.get('mate');
132
- if (mate) {
133
- alignments.push({
134
- queryRefName: feat.get('refName'),
135
- refRefName: mate.refName,
136
- queryStart: feat.get('start'),
137
- queryEnd: feat.get('end'),
138
- refStart: mate.start,
139
- refEnd: mate.end,
140
- strand: feat.get('strand') || 1,
141
- });
142
- }
143
- }
144
- if (alignments.length === 0) {
145
- throw new Error('No alignments found to diagonalize');
146
- }
147
- statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback(`Running diagonalization on ${alignments.length} alignments...`);
148
- const result = await diagonalizeRegions(alignments, view.vview.displayedRegions, (progress, message) => {
149
- (0, stopToken_1.checkStopToken)(stopToken);
150
- statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback(message);
151
- });
152
- statusCallback === null || statusCallback === void 0 ? void 0 : statusCallback('Diagonalization complete!');
153
- return result;
154
- }
155
- }
156
- exports.default = DiagonalizeDotplotRpc;
@@ -1,6 +0,0 @@
1
- import type { DotplotDisplayModel } from '../stateModelFactory';
2
- declare const DotplotDisplay: (props: {
3
- model: DotplotDisplayModel;
4
- children?: React.ReactNode;
5
- }) => import("react/jsx-runtime").JSX.Element;
6
- export default DotplotDisplay;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const util_1 = require("@jbrowse/core/util");
5
- const mobx_react_1 = require("mobx-react");
6
- const DotplotDisplay = (0, mobx_react_1.observer)(function DotplotDisplay(props) {
7
- const { model, children } = props;
8
- const { offsetX = 0, offsetY = 0 } = model.data || {};
9
- const view = (0, util_1.getContainingView)(model);
10
- const top = view.vview.offsetPx - offsetY;
11
- const left = -(view.hview.offsetPx - offsetX);
12
- return ((0, jsx_runtime_1.jsxs)("div", { style: { position: 'relative' }, children: [(0, jsx_runtime_1.jsx)(model.ReactComponent2, { ...props, style: {
13
- position: 'absolute',
14
- top,
15
- left,
16
- } }), children] }));
17
- });
18
- exports.default = DotplotDisplay;
@@ -1,5 +0,0 @@
1
- import type PluginManager from '@jbrowse/core/PluginManager';
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">>;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = DotplotDisplayF;
7
- exports.configSchemaFactory = configSchemaFactory;
8
- const configuration_1 = require("@jbrowse/core/configuration");
9
- const DisplayType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/DisplayType"));
10
- const mobx_state_tree_1 = require("mobx-state-tree");
11
- const DotplotDisplay_1 = __importDefault(require("./components/DotplotDisplay"));
12
- const stateModelFactory_1 = require("./stateModelFactory");
13
- function DotplotDisplayF(pm) {
14
- pm.addDisplayType(() => {
15
- const configSchema = configSchemaFactory(pm);
16
- return new DisplayType_1.default({
17
- name: 'DotplotDisplay',
18
- displayName: 'Dotplot display',
19
- configSchema,
20
- stateModel: (0, stateModelFactory_1.stateModelFactory)(configSchema),
21
- trackType: 'SyntenyTrack',
22
- viewType: 'DotplotView',
23
- ReactComponent: DotplotDisplay_1.default,
24
- });
25
- });
26
- }
27
- function configSchemaFactory(pm) {
28
- return (0, configuration_1.ConfigurationSchema)('DotplotDisplay', {
29
- renderer: mobx_state_tree_1.types.optional(pm.pluggableConfigSchemaType('renderer'), {
30
- type: 'DotplotRenderer',
31
- }),
32
- }, {
33
- explicitIdentifier: 'displayId',
34
- explicitlyTyped: true,
35
- });
36
- }
@@ -1,11 +0,0 @@
1
- import type { IAnyStateTreeNode } from 'mobx-state-tree';
2
- export declare function renderBlockData(self: IAnyStateTreeNode): {
3
- rendererType: any;
4
- rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
5
- renderProps: any;
6
- } | undefined;
7
- export declare function renderBlockEffect(props?: ReturnType<typeof renderBlockData>): Promise<{
8
- reactElement: any;
9
- data: any;
10
- renderingComponent: any;
11
- } | undefined>;
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderBlockData = renderBlockData;
4
- exports.renderBlockEffect = renderBlockEffect;
5
- const configuration_1 = require("@jbrowse/core/configuration");
6
- const util_1 = require("@jbrowse/core/util");
7
- const tracks_1 = require("@jbrowse/core/util/tracks");
8
- const mobx_state_tree_1 = require("mobx-state-tree");
9
- function renderBlockData(self) {
10
- const { rpcManager } = (0, util_1.getSession)(self);
11
- const { rendererType } = self;
12
- const { adapterConfig } = self;
13
- const parent = (0, util_1.getContainingView)(self);
14
- (0, configuration_1.readConfObject)(self.configuration);
15
- (0, mobx_state_tree_1.getSnapshot)(parent);
16
- if (parent.initialized) {
17
- const { viewWidth, viewHeight, borderSize, borderX, borderY } = parent;
18
- return {
19
- rendererType,
20
- rpcManager,
21
- renderProps: {
22
- ...self.renderProps(),
23
- view: structuredClone((0, mobx_state_tree_1.getSnapshot)(parent)),
24
- width: viewWidth,
25
- height: viewHeight,
26
- borderSize,
27
- borderX,
28
- borderY,
29
- adapterConfig,
30
- rendererType: rendererType.name,
31
- sessionId: (0, tracks_1.getRpcSessionId)(self),
32
- timeout: 1000000,
33
- alpha: self.alpha,
34
- minAlignmentLength: self.minAlignmentLength,
35
- colorBy: self.colorBy,
36
- },
37
- };
38
- }
39
- return undefined;
40
- }
41
- async function renderBlockEffect(props) {
42
- if (!props) {
43
- return;
44
- }
45
- const { rendererType, rpcManager, renderProps } = props;
46
- const { reactElement, ...data } = await rendererType.renderInClient(rpcManager, renderProps);
47
- return {
48
- reactElement,
49
- data,
50
- renderingComponent: rendererType.ReactComponent,
51
- };
52
- }
@@ -1,108 +0,0 @@
1
- import type { ExportSvgOptions } from '../DotplotView/model';
2
- import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
3
- 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>>;
9
- } & {
10
- type: import("mobx-state-tree").ISimpleType<"DotplotDisplay">;
11
- configuration: AnyConfigurationSchemaType;
12
- colorBy: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
13
- }, {
14
- rendererTypeName: string;
15
- error: unknown;
16
- message: string | undefined;
17
- } & {
18
- readonly RenderingComponent: React.FC<{
19
- model: {
20
- id: string;
21
- type: string;
22
- rpcDriverName: string | undefined;
23
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
24
- rendererTypeName: string;
25
- error: unknown;
26
- message: string | undefined;
27
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
28
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
29
- type: import("mobx-state-tree").ISimpleType<string>;
30
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
31
- }, {
32
- rendererTypeName: string;
33
- error: unknown;
34
- message: string | undefined;
35
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
36
- onHorizontalScroll?: () => void;
37
- blockState?: Record<string, any>;
38
- }>;
39
- readonly DisplayBlurb: React.FC<{
40
- model: {
41
- id: string;
42
- type: string;
43
- rpcDriverName: string | undefined;
44
- } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
45
- rendererTypeName: string;
46
- error: unknown;
47
- message: string | undefined;
48
- } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
49
- id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
50
- type: import("mobx-state-tree").ISimpleType<string>;
51
- rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
52
- }, {
53
- rendererTypeName: string;
54
- error: unknown;
55
- message: string | undefined;
56
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
57
- }> | null;
58
- readonly adapterConfig: any;
59
- readonly parentTrack: any;
60
- renderProps(): any;
61
- readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
62
- readonly DisplayMessageComponent: undefined | React.FC<any>;
63
- trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
64
- readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
65
- regionCannotBeRendered(): null;
66
- } & {
67
- setMessage(arg?: string): void;
68
- setError(error?: unknown): void;
69
- setRpcDriverName(rpcDriverName: string): void;
70
- reload(): void;
71
- } & {
72
- stopToken: string | undefined;
73
- warnings: {
74
- message: string;
75
- effect: string;
76
- }[];
77
- filled: boolean;
78
- data: any;
79
- reactElement: React.ReactElement | undefined;
80
- message: string | undefined;
81
- renderingComponent: any;
82
- ReactComponent2: React.FC<any>;
83
- alpha: number;
84
- minAlignmentLength: number;
85
- } & {
86
- readonly shouldDisplay: boolean;
87
- readonly rendererTypeName: any;
88
- renderProps(): any;
89
- } & {
90
- renderSvg(opts: ExportSvgOptions & {
91
- theme?: ThemeOptions;
92
- }): Promise<import("react/jsx-runtime").JSX.Element | null>;
93
- } & {
94
- afterAttach(): void;
95
- setLoading(stopToken?: string): void;
96
- setMessage(messageText: string): void;
97
- setRendered(args?: {
98
- data: any;
99
- reactElement: React.ReactElement;
100
- renderingComponent: React.Component;
101
- }): void;
102
- setError(error: unknown): void;
103
- setAlpha(value: number): void;
104
- setMinAlignmentLength(value: number): void;
105
- setColorBy(value: string): void;
106
- }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
107
- export type DotplotDisplayStateModel = ReturnType<typeof stateModelFactory>;
108
- export type DotplotDisplayModel = Instance<DotplotDisplayStateModel>;
@@ -1,134 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.stateModelFactory = stateModelFactory;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const configuration_1 = require("@jbrowse/core/configuration");
9
- const models_1 = require("@jbrowse/core/pluggableElementTypes/models");
10
- const util_1 = require("@jbrowse/core/util");
11
- const tracks_1 = require("@jbrowse/core/util/tracks");
12
- const mobx_state_tree_1 = require("mobx-state-tree");
13
- const ServerSideRenderedBlockContent_1 = __importDefault(require("../ServerSideRenderedBlockContent"));
14
- const renderDotplotBlock_1 = require("./renderDotplotBlock");
15
- function stateModelFactory(configSchema) {
16
- return mobx_state_tree_1.types
17
- .compose('DotplotDisplay', models_1.BaseDisplay, mobx_state_tree_1.types
18
- .model({
19
- type: mobx_state_tree_1.types.literal('DotplotDisplay'),
20
- configuration: (0, configuration_1.ConfigurationReference)(configSchema),
21
- colorBy: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.string, 'default'),
22
- })
23
- .volatile(() => ({
24
- stopToken: undefined,
25
- warnings: [],
26
- filled: false,
27
- data: undefined,
28
- reactElement: undefined,
29
- message: undefined,
30
- renderingComponent: undefined,
31
- ReactComponent2: ServerSideRenderedBlockContent_1.default,
32
- alpha: 1,
33
- minAlignmentLength: 0,
34
- })))
35
- .views(self => ({
36
- get shouldDisplay() {
37
- const { vview, hview } = (0, util_1.getContainingView)(self);
38
- return (vview.bpPerPx === self.data.bpPerPxY &&
39
- hview.bpPerPx === self.data.bpPerPxX);
40
- },
41
- get rendererTypeName() {
42
- return (0, configuration_1.getConf)(self, ['renderer', 'type']);
43
- },
44
- renderProps() {
45
- return {
46
- ...(0, tracks_1.getParentRenderProps)(self),
47
- rpcDriverName: self.rpcDriverName,
48
- displayModel: self,
49
- config: self.configuration.renderer,
50
- statusCallback: (message) => {
51
- self.setMessage(message);
52
- },
53
- };
54
- },
55
- }))
56
- .views(self => ({
57
- async renderSvg(opts) {
58
- const props = (0, renderDotplotBlock_1.renderBlockData)(self);
59
- if (!props) {
60
- return null;
61
- }
62
- const { rendererType, rpcManager, renderProps } = props;
63
- const rendering = await rendererType.renderInClient(rpcManager, {
64
- ...renderProps,
65
- exportSVG: opts,
66
- theme: opts.theme || renderProps.theme,
67
- });
68
- const { hview, vview } = (0, util_1.getContainingView)(self);
69
- const offX = -hview.offsetPx + rendering.offsetX;
70
- const offY = -vview.offsetPx + rendering.offsetY;
71
- return ((0, jsx_runtime_1.jsx)("g", { transform: `translate(${offX} ${-offY})`, children: (0, jsx_runtime_1.jsx)(util_1.ReactRendering, { rendering: rendering }) }));
72
- },
73
- }))
74
- .actions(self => ({
75
- afterAttach() {
76
- (0, util_1.makeAbortableReaction)(self, () => (0, renderDotplotBlock_1.renderBlockData)(self), blockData => (0, renderDotplotBlock_1.renderBlockEffect)(blockData), {
77
- name: `${self.type} ${self.id} rendering`,
78
- delay: 500,
79
- fireImmediately: true,
80
- }, this.setLoading, this.setRendered, this.setError);
81
- },
82
- setLoading(stopToken) {
83
- self.filled = false;
84
- self.message = undefined;
85
- self.reactElement = undefined;
86
- self.data = undefined;
87
- self.error = undefined;
88
- self.renderingComponent = undefined;
89
- self.stopToken = stopToken;
90
- },
91
- setMessage(messageText) {
92
- self.filled = false;
93
- self.message = messageText;
94
- self.reactElement = undefined;
95
- self.data = undefined;
96
- self.error = undefined;
97
- self.renderingComponent = undefined;
98
- self.stopToken = undefined;
99
- },
100
- setRendered(args) {
101
- if (args === undefined) {
102
- return;
103
- }
104
- const { data, reactElement, renderingComponent } = args;
105
- self.warnings = data.warnings;
106
- self.filled = true;
107
- self.message = undefined;
108
- self.reactElement = reactElement;
109
- self.data = data;
110
- self.error = undefined;
111
- self.renderingComponent = renderingComponent;
112
- self.stopToken = undefined;
113
- },
114
- setError(error) {
115
- console.error(error);
116
- self.filled = false;
117
- self.message = undefined;
118
- self.reactElement = undefined;
119
- self.data = undefined;
120
- self.error = error;
121
- self.renderingComponent = undefined;
122
- self.stopToken = undefined;
123
- },
124
- setAlpha(value) {
125
- self.alpha = value;
126
- },
127
- setMinAlignmentLength(value) {
128
- self.minAlignmentLength = value;
129
- },
130
- setColorBy(value) {
131
- self.colorBy = value;
132
- },
133
- }));
134
- }
@@ -1,3 +0,0 @@
1
- import type { Feature } from '@jbrowse/core/util';
2
- import type { LinearPileupDisplayModel } from '@jbrowse/plugin-alignments';
3
- export declare function onClick(feature: Feature, self: LinearPileupDisplayModel): void;