@jbrowse/plugin-variants 3.0.1 → 3.0.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 (155) hide show
  1. package/dist/MultiLinearVariantDisplay/components/Crosshair.js +1 -1
  2. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +1 -1
  3. package/dist/MultiLinearVariantDisplay/model.d.ts +7 -7
  4. package/dist/MultiLinearVariantDisplay/renderSvg.js +1 -1
  5. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.js +1 -1
  6. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +1 -1
  7. package/dist/MultiLinearVariantMatrixDisplay/model.d.ts +7 -7
  8. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.js +1 -1
  9. package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +5 -5
  10. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +6 -3
  11. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.js +58 -67
  12. package/dist/MultiLinearVariantMatrixRenderer/types.d.ts +2 -1
  13. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +1 -1
  14. package/dist/MultiLinearVariantRenderer/components/MultiVariantRendering.d.ts +22 -0
  15. package/dist/MultiLinearVariantRenderer/components/MultiVariantRendering.js +52 -0
  16. package/dist/MultiLinearVariantRenderer/index.js +1 -1
  17. package/dist/MultiLinearVariantRenderer/makeImageData.js +13 -21
  18. package/dist/MultiLinearVariantRenderer/types.d.ts +1 -1
  19. package/dist/MultiVariantBaseRenderer.d.ts +5 -5
  20. package/dist/VariantRPC/MultiVariantGetGenotypeMatrix.js +4 -4
  21. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +1 -1
  22. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.js +9 -9
  23. package/dist/VcfTabixAdapter/VcfTabixAdapter.d.ts +6 -3
  24. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +13 -13
  25. package/dist/getMultiVariantFeaturesAutorun.d.ts +1 -1
  26. package/dist/getMultiVariantSourcesAutorun.d.ts +1 -1
  27. package/dist/shared/MultiVariantBaseModel.d.ts +1 -1
  28. package/dist/shared/MultiVariantBaseModel.js +4 -4
  29. package/dist/shared/{SourcesGridHeader.js → components/SourcesGridHeader.js} +5 -5
  30. package/dist/shared/constants.d.ts +2 -0
  31. package/dist/shared/constants.js +5 -0
  32. package/dist/shared/drawAlleleCount.d.ts +1 -0
  33. package/dist/shared/{multiVariantColor.js → drawAlleleCount.js} +7 -14
  34. package/dist/shared/drawPhased.d.ts +1 -0
  35. package/dist/shared/drawPhased.js +21 -0
  36. package/dist/shared/findSecondLargestNumber.d.ts +0 -0
  37. package/dist/shared/findSecondLargestNumber.js +1 -0
  38. package/dist/shared/minorAlleleFrequencyUtils.d.ts +11 -0
  39. package/dist/shared/minorAlleleFrequencyUtils.js +62 -0
  40. package/dist/shared/sourcesGridUtils.d.ts +10 -0
  41. package/dist/shared/sourcesGridUtils.js +32 -0
  42. package/dist/shared/util.d.ts +3 -10
  43. package/dist/shared/util.js +23 -26
  44. package/dist/util.d.ts +0 -8
  45. package/dist/util.js +0 -85
  46. package/esm/MultiLinearVariantDisplay/components/Crosshair.js +1 -1
  47. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +1 -1
  48. package/esm/MultiLinearVariantDisplay/model.d.ts +7 -7
  49. package/esm/MultiLinearVariantDisplay/renderSvg.js +1 -1
  50. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.js +1 -1
  51. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +1 -1
  52. package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +7 -7
  53. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.js +1 -1
  54. package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +5 -5
  55. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +6 -3
  56. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +56 -65
  57. package/esm/MultiLinearVariantMatrixRenderer/types.d.ts +2 -1
  58. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +1 -1
  59. package/esm/MultiLinearVariantRenderer/components/MultiVariantRendering.d.ts +22 -0
  60. package/esm/MultiLinearVariantRenderer/components/MultiVariantRendering.js +47 -0
  61. package/esm/MultiLinearVariantRenderer/index.js +1 -1
  62. package/esm/MultiLinearVariantRenderer/makeImageData.js +6 -14
  63. package/esm/MultiLinearVariantRenderer/types.d.ts +1 -1
  64. package/esm/MultiVariantBaseRenderer.d.ts +5 -5
  65. package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.js +3 -3
  66. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +1 -1
  67. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.js +8 -8
  68. package/esm/VcfTabixAdapter/VcfTabixAdapter.d.ts +6 -3
  69. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +13 -13
  70. package/esm/getMultiVariantFeaturesAutorun.d.ts +1 -1
  71. package/esm/getMultiVariantSourcesAutorun.d.ts +1 -1
  72. package/esm/shared/MultiVariantBaseModel.d.ts +1 -1
  73. package/esm/shared/MultiVariantBaseModel.js +4 -4
  74. package/esm/shared/{SourcesGridHeader.js → components/SourcesGridHeader.js} +1 -1
  75. package/esm/shared/constants.d.ts +2 -0
  76. package/esm/shared/constants.js +2 -0
  77. package/esm/shared/drawAlleleCount.d.ts +1 -0
  78. package/esm/shared/{multiVariantColor.js → drawAlleleCount.js} +6 -11
  79. package/esm/shared/drawPhased.d.ts +1 -0
  80. package/esm/shared/drawPhased.js +18 -0
  81. package/esm/shared/findSecondLargestNumber.d.ts +0 -0
  82. package/esm/shared/findSecondLargestNumber.js +1 -0
  83. package/esm/shared/minorAlleleFrequencyUtils.d.ts +11 -0
  84. package/esm/shared/minorAlleleFrequencyUtils.js +56 -0
  85. package/esm/shared/sourcesGridUtils.d.ts +10 -0
  86. package/esm/shared/sourcesGridUtils.js +28 -0
  87. package/esm/shared/util.d.ts +3 -10
  88. package/esm/shared/util.js +20 -24
  89. package/esm/util.d.ts +0 -8
  90. package/esm/util.js +1 -77
  91. package/package.json +7 -7
  92. package/dist/shared/multiVariantColor.d.ts +0 -3
  93. package/esm/shared/multiVariantColor.d.ts +0 -3
  94. /package/dist/shared/{BulkEditPanel.d.ts → components/BulkEditPanel.d.ts} +0 -0
  95. /package/dist/shared/{BulkEditPanel.js → components/BulkEditPanel.js} +0 -0
  96. /package/dist/shared/{ClusterDialog.d.ts → components/ClusterDialog.d.ts} +0 -0
  97. /package/dist/shared/{ClusterDialog.js → components/ClusterDialog.js} +0 -0
  98. /package/dist/shared/{ColorLegend.d.ts → components/ColorLegend.d.ts} +0 -0
  99. /package/dist/shared/{ColorLegend.js → components/ColorLegend.js} +0 -0
  100. /package/dist/shared/{HelpfulTips.d.ts → components/HelpfulTips.d.ts} +0 -0
  101. /package/dist/shared/{HelpfulTips.js → components/HelpfulTips.js} +0 -0
  102. /package/dist/shared/{LegendBar.d.ts → components/LegendBar.d.ts} +0 -0
  103. /package/dist/shared/{LegendBar.js → components/LegendBar.js} +0 -0
  104. /package/dist/shared/{MAFFilterDialog.d.ts → components/MAFFilterDialog.d.ts} +0 -0
  105. /package/dist/shared/{MAFFilterDialog.js → components/MAFFilterDialog.js} +0 -0
  106. /package/dist/shared/{MultiVariantTooltip.d.ts → components/MultiVariantTooltip.d.ts} +0 -0
  107. /package/dist/shared/{MultiVariantTooltip.js → components/MultiVariantTooltip.js} +0 -0
  108. /package/dist/shared/{RectBg.d.ts → components/RectBg.d.ts} +0 -0
  109. /package/dist/shared/{RectBg.js → components/RectBg.js} +0 -0
  110. /package/dist/shared/{RowPalettizer.d.ts → components/RowPalettizer.d.ts} +0 -0
  111. /package/dist/shared/{RowPalettizer.js → components/RowPalettizer.js} +0 -0
  112. /package/dist/shared/{SetColorDialog.d.ts → components/SetColorDialog.d.ts} +0 -0
  113. /package/dist/shared/{SetColorDialog.js → components/SetColorDialog.js} +0 -0
  114. /package/dist/shared/{SetMinMaxDialog.d.ts → components/SetMinMaxDialog.d.ts} +0 -0
  115. /package/dist/shared/{SetMinMaxDialog.js → components/SetMinMaxDialog.js} +0 -0
  116. /package/dist/shared/{SetRowHeightDialog.d.ts → components/SetRowHeightDialog.d.ts} +0 -0
  117. /package/dist/shared/{SetRowHeightDialog.js → components/SetRowHeightDialog.js} +0 -0
  118. /package/dist/shared/{SourcesDataGrid.d.ts → components/SourcesDataGrid.d.ts} +0 -0
  119. /package/dist/shared/{SourcesDataGrid.js → components/SourcesDataGrid.js} +0 -0
  120. /package/dist/shared/{SourcesGrid.d.ts → components/SourcesGrid.d.ts} +0 -0
  121. /package/dist/shared/{SourcesGrid.js → components/SourcesGrid.js} +0 -0
  122. /package/dist/shared/{SourcesGridHeader.d.ts → components/SourcesGridHeader.d.ts} +0 -0
  123. /package/dist/{types.d.ts → shared/types.d.ts} +0 -0
  124. /package/dist/{types.js → shared/types.js} +0 -0
  125. /package/esm/shared/{BulkEditPanel.d.ts → components/BulkEditPanel.d.ts} +0 -0
  126. /package/esm/shared/{BulkEditPanel.js → components/BulkEditPanel.js} +0 -0
  127. /package/esm/shared/{ClusterDialog.d.ts → components/ClusterDialog.d.ts} +0 -0
  128. /package/esm/shared/{ClusterDialog.js → components/ClusterDialog.js} +0 -0
  129. /package/esm/shared/{ColorLegend.d.ts → components/ColorLegend.d.ts} +0 -0
  130. /package/esm/shared/{ColorLegend.js → components/ColorLegend.js} +0 -0
  131. /package/esm/shared/{HelpfulTips.d.ts → components/HelpfulTips.d.ts} +0 -0
  132. /package/esm/shared/{HelpfulTips.js → components/HelpfulTips.js} +0 -0
  133. /package/esm/shared/{LegendBar.d.ts → components/LegendBar.d.ts} +0 -0
  134. /package/esm/shared/{LegendBar.js → components/LegendBar.js} +0 -0
  135. /package/esm/shared/{MAFFilterDialog.d.ts → components/MAFFilterDialog.d.ts} +0 -0
  136. /package/esm/shared/{MAFFilterDialog.js → components/MAFFilterDialog.js} +0 -0
  137. /package/esm/shared/{MultiVariantTooltip.d.ts → components/MultiVariantTooltip.d.ts} +0 -0
  138. /package/esm/shared/{MultiVariantTooltip.js → components/MultiVariantTooltip.js} +0 -0
  139. /package/esm/shared/{RectBg.d.ts → components/RectBg.d.ts} +0 -0
  140. /package/esm/shared/{RectBg.js → components/RectBg.js} +0 -0
  141. /package/esm/shared/{RowPalettizer.d.ts → components/RowPalettizer.d.ts} +0 -0
  142. /package/esm/shared/{RowPalettizer.js → components/RowPalettizer.js} +0 -0
  143. /package/esm/shared/{SetColorDialog.d.ts → components/SetColorDialog.d.ts} +0 -0
  144. /package/esm/shared/{SetColorDialog.js → components/SetColorDialog.js} +0 -0
  145. /package/esm/shared/{SetMinMaxDialog.d.ts → components/SetMinMaxDialog.d.ts} +0 -0
  146. /package/esm/shared/{SetMinMaxDialog.js → components/SetMinMaxDialog.js} +0 -0
  147. /package/esm/shared/{SetRowHeightDialog.d.ts → components/SetRowHeightDialog.d.ts} +0 -0
  148. /package/esm/shared/{SetRowHeightDialog.js → components/SetRowHeightDialog.js} +0 -0
  149. /package/esm/shared/{SourcesDataGrid.d.ts → components/SourcesDataGrid.d.ts} +0 -0
  150. /package/esm/shared/{SourcesDataGrid.js → components/SourcesDataGrid.js} +0 -0
  151. /package/esm/shared/{SourcesGrid.d.ts → components/SourcesGrid.d.ts} +0 -0
  152. /package/esm/shared/{SourcesGrid.js → components/SourcesGrid.js} +0 -0
  153. /package/esm/shared/{SourcesGridHeader.d.ts → components/SourcesGridHeader.d.ts} +0 -0
  154. /package/esm/{types.d.ts → shared/types.d.ts} +0 -0
  155. /package/esm/{types.js → shared/types.js} +0 -0
@@ -7,7 +7,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const util_1 = require("@jbrowse/core/util");
8
8
  const mobx_react_1 = require("mobx-react");
9
9
  const mui_1 = require("tss-react/mui");
10
- const MultiVariantTooltip_1 = __importDefault(require("../../shared/MultiVariantTooltip"));
10
+ const MultiVariantTooltip_1 = __importDefault(require("../../shared/components/MultiVariantTooltip"));
11
11
  const useStyles = (0, mui_1.makeStyles)()({
12
12
  rel: {
13
13
  position: 'relative',
@@ -8,7 +8,7 @@ const react_1 = require("react");
8
8
  const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
9
9
  const mobx_react_1 = require("mobx-react");
10
10
  const Crosshair_1 = __importDefault(require("./Crosshair"));
11
- const LegendBar_1 = __importDefault(require("../../shared/LegendBar"));
11
+ const LegendBar_1 = __importDefault(require("../../shared/components/LegendBar"));
12
12
  const MultiLinearVariantDisplayComponent = (0, mobx_react_1.observer)(function (props) {
13
13
  const { model } = props;
14
14
  const ref = (0, react_1.useRef)(null);
@@ -82,7 +82,7 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
82
82
  configuration: AnyConfigurationSchemaType;
83
83
  } & {
84
84
  type: import("mobx-state-tree").ISimpleType<"LinearVariantMatrixDisplay">;
85
- layout: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("../types").Source[], import("../types").Source[], import("../types").Source[]>, [undefined]>;
85
+ layout: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("../shared/types").Source[], import("../shared/types").Source[], import("../shared/types").Source[]>, [undefined]>;
86
86
  configuration: AnyConfigurationSchemaType;
87
87
  minorAlleleFrequencyFilter: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
88
88
  showSidebarLabelsSetting: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
@@ -238,27 +238,27 @@ export declare function stateModelFactory(configSchema: AnyConfigurationSchemaTy
238
238
  } & {
239
239
  sourcesLoadingStopToken: string | undefined;
240
240
  featureUnderMouseVolatile: import("@jbrowse/core/util").Feature | undefined;
241
- sourcesVolatile: import("../types").Source[] | undefined;
241
+ sourcesVolatile: import("../shared/types").Source[] | undefined;
242
242
  featuresVolatile: import("@jbrowse/core/util").Feature[] | undefined;
243
243
  hasPhased: boolean;
244
- sampleInfo: undefined | Record<string, import("../types").SampleInfo>;
244
+ sampleInfo: undefined | Record<string, import("../shared/types").SampleInfo>;
245
245
  hoveredGenotype: string | undefined;
246
246
  } & {
247
247
  setRowHeight(arg: number): void;
248
248
  setHoveredGenotype(arg: string): void;
249
249
  setFeatures(f: import("@jbrowse/core/util").Feature[]): void;
250
- setLayout(layout: import("../types").Source[]): void;
250
+ setLayout(layout: import("../shared/types").Source[]): void;
251
251
  clearLayout(): void;
252
252
  setSourcesLoading(str: string): void;
253
- setSources(sources: import("../types").Source[]): void;
253
+ setSources(sources: import("../shared/types").Source[]): void;
254
254
  setMafFilter(arg: number): void;
255
255
  setShowSidebarLabels(arg: boolean): void;
256
256
  setPhasedMode(arg: string): void;
257
257
  setAutoHeight(arg: boolean): void;
258
258
  setHasPhased(arg: boolean): void;
259
- setSampleInfo(arg: Record<string, import("../types").SampleInfo>): void;
259
+ setSampleInfo(arg: Record<string, import("../shared/types").SampleInfo>): void;
260
260
  } & {
261
- readonly preSources: import("../types").Source[] | undefined;
261
+ readonly preSources: import("../shared/types").Source[] | undefined;
262
262
  readonly sources: {
263
263
  label: string;
264
264
  id: string;
@@ -7,7 +7,7 @@ exports.renderSvg = renderSvg;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const util_1 = require("@jbrowse/core/util");
9
9
  const mobx_1 = require("mobx");
10
- const LegendBar_1 = __importDefault(require("../shared/LegendBar"));
10
+ const LegendBar_1 = __importDefault(require("../shared/components/LegendBar"));
11
11
  async function renderSvg(self, opts, superRenderSvg) {
12
12
  await (0, mobx_1.when)(() => !!self.regionCannotBeRenderedText);
13
13
  const { offsetPx } = (0, util_1.getContainingView)(self);
@@ -7,7 +7,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const util_1 = require("@jbrowse/core/util");
8
8
  const mobx_react_1 = require("mobx-react");
9
9
  const mui_1 = require("tss-react/mui");
10
- const MultiVariantTooltip_1 = __importDefault(require("../../shared/MultiVariantTooltip"));
10
+ const MultiVariantTooltip_1 = __importDefault(require("../../shared/components/MultiVariantTooltip"));
11
11
  const useStyles = (0, mui_1.makeStyles)()({
12
12
  cursor: {
13
13
  pointerEvents: 'none',
@@ -9,7 +9,7 @@ const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view"
9
9
  const mobx_react_1 = require("mobx-react");
10
10
  const Crosshair_1 = __importDefault(require("./Crosshair"));
11
11
  const LinesConnectingMatrixToGenomicPosition_1 = __importDefault(require("./LinesConnectingMatrixToGenomicPosition"));
12
- const LegendBar_1 = __importDefault(require("../../shared/LegendBar"));
12
+ const LegendBar_1 = __importDefault(require("../../shared/components/LegendBar"));
13
13
  const MultiLinearVariantMatrixDisplayComponent = (0, mobx_react_1.observer)(function (props) {
14
14
  const { model } = props;
15
15
  const { lineZoneHeight } = model;
@@ -82,7 +82,7 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
82
82
  configuration: AnyConfigurationSchemaType;
83
83
  } & {
84
84
  type: import("mobx-state-tree").ISimpleType<"LinearVariantMatrixDisplay">;
85
- layout: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("../types").Source[], import("../types").Source[], import("../types").Source[]>, [undefined]>;
85
+ layout: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<import("../shared/types").Source[], import("../shared/types").Source[], import("../shared/types").Source[]>, [undefined]>;
86
86
  configuration: AnyConfigurationSchemaType;
87
87
  minorAlleleFrequencyFilter: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
88
88
  showSidebarLabelsSetting: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
@@ -236,27 +236,27 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
236
236
  } & {
237
237
  sourcesLoadingStopToken: string | undefined;
238
238
  featureUnderMouseVolatile: import("@jbrowse/core/util").Feature | undefined;
239
- sourcesVolatile: import("../types").Source[] | undefined;
239
+ sourcesVolatile: import("../shared/types").Source[] | undefined;
240
240
  featuresVolatile: import("@jbrowse/core/util").Feature[] | undefined;
241
241
  hasPhased: boolean;
242
- sampleInfo: undefined | Record<string, import("../types").SampleInfo>;
242
+ sampleInfo: undefined | Record<string, import("../shared/types").SampleInfo>;
243
243
  hoveredGenotype: string | undefined;
244
244
  } & {
245
245
  setRowHeight(arg: number): void;
246
246
  setHoveredGenotype(arg: string): void;
247
247
  setFeatures(f: import("@jbrowse/core/util").Feature[]): void;
248
- setLayout(layout: import("../types").Source[]): void;
248
+ setLayout(layout: import("../shared/types").Source[]): void;
249
249
  clearLayout(): void;
250
250
  setSourcesLoading(str: string): void;
251
- setSources(sources: import("../types").Source[]): void;
251
+ setSources(sources: import("../shared/types").Source[]): void;
252
252
  setMafFilter(arg: number): void;
253
253
  setShowSidebarLabels(arg: boolean): void;
254
254
  setPhasedMode(arg: string): void;
255
255
  setAutoHeight(arg: boolean): void;
256
256
  setHasPhased(arg: boolean): void;
257
- setSampleInfo(arg: Record<string, import("../types").SampleInfo>): void;
257
+ setSampleInfo(arg: Record<string, import("../shared/types").SampleInfo>): void;
258
258
  } & {
259
- readonly preSources: import("../types").Source[] | undefined;
259
+ readonly preSources: import("../shared/types").Source[] | undefined;
260
260
  readonly sources: {
261
261
  label: string;
262
262
  id: string;
@@ -7,8 +7,8 @@ exports.renderSvg = renderSvg;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const util_1 = require("@jbrowse/core/util");
9
9
  const mobx_1 = require("mobx");
10
- const LegendBar_1 = __importDefault(require("../shared/LegendBar"));
11
10
  const LinesConnectingMatrixToGenomicPosition_1 = __importDefault(require("./components/LinesConnectingMatrixToGenomicPosition"));
11
+ const LegendBar_1 = __importDefault(require("../shared/components/LegendBar"));
12
12
  async function renderSvg(model, opts, superRenderSvg) {
13
13
  await (0, mobx_1.when)(() => !!model.regionCannotBeRenderedText);
14
14
  const { offsetPx } = (0, util_1.getContainingView)(model);
@@ -71,12 +71,12 @@ class LinearVariantMatrixRenderer extends BoxRendererType_1.default {
71
71
  ...results,
72
72
  ...res,
73
73
  features: new Map(),
74
- simplifiedFeatures: mafs.map((s) => new util_1.SimpleFeature({
75
- id: s.id(),
74
+ simplifiedFeatures: mafs.map(({ feature }) => new util_1.SimpleFeature({
75
+ id: feature.id(),
76
76
  data: {
77
- start: s.get('start'),
78
- end: s.get('end'),
79
- refName: s.get('refName'),
77
+ start: feature.get('start'),
78
+ end: feature.get('end'),
79
+ refName: feature.get('refName'),
80
80
  },
81
81
  })),
82
82
  height,
@@ -4,7 +4,10 @@ export declare function makeImageData({ ctx, canvasWidth, canvasHeight, renderAr
4
4
  canvasWidth: number;
5
5
  canvasHeight: number;
6
6
  renderArgs: RenderArgsDeserializedWithFeaturesAndLayout;
7
- }): {
8
- mafs: import("@jbrowse/core/util").Feature[];
7
+ }): Promise<{
8
+ mafs: {
9
+ feature: import("@jbrowse/core/util").Feature;
10
+ mostFrequentAlt: string;
11
+ }[];
9
12
  arr: string[][];
10
- };
13
+ }>;
@@ -1,97 +1,88 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeImageData = makeImageData;
4
- const multiVariantColor_1 = require("../shared/multiVariantColor");
5
- const util_1 = require("../util");
6
- const fudgeFactor = 0.6;
7
- const f2 = fudgeFactor / 2;
8
- function drawColorAlleleCount(alleles, ctx, x, y, w, h) {
9
- ctx.fillStyle = (0, multiVariantColor_1.getColorAlleleCount)(alleles);
10
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
11
- }
12
- function drawPhased(alleles, ctx, x, y, w, h, HP, PS) {
13
- ctx.fillStyle =
14
- PS !== undefined
15
- ? (0, multiVariantColor_1.getColorPhasedWithPhaseSet)(alleles, HP, PS)
16
- : (0, multiVariantColor_1.getColorPhased)(alleles, HP);
17
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
18
- }
19
- function makeImageData({ ctx, canvasWidth, canvasHeight, renderArgs, }) {
20
- var _a, _b;
4
+ const util_1 = require("@jbrowse/core/util");
5
+ const constants_1 = require("../shared/constants");
6
+ const drawAlleleCount_1 = require("../shared/drawAlleleCount");
7
+ const drawPhased_1 = require("../shared/drawPhased");
8
+ const minorAlleleFrequencyUtils_1 = require("../shared/minorAlleleFrequencyUtils");
9
+ async function makeImageData({ ctx, canvasWidth, canvasHeight, renderArgs, }) {
21
10
  const { renderingMode: renderingMode, minorAlleleFrequencyFilter, sources, features, } = renderArgs;
22
11
  const { statusCallback = () => { } } = renderArgs;
23
- statusCallback('Drawing variant matrix');
24
12
  const h = canvasHeight / sources.length;
25
- const mafs = (0, util_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(features.values(), minorAlleleFrequencyFilter);
13
+ const mafs = (0, minorAlleleFrequencyUtils_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(features.values(), minorAlleleFrequencyFilter);
26
14
  const arr = [];
27
15
  const m = mafs.length;
28
16
  const w = canvasWidth / m;
29
- for (let i = 0; i < m; i++) {
30
- const arr2 = [];
31
- const f = mafs[i];
32
- const hasPhaseSet = f.get('format').includes('PS');
33
- if (hasPhaseSet) {
34
- const samp = f.get('samples');
35
- const x = (i / mafs.length) * canvasWidth;
36
- const sln = sources.length;
37
- for (let j = 0; j < sln; j++) {
38
- const y = (j / sln) * canvasHeight;
39
- const { name, HP } = sources[j];
40
- const s = samp[name];
41
- if (s) {
42
- const genotype = (_a = s.GT) === null || _a === void 0 ? void 0 : _a[0];
17
+ await (0, util_1.updateStatus)('Drawing variant matrix', statusCallback, () => {
18
+ var _a, _b;
19
+ for (let i = 0; i < m; i++) {
20
+ const arr2 = [];
21
+ const { feature, mostFrequentAlt } = mafs[i];
22
+ const hasPhaseSet = feature.get('format').includes('PS');
23
+ if (hasPhaseSet) {
24
+ const samp = feature.get('samples');
25
+ const x = (i / mafs.length) * canvasWidth;
26
+ const sln = sources.length;
27
+ for (let j = 0; j < sln; j++) {
28
+ const y = (j / sln) * canvasHeight;
29
+ const { name, HP } = sources[j];
30
+ const s = samp[name];
31
+ if (s) {
32
+ const genotype = (_a = s.GT) === null || _a === void 0 ? void 0 : _a[0];
33
+ if (genotype) {
34
+ arr2.push(genotype);
35
+ const isPhased = genotype.includes('|');
36
+ if (renderingMode === 'phased') {
37
+ if (isPhased) {
38
+ const PS = (_b = s.PS) === null || _b === void 0 ? void 0 : _b[0];
39
+ const alleles = genotype.split('|');
40
+ (0, drawPhased_1.drawPhased)(alleles, ctx, x, y, w, h, HP, PS);
41
+ }
42
+ else {
43
+ ctx.fillStyle = 'black';
44
+ ctx.fillRect(x - constants_1.f2, y - constants_1.f2, w + constants_1.f2, h + constants_1.f2);
45
+ }
46
+ }
47
+ else {
48
+ const alleles = genotype.split(/[/|]/);
49
+ (0, drawAlleleCount_1.drawColorAlleleCount)(alleles, ctx, x, y, w, h, mostFrequentAlt);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ else {
56
+ const samp = feature.get('genotypes');
57
+ const x = (i / mafs.length) * canvasWidth;
58
+ const sln = sources.length;
59
+ for (let j = 0; j < sln; j++) {
60
+ const y = (j / sln) * canvasHeight;
61
+ const { name, HP } = sources[j];
62
+ const genotype = samp[name];
43
63
  if (genotype) {
44
64
  arr2.push(genotype);
45
65
  const isPhased = genotype.includes('|');
46
66
  if (renderingMode === 'phased') {
47
67
  if (isPhased) {
48
- const PS = (_b = s.PS) === null || _b === void 0 ? void 0 : _b[0];
49
68
  const alleles = genotype.split('|');
50
- drawPhased(alleles, ctx, x, y, w, h, HP, PS);
69
+ (0, drawPhased_1.drawPhased)(alleles, ctx, x, y, w, h, HP);
51
70
  }
52
71
  else {
53
72
  ctx.fillStyle = 'black';
54
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
73
+ ctx.fillRect(x - constants_1.f2, y - constants_1.f2, w + constants_1.f2, h + constants_1.f2);
55
74
  }
56
75
  }
57
76
  else {
58
77
  const alleles = genotype.split(/[/|]/);
59
- drawColorAlleleCount(alleles, ctx, x, y, w, h);
78
+ (0, drawAlleleCount_1.drawColorAlleleCount)(alleles, ctx, x, y, w, h, mostFrequentAlt);
60
79
  }
61
80
  }
62
81
  }
63
82
  }
83
+ arr.push(arr2);
64
84
  }
65
- else {
66
- const samp = f.get('genotypes');
67
- const x = (i / mafs.length) * canvasWidth;
68
- const sln = sources.length;
69
- for (let j = 0; j < sln; j++) {
70
- const y = (j / sln) * canvasHeight;
71
- const { name, HP } = sources[j];
72
- const genotype = samp[name];
73
- if (genotype) {
74
- arr2.push(genotype);
75
- const isPhased = genotype.includes('|');
76
- if (renderingMode === 'phased') {
77
- if (isPhased) {
78
- const alleles = genotype.split('|');
79
- drawPhased(alleles, ctx, x, y, w, h, HP);
80
- }
81
- else {
82
- ctx.fillStyle = 'black';
83
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
84
- }
85
- }
86
- else {
87
- const alleles = genotype.split(/[/|]/);
88
- drawColorAlleleCount(alleles, ctx, x, y, w, h);
89
- }
90
- }
91
- }
92
- }
93
- arr.push(arr2);
94
- }
85
+ });
95
86
  return {
96
87
  mafs,
97
88
  arr,
@@ -1,4 +1,4 @@
1
- import type { Source } from '../types';
1
+ import type { Source } from '../shared/types';
2
2
  import type { RenderArgsDeserialized as BoxRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType';
3
3
  import type { Feature } from '@jbrowse/core/util';
4
4
  export interface RenderArgsDeserialized extends BoxRenderArgsDeserialized {
@@ -12,4 +12,5 @@ export interface RenderArgsDeserializedWithFeaturesAndLayout extends RenderArgsD
12
12
  sources: Source[];
13
13
  features: Map<string, Feature>;
14
14
  renderingMode: string;
15
+ statusCallback?: (arg: string) => void;
15
16
  }
@@ -1,5 +1,5 @@
1
1
  import RBush from 'rbush';
2
- import type { Source } from '../types';
2
+ import type { Source } from '../shared/types';
3
3
  import type { Feature } from '@jbrowse/core/util';
4
4
  import type { Region } from '@jbrowse/core/util/types';
5
5
  declare const MultiVariantRendering: (props: {
@@ -0,0 +1,22 @@
1
+ import RBush from 'rbush';
2
+ import type { Source } from '../../shared/types';
3
+ import type { Feature } from '@jbrowse/core/util';
4
+ import type { Region } from '@jbrowse/core/util/types';
5
+ declare const MultiVariantRendering: (props: {
6
+ regions: Region[];
7
+ features: Map<string, Feature>;
8
+ bpPerPx: number;
9
+ width: number;
10
+ height: number;
11
+ sources: Source[];
12
+ scrollTop: number;
13
+ totalHeight: number;
14
+ rbush: RBush<{
15
+ genotype: string;
16
+ }>;
17
+ displayModel: any;
18
+ onMouseLeave?: (event: React.MouseEvent) => void;
19
+ onMouseMove?: (event: React.MouseEvent, arg?: Feature) => void;
20
+ onFeatureClick?: (event: React.MouseEvent, arg?: Feature) => void;
21
+ }) => import("react/jsx-runtime").JSX.Element;
22
+ export default MultiVariantRendering;
@@ -0,0 +1,52 @@
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 jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const ui_1 = require("@jbrowse/core/ui");
9
+ const mobx_react_1 = require("mobx-react");
10
+ const rbush_1 = __importDefault(require("rbush"));
11
+ const MultiVariantRendering = (0, mobx_react_1.observer)(function (props) {
12
+ const { totalHeight, scrollTop } = props;
13
+ const { rbush, displayModel } = props;
14
+ const ref = (0, react_1.useRef)(null);
15
+ const rbush2 = (0, react_1.useMemo)(() => new rbush_1.default().fromJSON(rbush), [rbush]);
16
+ function getFeatureUnderMouse(eventClientX, eventClientY) {
17
+ var _a;
18
+ let offsetX = 0;
19
+ let offsetY = 0;
20
+ if (ref.current) {
21
+ const r = ref.current.getBoundingClientRect();
22
+ offsetX = eventClientX - r.left;
23
+ offsetY = eventClientY - r.top;
24
+ }
25
+ const ret = rbush2.search({
26
+ minX: offsetX,
27
+ maxX: offsetX + 3,
28
+ minY: offsetY,
29
+ maxY: offsetY + 3,
30
+ });
31
+ return (_a = ret[0]) === null || _a === void 0 ? void 0 : _a.genotype;
32
+ }
33
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, onMouseMove: e => {
34
+ var _a;
35
+ return (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, getFeatureUnderMouse(e.clientX, e.clientY));
36
+ }, onMouseLeave: () => {
37
+ var _a;
38
+ (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, undefined);
39
+ }, onMouseOut: () => {
40
+ var _a;
41
+ (_a = displayModel.setHoveredGenotype) === null || _a === void 0 ? void 0 : _a.call(displayModel, undefined);
42
+ }, style: {
43
+ overflow: 'visible',
44
+ position: 'relative',
45
+ height: totalHeight,
46
+ }, children: (0, jsx_runtime_1.jsx)(ui_1.PrerenderedCanvas, { ...props, style: {
47
+ position: 'absolute',
48
+ left: 0,
49
+ top: scrollTop,
50
+ } }) }));
51
+ });
52
+ exports.default = MultiVariantRendering;
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = MultiVariantRendererF;
7
7
  const MultiVariantRenderer_1 = __importDefault(require("./MultiVariantRenderer"));
8
- const MultiVariantRendering_1 = __importDefault(require("./MultiVariantRendering"));
8
+ const MultiVariantRendering_1 = __importDefault(require("./components/MultiVariantRendering"));
9
9
  const configSchema_1 = __importDefault(require("./configSchema"));
10
10
  function MultiVariantRendererF(pluginManager) {
11
11
  pluginManager.addRendererType(() => {
@@ -6,24 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.makeImageData = makeImageData;
7
7
  const util_1 = require("@jbrowse/core/util");
8
8
  const rbush_1 = __importDefault(require("rbush"));
9
- const multiVariantColor_1 = require("../shared/multiVariantColor");
10
- const util_2 = require("../util");
11
- const fudgeFactor = 0.6;
12
- const f2 = fudgeFactor / 2;
13
- function drawColorAlleleCount(alleles, ctx, x, y, w, h) {
14
- ctx.fillStyle = (0, multiVariantColor_1.getColorAlleleCount)(alleles);
15
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
16
- }
17
- function drawPhased(alleles, ctx, x, y, w, h, HP) {
18
- ctx.fillStyle = (0, multiVariantColor_1.getColorPhased)(alleles, HP);
19
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
20
- }
9
+ const constants_1 = require("../shared/constants");
10
+ const drawAlleleCount_1 = require("../shared/drawAlleleCount");
11
+ const drawPhased_1 = require("../shared/drawPhased");
12
+ const minorAlleleFrequencyUtils_1 = require("../shared/minorAlleleFrequencyUtils");
21
13
  async function makeImageData(ctx, props) {
22
14
  const { scrollTop, minorAlleleFrequencyFilter, sources, rowHeight, features, regions, bpPerPx, renderingMode, } = props;
23
15
  const region = regions[0];
24
- const mafs = (0, util_2.getFeaturesThatPassMinorAlleleFrequencyFilter)(features.values(), minorAlleleFrequencyFilter);
16
+ const mafs = (0, minorAlleleFrequencyUtils_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(features.values(), minorAlleleFrequencyFilter);
25
17
  const rbush = new rbush_1.default();
26
- for (const feature of mafs) {
18
+ for (const { mostFrequentAlt, feature } of mafs) {
27
19
  const [leftPx, rightPx] = (0, util_1.featureSpanPx)(feature, region, bpPerPx);
28
20
  const w = Math.max(Math.round(rightPx - leftPx), 2);
29
21
  const samp = feature.get('genotypes');
@@ -36,26 +28,26 @@ async function makeImageData(ctx, props) {
36
28
  const h = Math.max(rowHeight, 1);
37
29
  if (genotype) {
38
30
  rbush.insert({
39
- minX: x - f2,
40
- maxX: x + w + f2,
41
- minY: y - f2,
42
- maxY: y + h + f2,
31
+ minX: x - constants_1.f2,
32
+ maxX: x + w + constants_1.f2,
33
+ minY: y - constants_1.f2,
34
+ maxY: y + h + constants_1.f2,
43
35
  genotype,
44
36
  });
45
37
  const isPhased = genotype.includes('|');
46
38
  if (renderingMode === 'phased') {
47
39
  if (isPhased) {
48
40
  const alleles = genotype.split('|');
49
- drawPhased(alleles, ctx, x, y, w, h, HP);
41
+ (0, drawPhased_1.drawPhased)(alleles, ctx, x, y, w, h, HP);
50
42
  }
51
43
  else {
52
44
  ctx.fillStyle = 'black';
53
- ctx.fillRect(x - f2, y - f2, w + f2, h + f2);
45
+ ctx.fillRect(x - constants_1.f2, y - constants_1.f2, w + constants_1.f2, h + constants_1.f2);
54
46
  }
55
47
  }
56
48
  else {
57
49
  const alleles = genotype.split(/[/|]/);
58
- drawColorAlleleCount(alleles, ctx, x, y, w, h);
50
+ (0, drawAlleleCount_1.drawColorAlleleCount)(alleles, ctx, x, y, w, h, mostFrequentAlt);
59
51
  }
60
52
  }
61
53
  y += rowHeight;
@@ -1,4 +1,4 @@
1
- import type { Source } from '../types';
1
+ import type { Source } from '../shared/types';
2
2
  import type { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
3
3
  import type { Feature } from '@jbrowse/core/util';
4
4
  import type { ThemeOptions } from '@mui/material';
@@ -1,15 +1,15 @@
1
1
  import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
- import type { Source } from './types';
3
- import type { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
2
+ import type { Source } from './shared/types';
3
+ import type { RenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
4
4
  import type { Feature } from '@jbrowse/core/util';
5
5
  import type { ThemeOptions } from '@mui/material';
6
- export interface RenderArgsDeserialized extends FeatureRenderArgsDeserialized {
6
+ export interface RenderArgs extends RenderArgsDeserialized {
7
7
  bpPerPx: number;
8
8
  height: number;
9
9
  highResolutionScaling: number;
10
10
  themeOptions: ThemeOptions;
11
11
  }
12
- export interface RenderArgsDeserializedWithFeatures extends RenderArgsDeserialized {
12
+ export interface RenderArgsDeserializedWithFeatures extends RenderArgs {
13
13
  features: Map<string, Feature>;
14
14
  }
15
15
  export interface MultiRenderArgsDeserialized extends RenderArgsDeserializedWithFeatures {
@@ -17,7 +17,7 @@ export interface MultiRenderArgsDeserialized extends RenderArgsDeserializedWithF
17
17
  }
18
18
  export default abstract class MultiVariantBaseRenderer extends FeatureRendererType {
19
19
  supportsSVG: boolean;
20
- render(renderProps: RenderArgsDeserialized): Promise<{
20
+ render(renderProps: RenderArgs): Promise<{
21
21
  features: Map<string, Feature>;
22
22
  height: number;
23
23
  width: number;
@@ -7,7 +7,7 @@ exports.MultiVariantGetGenotypeMatrix = void 0;
7
7
  const dataAdapterCache_1 = require("@jbrowse/core/data_adapters/dataAdapterCache");
8
8
  const RpcMethodTypeWithFiltersAndRenameRegions_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions"));
9
9
  const rxjs_1 = require("rxjs");
10
- const util_1 = require("../util");
10
+ const minorAlleleFrequencyUtils_1 = require("../shared/minorAlleleFrequencyUtils");
11
11
  class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameRegions_1.default {
12
12
  constructor() {
13
13
  super(...arguments);
@@ -22,7 +22,7 @@ class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameReg
22
22
  const region = regions[0];
23
23
  const feats = await (0, rxjs_1.firstValueFrom)(dataAdapter.getFeatures(region, deserializedArgs).pipe((0, rxjs_1.toArray)()));
24
24
  const genotypeFactor = new Set();
25
- const mafs = (0, util_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(feats, minorAlleleFrequencyFilter);
25
+ const mafs = (0, minorAlleleFrequencyUtils_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(feats, minorAlleleFrequencyFilter);
26
26
  for (const feat of feats) {
27
27
  const samp = feat.get('genotypes');
28
28
  for (const { name } of sources) {
@@ -32,8 +32,8 @@ class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameReg
32
32
  }
33
33
  const genotypeFactorMap = Object.fromEntries([...genotypeFactor].map((type, idx) => [type, idx]));
34
34
  const rows = {};
35
- for (const feat of mafs) {
36
- const samp = feat.get('genotypes');
35
+ for (const { feature } of mafs) {
36
+ const samp = feature.get('genotypes');
37
37
  for (const { name } of sources) {
38
38
  if (!rows[name]) {
39
39
  rows[name] = {
@@ -1,5 +1,5 @@
1
1
  import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
2
- import type { SampleInfo } from '../types';
2
+ import type { SampleInfo } from '../shared/types';
3
3
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
4
  import type { Region } from '@jbrowse/core/util';
5
5
  export declare class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenameRegions {
@@ -7,7 +7,7 @@ exports.MultiVariantGetSimplifiedFeatures = void 0;
7
7
  const dataAdapterCache_1 = require("@jbrowse/core/data_adapters/dataAdapterCache");
8
8
  const RpcMethodTypeWithFiltersAndRenameRegions_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions"));
9
9
  const rxjs_1 = require("rxjs");
10
- const util_1 = require("../util");
10
+ const minorAlleleFrequencyUtils_1 = require("../shared/minorAlleleFrequencyUtils");
11
11
  class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenameRegions_1.default {
12
12
  constructor() {
13
13
  super(...arguments);
@@ -22,11 +22,11 @@ class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenam
22
22
  const feats = await (0, rxjs_1.firstValueFrom)(dataAdapter
23
23
  .getFeaturesInMultipleRegions(regions, deserializedArgs)
24
24
  .pipe((0, rxjs_1.toArray)()));
25
- const features = (0, util_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(feats, minorAlleleFrequencyFilter);
25
+ const features = (0, minorAlleleFrequencyUtils_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(feats, minorAlleleFrequencyFilter);
26
26
  const sampleInfo = {};
27
27
  let hasPhased = false;
28
- for (const f of features) {
29
- const samp = f.get('genotypes');
28
+ for (const { feature } of features) {
29
+ const samp = feature.get('genotypes');
30
30
  for (const [key, val] of Object.entries(samp)) {
31
31
  const isPhased = val.includes('|');
32
32
  hasPhased || (hasPhased = isPhased);
@@ -39,12 +39,12 @@ class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenam
39
39
  return {
40
40
  hasPhased,
41
41
  sampleInfo,
42
- features: features.map(f => ({
43
- id: f.id(),
42
+ features: features.map(({ feature }) => ({
43
+ id: feature.id(),
44
44
  data: {
45
- start: f.get('start'),
46
- end: f.get('end'),
47
- refName: f.get('refName'),
45
+ start: feature.get('start'),
46
+ end: feature.get('end'),
47
+ refName: feature.get('refName'),
48
48
  },
49
49
  })),
50
50
  };