@jbrowse/plugin-variants 4.0.4 → 4.1.3

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 (128) hide show
  1. package/esm/LDDisplay/SharedLDConfigSchema.d.ts +102 -0
  2. package/esm/LDDisplay/SharedLDConfigSchema.js +83 -0
  3. package/esm/LDDisplay/afterAttach.d.ts +2 -0
  4. package/esm/LDDisplay/afterAttach.js +123 -0
  5. package/esm/LDDisplay/components/BaseDisplayComponent.d.ts +15 -0
  6. package/esm/LDDisplay/components/BaseDisplayComponent.js +39 -0
  7. package/esm/LDDisplay/components/LDColorLegend.d.ts +15 -0
  8. package/esm/LDDisplay/components/LDColorLegend.js +75 -0
  9. package/esm/LDDisplay/components/LDDisplayComponent.d.ts +5 -0
  10. package/esm/LDDisplay/components/LDDisplayComponent.js +203 -0
  11. package/esm/LDDisplay/components/LinesConnectingMatrixToGenomicPosition.d.ts +16 -0
  12. package/esm/LDDisplay/components/LinesConnectingMatrixToGenomicPosition.js +109 -0
  13. package/esm/LDDisplay/configSchema1.d.ts +115 -0
  14. package/esm/LDDisplay/configSchema1.js +16 -0
  15. package/esm/LDDisplay/configSchema2.d.ts +115 -0
  16. package/esm/LDDisplay/configSchema2.js +16 -0
  17. package/esm/LDDisplay/index.d.ts +2 -0
  18. package/esm/LDDisplay/index.js +35 -0
  19. package/esm/LDDisplay/renderSvg.d.ts +3 -0
  20. package/esm/LDDisplay/renderSvg.js +36 -0
  21. package/esm/LDDisplay/shared.d.ts +367 -0
  22. package/esm/LDDisplay/shared.js +467 -0
  23. package/esm/LDDisplay/stateModel1.d.ts +365 -0
  24. package/esm/LDDisplay/stateModel1.js +10 -0
  25. package/esm/LDDisplay/stateModel2.d.ts +365 -0
  26. package/esm/LDDisplay/stateModel2.js +10 -0
  27. package/esm/LDRenderer/LDRenderer.d.ts +30 -0
  28. package/esm/LDRenderer/LDRenderer.js +109 -0
  29. package/esm/LDRenderer/components/LDRendering.d.ts +2 -0
  30. package/esm/LDRenderer/components/LDRendering.js +4 -0
  31. package/esm/LDRenderer/configSchema.d.ts +8 -0
  32. package/esm/LDRenderer/configSchema.js +10 -0
  33. package/esm/LDRenderer/index.d.ts +2 -0
  34. package/esm/LDRenderer/index.js +11 -0
  35. package/esm/LDRenderer/makeImageData.d.ts +20 -0
  36. package/esm/LDRenderer/makeImageData.js +157 -0
  37. package/esm/LDRenderer/types.d.ts +8 -0
  38. package/esm/LDRenderer/types.js +1 -0
  39. package/esm/LDTrack/configSchema.d.ts +85 -0
  40. package/esm/LDTrack/configSchema.js +7 -0
  41. package/esm/LDTrack/index.d.ts +2 -0
  42. package/esm/LDTrack/index.js +14 -0
  43. package/esm/LinearVariantDisplay/model.d.ts +126 -42
  44. package/esm/LinearVariantDisplay/model.js +46 -8
  45. package/esm/MultiLinearVariantDisplay/configSchema.d.ts +27 -1
  46. package/esm/MultiLinearVariantDisplay/model.d.ts +2635 -31
  47. package/esm/MultiLinearVariantDisplay/model.js +6 -0
  48. package/esm/MultiLinearVariantDisplay/renderSvg.d.ts +10 -2
  49. package/esm/MultiLinearVariantMatrixDisplay/configSchema.d.ts +25 -0
  50. package/esm/MultiLinearVariantMatrixDisplay/configSchema.js +26 -0
  51. package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +2636 -32
  52. package/esm/MultiLinearVariantMatrixDisplay/model.js +6 -0
  53. package/esm/MultiLinearVariantMatrixRenderer/MultiLinearVariantMatrixRenderer.d.ts +2 -2
  54. package/esm/MultiLinearVariantMatrixRenderer/MultiLinearVariantMatrixRenderer.js +11 -9
  55. package/esm/MultiLinearVariantMatrixRenderer/components/MultiLinearVariantMatrixRendering.d.ts +8 -0
  56. package/esm/MultiLinearVariantMatrixRenderer/components/MultiLinearVariantMatrixRendering.js +14 -2
  57. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +8 -11
  58. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +2 -2
  59. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.js +4 -3
  60. package/esm/MultiLinearVariantRenderer/components/MultiLinearVariantRendering.d.ts +4 -0
  61. package/esm/MultiLinearVariantRenderer/components/MultiLinearVariantRendering.js +23 -2
  62. package/esm/MultiLinearVariantRenderer/makeImageData.js +12 -12
  63. package/esm/PlinkLDAdapter/PlinkLDAdapter.d.ts +25 -0
  64. package/esm/PlinkLDAdapter/PlinkLDAdapter.js +147 -0
  65. package/esm/PlinkLDAdapter/PlinkLDTabixAdapter.d.ts +24 -0
  66. package/esm/PlinkLDAdapter/PlinkLDTabixAdapter.js +156 -0
  67. package/esm/PlinkLDAdapter/configSchema.d.ts +10 -0
  68. package/esm/PlinkLDAdapter/configSchema.js +25 -0
  69. package/esm/PlinkLDAdapter/configSchemaTabix.d.ts +24 -0
  70. package/esm/PlinkLDAdapter/configSchemaTabix.js +46 -0
  71. package/esm/PlinkLDAdapter/index.d.ts +2 -0
  72. package/esm/PlinkLDAdapter/index.js +25 -0
  73. package/esm/PlinkLDAdapter/types.d.ts +29 -0
  74. package/esm/PlinkLDAdapter/types.js +1 -0
  75. package/esm/VariantFeatureWidget/VariantSampleGrid/VariantSampleGrid.js +1 -1
  76. package/esm/VariantRPC/MultiVariantGetFeatureDetails.d.ts +14 -0
  77. package/esm/VariantRPC/MultiVariantGetFeatureDetails.js +15 -0
  78. package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.js +4 -1
  79. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.js +3 -3
  80. package/esm/VariantRPC/executeClusterGenotypeMatrix.js +6 -3
  81. package/esm/VariantRPC/getGenotypeMatrix.d.ts +2 -3
  82. package/esm/VariantRPC/getGenotypeMatrix.js +4 -5
  83. package/esm/VariantRPC/getLDMatrix.d.ts +47 -0
  84. package/esm/VariantRPC/getLDMatrix.js +387 -0
  85. package/esm/VariantRPC/getLDMatrixFromPlink.d.ts +16 -0
  86. package/esm/VariantRPC/getLDMatrixFromPlink.js +105 -0
  87. package/esm/VariantRPC/getPhasedGenotypeMatrix.d.ts +2 -3
  88. package/esm/VariantRPC/getPhasedGenotypeMatrix.js +4 -5
  89. package/esm/VariantRPC/types.d.ts +3 -0
  90. package/esm/VcfAdapter/VcfAdapter.d.ts +1 -1
  91. package/esm/VcfAdapter/VcfAdapter.js +1 -2
  92. package/esm/VcfExtensionPoints/index.js +29 -3
  93. package/esm/VcfFeature/index.d.ts +2 -1
  94. package/esm/VcfFeature/index.js +4 -2
  95. package/esm/index.d.ts +1 -0
  96. package/esm/index.js +23 -0
  97. package/esm/shared/MultiVariantBaseModel.d.ts +2626 -26
  98. package/esm/shared/MultiVariantBaseModel.js +88 -39
  99. package/esm/shared/SharedVariantConfigSchema.d.ts +27 -1
  100. package/esm/shared/SharedVariantConfigSchema.js +28 -1
  101. package/esm/shared/VariantFeatureCache.d.ts +27 -0
  102. package/esm/shared/VariantFeatureCache.js +48 -0
  103. package/esm/shared/VariantRendererType.d.ts +23 -0
  104. package/esm/shared/VariantRendererType.js +15 -0
  105. package/esm/shared/applyColorPalette.d.ts +9 -0
  106. package/esm/shared/applyColorPalette.js +23 -0
  107. package/esm/shared/colorByAutorun.d.ts +10 -0
  108. package/esm/shared/colorByAutorun.js +39 -0
  109. package/esm/shared/components/AddFiltersDialog.d.ts +3 -3
  110. package/esm/shared/components/AddFiltersDialog.js +29 -22
  111. package/esm/shared/components/LDFilterDialog.d.ts +13 -0
  112. package/esm/shared/components/LDFilterDialog.js +102 -0
  113. package/esm/shared/components/MAFFilterDialog.js +23 -16
  114. package/esm/shared/components/RecombinationTrack.d.ts +21 -0
  115. package/esm/shared/components/RecombinationTrack.js +54 -0
  116. package/esm/shared/components/RecombinationYScaleBar.d.ts +7 -0
  117. package/esm/shared/components/RecombinationYScaleBar.js +34 -0
  118. package/esm/shared/components/SetColorDialogRowPalettizer.d.ts +3 -8
  119. package/esm/shared/components/SetColorDialogRowPalettizer.js +2 -14
  120. package/esm/shared/drawAlleleCount.js +9 -0
  121. package/esm/shared/drawPhased.d.ts +1 -1
  122. package/esm/shared/drawPhased.js +31 -2
  123. package/esm/shared/mafFilterUtils.d.ts +5 -0
  124. package/esm/shared/mafFilterUtils.js +17 -0
  125. package/esm/shared/minorAlleleFrequencyUtils.d.ts +4 -2
  126. package/esm/shared/minorAlleleFrequencyUtils.js +261 -19
  127. package/esm/shared/setupMultiVariantAutoruns.js +2 -0
  128. package/package.json +11 -10
@@ -0,0 +1,365 @@
1
+ import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
2
+ import type { Instance } from '@jbrowse/mobx-state-tree';
3
+ export default function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("@jbrowse/mobx-state-tree").IModelType<{
4
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
5
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
6
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
7
+ } & {
8
+ heightPreConfig: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
9
+ } & {
10
+ configuration: AnyConfigurationSchemaType;
11
+ minorAlleleFrequencyFilterSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
12
+ lengthCutoffFilterSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
13
+ lineZoneHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
14
+ ldMetricSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
15
+ colorSchemeSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
16
+ showLegendSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
17
+ showLDTriangleSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
18
+ showRecombinationSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
19
+ recombinationZoneHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
20
+ fitToHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
21
+ hweFilterThresholdSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
22
+ callRateFilterSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
23
+ showVerticalGuidesSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
24
+ showLabelsSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
25
+ tickHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
26
+ useGenomicPositionsSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
27
+ signedLDSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
28
+ jexlFiltersSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").ISimpleType<string>>>;
29
+ } & {
30
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<"LDTrackDisplay">;
31
+ }, {
32
+ rendererTypeName: string;
33
+ error: unknown;
34
+ statusMessage: string | undefined;
35
+ } & {
36
+ readonly RenderingComponent: React.FC<{
37
+ model: {
38
+ id: string;
39
+ type: string;
40
+ rpcDriverName: string | undefined;
41
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
42
+ rendererTypeName: string;
43
+ error: unknown;
44
+ statusMessage: string | undefined;
45
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
46
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
47
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
48
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
49
+ }, {
50
+ rendererTypeName: string;
51
+ error: unknown;
52
+ statusMessage: string | undefined;
53
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
54
+ onHorizontalScroll?: () => void;
55
+ blockState?: Record<string, any>;
56
+ }>;
57
+ readonly DisplayBlurb: React.FC<{
58
+ model: {
59
+ id: string;
60
+ type: string;
61
+ rpcDriverName: string | undefined;
62
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
63
+ rendererTypeName: string;
64
+ error: unknown;
65
+ statusMessage: string | undefined;
66
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
67
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
68
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
69
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
70
+ }, {
71
+ rendererTypeName: string;
72
+ error: unknown;
73
+ statusMessage: string | undefined;
74
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
75
+ }> | null;
76
+ readonly adapterConfig: any;
77
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
78
+ readonly isMinimized: boolean;
79
+ readonly parentDisplay: any;
80
+ readonly effectiveRpcDriverName: any;
81
+ } & {
82
+ renderProps(): any;
83
+ renderingProps(): {
84
+ displayModel: {
85
+ id: string;
86
+ type: string;
87
+ rpcDriverName: string | undefined;
88
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
89
+ rendererTypeName: string;
90
+ error: unknown;
91
+ statusMessage: string | undefined;
92
+ } & {
93
+ readonly RenderingComponent: React.FC<{
94
+ model: {
95
+ id: string;
96
+ type: string;
97
+ rpcDriverName: string | undefined;
98
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
99
+ rendererTypeName: string;
100
+ error: unknown;
101
+ statusMessage: string | undefined;
102
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
103
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
104
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
105
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
106
+ }, {
107
+ rendererTypeName: string;
108
+ error: unknown;
109
+ statusMessage: string | undefined;
110
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
111
+ onHorizontalScroll?: () => void;
112
+ blockState?: Record<string, any>;
113
+ }>;
114
+ readonly DisplayBlurb: React.FC<{
115
+ model: {
116
+ id: string;
117
+ type: string;
118
+ rpcDriverName: string | undefined;
119
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
120
+ rendererTypeName: string;
121
+ error: unknown;
122
+ statusMessage: string | undefined;
123
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
124
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
125
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
126
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
127
+ }, {
128
+ rendererTypeName: string;
129
+ error: unknown;
130
+ statusMessage: string | undefined;
131
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
132
+ }> | null;
133
+ readonly adapterConfig: any;
134
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
135
+ readonly isMinimized: boolean;
136
+ readonly parentDisplay: any;
137
+ readonly effectiveRpcDriverName: any;
138
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
139
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
140
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
141
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
142
+ }, {
143
+ rendererTypeName: string;
144
+ error: unknown;
145
+ statusMessage: string | undefined;
146
+ } & {
147
+ readonly RenderingComponent: React.FC<{
148
+ model: {
149
+ id: string;
150
+ type: string;
151
+ rpcDriverName: string | undefined;
152
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
153
+ rendererTypeName: string;
154
+ error: unknown;
155
+ statusMessage: string | undefined;
156
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
157
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
158
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
159
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
160
+ }, {
161
+ rendererTypeName: string;
162
+ error: unknown;
163
+ statusMessage: string | undefined;
164
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
165
+ onHorizontalScroll?: () => void;
166
+ blockState?: Record<string, any>;
167
+ }>;
168
+ readonly DisplayBlurb: React.FC<{
169
+ model: {
170
+ id: string;
171
+ type: string;
172
+ rpcDriverName: string | undefined;
173
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
174
+ rendererTypeName: string;
175
+ error: unknown;
176
+ statusMessage: string | undefined;
177
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
178
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
179
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
180
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
181
+ }, {
182
+ rendererTypeName: string;
183
+ error: unknown;
184
+ statusMessage: string | undefined;
185
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
186
+ }> | null;
187
+ readonly adapterConfig: any;
188
+ readonly parentTrack: import("@jbrowse/core/util").AbstractTrackModel;
189
+ readonly isMinimized: boolean;
190
+ readonly parentDisplay: any;
191
+ readonly effectiveRpcDriverName: any;
192
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
193
+ };
194
+ readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
195
+ readonly DisplayMessageComponent: undefined | React.FC<any>;
196
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
197
+ readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
198
+ regionCannotBeRendered(): null;
199
+ } & {
200
+ setStatusMessage(arg?: string): void;
201
+ setError(error?: unknown): void;
202
+ setRpcDriverName(rpcDriverName: string): void;
203
+ reload(): void;
204
+ } & {
205
+ scrollTop: number;
206
+ } & {
207
+ readonly height: number;
208
+ } & {
209
+ setScrollTop(scrollTop: number): void;
210
+ setHeight(displayHeight: number): number;
211
+ resizeHeight(distance: number): number;
212
+ } & {
213
+ loading: boolean;
214
+ lastDrawnOffsetPx: number | undefined;
215
+ lastDrawnBpPerPx: number | undefined;
216
+ ref: HTMLCanvasElement | null;
217
+ renderingImageData: ImageBitmap | undefined;
218
+ renderingStopToken: import("@jbrowse/core/util").StopToken | undefined;
219
+ statusMessage: string | undefined;
220
+ canvasDrawn: boolean;
221
+ } & {
222
+ readonly drawn: boolean;
223
+ readonly fullyDrawn: boolean;
224
+ } & {
225
+ setLastDrawnOffsetPx(n: number): void;
226
+ setLastDrawnBpPerPx(n: number): void;
227
+ setLoading(f: boolean): void;
228
+ setRef(ref: HTMLCanvasElement | null): void;
229
+ setRenderingImageData(imageData: ImageBitmap | undefined): void;
230
+ setRenderingStopToken(token?: import("@jbrowse/core/util").StopToken): void;
231
+ setStatusMessage(msg?: string): void;
232
+ setCanvasDrawn(drawn: boolean): void;
233
+ } & {
234
+ beforeDestroy(): void;
235
+ } & {
236
+ flatbush: ArrayBufferLike | undefined;
237
+ flatbushItems: import("../LDRenderer/types.ts").LDFlatbushItem[];
238
+ snps: import("../VariantRPC/getLDMatrix.ts").LDMatrixResult["snps"];
239
+ maxScore: number;
240
+ yScalar: number;
241
+ cellWidth: number;
242
+ error: Error | undefined;
243
+ filterStats: import("../VariantRPC/getLDMatrix.ts").FilterStats | undefined;
244
+ recombination: {
245
+ values: number[];
246
+ positions: number[];
247
+ } | undefined;
248
+ } & {
249
+ setFlatbushData(flatbush: ArrayBufferLike | undefined, items: import("../LDRenderer/types.ts").LDFlatbushItem[], snps: import("../VariantRPC/getLDMatrix.ts").LDMatrixResult["snps"], maxScore: number, yScalar: number, cellWidth: number): void;
250
+ setLineZoneHeight(n: number): void;
251
+ setError(error: unknown): void;
252
+ reload(): void;
253
+ setMafFilter(arg: number): void;
254
+ setLengthCutoffFilter(arg: number): void;
255
+ setLDMetric(metric: string): void;
256
+ setColorScheme(scheme: string | undefined): void;
257
+ setShowLegend(show: boolean): void;
258
+ setShowLDTriangle(show: boolean): void;
259
+ setShowRecombination(show: boolean): void;
260
+ setRecombinationZoneHeight(n: number): void;
261
+ setFitToHeight(value: boolean): void;
262
+ setHweFilter(threshold: number): void;
263
+ setCallRateFilter(threshold: number): void;
264
+ setFilterStats(stats: import("../VariantRPC/getLDMatrix.ts").FilterStats | undefined): void;
265
+ setRecombination(data: {
266
+ values: number[];
267
+ positions: number[];
268
+ } | undefined): void;
269
+ setShowVerticalGuides(show: boolean): void;
270
+ setShowLabels(show: boolean): void;
271
+ setTickHeight(height: number): void;
272
+ setUseGenomicPositions(value: boolean): void;
273
+ setSignedLD(value: boolean): void;
274
+ setJexlFilters(filters: string[] | undefined): void;
275
+ } & {
276
+ readonly blockType: string;
277
+ readonly prefersOffset: boolean;
278
+ readonly rendererTypeName: string;
279
+ readonly rendererConfig: any;
280
+ readonly regionTooLarge: boolean;
281
+ readonly minorAlleleFrequencyFilter: any;
282
+ readonly lengthCutoffFilter: any;
283
+ readonly lineZoneHeight: any;
284
+ readonly ldMetric: any;
285
+ readonly colorScheme: any;
286
+ readonly showLegend: any;
287
+ readonly showLDTriangle: any;
288
+ readonly showRecombination: any;
289
+ readonly recombinationZoneHeight: any;
290
+ readonly fitToHeight: any;
291
+ readonly hweFilterThreshold: any;
292
+ readonly callRateFilter: any;
293
+ readonly showVerticalGuides: any;
294
+ readonly showLabels: any;
295
+ readonly tickHeight: any;
296
+ readonly useGenomicPositions: any;
297
+ readonly signedLD: any;
298
+ readonly jexlFilters: any;
299
+ readonly isPrecomputedLD: boolean;
300
+ regionCannotBeRendered(): null;
301
+ } & {
302
+ readonly ldCanvasHeight: number;
303
+ } & {
304
+ filterMenuItems(): {
305
+ label: string;
306
+ onClick: () => void;
307
+ }[];
308
+ renderProps(): any;
309
+ } & {
310
+ trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
311
+ label: string;
312
+ type: string;
313
+ subMenu: ({
314
+ label: string;
315
+ type: string;
316
+ checked: any;
317
+ onClick: () => void;
318
+ helpText?: undefined;
319
+ } | {
320
+ label: string;
321
+ helpText: string;
322
+ type: string;
323
+ checked: any;
324
+ onClick: () => void;
325
+ })[];
326
+ } | {
327
+ label: string;
328
+ type: string;
329
+ subMenu: {
330
+ label: string;
331
+ onClick: () => void;
332
+ }[];
333
+ })[];
334
+ renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<React.ReactNode>;
335
+ } & {
336
+ afterAttach(): void;
337
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
338
+ id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
339
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
340
+ rpcDriverName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
341
+ } & {
342
+ heightPreConfig: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
343
+ } & {
344
+ configuration: AnyConfigurationSchemaType;
345
+ minorAlleleFrequencyFilterSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
346
+ lengthCutoffFilterSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
347
+ lineZoneHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
348
+ ldMetricSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
349
+ colorSchemeSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
350
+ showLegendSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
351
+ showLDTriangleSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
352
+ showRecombinationSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
353
+ recombinationZoneHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
354
+ fitToHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
355
+ hweFilterThresholdSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
356
+ callRateFilterSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
357
+ showVerticalGuidesSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
358
+ showLabelsSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
359
+ tickHeightSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
360
+ useGenomicPositionsSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
361
+ signedLDSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>;
362
+ jexlFiltersSetting: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").ISimpleType<string>>>;
363
+ }>>;
364
+ export type LDTrackDisplayStateModel = ReturnType<typeof stateModelFactory>;
365
+ export type LDTrackDisplayModel = Instance<LDTrackDisplayStateModel>;
@@ -0,0 +1,10 @@
1
+ import { types } from '@jbrowse/mobx-state-tree';
2
+ import sharedModelFactory from "./shared.js";
3
+ function x() { }
4
+ export default function stateModelFactory(configSchema) {
5
+ return sharedModelFactory(configSchema)
6
+ .named('LDTrackDisplay')
7
+ .props({
8
+ type: types.literal('LDTrackDisplay'),
9
+ });
10
+ }
@@ -0,0 +1,30 @@
1
+ import ServerSideRendererType from '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType';
2
+ import type { LDMatrixResult, LDMetric } from '../VariantRPC/getLDMatrix.ts';
3
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
+ import type { RenderArgsDeserialized as ServerSideRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType';
5
+ import type { Region } from '@jbrowse/core/util/types';
6
+ export interface RenderArgsDeserialized extends ServerSideRenderArgsDeserialized {
7
+ regions: Region[];
8
+ bpPerPx: number;
9
+ highResolutionScaling: number;
10
+ adapterConfig: AnyConfigurationModel;
11
+ displayHeight?: number;
12
+ ldMetric?: LDMetric;
13
+ minorAlleleFrequencyFilter?: number;
14
+ lengthCutoffFilter?: number;
15
+ hweFilterThreshold?: number;
16
+ callRateFilter?: number;
17
+ jexlFilters?: string[];
18
+ colorScheme?: string;
19
+ fitToHeight?: boolean;
20
+ useGenomicPositions?: boolean;
21
+ signedLD?: boolean;
22
+ }
23
+ export interface RenderArgsDeserializedWithLDData extends RenderArgsDeserialized {
24
+ ldData: LDMatrixResult;
25
+ }
26
+ export default class LDRenderer extends ServerSideRendererType {
27
+ supportsSVG: boolean;
28
+ render(renderProps: RenderArgsDeserialized): Promise<import("librpc-web-mod").RpcResult>;
29
+ getLDData(args: RenderArgsDeserialized): Promise<LDMatrixResult | null>;
30
+ }
@@ -0,0 +1,109 @@
1
+ import ServerSideRendererType from '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType';
2
+ import { rpcResult } from '@jbrowse/core/util/librpc';
3
+ import { collectTransferables } from '@jbrowse/core/util/offscreenCanvasPonyfill';
4
+ import { renderToAbstractCanvas } from '@jbrowse/core/util/offscreenCanvasUtils';
5
+ import { getLDMatrix } from "../VariantRPC/getLDMatrix.js";
6
+ import { getLDMatrixFromPlink } from "../VariantRPC/getLDMatrixFromPlink.js";
7
+ export default class LDRenderer extends ServerSideRendererType {
8
+ supportsSVG = true;
9
+ async render(renderProps) {
10
+ const { displayHeight, regions, bpPerPx, ldMetric = 'r2', fitToHeight = false, useGenomicPositions = false, signedLD = false, } = renderProps;
11
+ let totalWidthBp = 0;
12
+ for (const region of regions) {
13
+ totalWidthBp += region.end - region.start;
14
+ }
15
+ const width = totalWidthBp / bpPerPx;
16
+ const hyp = width / 2;
17
+ const height = fitToHeight ? (displayHeight ?? hyp) : hyp;
18
+ const matrixHeight = height;
19
+ const ldData = await this.getLDData(renderProps);
20
+ if (!ldData || ldData.snps.length === 0) {
21
+ const res = await renderToAbstractCanvas(width, height, renderProps, ctx => {
22
+ ctx.fillStyle = '#666';
23
+ ctx.font = '12px sans-serif';
24
+ ctx.textAlign = 'center';
25
+ ctx.fillText('No variants in view (try adjusting MAF filter or zooming in)', width / 2, height / 2);
26
+ return undefined;
27
+ });
28
+ return rpcResult({
29
+ ...res,
30
+ height,
31
+ width,
32
+ ldData: null,
33
+ filterStats: ldData?.filterStats,
34
+ }, collectTransferables(res));
35
+ }
36
+ const yScalar = fitToHeight ? matrixHeight / hyp : 1;
37
+ const { makeImageData } = await import("./makeImageData.js");
38
+ const res = await renderToAbstractCanvas(width, height, renderProps, ctx => {
39
+ return makeImageData(ctx, {
40
+ ldData,
41
+ regions,
42
+ bpPerPx,
43
+ stopTokenCheck: renderProps.stopTokenCheck,
44
+ yScalar,
45
+ useGenomicPositions,
46
+ signedLD,
47
+ });
48
+ });
49
+ const serialized = {
50
+ ...res,
51
+ height,
52
+ width,
53
+ yScalar,
54
+ ldMetric,
55
+ signedLD,
56
+ ldData: {
57
+ snps: ldData.snps,
58
+ metric: ldData.metric,
59
+ numValues: ldData.ldValues.length,
60
+ },
61
+ filterStats: ldData.filterStats,
62
+ recombination: {
63
+ values: Array.from(ldData.recombination.values),
64
+ positions: ldData.recombination.positions,
65
+ },
66
+ };
67
+ return rpcResult(serialized, collectTransferables(serialized));
68
+ }
69
+ async getLDData(args) {
70
+ const { regions, sessionId, adapterConfig, bpPerPx, ldMetric = 'r2', minorAlleleFrequencyFilter = 0.01, lengthCutoffFilter = Number.MAX_SAFE_INTEGER, hweFilterThreshold = 0.001, callRateFilter = 0, jexlFilters = [], signedLD = false, stopTokenCheck, } = args;
71
+ try {
72
+ const adapterType = adapterConfig.type;
73
+ if (adapterType === 'PlinkLDAdapter' ||
74
+ adapterType === 'PlinkLDTabixAdapter' ||
75
+ adapterType === 'LdmatAdapter') {
76
+ return await getLDMatrixFromPlink({
77
+ pluginManager: this.pluginManager,
78
+ args: {
79
+ regions,
80
+ sessionId,
81
+ adapterConfig,
82
+ ldMetric,
83
+ },
84
+ });
85
+ }
86
+ return await getLDMatrix({
87
+ pluginManager: this.pluginManager,
88
+ args: {
89
+ regions,
90
+ sessionId,
91
+ adapterConfig,
92
+ bpPerPx,
93
+ ldMetric,
94
+ minorAlleleFrequencyFilter,
95
+ lengthCutoffFilter,
96
+ hweFilterThreshold,
97
+ callRateFilter,
98
+ jexlFilters,
99
+ signedLD,
100
+ stopTokenCheck,
101
+ },
102
+ });
103
+ }
104
+ catch (e) {
105
+ console.error('Error computing LD matrix:', e);
106
+ throw e;
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,2 @@
1
+ declare const LDRendering: () => null;
2
+ export default LDRendering;
@@ -0,0 +1,4 @@
1
+ const LDRendering = function LDRendering() {
2
+ return null;
3
+ };
4
+ export default LDRendering;
@@ -0,0 +1,8 @@
1
+ declare const LDRenderer: import("node_modules/@jbrowse/core/src/configuration/configurationSchema").ConfigurationSchemaType<{
2
+ maxHeight: {
3
+ type: string;
4
+ description: string;
5
+ defaultValue: number;
6
+ };
7
+ }, import("node_modules/@jbrowse/core/src/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
8
+ export default LDRenderer;
@@ -0,0 +1,10 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ function x() { }
3
+ const LDRenderer = ConfigurationSchema('LDRenderer', {
4
+ maxHeight: {
5
+ type: 'integer',
6
+ description: 'the maximum height to be used in LD rendering',
7
+ defaultValue: 600,
8
+ },
9
+ }, { explicitlyTyped: true });
10
+ export default LDRenderer;
@@ -0,0 +1,2 @@
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function LDRendererF(pluginManager: PluginManager): void;
@@ -0,0 +1,11 @@
1
+ import { lazy } from 'react';
2
+ import LDRenderer from "./LDRenderer.js";
3
+ import configSchema from "./configSchema.js";
4
+ export default function LDRendererF(pluginManager) {
5
+ pluginManager.addRendererType(() => new LDRenderer({
6
+ name: 'LDRenderer',
7
+ ReactComponent: lazy(() => import("./components/LDRendering.js")),
8
+ configSchema,
9
+ pluginManager,
10
+ }));
11
+ }
@@ -0,0 +1,20 @@
1
+ import type { LDFlatbushItem } from './types.ts';
2
+ import type { LDMatrixResult } from '../VariantRPC/getLDMatrix.ts';
3
+ import type { LastStopTokenCheck, Region } from '@jbrowse/core/util';
4
+ export interface MakeImageDataResult {
5
+ flatbush: ArrayBufferLike;
6
+ items: LDFlatbushItem[];
7
+ maxScore: number;
8
+ w: number;
9
+ }
10
+ export interface MakeImageDataProps {
11
+ ldData: LDMatrixResult;
12
+ regions: Region[];
13
+ bpPerPx: number;
14
+ stopTokenCheck?: LastStopTokenCheck;
15
+ yScalar: number;
16
+ colorScheme?: string;
17
+ useGenomicPositions?: boolean;
18
+ signedLD?: boolean;
19
+ }
20
+ export declare function makeImageData(ctx: CanvasRenderingContext2D, props: MakeImageDataProps): MakeImageDataResult | undefined;