@jbrowse/plugin-wiggle 2.16.1 → 2.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BigWigAdapter/BigWigAdapter.d.ts +4 -3
- package/dist/BigWigAdapter/BigWigAdapter.js +3 -8
- package/dist/BigWigAdapter/configSchema.d.ts +0 -9
- package/dist/BigWigAdapter/configSchema.js +1 -13
- package/dist/BigWigAdapter/index.d.ts +1 -1
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +1 -1
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +2 -2
- package/dist/CreateMultiWiggleExtension/index.d.ts +1 -1
- package/dist/CreateMultiWiggleExtension/index.js +26 -26
- package/dist/DensityRenderer/DensityRenderer.d.ts +2 -1
- package/dist/DensityRenderer/DensityRenderer.js +1 -1
- package/dist/DensityRenderer/configSchema.js +1 -7
- package/dist/DensityRenderer/index.d.ts +1 -1
- package/dist/DensityRenderer/index.js +1 -1
- package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +3 -2
- package/dist/LinePlotRenderer/LinePlotRenderer.js +1 -1
- package/dist/LinePlotRenderer/configSchema.d.ts +0 -3
- package/dist/LinePlotRenderer/configSchema.js +1 -10
- package/dist/LinePlotRenderer/index.d.ts +1 -1
- package/dist/LinearWiggleDisplay/components/SetColorDialog.js +2 -2
- package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
- package/dist/LinearWiggleDisplay/components/Tooltip.js +1 -2
- package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
- package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
- package/dist/LinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +1 -12
- package/dist/LinearWiggleDisplay/{models/configSchema.js → configSchema.js} +2 -17
- package/dist/LinearWiggleDisplay/index.d.ts +2 -2
- package/dist/LinearWiggleDisplay/index.js +4 -4
- package/{esm/LinearWiggleDisplay/models → dist/LinearWiggleDisplay}/model.d.ts +21 -63
- package/dist/LinearWiggleDisplay/{models/model.js → model.js} +66 -80
- package/dist/LinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +2 -2
- package/dist/LinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +2 -2
- package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +4 -3
- package/dist/MultiDensityRenderer/MultiDensityRenderer.js +2 -3
- package/dist/MultiDensityRenderer/configSchema.js +1 -7
- package/dist/MultiDensityRenderer/index.d.ts +1 -1
- package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +3 -2
- package/dist/MultiLineRenderer/MultiLineRenderer.js +1 -2
- package/dist/MultiLineRenderer/configSchema.d.ts +0 -6
- package/dist/MultiLineRenderer/configSchema.js +1 -13
- package/dist/MultiLineRenderer/index.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/ColorLegend.js +0 -1
- package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/DraggableDialog.js +3 -7
- package/dist/MultiLinearWiggleDisplay/components/RectBg.js +1 -1
- package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +3 -5
- package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.js +15 -26
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +3 -3
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +1 -2
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/YScaleBars.js +1 -1
- package/dist/MultiLinearWiggleDisplay/components/util.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/components/util.js +1 -1
- package/dist/MultiLinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +1 -10
- package/dist/MultiLinearWiggleDisplay/{models/configSchema.js → configSchema.js} +3 -21
- package/dist/MultiLinearWiggleDisplay/index.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/index.js +3 -3
- package/dist/MultiLinearWiggleDisplay/{models/model.d.ts → model.d.ts} +25 -129
- package/dist/MultiLinearWiggleDisplay/{models/model.js → model.js} +108 -183
- package/dist/MultiLinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +2 -2
- package/dist/MultiLinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +2 -2
- package/dist/MultiQuantitativeTrack/configSchema.d.ts +1 -1
- package/dist/MultiQuantitativeTrack/configSchema.js +1 -7
- package/dist/MultiQuantitativeTrack/index.d.ts +1 -1
- package/dist/MultiQuantitativeTrack/index.js +1 -1
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +3 -2
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +1 -2
- package/dist/MultiRowLineRenderer/configSchema.d.ts +0 -6
- package/dist/MultiRowLineRenderer/configSchema.js +2 -14
- package/dist/MultiRowLineRenderer/index.d.ts +1 -1
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +3 -2
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +1 -2
- package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +0 -12
- package/dist/MultiRowXYPlotRenderer/configSchema.js +3 -21
- package/dist/MultiRowXYPlotRenderer/index.d.ts +1 -1
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +5 -4
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +12 -15
- package/dist/MultiWiggleAdapter/configSchema.d.ts +0 -6
- package/dist/MultiWiggleAdapter/configSchema.js +1 -10
- package/dist/MultiWiggleAdapter/index.d.ts +1 -1
- package/dist/MultiWiggleAdapter/index.js +1 -1
- package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +1 -1
- package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +2 -4
- package/dist/MultiWiggleAddTrackWorkflow/index.d.ts +1 -1
- package/dist/MultiWiggleAddTrackWorkflow/index.js +1 -2
- package/dist/MultiWiggleRendering.d.ts +3 -3
- package/dist/MultiWiggleRendering.js +2 -2
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +3 -2
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +1 -2
- package/dist/MultiXYPlotRenderer/configSchema.d.ts +0 -12
- package/dist/MultiXYPlotRenderer/configSchema.js +2 -20
- package/dist/MultiXYPlotRenderer/index.d.ts +1 -1
- package/dist/QuantitativeTrack/configSchema.d.ts +1 -1
- package/dist/QuantitativeTrack/configSchema.js +1 -7
- package/dist/QuantitativeTrack/index.d.ts +1 -1
- package/dist/QuantitativeTrack/index.js +1 -1
- package/dist/Tooltip.d.ts +1 -1
- package/dist/Tooltip.js +1 -2
- package/dist/WiggleBaseRenderer.d.ts +6 -9
- package/dist/WiggleBaseRenderer.js +0 -1
- package/dist/WiggleRPC/MultiWiggleGetSources.d.ts +5 -12
- package/dist/WiggleRPC/MultiWiggleGetSources.js +2 -29
- package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.d.ts +5 -7
- package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +2 -15
- package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +4 -11
- package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +2 -29
- package/dist/WiggleRendering.d.ts +2 -2
- package/dist/WiggleRendering.js +1 -3
- package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +3 -2
- package/dist/XYPlotRenderer/XYPlotRenderer.js +3 -5
- package/dist/XYPlotRenderer/configSchema.d.ts +0 -12
- package/dist/XYPlotRenderer/configSchema.js +3 -21
- package/dist/XYPlotRenderer/index.d.ts +1 -1
- package/dist/configSchema.d.ts +0 -18
- package/dist/configSchema.js +1 -23
- package/dist/drawDensity.d.ts +3 -3
- package/dist/drawDensity.js +0 -4
- package/dist/drawLine.d.ts +3 -3
- package/dist/drawLine.js +0 -5
- package/dist/drawXY.d.ts +4 -3
- package/dist/drawXY.js +28 -12
- package/dist/getMultiWiggleSourcesAutorun.d.ts +17 -0
- package/dist/getMultiWiggleSourcesAutorun.js +38 -0
- package/dist/getQuantitativeStats.d.ts +13 -0
- package/dist/getQuantitativeStats.js +70 -0
- package/dist/getQuantitativeStatsAutorun.d.ts +13 -0
- package/dist/getQuantitativeStatsAutorun.js +35 -0
- package/dist/index.d.ts +6 -6
- package/dist/index.js +21 -24
- package/dist/shared/SetMinMaxDialog.js +1 -1
- package/{esm/shared/configShared.d.ts → dist/shared/SharedWiggleConfigSchema.d.ts} +0 -26
- package/dist/shared/{configShared.js → SharedWiggleConfigSchema.js} +1 -30
- package/{esm/shared/modelShared.d.ts → dist/shared/SharedWiggleMixin.d.ts} +22 -213
- package/dist/shared/{modelShared.js → SharedWiggleMixin.js} +15 -174
- package/dist/util.d.ts +1 -53
- package/dist/util.js +1 -141
- package/esm/BigWigAdapter/BigWigAdapter.d.ts +4 -3
- package/esm/BigWigAdapter/BigWigAdapter.js +5 -10
- package/esm/BigWigAdapter/configSchema.d.ts +0 -9
- package/esm/BigWigAdapter/configSchema.js +1 -13
- package/esm/BigWigAdapter/index.d.ts +1 -1
- package/esm/CreateMultiWiggleExtension/ConfirmDialog.d.ts +1 -1
- package/esm/CreateMultiWiggleExtension/ConfirmDialog.js +2 -2
- package/esm/CreateMultiWiggleExtension/index.d.ts +1 -1
- package/esm/CreateMultiWiggleExtension/index.js +26 -26
- package/esm/DensityRenderer/DensityRenderer.d.ts +2 -1
- package/esm/DensityRenderer/DensityRenderer.js +1 -1
- package/esm/DensityRenderer/configSchema.js +1 -7
- package/esm/DensityRenderer/index.d.ts +1 -1
- package/esm/DensityRenderer/index.js +1 -1
- package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +3 -2
- package/esm/LinePlotRenderer/LinePlotRenderer.js +1 -1
- package/esm/LinePlotRenderer/configSchema.d.ts +0 -3
- package/esm/LinePlotRenderer/configSchema.js +1 -10
- package/esm/LinePlotRenderer/index.d.ts +1 -1
- package/esm/LinearWiggleDisplay/components/SetColorDialog.js +2 -2
- package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
- package/esm/LinearWiggleDisplay/components/Tooltip.js +1 -2
- package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
- package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +3 -3
- package/esm/LinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +1 -12
- package/esm/LinearWiggleDisplay/{models/configSchema.js → configSchema.js} +1 -16
- package/esm/LinearWiggleDisplay/index.d.ts +2 -2
- package/esm/LinearWiggleDisplay/index.js +4 -4
- package/{dist/LinearWiggleDisplay/models → esm/LinearWiggleDisplay}/model.d.ts +21 -63
- package/esm/LinearWiggleDisplay/{models/model.js → model.js} +67 -81
- package/esm/LinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +2 -2
- package/esm/LinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +2 -2
- package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +4 -3
- package/esm/MultiDensityRenderer/MultiDensityRenderer.js +1 -2
- package/esm/MultiDensityRenderer/configSchema.js +1 -7
- package/esm/MultiDensityRenderer/index.d.ts +1 -1
- package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +3 -2
- package/esm/MultiLineRenderer/MultiLineRenderer.js +1 -2
- package/esm/MultiLineRenderer/configSchema.d.ts +0 -6
- package/esm/MultiLineRenderer/configSchema.js +1 -13
- package/esm/MultiLineRenderer/index.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/ColorLegend.js +0 -1
- package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/DraggableDialog.js +4 -8
- package/esm/MultiLinearWiggleDisplay/components/RectBg.js +1 -1
- package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.js +1 -1
- package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +4 -6
- package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.js +16 -27
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +3 -3
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +1 -2
- package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/YScaleBars.js +2 -2
- package/esm/MultiLinearWiggleDisplay/components/util.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/util.js +1 -1
- package/esm/MultiLinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +1 -10
- package/esm/MultiLinearWiggleDisplay/{models/configSchema.js → configSchema.js} +2 -20
- package/esm/MultiLinearWiggleDisplay/index.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/index.js +3 -3
- package/esm/MultiLinearWiggleDisplay/{models/model.d.ts → model.d.ts} +25 -129
- package/esm/MultiLinearWiggleDisplay/{models/model.js → model.js} +108 -183
- package/esm/MultiLinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +2 -2
- package/esm/MultiLinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +2 -2
- package/esm/MultiQuantitativeTrack/configSchema.d.ts +1 -1
- package/esm/MultiQuantitativeTrack/configSchema.js +1 -7
- package/esm/MultiQuantitativeTrack/index.d.ts +1 -1
- package/esm/MultiQuantitativeTrack/index.js +1 -1
- package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +3 -2
- package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +1 -2
- package/esm/MultiRowLineRenderer/configSchema.d.ts +0 -6
- package/esm/MultiRowLineRenderer/configSchema.js +2 -14
- package/esm/MultiRowLineRenderer/index.d.ts +1 -1
- package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +3 -2
- package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +1 -2
- package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +0 -12
- package/esm/MultiRowXYPlotRenderer/configSchema.js +3 -21
- package/esm/MultiRowXYPlotRenderer/index.d.ts +1 -1
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +5 -4
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +13 -16
- package/esm/MultiWiggleAdapter/configSchema.d.ts +0 -6
- package/esm/MultiWiggleAdapter/configSchema.js +1 -10
- package/esm/MultiWiggleAdapter/index.d.ts +1 -1
- package/esm/MultiWiggleAdapter/index.js +1 -1
- package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +1 -1
- package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +2 -4
- package/esm/MultiWiggleAddTrackWorkflow/index.d.ts +1 -1
- package/esm/MultiWiggleAddTrackWorkflow/index.js +1 -2
- package/esm/MultiWiggleRendering.d.ts +3 -3
- package/esm/MultiWiggleRendering.js +2 -2
- package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +3 -2
- package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +1 -2
- package/esm/MultiXYPlotRenderer/configSchema.d.ts +0 -12
- package/esm/MultiXYPlotRenderer/configSchema.js +2 -20
- package/esm/MultiXYPlotRenderer/index.d.ts +1 -1
- package/esm/QuantitativeTrack/configSchema.d.ts +1 -1
- package/esm/QuantitativeTrack/configSchema.js +1 -7
- package/esm/QuantitativeTrack/index.d.ts +1 -1
- package/esm/QuantitativeTrack/index.js +1 -1
- package/esm/Tooltip.d.ts +1 -1
- package/esm/Tooltip.js +1 -2
- package/esm/WiggleBaseRenderer.d.ts +6 -9
- package/esm/WiggleBaseRenderer.js +0 -1
- package/esm/WiggleRPC/MultiWiggleGetSources.d.ts +5 -12
- package/esm/WiggleRPC/MultiWiggleGetSources.js +2 -29
- package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.d.ts +5 -7
- package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +2 -15
- package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +4 -11
- package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +2 -29
- package/esm/WiggleRendering.d.ts +2 -2
- package/esm/WiggleRendering.js +1 -3
- package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +3 -2
- package/esm/XYPlotRenderer/XYPlotRenderer.js +3 -5
- package/esm/XYPlotRenderer/configSchema.d.ts +0 -12
- package/esm/XYPlotRenderer/configSchema.js +3 -21
- package/esm/XYPlotRenderer/index.d.ts +1 -1
- package/esm/configSchema.d.ts +0 -18
- package/esm/configSchema.js +1 -23
- package/esm/drawDensity.d.ts +3 -3
- package/esm/drawDensity.js +1 -5
- package/esm/drawLine.d.ts +3 -3
- package/esm/drawLine.js +1 -6
- package/esm/drawXY.d.ts +4 -3
- package/esm/drawXY.js +29 -13
- package/esm/getMultiWiggleSourcesAutorun.d.ts +17 -0
- package/esm/getMultiWiggleSourcesAutorun.js +35 -0
- package/esm/getQuantitativeStats.d.ts +13 -0
- package/esm/getQuantitativeStats.js +67 -0
- package/esm/getQuantitativeStatsAutorun.d.ts +13 -0
- package/esm/getQuantitativeStatsAutorun.js +32 -0
- package/esm/index.d.ts +6 -6
- package/esm/index.js +13 -16
- package/esm/shared/SetMinMaxDialog.js +1 -1
- package/{dist/shared/configShared.d.ts → esm/shared/SharedWiggleConfigSchema.d.ts} +0 -26
- package/esm/shared/{configShared.js → SharedWiggleConfigSchema.js} +1 -30
- package/{dist/shared/modelShared.d.ts → esm/shared/SharedWiggleMixin.d.ts} +22 -213
- package/esm/shared/{modelShared.js → SharedWiggleMixin.js} +16 -175
- package/esm/util.d.ts +1 -53
- package/esm/util.js +1 -139
- package/package.json +2 -4
|
@@ -24,79 +24,33 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.default = SharedWiggleMixin;
|
|
27
|
+
const react_1 = require("react");
|
|
27
28
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
28
29
|
const util_1 = require("@jbrowse/core/util");
|
|
30
|
+
const stopToken_1 = require("@jbrowse/core/util/stopToken");
|
|
29
31
|
const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
|
|
30
32
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
31
|
-
// locals
|
|
32
33
|
const util_2 = require("../util");
|
|
33
|
-
const react_1 = require("react");
|
|
34
|
-
// lazies
|
|
35
34
|
const SetMinMaxDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SetMinMaxDialog'))));
|
|
36
|
-
/**
|
|
37
|
-
* #stateModel SharedWiggleMixin
|
|
38
|
-
*/
|
|
39
35
|
function SharedWiggleMixin(configSchema) {
|
|
40
36
|
return mobx_state_tree_1.types
|
|
41
37
|
.compose(plugin_linear_genome_view_1.BaseLinearDisplay, mobx_state_tree_1.types.model({
|
|
42
|
-
/**
|
|
43
|
-
* #property
|
|
44
|
-
*/
|
|
45
38
|
selectedRendering: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.string, ''),
|
|
46
|
-
/**
|
|
47
|
-
* #property
|
|
48
|
-
*/
|
|
49
39
|
resolution: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.number, 1),
|
|
50
|
-
/**
|
|
51
|
-
* #property
|
|
52
|
-
*/
|
|
53
40
|
fill: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
|
|
54
|
-
/**
|
|
55
|
-
* #property
|
|
56
|
-
*/
|
|
57
41
|
minSize: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
58
|
-
/**
|
|
59
|
-
* #property
|
|
60
|
-
*/
|
|
61
42
|
color: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
62
|
-
/**
|
|
63
|
-
* #property
|
|
64
|
-
*/
|
|
65
43
|
posColor: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
66
|
-
/**
|
|
67
|
-
* #property
|
|
68
|
-
*/
|
|
69
44
|
negColor: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
70
|
-
/**
|
|
71
|
-
* #property
|
|
72
|
-
*/
|
|
73
45
|
summaryScoreMode: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
74
|
-
/**
|
|
75
|
-
* #property
|
|
76
|
-
*/
|
|
77
46
|
rendererTypeNameState: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
78
|
-
/**
|
|
79
|
-
* #property
|
|
80
|
-
*/
|
|
81
47
|
scale: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
82
|
-
/**
|
|
83
|
-
* #property
|
|
84
|
-
*/
|
|
85
48
|
autoscale: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
|
|
86
|
-
/**
|
|
87
|
-
* #property
|
|
88
|
-
*/
|
|
89
49
|
displayCrossHatches: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.boolean),
|
|
90
|
-
/**
|
|
91
|
-
* #property
|
|
92
|
-
*/
|
|
93
50
|
constraints: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.model({
|
|
94
51
|
max: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
95
52
|
min: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
96
53
|
}), {}),
|
|
97
|
-
/**
|
|
98
|
-
* #property
|
|
99
|
-
*/
|
|
100
54
|
configuration: (0, configuration_1.ConfigurationReference)(configSchema),
|
|
101
55
|
}))
|
|
102
56
|
.volatile(() => ({
|
|
@@ -105,69 +59,43 @@ function SharedWiggleMixin(configSchema) {
|
|
|
105
59
|
statsFetchInProgress: undefined,
|
|
106
60
|
}))
|
|
107
61
|
.actions(self => ({
|
|
108
|
-
/**
|
|
109
|
-
* #action
|
|
110
|
-
*/
|
|
111
62
|
updateQuantitativeStats(stats) {
|
|
112
|
-
const { scoreMin, scoreMax } = stats;
|
|
63
|
+
const { currStatsBpPerPx, scoreMin, scoreMax } = stats;
|
|
113
64
|
const EPSILON = 0.000001;
|
|
114
|
-
if (!self.stats
|
|
115
|
-
self.stats
|
|
116
|
-
}
|
|
117
|
-
else if (Math.abs(self.stats.scoreMax - scoreMax) > EPSILON ||
|
|
65
|
+
if (!self.stats ||
|
|
66
|
+
Math.abs(self.stats.scoreMax - scoreMax) > EPSILON ||
|
|
118
67
|
Math.abs(self.stats.scoreMin - scoreMin) > EPSILON) {
|
|
119
|
-
self.stats = {
|
|
68
|
+
self.stats = {
|
|
69
|
+
currStatsBpPerPx,
|
|
70
|
+
scoreMin,
|
|
71
|
+
scoreMax,
|
|
72
|
+
};
|
|
120
73
|
}
|
|
121
74
|
},
|
|
122
|
-
/**
|
|
123
|
-
* #action
|
|
124
|
-
*/
|
|
125
75
|
setColor(color) {
|
|
126
76
|
self.color = color;
|
|
127
77
|
},
|
|
128
|
-
/**
|
|
129
|
-
* #action
|
|
130
|
-
*/
|
|
131
78
|
setPosColor(color) {
|
|
132
79
|
self.posColor = color;
|
|
133
80
|
},
|
|
134
|
-
/**
|
|
135
|
-
* #action
|
|
136
|
-
*/
|
|
137
81
|
setNegColor(color) {
|
|
138
82
|
self.negColor = color;
|
|
139
83
|
},
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
setLoading(aborter) {
|
|
144
|
-
const { statsFetchInProgress: statsFetch } = self;
|
|
145
|
-
if (statsFetch !== undefined && !statsFetch.signal.aborted) {
|
|
146
|
-
statsFetch.abort();
|
|
84
|
+
setStatsLoading(arg) {
|
|
85
|
+
if (self.statsFetchInProgress) {
|
|
86
|
+
(0, stopToken_1.stopStopToken)(self.statsFetchInProgress);
|
|
147
87
|
}
|
|
148
|
-
self.statsFetchInProgress =
|
|
149
|
-
},
|
|
150
|
-
/**
|
|
151
|
-
* #action
|
|
152
|
-
* this overrides the BaseLinearDisplayModel to avoid popping up a
|
|
153
|
-
* feature detail display, but still sets the feature selection on the
|
|
154
|
-
* model so listeners can detect a click
|
|
155
|
-
*/
|
|
88
|
+
self.statsFetchInProgress = arg;
|
|
89
|
+
},
|
|
156
90
|
selectFeature(feature) {
|
|
157
91
|
const session = (0, util_1.getSession)(self);
|
|
158
92
|
if ((0, util_1.isSelectionContainer)(session)) {
|
|
159
93
|
session.setSelection(feature);
|
|
160
94
|
}
|
|
161
95
|
},
|
|
162
|
-
/**
|
|
163
|
-
* #action
|
|
164
|
-
*/
|
|
165
96
|
setResolution(res) {
|
|
166
97
|
self.resolution = res;
|
|
167
98
|
},
|
|
168
|
-
/**
|
|
169
|
-
* #action
|
|
170
|
-
*/
|
|
171
99
|
setFill(fill) {
|
|
172
100
|
if (fill === 0) {
|
|
173
101
|
self.fill = true;
|
|
@@ -182,116 +110,64 @@ function SharedWiggleMixin(configSchema) {
|
|
|
182
110
|
self.minSize = 2;
|
|
183
111
|
}
|
|
184
112
|
},
|
|
185
|
-
/**
|
|
186
|
-
* #action
|
|
187
|
-
*/
|
|
188
113
|
toggleLogScale() {
|
|
189
114
|
self.scale = self.scale === 'log' ? 'linear' : 'log';
|
|
190
115
|
},
|
|
191
|
-
/**
|
|
192
|
-
* #action
|
|
193
|
-
*/
|
|
194
116
|
setScaleType(scale) {
|
|
195
117
|
self.scale = scale;
|
|
196
118
|
},
|
|
197
|
-
/**
|
|
198
|
-
* #action
|
|
199
|
-
*/
|
|
200
119
|
setSummaryScoreMode(val) {
|
|
201
120
|
self.summaryScoreMode = val;
|
|
202
121
|
},
|
|
203
|
-
/**
|
|
204
|
-
* #action
|
|
205
|
-
*/
|
|
206
122
|
setAutoscale(val) {
|
|
207
123
|
self.autoscale = val;
|
|
208
124
|
},
|
|
209
|
-
/**
|
|
210
|
-
* #action
|
|
211
|
-
*/
|
|
212
125
|
setMaxScore(val) {
|
|
213
126
|
self.constraints.max = val;
|
|
214
127
|
},
|
|
215
|
-
/**
|
|
216
|
-
* #action
|
|
217
|
-
*/
|
|
218
128
|
setRendererType(val) {
|
|
219
129
|
self.rendererTypeNameState = val;
|
|
220
130
|
},
|
|
221
|
-
/**
|
|
222
|
-
* #action
|
|
223
|
-
*/
|
|
224
131
|
setMinScore(val) {
|
|
225
132
|
self.constraints.min = val;
|
|
226
133
|
},
|
|
227
|
-
/**
|
|
228
|
-
* #action
|
|
229
|
-
*/
|
|
230
134
|
toggleCrossHatches() {
|
|
231
135
|
self.displayCrossHatches = !self.displayCrossHatches;
|
|
232
136
|
},
|
|
233
|
-
/**
|
|
234
|
-
* #action
|
|
235
|
-
*/
|
|
236
137
|
setCrossHatches(cross) {
|
|
237
138
|
self.displayCrossHatches = cross;
|
|
238
139
|
},
|
|
239
140
|
}))
|
|
240
141
|
.views(self => ({
|
|
241
|
-
/**
|
|
242
|
-
* #getter
|
|
243
|
-
*/
|
|
244
142
|
get adapterTypeName() {
|
|
245
143
|
return self.adapterConfig.type;
|
|
246
144
|
},
|
|
247
|
-
/**
|
|
248
|
-
* #getter
|
|
249
|
-
*/
|
|
250
145
|
get rendererTypeNameSimple() {
|
|
251
146
|
var _a;
|
|
252
147
|
return (_a = self.rendererTypeNameState) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'defaultRendering');
|
|
253
148
|
},
|
|
254
|
-
/**
|
|
255
|
-
* #getter
|
|
256
|
-
* subclasses can define these, as snpcoverage track does
|
|
257
|
-
*/
|
|
258
149
|
get filters() {
|
|
259
150
|
return undefined;
|
|
260
151
|
},
|
|
261
|
-
/**
|
|
262
|
-
* #getter
|
|
263
|
-
*/
|
|
264
152
|
get scaleType() {
|
|
265
153
|
var _a;
|
|
266
154
|
return (_a = self.scale) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'scaleType');
|
|
267
155
|
},
|
|
268
|
-
/**
|
|
269
|
-
* #getter
|
|
270
|
-
*/
|
|
271
156
|
get maxScore() {
|
|
272
157
|
var _a;
|
|
273
158
|
return (_a = self.constraints.max) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'maxScore');
|
|
274
159
|
},
|
|
275
|
-
/**
|
|
276
|
-
* #getter
|
|
277
|
-
*/
|
|
278
160
|
get minScore() {
|
|
279
161
|
var _a;
|
|
280
162
|
return (_a = self.constraints.min) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'minScore');
|
|
281
163
|
},
|
|
282
164
|
}))
|
|
283
165
|
.views(self => ({
|
|
284
|
-
/**
|
|
285
|
-
* #getter
|
|
286
|
-
*/
|
|
287
166
|
get adapterCapabilities() {
|
|
288
167
|
const type = self.adapterTypeName;
|
|
289
168
|
const { pluginManager } = (0, util_1.getEnv)(self);
|
|
290
169
|
return pluginManager.getAdapterType(type).adapterCapabilities;
|
|
291
170
|
},
|
|
292
|
-
/**
|
|
293
|
-
* #getter
|
|
294
|
-
*/
|
|
295
171
|
get rendererConfig() {
|
|
296
172
|
const { color, displayCrossHatches, fill, minSize, negColor, posColor, summaryScoreMode, scaleType, rendererTypeName, } = self;
|
|
297
173
|
const configBlob = (0, configuration_1.getConf)(self, ['renderers', rendererTypeName]) || {};
|
|
@@ -309,9 +185,6 @@ function SharedWiggleMixin(configSchema) {
|
|
|
309
185
|
...(minSize !== undefined ? { minSize } : {}),
|
|
310
186
|
}, (0, util_1.getEnv)(self));
|
|
311
187
|
},
|
|
312
|
-
/**
|
|
313
|
-
* #getter
|
|
314
|
-
*/
|
|
315
188
|
get autoscaleType() {
|
|
316
189
|
var _a;
|
|
317
190
|
return (_a = self.autoscale) !== null && _a !== void 0 ? _a : (0, configuration_1.getConf)(self, 'autoscale');
|
|
@@ -320,9 +193,6 @@ function SharedWiggleMixin(configSchema) {
|
|
|
320
193
|
.views(self => {
|
|
321
194
|
let oldDomain = [0, 0];
|
|
322
195
|
return {
|
|
323
|
-
/**
|
|
324
|
-
* #getter
|
|
325
|
-
*/
|
|
326
196
|
get domain() {
|
|
327
197
|
const { stats, scaleType, minScore, maxScore } = self;
|
|
328
198
|
if (!stats) {
|
|
@@ -333,11 +203,9 @@ function SharedWiggleMixin(configSchema) {
|
|
|
333
203
|
bounds: [minScore, maxScore],
|
|
334
204
|
scaleType,
|
|
335
205
|
});
|
|
336
|
-
// avoid weird scalebar if log value and empty region displayed
|
|
337
206
|
if (scaleType === 'log' && ret[1] === Number.MIN_VALUE) {
|
|
338
207
|
return [0, Number.MIN_VALUE];
|
|
339
208
|
}
|
|
340
|
-
// avoid returning a new object if it matches the old value
|
|
341
209
|
if (JSON.stringify(oldDomain) !== JSON.stringify(ret)) {
|
|
342
210
|
oldDomain = ret;
|
|
343
211
|
}
|
|
@@ -346,23 +214,14 @@ function SharedWiggleMixin(configSchema) {
|
|
|
346
214
|
};
|
|
347
215
|
})
|
|
348
216
|
.views(self => ({
|
|
349
|
-
/**
|
|
350
|
-
* #getter
|
|
351
|
-
*/
|
|
352
217
|
get filled() {
|
|
353
218
|
const { fill, rendererConfig } = self;
|
|
354
219
|
return fill !== null && fill !== void 0 ? fill : (0, configuration_1.readConfObject)(rendererConfig, 'filled');
|
|
355
220
|
},
|
|
356
|
-
/**
|
|
357
|
-
* #getter
|
|
358
|
-
*/
|
|
359
221
|
get summaryScoreModeSetting() {
|
|
360
222
|
const { summaryScoreMode: mode, rendererConfig } = self;
|
|
361
223
|
return mode !== null && mode !== void 0 ? mode : (0, configuration_1.readConfObject)(rendererConfig, 'summaryScoreMode');
|
|
362
224
|
},
|
|
363
|
-
/**
|
|
364
|
-
* #getter
|
|
365
|
-
*/
|
|
366
225
|
get scaleOpts() {
|
|
367
226
|
return {
|
|
368
227
|
domain: self.domain,
|
|
@@ -372,36 +231,21 @@ function SharedWiggleMixin(configSchema) {
|
|
|
372
231
|
inverted: (0, configuration_1.getConf)(self, 'inverted'),
|
|
373
232
|
};
|
|
374
233
|
},
|
|
375
|
-
/**
|
|
376
|
-
* #getter
|
|
377
|
-
*/
|
|
378
234
|
get canHaveFill() {
|
|
379
235
|
return self.rendererTypeName === 'XYPlotRenderer';
|
|
380
236
|
},
|
|
381
|
-
/**
|
|
382
|
-
* #getter
|
|
383
|
-
*/
|
|
384
237
|
get displayCrossHatchesSetting() {
|
|
385
238
|
const { displayCrossHatches: hatches, rendererConfig } = self;
|
|
386
239
|
return hatches !== null && hatches !== void 0 ? hatches : (0, configuration_1.readConfObject)(rendererConfig, 'displayCrossHatches');
|
|
387
240
|
},
|
|
388
|
-
/**
|
|
389
|
-
* #getter
|
|
390
|
-
*/
|
|
391
241
|
get hasResolution() {
|
|
392
242
|
return self.adapterCapabilities.includes('hasResolution');
|
|
393
243
|
},
|
|
394
|
-
/**
|
|
395
|
-
* #getter
|
|
396
|
-
*/
|
|
397
244
|
get hasGlobalStats() {
|
|
398
245
|
return self.adapterCapabilities.includes('hasGlobalStats');
|
|
399
246
|
},
|
|
400
247
|
}))
|
|
401
248
|
.views(self => ({
|
|
402
|
-
/**
|
|
403
|
-
* #method
|
|
404
|
-
*/
|
|
405
249
|
scoreTrackMenuItems() {
|
|
406
250
|
return [
|
|
407
251
|
...(self.hasResolution
|
|
@@ -477,9 +321,6 @@ function SharedWiggleMixin(configSchema) {
|
|
|
477
321
|
.actions(self => {
|
|
478
322
|
const { reload: superReload } = self;
|
|
479
323
|
return {
|
|
480
|
-
/**
|
|
481
|
-
* #action
|
|
482
|
-
*/
|
|
483
324
|
async reload() {
|
|
484
325
|
self.setError();
|
|
485
326
|
superReload();
|
package/dist/util.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { QuantitativeStats } from '@jbrowse/core/util/stats';
|
|
2
|
-
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
3
1
|
export declare const YSCALEBAR_LABEL_OFFSET = 5;
|
|
4
2
|
export interface ScaleOpts {
|
|
5
3
|
domain: number[];
|
|
@@ -14,63 +12,13 @@ export interface Source {
|
|
|
14
12
|
color?: string;
|
|
15
13
|
group?: string;
|
|
16
14
|
}
|
|
17
|
-
/**
|
|
18
|
-
* produces a d3-scale from arguments. applies a "nice domain" adjustment
|
|
19
|
-
*
|
|
20
|
-
* @param object - containing attributes
|
|
21
|
-
* - domain [min,max]
|
|
22
|
-
* - range [min,max]
|
|
23
|
-
* - bounds [min,max]
|
|
24
|
-
* - scaleType (linear or log)
|
|
25
|
-
* - pivotValue (number)
|
|
26
|
-
* - inverted (boolean)
|
|
27
|
-
*/
|
|
28
15
|
export declare function getScale({ domain, range, scaleType, pivotValue, inverted, }: ScaleOpts): import("d3-scale").ScaleLinear<number, number, never> | import("d3-scale").ScaleLogarithmic<number, number, never> | import("d3-scale").ScaleQuantize<number, never>;
|
|
29
|
-
|
|
30
|
-
* gets the origin for drawing the graph. for linear this is 0, for log this is arbitrarily set to log(1)==0
|
|
31
|
-
*
|
|
32
|
-
* @param scaleType -
|
|
33
|
-
*/
|
|
34
|
-
export declare function getOrigin(scaleType: string): 0 | 1;
|
|
35
|
-
/**
|
|
36
|
-
* produces a "nice" domain that actually rounds down to 0 for the min
|
|
37
|
-
* or 0 to the max depending on if all values are positive or negative
|
|
38
|
-
*
|
|
39
|
-
* @param object - containing attributes
|
|
40
|
-
* - domain [min,max]
|
|
41
|
-
* - bounds [min,max]
|
|
42
|
-
* - mean
|
|
43
|
-
* - stddev
|
|
44
|
-
* - scaleType (linear or log)
|
|
45
|
-
*/
|
|
16
|
+
export declare function getOrigin(scaleType: string): 1 | 0;
|
|
46
17
|
export declare function getNiceDomain({ scaleType, domain, bounds, }: {
|
|
47
18
|
scaleType: string;
|
|
48
19
|
domain: readonly [number, number];
|
|
49
20
|
bounds: readonly [number | undefined, number | undefined];
|
|
50
21
|
}): [number, number];
|
|
51
|
-
export declare function getQuantitativeStats(self: {
|
|
52
|
-
adapterConfig: AnyConfigurationModel;
|
|
53
|
-
configuration: AnyConfigurationModel;
|
|
54
|
-
autoscaleType: string;
|
|
55
|
-
setMessage: (str: string) => void;
|
|
56
|
-
}, opts: {
|
|
57
|
-
headers?: Record<string, string>;
|
|
58
|
-
signal?: AbortSignal;
|
|
59
|
-
filters: string[];
|
|
60
|
-
}): Promise<QuantitativeStats>;
|
|
61
|
-
export declare function quantitativeStatsAutorun(self: {
|
|
62
|
-
featureDensityStatsReady: boolean;
|
|
63
|
-
regionTooLarge: boolean;
|
|
64
|
-
error: unknown;
|
|
65
|
-
setLoading: (aborter: AbortController) => void;
|
|
66
|
-
setError: (error: unknown) => void;
|
|
67
|
-
updateQuantitativeStats: (stats: QuantitativeStats, statsRegion: string) => void;
|
|
68
|
-
renderProps: () => Record<string, unknown>;
|
|
69
|
-
configuration: AnyConfigurationModel;
|
|
70
|
-
adapterConfig: AnyConfigurationModel;
|
|
71
|
-
autoscaleType: string;
|
|
72
|
-
setMessage: (str: string) => void;
|
|
73
|
-
}): void;
|
|
74
22
|
export declare function toP(s?: number): number;
|
|
75
23
|
export declare function round(value: number): number;
|
|
76
24
|
export declare function fillRectCtx(x: number, y: number, width: number, height: number, ctx: CanvasRenderingContext2D, color?: string): void;
|
package/dist/util.js
CHANGED
|
@@ -4,29 +4,11 @@ exports.YSCALEBAR_LABEL_OFFSET = void 0;
|
|
|
4
4
|
exports.getScale = getScale;
|
|
5
5
|
exports.getOrigin = getOrigin;
|
|
6
6
|
exports.getNiceDomain = getNiceDomain;
|
|
7
|
-
exports.getQuantitativeStats = getQuantitativeStats;
|
|
8
|
-
exports.quantitativeStatsAutorun = quantitativeStatsAutorun;
|
|
9
7
|
exports.toP = toP;
|
|
10
8
|
exports.round = round;
|
|
11
9
|
exports.fillRectCtx = fillRectCtx;
|
|
12
10
|
const d3_scale_1 = require("@mui/x-charts-vendor/d3-scale");
|
|
13
|
-
const mobx_1 = require("mobx");
|
|
14
|
-
const util_1 = require("@jbrowse/core/util");
|
|
15
|
-
const tracks_1 = require("@jbrowse/core/util/tracks");
|
|
16
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
17
|
-
const configuration_1 = require("@jbrowse/core/configuration");
|
|
18
11
|
exports.YSCALEBAR_LABEL_OFFSET = 5;
|
|
19
|
-
/**
|
|
20
|
-
* produces a d3-scale from arguments. applies a "nice domain" adjustment
|
|
21
|
-
*
|
|
22
|
-
* @param object - containing attributes
|
|
23
|
-
* - domain [min,max]
|
|
24
|
-
* - range [min,max]
|
|
25
|
-
* - bounds [min,max]
|
|
26
|
-
* - scaleType (linear or log)
|
|
27
|
-
* - pivotValue (number)
|
|
28
|
-
* - inverted (boolean)
|
|
29
|
-
*/
|
|
30
12
|
function getScale({ domain = [], range = [], scaleType, pivotValue, inverted, }) {
|
|
31
13
|
let scale;
|
|
32
14
|
const [min, max] = domain;
|
|
@@ -54,40 +36,12 @@ function getScale({ domain = [], range = [], scaleType, pivotValue, inverted, })
|
|
|
54
36
|
scale.range(inverted ? range.slice().reverse() : range);
|
|
55
37
|
return scale;
|
|
56
38
|
}
|
|
57
|
-
|
|
58
|
-
* gets the origin for drawing the graph. for linear this is 0, for log this is arbitrarily set to log(1)==0
|
|
59
|
-
*
|
|
60
|
-
* @param scaleType -
|
|
61
|
-
*/
|
|
62
|
-
function getOrigin(scaleType /* , pivot, stats */) {
|
|
63
|
-
// if (pivot) {
|
|
64
|
-
// if (pivot === 'mean') {
|
|
65
|
-
// return stats.scoreMean || 0
|
|
66
|
-
// }
|
|
67
|
-
// if (pivot === 'zero') {
|
|
68
|
-
// return 0
|
|
69
|
-
// }
|
|
70
|
-
// return parseFloat()
|
|
71
|
-
// }
|
|
72
|
-
// if (scaleType === 'z_score') {
|
|
73
|
-
// return stats.scoreMean || 0
|
|
74
|
-
// }
|
|
39
|
+
function getOrigin(scaleType) {
|
|
75
40
|
if (scaleType === 'log') {
|
|
76
41
|
return 1;
|
|
77
42
|
}
|
|
78
43
|
return 0;
|
|
79
44
|
}
|
|
80
|
-
/**
|
|
81
|
-
* produces a "nice" domain that actually rounds down to 0 for the min
|
|
82
|
-
* or 0 to the max depending on if all values are positive or negative
|
|
83
|
-
*
|
|
84
|
-
* @param object - containing attributes
|
|
85
|
-
* - domain [min,max]
|
|
86
|
-
* - bounds [min,max]
|
|
87
|
-
* - mean
|
|
88
|
-
* - stddev
|
|
89
|
-
* - scaleType (linear or log)
|
|
90
|
-
*/
|
|
91
45
|
function getNiceDomain({ scaleType, domain, bounds, }) {
|
|
92
46
|
const [minScore, maxScore] = bounds;
|
|
93
47
|
let [min, max] = domain;
|
|
@@ -100,9 +54,6 @@ function getNiceDomain({ scaleType, domain, bounds, }) {
|
|
|
100
54
|
}
|
|
101
55
|
}
|
|
102
56
|
if (scaleType === 'log') {
|
|
103
|
-
// for min>0 and max>1, set log min to 1, which works for most coverage
|
|
104
|
-
// types tracks. if max is not >1, might be like raw p-values so then it'll
|
|
105
|
-
// display negative values
|
|
106
57
|
if (min >= 0 && max > 1) {
|
|
107
58
|
min = 1;
|
|
108
59
|
}
|
|
@@ -132,103 +83,12 @@ function getNiceDomain({ scaleType, domain, bounds, }) {
|
|
|
132
83
|
scale.nice();
|
|
133
84
|
return scale.domain();
|
|
134
85
|
}
|
|
135
|
-
async function getQuantitativeStats(self, opts) {
|
|
136
|
-
const { rpcManager } = (0, util_1.getSession)(self);
|
|
137
|
-
const numStdDev = (0, configuration_1.getConf)(self, 'numStdDev') || 3;
|
|
138
|
-
const { adapterConfig, autoscaleType } = self;
|
|
139
|
-
const sessionId = (0, tracks_1.getRpcSessionId)(self);
|
|
140
|
-
const params = {
|
|
141
|
-
sessionId,
|
|
142
|
-
adapterConfig,
|
|
143
|
-
statusCallback: (message) => {
|
|
144
|
-
if ((0, mobx_state_tree_1.isAlive)(self)) {
|
|
145
|
-
self.setMessage(message);
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
...opts,
|
|
149
|
-
};
|
|
150
|
-
if (autoscaleType === 'global' || autoscaleType === 'globalsd') {
|
|
151
|
-
const results = (await rpcManager.call(sessionId, 'WiggleGetGlobalQuantitativeStats', params));
|
|
152
|
-
const { scoreMin, scoreMean, scoreStdDev } = results;
|
|
153
|
-
// globalsd uses heuristic to avoid unnecessary scoreMin<0
|
|
154
|
-
// if the scoreMin is never less than 0
|
|
155
|
-
// helps with most coverage bigwigs just being >0
|
|
156
|
-
return autoscaleType === 'globalsd'
|
|
157
|
-
? {
|
|
158
|
-
...results,
|
|
159
|
-
scoreMin: scoreMin >= 0 ? 0 : scoreMean - numStdDev * scoreStdDev,
|
|
160
|
-
scoreMax: scoreMean + numStdDev * scoreStdDev,
|
|
161
|
-
}
|
|
162
|
-
: results;
|
|
163
|
-
}
|
|
164
|
-
if (autoscaleType === 'local' || autoscaleType === 'localsd') {
|
|
165
|
-
const { dynamicBlocks, bpPerPx } = (0, util_1.getContainingView)(self);
|
|
166
|
-
const results = (await rpcManager.call(sessionId, 'WiggleGetMultiRegionQuantitativeStats', {
|
|
167
|
-
...params,
|
|
168
|
-
regions: dynamicBlocks.contentBlocks.map(region => {
|
|
169
|
-
const { start, end } = region;
|
|
170
|
-
return {
|
|
171
|
-
...JSON.parse(JSON.stringify(region)),
|
|
172
|
-
start: Math.floor(start),
|
|
173
|
-
end: Math.ceil(end),
|
|
174
|
-
};
|
|
175
|
-
}),
|
|
176
|
-
bpPerPx,
|
|
177
|
-
}));
|
|
178
|
-
const { scoreMin, scoreMean, scoreStdDev } = results;
|
|
179
|
-
// localsd uses heuristic to avoid unnecessary scoreMin<0 if the
|
|
180
|
-
// scoreMin is never less than 0 helps with most coverage bigwigs
|
|
181
|
-
// just being >0
|
|
182
|
-
return autoscaleType === 'localsd'
|
|
183
|
-
? {
|
|
184
|
-
...results,
|
|
185
|
-
scoreMin: scoreMin >= 0 ? 0 : scoreMean - numStdDev * scoreStdDev,
|
|
186
|
-
scoreMax: scoreMean + numStdDev * scoreStdDev,
|
|
187
|
-
}
|
|
188
|
-
: results;
|
|
189
|
-
}
|
|
190
|
-
if (autoscaleType === 'zscale') {
|
|
191
|
-
return rpcManager.call(sessionId, 'WiggleGetGlobalQuantitativeStats', params);
|
|
192
|
-
}
|
|
193
|
-
throw new Error(`invalid autoscaleType '${autoscaleType}'`);
|
|
194
|
-
}
|
|
195
|
-
function quantitativeStatsAutorun(self) {
|
|
196
|
-
(0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(async () => {
|
|
197
|
-
try {
|
|
198
|
-
const aborter = new AbortController();
|
|
199
|
-
const view = (0, util_1.getContainingView)(self);
|
|
200
|
-
self.setLoading(aborter);
|
|
201
|
-
if (!view.initialized ||
|
|
202
|
-
!self.featureDensityStatsReady ||
|
|
203
|
-
self.regionTooLarge ||
|
|
204
|
-
self.error) {
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
const statsRegion = JSON.stringify(view.dynamicBlocks);
|
|
208
|
-
const wiggleStats = await getQuantitativeStats(self, {
|
|
209
|
-
signal: aborter.signal,
|
|
210
|
-
filters: [],
|
|
211
|
-
...self.renderProps(),
|
|
212
|
-
});
|
|
213
|
-
if ((0, mobx_state_tree_1.isAlive)(self)) {
|
|
214
|
-
self.updateQuantitativeStats(wiggleStats, statsRegion);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
catch (e) {
|
|
218
|
-
if (!(0, util_1.isAbortException)(e) && (0, mobx_state_tree_1.isAlive)(self)) {
|
|
219
|
-
console.error(e);
|
|
220
|
-
self.setError(e);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}, { delay: 1000 }));
|
|
224
|
-
}
|
|
225
86
|
function toP(s = 0) {
|
|
226
87
|
return +(+s).toPrecision(6);
|
|
227
88
|
}
|
|
228
89
|
function round(value) {
|
|
229
90
|
return Math.round(value * 1e5) / 1e5;
|
|
230
91
|
}
|
|
231
|
-
// avoid drawing negative width features for SVG exports
|
|
232
92
|
function fillRectCtx(x, y, width, height, ctx, color) {
|
|
233
93
|
if (width < 0) {
|
|
234
94
|
x += width;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BigWig } from '@gmod/bbi';
|
|
2
|
-
import { BaseFeatureDataAdapter
|
|
3
|
-
import {
|
|
4
|
-
import { Feature } from '@jbrowse/core/util';
|
|
2
|
+
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
|
+
import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
4
|
+
import type { Feature } from '@jbrowse/core/util';
|
|
5
|
+
import type { AugmentedRegion as Region } from '@jbrowse/core/util/types';
|
|
5
6
|
interface WiggleOptions extends BaseOptions {
|
|
6
7
|
resolution?: number;
|
|
7
8
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BigWig } from '@gmod/bbi';
|
|
2
|
-
import { BaseFeatureDataAdapter
|
|
3
|
-
import { openLocation } from '@jbrowse/core/util/io';
|
|
2
|
+
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
4
3
|
import { updateStatus } from '@jbrowse/core/util';
|
|
4
|
+
import { openLocation } from '@jbrowse/core/util/io';
|
|
5
5
|
import { ObservableCreate } from '@jbrowse/core/util/rxjs';
|
|
6
|
-
import { rectifyStats
|
|
6
|
+
import { rectifyStats } from '@jbrowse/core/util/stats';
|
|
7
7
|
class BigWigAdapter extends BaseFeatureDataAdapter {
|
|
8
8
|
async setupPre(opts) {
|
|
9
9
|
const { statusCallback = () => { } } = opts || {};
|
|
@@ -38,7 +38,7 @@ class BigWigAdapter extends BaseFeatureDataAdapter {
|
|
|
38
38
|
}
|
|
39
39
|
getFeatures(region, opts = {}) {
|
|
40
40
|
const { refName, start, end } = region;
|
|
41
|
-
const { bpPerPx = 0,
|
|
41
|
+
const { bpPerPx = 0, stopToken, resolution = 1, statusCallback = () => { }, } = opts;
|
|
42
42
|
return ObservableCreate(async (observer) => {
|
|
43
43
|
statusCallback('Downloading bigwig data');
|
|
44
44
|
const source = this.getConf('source');
|
|
@@ -50,25 +50,20 @@ class BigWigAdapter extends BaseFeatureDataAdapter {
|
|
|
50
50
|
});
|
|
51
51
|
for (const data of feats) {
|
|
52
52
|
if (source) {
|
|
53
|
-
// @ts-expect-error
|
|
54
53
|
data.source = source;
|
|
55
54
|
}
|
|
56
55
|
const uniqueId = `${source}:${region.refName}:${data.start}-${data.end}`;
|
|
57
|
-
// @ts-expect-error
|
|
58
56
|
data.refName = refName;
|
|
59
57
|
data.uniqueId = uniqueId;
|
|
60
58
|
observer.next({
|
|
61
|
-
// @ts-expect-error
|
|
62
59
|
get: (str) => data[str],
|
|
63
60
|
id: () => uniqueId,
|
|
64
|
-
// @ts-expect-error
|
|
65
61
|
toJSON: () => data,
|
|
66
62
|
});
|
|
67
63
|
}
|
|
68
64
|
observer.complete();
|
|
69
|
-
},
|
|
65
|
+
}, stopToken);
|
|
70
66
|
}
|
|
71
|
-
// always render bigwig instead of calculating a feature density for it
|
|
72
67
|
async getMultiRegionFeatureDensityStats(_regions) {
|
|
73
68
|
return { featureDensity: 0 };
|
|
74
69
|
}
|