@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.
- package/dist/MultiLinearVariantDisplay/components/Crosshair.js +1 -1
- package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +1 -1
- package/dist/MultiLinearVariantDisplay/model.d.ts +7 -7
- package/dist/MultiLinearVariantDisplay/renderSvg.js +1 -1
- package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.js +1 -1
- package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +1 -1
- package/dist/MultiLinearVariantMatrixDisplay/model.d.ts +7 -7
- package/dist/MultiLinearVariantMatrixDisplay/renderSvg.js +1 -1
- package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +5 -5
- package/dist/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +6 -3
- package/dist/MultiLinearVariantMatrixRenderer/makeImageData.js +58 -67
- package/dist/MultiLinearVariantMatrixRenderer/types.d.ts +2 -1
- package/dist/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +1 -1
- package/dist/MultiLinearVariantRenderer/components/MultiVariantRendering.d.ts +22 -0
- package/dist/MultiLinearVariantRenderer/components/MultiVariantRendering.js +52 -0
- package/dist/MultiLinearVariantRenderer/index.js +1 -1
- package/dist/MultiLinearVariantRenderer/makeImageData.js +13 -21
- package/dist/MultiLinearVariantRenderer/types.d.ts +1 -1
- package/dist/MultiVariantBaseRenderer.d.ts +5 -5
- package/dist/VariantRPC/MultiVariantGetGenotypeMatrix.js +4 -4
- package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +1 -1
- package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.js +9 -9
- package/dist/VcfTabixAdapter/VcfTabixAdapter.d.ts +6 -3
- package/dist/VcfTabixAdapter/VcfTabixAdapter.js +13 -13
- package/dist/getMultiVariantFeaturesAutorun.d.ts +1 -1
- package/dist/getMultiVariantSourcesAutorun.d.ts +1 -1
- package/dist/shared/MultiVariantBaseModel.d.ts +1 -1
- package/dist/shared/MultiVariantBaseModel.js +4 -4
- package/dist/shared/{SourcesGridHeader.js → components/SourcesGridHeader.js} +5 -5
- package/dist/shared/constants.d.ts +2 -0
- package/dist/shared/constants.js +5 -0
- package/dist/shared/drawAlleleCount.d.ts +1 -0
- package/dist/shared/{multiVariantColor.js → drawAlleleCount.js} +7 -14
- package/dist/shared/drawPhased.d.ts +1 -0
- package/dist/shared/drawPhased.js +21 -0
- package/dist/shared/findSecondLargestNumber.d.ts +0 -0
- package/dist/shared/findSecondLargestNumber.js +1 -0
- package/dist/shared/minorAlleleFrequencyUtils.d.ts +11 -0
- package/dist/shared/minorAlleleFrequencyUtils.js +62 -0
- package/dist/shared/sourcesGridUtils.d.ts +10 -0
- package/dist/shared/sourcesGridUtils.js +32 -0
- package/dist/shared/util.d.ts +3 -10
- package/dist/shared/util.js +23 -26
- package/dist/util.d.ts +0 -8
- package/dist/util.js +0 -85
- package/esm/MultiLinearVariantDisplay/components/Crosshair.js +1 -1
- package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +1 -1
- package/esm/MultiLinearVariantDisplay/model.d.ts +7 -7
- package/esm/MultiLinearVariantDisplay/renderSvg.js +1 -1
- package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.js +1 -1
- package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +1 -1
- package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +7 -7
- package/esm/MultiLinearVariantMatrixDisplay/renderSvg.js +1 -1
- package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +5 -5
- package/esm/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +6 -3
- package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +56 -65
- package/esm/MultiLinearVariantMatrixRenderer/types.d.ts +2 -1
- package/esm/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +1 -1
- package/esm/MultiLinearVariantRenderer/components/MultiVariantRendering.d.ts +22 -0
- package/esm/MultiLinearVariantRenderer/components/MultiVariantRendering.js +47 -0
- package/esm/MultiLinearVariantRenderer/index.js +1 -1
- package/esm/MultiLinearVariantRenderer/makeImageData.js +6 -14
- package/esm/MultiLinearVariantRenderer/types.d.ts +1 -1
- package/esm/MultiVariantBaseRenderer.d.ts +5 -5
- package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.js +3 -3
- package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +1 -1
- package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.js +8 -8
- package/esm/VcfTabixAdapter/VcfTabixAdapter.d.ts +6 -3
- package/esm/VcfTabixAdapter/VcfTabixAdapter.js +13 -13
- package/esm/getMultiVariantFeaturesAutorun.d.ts +1 -1
- package/esm/getMultiVariantSourcesAutorun.d.ts +1 -1
- package/esm/shared/MultiVariantBaseModel.d.ts +1 -1
- package/esm/shared/MultiVariantBaseModel.js +4 -4
- package/esm/shared/{SourcesGridHeader.js → components/SourcesGridHeader.js} +1 -1
- package/esm/shared/constants.d.ts +2 -0
- package/esm/shared/constants.js +2 -0
- package/esm/shared/drawAlleleCount.d.ts +1 -0
- package/esm/shared/{multiVariantColor.js → drawAlleleCount.js} +6 -11
- package/esm/shared/drawPhased.d.ts +1 -0
- package/esm/shared/drawPhased.js +18 -0
- package/esm/shared/findSecondLargestNumber.d.ts +0 -0
- package/esm/shared/findSecondLargestNumber.js +1 -0
- package/esm/shared/minorAlleleFrequencyUtils.d.ts +11 -0
- package/esm/shared/minorAlleleFrequencyUtils.js +56 -0
- package/esm/shared/sourcesGridUtils.d.ts +10 -0
- package/esm/shared/sourcesGridUtils.js +28 -0
- package/esm/shared/util.d.ts +3 -10
- package/esm/shared/util.js +20 -24
- package/esm/util.d.ts +0 -8
- package/esm/util.js +1 -77
- package/package.json +7 -7
- package/dist/shared/multiVariantColor.d.ts +0 -3
- package/esm/shared/multiVariantColor.d.ts +0 -3
- /package/dist/shared/{BulkEditPanel.d.ts → components/BulkEditPanel.d.ts} +0 -0
- /package/dist/shared/{BulkEditPanel.js → components/BulkEditPanel.js} +0 -0
- /package/dist/shared/{ClusterDialog.d.ts → components/ClusterDialog.d.ts} +0 -0
- /package/dist/shared/{ClusterDialog.js → components/ClusterDialog.js} +0 -0
- /package/dist/shared/{ColorLegend.d.ts → components/ColorLegend.d.ts} +0 -0
- /package/dist/shared/{ColorLegend.js → components/ColorLegend.js} +0 -0
- /package/dist/shared/{HelpfulTips.d.ts → components/HelpfulTips.d.ts} +0 -0
- /package/dist/shared/{HelpfulTips.js → components/HelpfulTips.js} +0 -0
- /package/dist/shared/{LegendBar.d.ts → components/LegendBar.d.ts} +0 -0
- /package/dist/shared/{LegendBar.js → components/LegendBar.js} +0 -0
- /package/dist/shared/{MAFFilterDialog.d.ts → components/MAFFilterDialog.d.ts} +0 -0
- /package/dist/shared/{MAFFilterDialog.js → components/MAFFilterDialog.js} +0 -0
- /package/dist/shared/{MultiVariantTooltip.d.ts → components/MultiVariantTooltip.d.ts} +0 -0
- /package/dist/shared/{MultiVariantTooltip.js → components/MultiVariantTooltip.js} +0 -0
- /package/dist/shared/{RectBg.d.ts → components/RectBg.d.ts} +0 -0
- /package/dist/shared/{RectBg.js → components/RectBg.js} +0 -0
- /package/dist/shared/{RowPalettizer.d.ts → components/RowPalettizer.d.ts} +0 -0
- /package/dist/shared/{RowPalettizer.js → components/RowPalettizer.js} +0 -0
- /package/dist/shared/{SetColorDialog.d.ts → components/SetColorDialog.d.ts} +0 -0
- /package/dist/shared/{SetColorDialog.js → components/SetColorDialog.js} +0 -0
- /package/dist/shared/{SetMinMaxDialog.d.ts → components/SetMinMaxDialog.d.ts} +0 -0
- /package/dist/shared/{SetMinMaxDialog.js → components/SetMinMaxDialog.js} +0 -0
- /package/dist/shared/{SetRowHeightDialog.d.ts → components/SetRowHeightDialog.d.ts} +0 -0
- /package/dist/shared/{SetRowHeightDialog.js → components/SetRowHeightDialog.js} +0 -0
- /package/dist/shared/{SourcesDataGrid.d.ts → components/SourcesDataGrid.d.ts} +0 -0
- /package/dist/shared/{SourcesDataGrid.js → components/SourcesDataGrid.js} +0 -0
- /package/dist/shared/{SourcesGrid.d.ts → components/SourcesGrid.d.ts} +0 -0
- /package/dist/shared/{SourcesGrid.js → components/SourcesGrid.js} +0 -0
- /package/dist/shared/{SourcesGridHeader.d.ts → components/SourcesGridHeader.d.ts} +0 -0
- /package/dist/{types.d.ts → shared/types.d.ts} +0 -0
- /package/dist/{types.js → shared/types.js} +0 -0
- /package/esm/shared/{BulkEditPanel.d.ts → components/BulkEditPanel.d.ts} +0 -0
- /package/esm/shared/{BulkEditPanel.js → components/BulkEditPanel.js} +0 -0
- /package/esm/shared/{ClusterDialog.d.ts → components/ClusterDialog.d.ts} +0 -0
- /package/esm/shared/{ClusterDialog.js → components/ClusterDialog.js} +0 -0
- /package/esm/shared/{ColorLegend.d.ts → components/ColorLegend.d.ts} +0 -0
- /package/esm/shared/{ColorLegend.js → components/ColorLegend.js} +0 -0
- /package/esm/shared/{HelpfulTips.d.ts → components/HelpfulTips.d.ts} +0 -0
- /package/esm/shared/{HelpfulTips.js → components/HelpfulTips.js} +0 -0
- /package/esm/shared/{LegendBar.d.ts → components/LegendBar.d.ts} +0 -0
- /package/esm/shared/{LegendBar.js → components/LegendBar.js} +0 -0
- /package/esm/shared/{MAFFilterDialog.d.ts → components/MAFFilterDialog.d.ts} +0 -0
- /package/esm/shared/{MAFFilterDialog.js → components/MAFFilterDialog.js} +0 -0
- /package/esm/shared/{MultiVariantTooltip.d.ts → components/MultiVariantTooltip.d.ts} +0 -0
- /package/esm/shared/{MultiVariantTooltip.js → components/MultiVariantTooltip.js} +0 -0
- /package/esm/shared/{RectBg.d.ts → components/RectBg.d.ts} +0 -0
- /package/esm/shared/{RectBg.js → components/RectBg.js} +0 -0
- /package/esm/shared/{RowPalettizer.d.ts → components/RowPalettizer.d.ts} +0 -0
- /package/esm/shared/{RowPalettizer.js → components/RowPalettizer.js} +0 -0
- /package/esm/shared/{SetColorDialog.d.ts → components/SetColorDialog.d.ts} +0 -0
- /package/esm/shared/{SetColorDialog.js → components/SetColorDialog.js} +0 -0
- /package/esm/shared/{SetMinMaxDialog.d.ts → components/SetMinMaxDialog.d.ts} +0 -0
- /package/esm/shared/{SetMinMaxDialog.js → components/SetMinMaxDialog.js} +0 -0
- /package/esm/shared/{SetRowHeightDialog.d.ts → components/SetRowHeightDialog.d.ts} +0 -0
- /package/esm/shared/{SetRowHeightDialog.js → components/SetRowHeightDialog.js} +0 -0
- /package/esm/shared/{SourcesDataGrid.d.ts → components/SourcesDataGrid.d.ts} +0 -0
- /package/esm/shared/{SourcesDataGrid.js → components/SourcesDataGrid.js} +0 -0
- /package/esm/shared/{SourcesGrid.d.ts → components/SourcesGrid.d.ts} +0 -0
- /package/esm/shared/{SourcesGrid.js → components/SourcesGrid.js} +0 -0
- /package/esm/shared/{SourcesGridHeader.d.ts → components/SourcesGridHeader.d.ts} +0 -0
- /package/esm/{types.d.ts → shared/types.d.ts} +0 -0
- /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((
|
|
75
|
-
id:
|
|
74
|
+
simplifiedFeatures: mafs.map(({ feature }) => new util_1.SimpleFeature({
|
|
75
|
+
id: feature.id(),
|
|
76
76
|
data: {
|
|
77
|
-
start:
|
|
78
|
-
end:
|
|
79
|
-
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:
|
|
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
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
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,
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
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
|
|
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
|
-
|
|
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
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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,
|
|
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
|
|
36
|
-
const samp =
|
|
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
|
|
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,
|
|
25
|
+
const features = (0, minorAlleleFrequencyUtils_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(feats, minorAlleleFrequencyFilter);
|
|
26
26
|
const sampleInfo = {};
|
|
27
27
|
let hasPhased = false;
|
|
28
|
-
for (const
|
|
29
|
-
const samp =
|
|
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(
|
|
43
|
-
id:
|
|
42
|
+
features: features.map(({ feature }) => ({
|
|
43
|
+
id: feature.id(),
|
|
44
44
|
data: {
|
|
45
|
-
start:
|
|
46
|
-
end:
|
|
47
|
-
refName:
|
|
45
|
+
start: feature.get('start'),
|
|
46
|
+
end: feature.get('end'),
|
|
47
|
+
refName: feature.get('refName'),
|
|
48
48
|
},
|
|
49
49
|
})),
|
|
50
50
|
};
|