@jbrowse/plugin-wiggle 3.7.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/BigWigAdapter/BigWigAdapter.d.ts +14 -1
- package/esm/BigWigAdapter/BigWigAdapter.js +118 -22
- package/esm/BigWigAdapter/configSchema.d.ts +2 -2
- package/esm/BigWigAdapter/configSchema.js +1 -1
- package/esm/BigWigAdapter/index.js +2 -2
- package/esm/CreateMultiWiggleExtension/index.js +1 -1
- package/esm/DensityRenderer/DensityRenderer.d.ts +5 -6
- package/esm/DensityRenderer/DensityRenderer.js +6 -5
- package/esm/DensityRenderer/configSchema.d.ts +3 -3
- package/esm/DensityRenderer/configSchema.js +1 -1
- package/esm/DensityRenderer/index.js +11 -9
- package/esm/DensityRenderer/makeImageData.d.ts +3 -0
- package/esm/DensityRenderer/makeImageData.js +13 -0
- package/esm/DensityRenderer/renderDensity.d.ts +3 -0
- package/esm/DensityRenderer/renderDensity.js +18 -0
- package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +5 -7
- package/esm/LinePlotRenderer/LinePlotRenderer.js +6 -15
- package/esm/LinePlotRenderer/configSchema.d.ts +4 -4
- package/esm/LinePlotRenderer/configSchema.js +1 -1
- package/esm/LinePlotRenderer/index.js +4 -4
- package/esm/LinePlotRenderer/makeImageData.d.ts +3 -0
- package/esm/LinePlotRenderer/makeImageData.js +13 -0
- package/esm/LinePlotRenderer/renderLinePlot.d.ts +3 -0
- package/esm/LinePlotRenderer/renderLinePlot.js +23 -0
- package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +2 -2
- package/esm/LinearWiggleDisplay/components/Tooltip.js +10 -6
- package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
- package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
- package/esm/LinearWiggleDisplay/configSchema.d.ts +9 -9
- package/esm/LinearWiggleDisplay/configSchema.js +2 -2
- package/esm/LinearWiggleDisplay/index.d.ts +3 -3
- package/esm/LinearWiggleDisplay/index.js +6 -6
- package/esm/LinearWiggleDisplay/model.d.ts +1128 -105
- package/esm/LinearWiggleDisplay/model.js +58 -18
- package/esm/LinearWiggleDisplay/renderSvg.d.ts +1 -1
- package/esm/LinearWiggleDisplay/renderSvg.js +3 -2
- package/esm/MultiDensityRenderer/MultiDensityRenderer.d.ts +5 -7
- package/esm/MultiDensityRenderer/MultiDensityRenderer.js +6 -24
- package/esm/MultiDensityRenderer/configSchema.d.ts +3 -3
- package/esm/MultiDensityRenderer/configSchema.js +1 -1
- package/esm/MultiDensityRenderer/index.js +4 -4
- package/esm/MultiDensityRenderer/makeImageData.d.ts +3 -0
- package/esm/MultiDensityRenderer/makeImageData.js +7 -0
- package/esm/MultiDensityRenderer/renderMultiDensity.d.ts +3 -0
- package/esm/MultiDensityRenderer/renderMultiDensity.js +37 -0
- package/esm/MultiLineRenderer/MultiLineRenderer.d.ts +5 -7
- package/esm/MultiLineRenderer/MultiLineRenderer.js +6 -17
- package/esm/MultiLineRenderer/configSchema.d.ts +5 -5
- package/esm/MultiLineRenderer/configSchema.js +2 -2
- package/esm/MultiLineRenderer/index.js +4 -4
- package/esm/MultiLineRenderer/makeImageData.d.ts +3 -0
- package/esm/MultiLineRenderer/makeImageData.js +7 -0
- package/esm/MultiLineRenderer/renderMultiLine.d.ts +3 -0
- package/esm/MultiLineRenderer/renderMultiLine.js +34 -0
- package/esm/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +2 -2
- package/esm/MultiLinearWiggleDisplay/components/ColorLegend.js +11 -6
- package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +4 -4
- package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +5 -5
- package/esm/MultiLinearWiggleDisplay/components/LegendItem.d.ts +3 -3
- package/esm/MultiLinearWiggleDisplay/components/LegendItem.js +1 -1
- package/esm/MultiLinearWiggleDisplay/components/LegendItemText.d.ts +6 -4
- package/esm/MultiLinearWiggleDisplay/components/LegendItemText.js +2 -2
- package/esm/MultiLinearWiggleDisplay/components/RectBg.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/RectBg.js +4 -3
- package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +2 -2
- package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.js +3 -3
- package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/SetColorDialog.js +2 -2
- package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/SourcesGrid.js +2 -2
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +2 -4
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.js +8 -9
- package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.js +3 -3
- package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.js +4 -5
- package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.js +12 -17
- package/esm/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +2 -2
- package/esm/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +2 -2
- package/esm/MultiLinearWiggleDisplay/components/YScaleBars.js +5 -16
- package/esm/MultiLinearWiggleDisplay/components/YScaleBarsWrapper.d.ts +7 -0
- package/esm/MultiLinearWiggleDisplay/components/YScaleBarsWrapper.js +15 -0
- package/esm/MultiLinearWiggleDisplay/components/types.d.ts +10 -0
- package/esm/MultiLinearWiggleDisplay/components/types.js +1 -0
- package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialog.js +4 -4
- package/esm/MultiLinearWiggleDisplay/components/ui/SetColorDialogBulkEditPanel.js +1 -1
- package/esm/MultiLinearWiggleDisplay/components/util.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/configSchema.d.ts +9 -9
- package/esm/MultiLinearWiggleDisplay/configSchema.js +2 -2
- package/esm/MultiLinearWiggleDisplay/index.js +3 -3
- package/esm/MultiLinearWiggleDisplay/model.d.ts +3624 -106
- package/esm/MultiLinearWiggleDisplay/model.js +78 -48
- package/esm/MultiLinearWiggleDisplay/renderSvg.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/renderSvg.js +3 -2
- package/esm/MultiQuantitativeTrack/configSchema.d.ts +16 -11
- package/esm/MultiQuantitativeTrack/index.js +13 -2
- package/esm/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +5 -7
- package/esm/MultiRowLineRenderer/MultiRowLineRenderer.js +6 -29
- package/esm/MultiRowLineRenderer/configSchema.d.ts +5 -5
- package/esm/MultiRowLineRenderer/configSchema.js +2 -2
- package/esm/MultiRowLineRenderer/index.js +4 -4
- package/esm/MultiRowLineRenderer/makeImageData.d.ts +3 -0
- package/esm/MultiRowLineRenderer/makeImageData.js +7 -0
- package/esm/MultiRowLineRenderer/renderMultiRowLine.d.ts +3 -0
- package/esm/MultiRowLineRenderer/renderMultiRowLine.js +44 -0
- package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +5 -7
- package/esm/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +6 -29
- package/esm/MultiRowXYPlotRenderer/configSchema.d.ts +5 -5
- package/esm/MultiRowXYPlotRenderer/configSchema.js +2 -2
- package/esm/MultiRowXYPlotRenderer/index.js +4 -4
- package/esm/MultiRowXYPlotRenderer/makeImageData.d.ts +3 -0
- package/esm/MultiRowXYPlotRenderer/makeImageData.js +7 -0
- package/esm/MultiRowXYPlotRenderer/renderMultiRowXYPlot.d.ts +3 -0
- package/esm/MultiRowXYPlotRenderer/renderMultiRowXYPlot.js +42 -0
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +5 -0
- package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +48 -18
- package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -2
- package/esm/MultiWiggleAdapter/index.js +2 -2
- package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +1 -1
- package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +3 -4
- package/esm/MultiWiggleAddTrackWorkflow/index.js +2 -2
- package/esm/MultiWiggleRendering.d.ts +7 -7
- package/esm/MultiWiggleRendering.js +9 -7
- package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +5 -7
- package/esm/MultiXYPlotRenderer/MultiXYPlotRenderer.js +6 -20
- package/esm/MultiXYPlotRenderer/configSchema.d.ts +5 -5
- package/esm/MultiXYPlotRenderer/configSchema.js +2 -2
- package/esm/MultiXYPlotRenderer/index.js +4 -4
- package/esm/MultiXYPlotRenderer/makeImageData.d.ts +3 -0
- package/esm/MultiXYPlotRenderer/makeImageData.js +7 -0
- package/esm/MultiXYPlotRenderer/renderMultiXYPlot.d.ts +3 -0
- package/esm/MultiXYPlotRenderer/renderMultiXYPlot.js +35 -0
- package/esm/QuantitativeTrack/configSchema.d.ts +16 -11
- package/esm/QuantitativeTrack/index.js +13 -2
- package/esm/SVGErrorBox.d.ts +5 -0
- package/esm/SVGErrorBox.js +4 -0
- package/esm/Tooltip.d.ts +1 -3
- package/esm/Tooltip.js +7 -7
- package/esm/WiggleRPC/MultiWiggleClusterScoreMatrix.d.ts +2 -10
- package/esm/WiggleRPC/MultiWiggleClusterScoreMatrix.js +3 -15
- package/esm/WiggleRPC/MultiWiggleGetScoreMatrix.d.ts +1 -1
- package/esm/WiggleRPC/MultiWiggleGetScoreMatrix.js +2 -5
- package/esm/WiggleRPC/MultiWiggleGetSources.js +1 -4
- package/esm/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +1 -4
- package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +10 -0
- package/esm/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +26 -5
- package/esm/WiggleRPC/executeClusterScoreMatrix.d.ts +6 -0
- package/esm/WiggleRPC/executeClusterScoreMatrix.js +15 -0
- package/esm/WiggleRPC/getScoreMatrix.d.ts +1 -1
- package/esm/WiggleRPC/getScoreMatrix.js +9 -6
- package/esm/WiggleRPC/rpcMethods.d.ts +5 -5
- package/esm/WiggleRPC/rpcMethods.js +5 -5
- package/esm/WiggleRPC/types.d.ts +1 -1
- package/esm/WiggleRendering.d.ts +2 -3
- package/esm/WiggleRendering.js +16 -3
- package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +5 -6
- package/esm/XYPlotRenderer/XYPlotRenderer.js +6 -20
- package/esm/XYPlotRenderer/configSchema.d.ts +5 -5
- package/esm/XYPlotRenderer/configSchema.js +2 -2
- package/esm/XYPlotRenderer/index.d.ts +3 -3
- package/esm/XYPlotRenderer/index.js +14 -12
- package/esm/XYPlotRenderer/makeImageData.d.ts +3 -0
- package/esm/XYPlotRenderer/makeImageData.js +13 -0
- package/esm/XYPlotRenderer/renderXYPlot.d.ts +3 -0
- package/esm/XYPlotRenderer/renderXYPlot.js +23 -0
- package/esm/configSchema.d.ts +3 -3
- package/esm/configSchema.js +1 -1
- package/esm/drawDensity.d.ts +4 -2
- package/esm/drawDensity.js +25 -15
- package/esm/drawLine.d.ts +5 -3
- package/esm/drawLine.js +118 -41
- package/esm/drawXY.d.ts +4 -2
- package/esm/drawXY.js +75 -36
- package/esm/getMultiWiggleSourcesAutorun.d.ts +3 -2
- package/esm/getMultiWiggleSourcesAutorun.js +7 -2
- package/esm/getQuantitativeStats.d.ts +4 -2
- package/esm/getQuantitativeStats.js +18 -7
- package/esm/getQuantitativeStatsAutorun.d.ts +3 -2
- package/esm/getQuantitativeStatsAutorun.js +3 -3
- package/esm/index.d.ts +15 -19
- package/esm/index.js +31 -37
- package/esm/multiRendererHelper.d.ts +7 -0
- package/esm/multiRendererHelper.js +12 -0
- package/esm/saveTrackFormats/bedGraph.d.ts +4 -0
- package/esm/saveTrackFormats/bedGraph.js +11 -0
- package/esm/shared/SharedWiggleConfigSchema.d.ts +5 -5
- package/esm/shared/SharedWiggleConfigSchema.js +1 -1
- package/esm/shared/SharedWiggleMixin.d.ts +1081 -133
- package/esm/shared/SharedWiggleMixin.js +48 -26
- package/esm/shared/YScaleBar.d.ts +1 -1
- package/esm/shared/YScaleBar.js +16 -4
- package/esm/shared/axisPropsFromTickScale.d.ts +7 -0
- package/esm/shared/axisPropsFromTickScale.js +12 -0
- package/esm/svgExportUtil.d.ts +9 -0
- package/esm/svgExportUtil.js +6 -0
- package/esm/types.d.ts +24 -0
- package/esm/types.js +1 -0
- package/esm/util.d.ts +34 -1
- package/esm/util.js +60 -1
- package/package.json +35 -38
- package/dist/BigWigAdapter/BigWigAdapter.d.ts +0 -25
- package/dist/BigWigAdapter/BigWigAdapter.js +0 -81
- package/dist/BigWigAdapter/configSchema.d.ts +0 -20
- package/dist/BigWigAdapter/configSchema.js +0 -37
- package/dist/BigWigAdapter/index.d.ts +0 -2
- package/dist/BigWigAdapter/index.js +0 -54
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.d.ts +0 -8
- package/dist/CreateMultiWiggleExtension/ConfirmDialog.js +0 -26
- package/dist/CreateMultiWiggleExtension/index.d.ts +0 -2
- package/dist/CreateMultiWiggleExtension/index.js +0 -95
- package/dist/DensityRenderer/DensityRenderer.d.ts +0 -7
- package/dist/DensityRenderer/DensityRenderer.js +0 -46
- package/dist/DensityRenderer/configSchema.d.ts +0 -37
- package/dist/DensityRenderer/configSchema.js +0 -13
- package/dist/DensityRenderer/index.d.ts +0 -2
- package/dist/DensityRenderer/index.js +0 -17
- package/dist/GuessAdapter/index.d.ts +0 -2
- package/dist/GuessAdapter/index.js +0 -25
- package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +0 -8
- package/dist/LinePlotRenderer/LinePlotRenderer.js +0 -56
- package/dist/LinePlotRenderer/configSchema.d.ts +0 -43
- package/dist/LinePlotRenderer/configSchema.js +0 -19
- package/dist/LinePlotRenderer/index.d.ts +0 -2
- package/dist/LinePlotRenderer/index.js +0 -17
- package/dist/LinearWiggleDisplay/components/SetColorDialog.d.ts +0 -12
- package/dist/LinearWiggleDisplay/components/SetColorDialog.js +0 -31
- package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +0 -15
- package/dist/LinearWiggleDisplay/components/Tooltip.js +0 -32
- package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
- package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -28
- package/dist/LinearWiggleDisplay/configSchema.d.ts +0 -78
- package/dist/LinearWiggleDisplay/configSchema.js +0 -29
- package/dist/LinearWiggleDisplay/index.d.ts +0 -5
- package/dist/LinearWiggleDisplay/index.js +0 -65
- package/dist/LinearWiggleDisplay/model.d.ts +0 -434
- package/dist/LinearWiggleDisplay/model.js +0 -262
- package/dist/LinearWiggleDisplay/renderSvg.d.ts +0 -3
- package/dist/LinearWiggleDisplay/renderSvg.js +0 -16
- package/dist/MultiDensityRenderer/MultiDensityRenderer.d.ts +0 -8
- package/dist/MultiDensityRenderer/MultiDensityRenderer.js +0 -65
- package/dist/MultiDensityRenderer/configSchema.d.ts +0 -37
- package/dist/MultiDensityRenderer/configSchema.js +0 -13
- package/dist/MultiDensityRenderer/index.d.ts +0 -2
- package/dist/MultiDensityRenderer/index.js +0 -17
- package/dist/MultiLineRenderer/MultiLineRenderer.d.ts +0 -8
- package/dist/MultiLineRenderer/MultiLineRenderer.js +0 -58
- package/dist/MultiLineRenderer/configSchema.d.ts +0 -49
- package/dist/MultiLineRenderer/configSchema.js +0 -26
- package/dist/MultiLineRenderer/index.d.ts +0 -2
- package/dist/MultiLineRenderer/index.js +0 -17
- package/dist/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +0 -7
- package/dist/MultiLinearWiggleDisplay/components/ColorLegend.js +0 -19
- package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.d.ts +0 -7
- package/dist/MultiLinearWiggleDisplay/components/FullHeightScaleBar.js +0 -17
- package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.d.ts +0 -7
- package/dist/MultiLinearWiggleDisplay/components/IndividualScaleBars.js +0 -15
- package/dist/MultiLinearWiggleDisplay/components/LegendItem.d.ts +0 -11
- package/dist/MultiLinearWiggleDisplay/components/LegendItem.js +0 -17
- package/dist/MultiLinearWiggleDisplay/components/LegendItemText.d.ts +0 -10
- package/dist/MultiLinearWiggleDisplay/components/LegendItemText.js +0 -13
- package/dist/MultiLinearWiggleDisplay/components/RectBg.d.ts +0 -8
- package/dist/MultiLinearWiggleDisplay/components/RectBg.js +0 -9
- package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +0 -5
- package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.js +0 -19
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.d.ts +0 -9
- package/dist/MultiLinearWiggleDisplay/components/SetColorDialog.js +0 -12
- package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.d.ts +0 -7
- package/dist/MultiLinearWiggleDisplay/components/SourcesGrid.js +0 -130
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +0 -18
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.js +0 -39
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.d.ts +0 -6
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialog.js +0 -29
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.d.ts +0 -7
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogAuto.js +0 -87
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.d.ts +0 -7
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/WiggleClusterDialogManual.js +0 -153
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.d.ts +0 -8
- package/dist/MultiLinearWiggleDisplay/components/WiggleClusterDialog/types.js +0 -2
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +0 -5
- package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.js +0 -14
- package/dist/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +0 -7
- package/dist/MultiLinearWiggleDisplay/components/YScaleBars.js +0 -28
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialog.d.ts +0 -31
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialog.js +0 -51
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialogBulkEditPanel.d.ts +0 -10
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialogBulkEditPanel.js +0 -84
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialogHelpfulTips.d.ts +0 -1
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialogHelpfulTips.js +0 -7
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialogRowPalettizer.d.ts +0 -10
- package/dist/MultiLinearWiggleDisplay/components/ui/SetColorDialogRowPalettizer.js +0 -42
- package/dist/MultiLinearWiggleDisplay/components/util.d.ts +0 -9
- package/dist/MultiLinearWiggleDisplay/components/util.js +0 -45
- package/dist/MultiLinearWiggleDisplay/configSchema.d.ts +0 -84
- package/dist/MultiLinearWiggleDisplay/configSchema.js +0 -44
- package/dist/MultiLinearWiggleDisplay/index.d.ts +0 -2
- package/dist/MultiLinearWiggleDisplay/index.js +0 -57
- package/dist/MultiLinearWiggleDisplay/model.d.ts +0 -453
- package/dist/MultiLinearWiggleDisplay/model.js +0 -413
- package/dist/MultiLinearWiggleDisplay/renderSvg.d.ts +0 -3
- package/dist/MultiLinearWiggleDisplay/renderSvg.js +0 -15
- package/dist/MultiLinearWiggleDisplay/types.d.ts +0 -15
- package/dist/MultiLinearWiggleDisplay/types.js +0 -2
- package/dist/MultiLinearWiggleDisplay/util.d.ts +0 -0
- package/dist/MultiLinearWiggleDisplay/util.js +0 -1
- package/dist/MultiQuantitativeTrack/configSchema.d.ts +0 -80
- package/dist/MultiQuantitativeTrack/configSchema.js +0 -11
- package/dist/MultiQuantitativeTrack/index.d.ts +0 -2
- package/dist/MultiQuantitativeTrack/index.js +0 -20
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.d.ts +0 -8
- package/dist/MultiRowLineRenderer/MultiRowLineRenderer.js +0 -70
- package/dist/MultiRowLineRenderer/configSchema.d.ts +0 -49
- package/dist/MultiRowLineRenderer/configSchema.js +0 -26
- package/dist/MultiRowLineRenderer/index.d.ts +0 -2
- package/dist/MultiRowLineRenderer/index.js +0 -17
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.d.ts +0 -8
- package/dist/MultiRowXYPlotRenderer/MultiRowXYPlotRenderer.js +0 -70
- package/dist/MultiRowXYPlotRenderer/configSchema.d.ts +0 -57
- package/dist/MultiRowXYPlotRenderer/configSchema.js +0 -34
- package/dist/MultiRowXYPlotRenderer/index.d.ts +0 -2
- package/dist/MultiRowXYPlotRenderer/index.js +0 -17
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +0 -31
- package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +0 -110
- package/dist/MultiWiggleAdapter/configSchema.d.ts +0 -13
- package/dist/MultiWiggleAdapter/configSchema.js +0 -17
- package/dist/MultiWiggleAdapter/index.d.ts +0 -2
- package/dist/MultiWiggleAdapter/index.js +0 -57
- package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.d.ts +0 -5
- package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +0 -89
- package/dist/MultiWiggleAddTrackWorkflow/index.d.ts +0 -2
- package/dist/MultiWiggleAddTrackWorkflow/index.js +0 -46
- package/dist/MultiWiggleRendering.d.ts +0 -19
- package/dist/MultiWiggleRendering.js +0 -81
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.d.ts +0 -8
- package/dist/MultiXYPlotRenderer/MultiXYPlotRenderer.js +0 -61
- package/dist/MultiXYPlotRenderer/configSchema.d.ts +0 -57
- package/dist/MultiXYPlotRenderer/configSchema.js +0 -34
- package/dist/MultiXYPlotRenderer/index.d.ts +0 -2
- package/dist/MultiXYPlotRenderer/index.js +0 -17
- package/dist/QuantitativeTrack/configSchema.d.ts +0 -80
- package/dist/QuantitativeTrack/configSchema.js +0 -11
- package/dist/QuantitativeTrack/index.d.ts +0 -2
- package/dist/QuantitativeTrack/index.js +0 -20
- package/dist/Tooltip.d.ts +0 -18
- package/dist/Tooltip.js +0 -34
- package/dist/WiggleBaseRenderer.d.ts +0 -57
- package/dist/WiggleBaseRenderer.js +0 -42
- package/dist/WiggleRPC/MultiWiggleClusterScoreMatrix.d.ts +0 -14
- package/dist/WiggleRPC/MultiWiggleClusterScoreMatrix.js +0 -31
- package/dist/WiggleRPC/MultiWiggleGetScoreMatrix.d.ts +0 -6
- package/dist/WiggleRPC/MultiWiggleGetScoreMatrix.js +0 -22
- package/dist/WiggleRPC/MultiWiggleGetSources.d.ts +0 -14
- package/dist/WiggleRPC/MultiWiggleGetSources.js +0 -22
- package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.d.ts +0 -12
- package/dist/WiggleRPC/WiggleGetGlobalQuantitativeStats.js +0 -22
- package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.d.ts +0 -13
- package/dist/WiggleRPC/WiggleGetMultiRegionQuantitativeStats.js +0 -22
- package/dist/WiggleRPC/getScoreMatrix.d.ts +0 -6
- package/dist/WiggleRPC/getScoreMatrix.js +0 -35
- package/dist/WiggleRPC/rpcMethods.d.ts +0 -5
- package/dist/WiggleRPC/rpcMethods.js +0 -21
- package/dist/WiggleRPC/types.d.ts +0 -13
- package/dist/WiggleRPC/types.js +0 -2
- package/dist/WiggleRendering.d.ts +0 -14
- package/dist/WiggleRendering.js +0 -35
- package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +0 -7
- package/dist/XYPlotRenderer/XYPlotRenderer.js +0 -61
- package/dist/XYPlotRenderer/configSchema.d.ts +0 -57
- package/dist/XYPlotRenderer/configSchema.js +0 -34
- package/dist/XYPlotRenderer/index.d.ts +0 -5
- package/dist/XYPlotRenderer/index.js +0 -24
- package/dist/configSchema.d.ts +0 -37
- package/dist/configSchema.js +0 -47
- package/dist/drawDensity.d.ts +0 -18
- package/dist/drawDensity.js +0 -81
- package/dist/drawLine.d.ts +0 -20
- package/dist/drawLine.js +0 -77
- package/dist/drawXY.d.ts +0 -21
- package/dist/drawXY.js +0 -191
- package/dist/getMultiWiggleSourcesAutorun.d.ts +0 -18
- package/dist/getMultiWiggleSourcesAutorun.js +0 -38
- package/dist/getQuantitativeStats.d.ts +0 -13
- package/dist/getQuantitativeStats.js +0 -70
- package/dist/getQuantitativeStatsAutorun.d.ts +0 -13
- package/dist/getQuantitativeStatsAutorun.js +0 -35
- package/dist/index.d.ts +0 -91
- package/dist/index.js +0 -112
- package/dist/shared/SetMinMaxDialog.d.ts +0 -10
- package/dist/shared/SetMinMaxDialog.js +0 -26
- package/dist/shared/SharedWiggleConfigSchema.d.ts +0 -66
- package/dist/shared/SharedWiggleConfigSchema.js +0 -56
- package/dist/shared/SharedWiggleMixin.d.ts +0 -420
- package/dist/shared/SharedWiggleMixin.js +0 -343
- package/dist/shared/YScaleBar.d.ts +0 -9
- package/dist/shared/YScaleBar.js +0 -12
- package/dist/util.d.ts +0 -25
- package/dist/util.js +0 -105
- package/esm/WiggleBaseRenderer.d.ts +0 -57
- package/esm/WiggleBaseRenderer.js +0 -36
package/esm/drawDensity.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { readConfObject } from '@jbrowse/core/configuration';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { fillRectCtx, getScale } from './util';
|
|
2
|
+
import { checkStopToken2, createStopTokenChecker, } from '@jbrowse/core/util/stopToken';
|
|
3
|
+
import { fillRectCtx, getScale } from "./util.js";
|
|
5
4
|
const fudgeFactor = 0.3;
|
|
6
5
|
const clipHeight = 2;
|
|
7
6
|
export function drawDensity(ctx, props) {
|
|
8
|
-
const {
|
|
7
|
+
const { features, regions, bpPerPx, scaleOpts, height, config, stopToken, lastCheck = createStopTokenChecker(stopToken), } = props;
|
|
9
8
|
const region = regions[0];
|
|
9
|
+
const regionStart = region.start;
|
|
10
|
+
const regionEnd = region.end;
|
|
11
|
+
const regionReversed = region.reversed;
|
|
12
|
+
const inverseBpPerPx = 1 / bpPerPx;
|
|
10
13
|
const pivot = readConfObject(config, 'bicolorPivot');
|
|
11
14
|
const pivotValue = readConfObject(config, 'bicolorPivotValue');
|
|
12
15
|
const negColor = readConfObject(config, 'negColor');
|
|
@@ -29,13 +32,16 @@ export function drawDensity(ctx, props) {
|
|
|
29
32
|
let prevLeftPx = Number.NEGATIVE_INFINITY;
|
|
30
33
|
let hasClipping = false;
|
|
31
34
|
const reducedFeatures = [];
|
|
32
|
-
let start = performance.now();
|
|
33
35
|
for (const feature of features.values()) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
checkStopToken2(lastCheck);
|
|
37
|
+
const fStart = feature.get('start');
|
|
38
|
+
const fEnd = feature.get('end');
|
|
39
|
+
const leftPx = regionReversed
|
|
40
|
+
? (regionEnd - fEnd) * inverseBpPerPx
|
|
41
|
+
: (fStart - regionStart) * inverseBpPerPx;
|
|
42
|
+
const rightPx = regionReversed
|
|
43
|
+
? (regionEnd - fStart) * inverseBpPerPx
|
|
44
|
+
: (fEnd - regionStart) * inverseBpPerPx;
|
|
39
45
|
if (Math.floor(leftPx) !== Math.floor(prevLeftPx) || rightPx - leftPx > 1) {
|
|
40
46
|
reducedFeatures.push(feature);
|
|
41
47
|
prevLeftPx = leftPx;
|
|
@@ -56,11 +62,15 @@ export function drawDensity(ctx, props) {
|
|
|
56
62
|
if (hasClipping) {
|
|
57
63
|
ctx.fillStyle = clipColor;
|
|
58
64
|
for (const feature of features.values()) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
checkStopToken2(lastCheck);
|
|
66
|
+
const fStart = feature.get('start');
|
|
67
|
+
const fEnd = feature.get('end');
|
|
68
|
+
const leftPx = regionReversed
|
|
69
|
+
? (regionEnd - fEnd) * inverseBpPerPx
|
|
70
|
+
: (fStart - regionStart) * inverseBpPerPx;
|
|
71
|
+
const rightPx = regionReversed
|
|
72
|
+
? (regionEnd - fStart) * inverseBpPerPx
|
|
73
|
+
: (fEnd - regionStart) * inverseBpPerPx;
|
|
64
74
|
const w = rightPx - leftPx + fudgeFactor;
|
|
65
75
|
const score = feature.get('score');
|
|
66
76
|
if (score > niceMax) {
|
package/esm/drawLine.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ScaleOpts } from './util';
|
|
1
|
+
import type { ScaleOpts } from './util.ts';
|
|
2
2
|
import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
3
|
-
import type { Feature, Region } from '@jbrowse/core/util';
|
|
3
|
+
import type { Feature, LastStopTokenCheck, Region, StopToken } from '@jbrowse/core/util';
|
|
4
4
|
export declare function drawLine(ctx: CanvasRenderingContext2D, props: {
|
|
5
5
|
features: Map<string, Feature> | Feature[];
|
|
6
6
|
regions: Region[];
|
|
@@ -14,7 +14,9 @@ export declare function drawLine(ctx: CanvasRenderingContext2D, props: {
|
|
|
14
14
|
colorCallback: (f: Feature, score: number) => string;
|
|
15
15
|
config: AnyConfigurationModel;
|
|
16
16
|
offset?: number;
|
|
17
|
-
stopToken?:
|
|
17
|
+
stopToken?: StopToken;
|
|
18
|
+
lastCheck?: LastStopTokenCheck;
|
|
19
|
+
staticColor?: string;
|
|
18
20
|
}): {
|
|
19
21
|
reducedFeatures: Feature[];
|
|
20
22
|
};
|
package/esm/drawLine.js
CHANGED
|
@@ -1,61 +1,138 @@
|
|
|
1
1
|
import { readConfObject } from '@jbrowse/core/configuration';
|
|
2
|
-
import { clamp
|
|
3
|
-
import {
|
|
4
|
-
import { getScale } from
|
|
5
|
-
const fudgeFactor = 0.3;
|
|
6
|
-
const clipHeight = 2;
|
|
2
|
+
import { clamp } from '@jbrowse/core/util';
|
|
3
|
+
import { checkStopToken2, createStopTokenChecker, } from '@jbrowse/core/util/stopToken';
|
|
4
|
+
import { WIGGLE_CLIP_HEIGHT, WIGGLE_FUDGE_FACTOR, getScale } from "./util.js";
|
|
7
5
|
export function drawLine(ctx, props) {
|
|
8
|
-
const { features, regions, bpPerPx, scaleOpts, height: unadjustedHeight, ticks: { values }, displayCrossHatches, colorCallback, config, offset = 0, stopToken, } = props;
|
|
6
|
+
const { features, regions, bpPerPx, scaleOpts, height: unadjustedHeight, ticks: { values }, displayCrossHatches, colorCallback, config, offset = 0, staticColor, stopToken, lastCheck = createStopTokenChecker(stopToken), } = props;
|
|
9
7
|
const region = regions[0];
|
|
10
|
-
const
|
|
8
|
+
const regionStart = region.start;
|
|
9
|
+
const regionEnd = region.end;
|
|
10
|
+
const reversed = region.reversed;
|
|
11
|
+
const invBpPerPx = 1 / bpPerPx;
|
|
12
|
+
const width = (regionEnd - regionStart) * invBpPerPx;
|
|
11
13
|
const height = unadjustedHeight - offset * 2;
|
|
12
14
|
const clipColor = readConfObject(config, 'clipColor');
|
|
13
15
|
const scale = getScale({ ...scaleOpts, range: [0, height] });
|
|
14
16
|
const domain = scale.domain();
|
|
15
17
|
const niceMin = domain[0];
|
|
16
18
|
const niceMax = domain[1];
|
|
17
|
-
const
|
|
19
|
+
const domainSpan = niceMax - niceMin;
|
|
20
|
+
const isLog = scaleOpts.scaleType === 'log';
|
|
21
|
+
const linearRatio = domainSpan !== 0 ? height / domainSpan : 0;
|
|
22
|
+
const log2 = Math.log(2);
|
|
23
|
+
const logMin = Math.log(niceMin) / log2;
|
|
24
|
+
const logMax = Math.log(niceMax) / log2;
|
|
25
|
+
const logSpan = logMax - logMin;
|
|
26
|
+
const logRatio = logSpan !== 0 ? height / logSpan : 0;
|
|
27
|
+
const toY = isLog
|
|
28
|
+
? (n) => clamp(height - (Math.log(n) / log2 - logMin) * logRatio, 0, height) +
|
|
29
|
+
offset
|
|
30
|
+
: (n) => clamp(height - (n - niceMin) * linearRatio, 0, height) + offset;
|
|
18
31
|
let lastVal;
|
|
19
32
|
let prevLeftPx = Number.NEGATIVE_INFINITY;
|
|
20
33
|
const reducedFeatures = [];
|
|
21
|
-
|
|
22
|
-
for (const feature of features.values()) {
|
|
23
|
-
if (performance.now() - start > 400) {
|
|
24
|
-
checkStopToken(stopToken);
|
|
25
|
-
start = performance.now();
|
|
26
|
-
}
|
|
27
|
-
const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
|
|
28
|
-
if (Math.floor(leftPx) !== Math.floor(prevLeftPx) || rightPx - leftPx > 1) {
|
|
29
|
-
reducedFeatures.push(feature);
|
|
30
|
-
prevLeftPx = leftPx;
|
|
31
|
-
}
|
|
32
|
-
const score = feature.get('score');
|
|
33
|
-
const lowClipping = score < niceMin;
|
|
34
|
-
const highClipping = score > niceMax;
|
|
35
|
-
const w = rightPx - leftPx + fudgeFactor;
|
|
36
|
-
const c = colorCallback(feature, score);
|
|
34
|
+
if (staticColor) {
|
|
37
35
|
ctx.beginPath();
|
|
38
|
-
ctx.strokeStyle =
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
36
|
+
ctx.strokeStyle = staticColor;
|
|
37
|
+
const clippingFeatures = [];
|
|
38
|
+
for (const feature of features.values()) {
|
|
39
|
+
checkStopToken2(lastCheck);
|
|
40
|
+
const fStart = feature.get('start');
|
|
41
|
+
const fEnd = feature.get('end');
|
|
42
|
+
const leftPx = reversed
|
|
43
|
+
? (regionEnd - fEnd) * invBpPerPx
|
|
44
|
+
: (fStart - regionStart) * invBpPerPx;
|
|
45
|
+
const rightPx = reversed
|
|
46
|
+
? (regionEnd - fStart) * invBpPerPx
|
|
47
|
+
: (fEnd - regionStart) * invBpPerPx;
|
|
48
|
+
if ((leftPx | 0) !== (prevLeftPx | 0) || rightPx - leftPx > 1) {
|
|
49
|
+
reducedFeatures.push(feature);
|
|
50
|
+
prevLeftPx = leftPx;
|
|
51
|
+
}
|
|
52
|
+
const score = feature.get('score');
|
|
53
|
+
const scoreY = toY(score);
|
|
54
|
+
if (score > niceMax) {
|
|
55
|
+
clippingFeatures.push({
|
|
56
|
+
leftPx,
|
|
57
|
+
w: rightPx - leftPx + WIGGLE_FUDGE_FACTOR,
|
|
58
|
+
high: true,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else if (score < niceMin && !isLog) {
|
|
62
|
+
clippingFeatures.push({
|
|
63
|
+
leftPx,
|
|
64
|
+
w: rightPx - leftPx + WIGGLE_FUDGE_FACTOR,
|
|
65
|
+
high: false,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const startY = lastVal !== undefined ? toY(lastVal) : scoreY;
|
|
69
|
+
if (!reversed) {
|
|
70
|
+
ctx.moveTo(leftPx, startY);
|
|
71
|
+
ctx.lineTo(leftPx, scoreY);
|
|
72
|
+
ctx.lineTo(rightPx, scoreY);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
ctx.moveTo(rightPx, startY);
|
|
76
|
+
ctx.lineTo(rightPx, scoreY);
|
|
77
|
+
ctx.lineTo(leftPx, scoreY);
|
|
78
|
+
}
|
|
79
|
+
lastVal = score;
|
|
49
80
|
}
|
|
50
81
|
ctx.stroke();
|
|
51
|
-
|
|
52
|
-
if (highClipping) {
|
|
82
|
+
if (clippingFeatures.length > 0) {
|
|
53
83
|
ctx.fillStyle = clipColor;
|
|
54
|
-
|
|
84
|
+
for (const { leftPx, w, high } of clippingFeatures) {
|
|
85
|
+
if (high) {
|
|
86
|
+
ctx.fillRect(leftPx, offset, w, WIGGLE_CLIP_HEIGHT);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
ctx.fillRect(leftPx, height - WIGGLE_CLIP_HEIGHT, w, WIGGLE_CLIP_HEIGHT);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
55
92
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
for (const feature of features.values()) {
|
|
96
|
+
checkStopToken2(lastCheck);
|
|
97
|
+
const fStart = feature.get('start');
|
|
98
|
+
const fEnd = feature.get('end');
|
|
99
|
+
const leftPx = reversed
|
|
100
|
+
? (regionEnd - fEnd) * invBpPerPx
|
|
101
|
+
: (fStart - regionStart) * invBpPerPx;
|
|
102
|
+
const rightPx = reversed
|
|
103
|
+
? (regionEnd - fStart) * invBpPerPx
|
|
104
|
+
: (fEnd - regionStart) * invBpPerPx;
|
|
105
|
+
if ((leftPx | 0) !== (prevLeftPx | 0) || rightPx - leftPx > 1) {
|
|
106
|
+
reducedFeatures.push(feature);
|
|
107
|
+
prevLeftPx = leftPx;
|
|
108
|
+
}
|
|
109
|
+
const score = feature.get('score');
|
|
110
|
+
const scoreY = toY(score);
|
|
111
|
+
const w = rightPx - leftPx + WIGGLE_FUDGE_FACTOR;
|
|
112
|
+
const c = colorCallback(feature, score);
|
|
113
|
+
ctx.beginPath();
|
|
114
|
+
ctx.strokeStyle = c;
|
|
115
|
+
const startY = lastVal !== undefined ? toY(lastVal) : scoreY;
|
|
116
|
+
if (!reversed) {
|
|
117
|
+
ctx.moveTo(leftPx, startY);
|
|
118
|
+
ctx.lineTo(leftPx, scoreY);
|
|
119
|
+
ctx.lineTo(rightPx, scoreY);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
ctx.moveTo(rightPx, startY);
|
|
123
|
+
ctx.lineTo(rightPx, scoreY);
|
|
124
|
+
ctx.lineTo(leftPx, scoreY);
|
|
125
|
+
}
|
|
126
|
+
ctx.stroke();
|
|
127
|
+
lastVal = score;
|
|
128
|
+
if (score > niceMax) {
|
|
129
|
+
ctx.fillStyle = clipColor;
|
|
130
|
+
ctx.fillRect(leftPx, offset, w, WIGGLE_CLIP_HEIGHT);
|
|
131
|
+
}
|
|
132
|
+
else if (score < niceMin && !isLog) {
|
|
133
|
+
ctx.fillStyle = clipColor;
|
|
134
|
+
ctx.fillRect(leftPx, height - WIGGLE_CLIP_HEIGHT, w, WIGGLE_CLIP_HEIGHT);
|
|
135
|
+
}
|
|
59
136
|
}
|
|
60
137
|
}
|
|
61
138
|
if (displayCrossHatches) {
|
package/esm/drawXY.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ScaleOpts } from './util';
|
|
1
|
+
import type { ScaleOpts } from './util.ts';
|
|
2
2
|
import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
3
3
|
import type { Feature, Region } from '@jbrowse/core/util';
|
|
4
|
+
import type { LastStopTokenCheck, StopToken } from '@jbrowse/core/util/stopToken';
|
|
4
5
|
export declare function drawXY(ctx: CanvasRenderingContext2D, props: {
|
|
5
|
-
stopToken?: string;
|
|
6
6
|
features: Map<string, Feature> | Feature[];
|
|
7
7
|
bpPerPx: number;
|
|
8
8
|
regions: Region[];
|
|
@@ -15,6 +15,8 @@ export declare function drawXY(ctx: CanvasRenderingContext2D, props: {
|
|
|
15
15
|
displayCrossHatches: boolean;
|
|
16
16
|
inverted: boolean;
|
|
17
17
|
offset?: number;
|
|
18
|
+
lastCheck?: LastStopTokenCheck;
|
|
19
|
+
stopToken?: StopToken;
|
|
18
20
|
colorCallback: (f: Feature, score: number) => string;
|
|
19
21
|
}): {
|
|
20
22
|
reducedFeatures: Feature[];
|
package/esm/drawXY.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { readConfObject } from '@jbrowse/core/configuration';
|
|
2
|
-
import { clamp
|
|
2
|
+
import { clamp } from '@jbrowse/core/util';
|
|
3
3
|
import { colord } from '@jbrowse/core/util/colord';
|
|
4
|
-
import {
|
|
5
|
-
import { fillRectCtx, getOrigin, getScale } from
|
|
4
|
+
import { checkStopToken2, createStopTokenChecker, } from '@jbrowse/core/util/stopToken';
|
|
5
|
+
import { fillRectCtx, getOrigin, getScale } from "./util.js";
|
|
6
6
|
function lighten(color, amount) {
|
|
7
7
|
const hslColor = color.toHsl();
|
|
8
8
|
const l = hslColor.l * (1 + amount);
|
|
@@ -22,9 +22,12 @@ function darken(color, amount) {
|
|
|
22
22
|
const fudgeFactor = 0.3;
|
|
23
23
|
const clipHeight = 2;
|
|
24
24
|
export function drawXY(ctx, props) {
|
|
25
|
-
const { features, bpPerPx, regions, scaleOpts, height: unadjustedHeight, config, ticks, displayCrossHatches, offset = 0, colorCallback, inverted, stopToken, } = props;
|
|
25
|
+
const { features, bpPerPx, regions, scaleOpts, height: unadjustedHeight, config, ticks, displayCrossHatches, offset = 0, colorCallback, inverted, stopToken, lastCheck = createStopTokenChecker(stopToken), } = props;
|
|
26
26
|
const region = regions[0];
|
|
27
27
|
const width = (region.end - region.start) / bpPerPx;
|
|
28
|
+
const regionStart = region.start;
|
|
29
|
+
const regionEnd = region.end;
|
|
30
|
+
const regionReversed = region.reversed;
|
|
28
31
|
const height = unadjustedHeight - offset * 2;
|
|
29
32
|
const filled = readConfObject(config, 'filled');
|
|
30
33
|
const clipColor = readConfObject(config, 'clipColor');
|
|
@@ -36,24 +39,48 @@ export function drawXY(ctx, props) {
|
|
|
36
39
|
const domain = scale.domain();
|
|
37
40
|
const niceMin = domain[0];
|
|
38
41
|
const niceMax = domain[1];
|
|
39
|
-
const
|
|
42
|
+
const isLog = scaleOpts.scaleType === 'log';
|
|
43
|
+
const log2 = Math.log(2);
|
|
44
|
+
const domainSpan = niceMax - niceMin;
|
|
45
|
+
const linearRatio = domainSpan !== 0 ? height / domainSpan : 0;
|
|
46
|
+
const logMin = isLog ? Math.log(niceMin) / log2 : 0;
|
|
47
|
+
const logMax = isLog ? Math.log(niceMax) / log2 : 0;
|
|
48
|
+
const logSpan = logMax - logMin;
|
|
49
|
+
const logRatio = logSpan !== 0 ? height / logSpan : 0;
|
|
50
|
+
const effectiveRange = inverted ? [height, 0] : [0, height];
|
|
51
|
+
const rangeFlipped = effectiveRange[0] === height;
|
|
52
|
+
const toY = isLog
|
|
53
|
+
? (n) => {
|
|
54
|
+
const logVal = Math.log(n) / log2;
|
|
55
|
+
const scaled = (logVal - logMin) * logRatio;
|
|
56
|
+
const result = rangeFlipped ? scaled : height - scaled;
|
|
57
|
+
return clamp(result, 0, height) + offset;
|
|
58
|
+
}
|
|
59
|
+
: (n) => {
|
|
60
|
+
const scaled = (n - niceMin) * linearRatio;
|
|
61
|
+
const result = rangeFlipped ? scaled : height - scaled;
|
|
62
|
+
return clamp(result, 0, height) + offset;
|
|
63
|
+
};
|
|
40
64
|
const toOrigin = (n) => toY(originY) - toY(n);
|
|
41
65
|
const getHeight = (n) => (filled ? toOrigin(n) : Math.max(minSize, 1));
|
|
66
|
+
const inverseBpPerPx = 1 / bpPerPx;
|
|
42
67
|
let hasClipping = false;
|
|
43
68
|
let prevLeftPx = Number.NEGATIVE_INFINITY;
|
|
44
69
|
const reducedFeatures = [];
|
|
45
70
|
const crossingOrigin = niceMin < pivotValue && niceMax > pivotValue;
|
|
46
|
-
let start = performance.now();
|
|
47
71
|
if (summaryScoreMode === 'whiskers') {
|
|
48
72
|
let lastCol;
|
|
49
73
|
let lastMix;
|
|
50
|
-
start = performance.now();
|
|
51
74
|
for (const feature of features.values()) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
75
|
+
checkStopToken2(lastCheck);
|
|
76
|
+
const fStart = feature.get('start');
|
|
77
|
+
const fEnd = feature.get('end');
|
|
78
|
+
const leftPx = regionReversed
|
|
79
|
+
? (regionEnd - fEnd) * inverseBpPerPx
|
|
80
|
+
: (fStart - regionStart) * inverseBpPerPx;
|
|
81
|
+
const rightPx = regionReversed
|
|
82
|
+
? (regionEnd - fStart) * inverseBpPerPx
|
|
83
|
+
: (fEnd - regionStart) * inverseBpPerPx;
|
|
57
84
|
if (feature.get('summary')) {
|
|
58
85
|
const w = Math.max(rightPx - leftPx + fudgeFactor, minSize);
|
|
59
86
|
const max = feature.get('maxScore');
|
|
@@ -69,13 +96,16 @@ export function drawXY(ctx, props) {
|
|
|
69
96
|
}
|
|
70
97
|
lastMix = undefined;
|
|
71
98
|
lastCol = undefined;
|
|
72
|
-
start = performance.now();
|
|
73
99
|
for (const feature of features.values()) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
100
|
+
checkStopToken2(lastCheck);
|
|
101
|
+
const fStart = feature.get('start');
|
|
102
|
+
const fEnd = feature.get('end');
|
|
103
|
+
const leftPx = regionReversed
|
|
104
|
+
? (regionEnd - fEnd) * inverseBpPerPx
|
|
105
|
+
: (fStart - regionStart) * inverseBpPerPx;
|
|
106
|
+
const rightPx = regionReversed
|
|
107
|
+
? (regionEnd - fStart) * inverseBpPerPx
|
|
108
|
+
: (fEnd - regionStart) * inverseBpPerPx;
|
|
79
109
|
const score = feature.get('score');
|
|
80
110
|
const max = feature.get('maxScore');
|
|
81
111
|
const min = feature.get('minScore');
|
|
@@ -100,13 +130,16 @@ export function drawXY(ctx, props) {
|
|
|
100
130
|
}
|
|
101
131
|
lastMix = undefined;
|
|
102
132
|
lastCol = undefined;
|
|
103
|
-
start = performance.now();
|
|
104
133
|
for (const feature of features.values()) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
134
|
+
checkStopToken2(lastCheck);
|
|
135
|
+
const fStart = feature.get('start');
|
|
136
|
+
const fEnd = feature.get('end');
|
|
137
|
+
const leftPx = regionReversed
|
|
138
|
+
? (regionEnd - fEnd) * inverseBpPerPx
|
|
139
|
+
: (fStart - regionStart) * inverseBpPerPx;
|
|
140
|
+
const rightPx = regionReversed
|
|
141
|
+
? (regionEnd - fStart) * inverseBpPerPx
|
|
142
|
+
: (fEnd - regionStart) * inverseBpPerPx;
|
|
110
143
|
if (feature.get('summary')) {
|
|
111
144
|
const min = feature.get('minScore');
|
|
112
145
|
const c = colorCallback(feature, min);
|
|
@@ -122,13 +155,16 @@ export function drawXY(ctx, props) {
|
|
|
122
155
|
}
|
|
123
156
|
}
|
|
124
157
|
else {
|
|
125
|
-
start = performance.now();
|
|
126
158
|
for (const feature of features.values()) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
159
|
+
checkStopToken2(lastCheck);
|
|
160
|
+
const fStart = feature.get('start');
|
|
161
|
+
const fEnd = feature.get('end');
|
|
162
|
+
const leftPx = regionReversed
|
|
163
|
+
? (regionEnd - fEnd) * inverseBpPerPx
|
|
164
|
+
: (fStart - regionStart) * inverseBpPerPx;
|
|
165
|
+
const rightPx = regionReversed
|
|
166
|
+
? (regionEnd - fStart) * inverseBpPerPx
|
|
167
|
+
: (fEnd - regionStart) * inverseBpPerPx;
|
|
132
168
|
if (Math.floor(leftPx) !== Math.floor(prevLeftPx) ||
|
|
133
169
|
rightPx - leftPx > 1) {
|
|
134
170
|
reducedFeatures.push(feature);
|
|
@@ -154,13 +190,16 @@ export function drawXY(ctx, props) {
|
|
|
154
190
|
ctx.save();
|
|
155
191
|
if (hasClipping) {
|
|
156
192
|
ctx.fillStyle = clipColor;
|
|
157
|
-
start = performance.now();
|
|
158
193
|
for (const feature of features.values()) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
194
|
+
checkStopToken2(lastCheck);
|
|
195
|
+
const fStart = feature.get('start');
|
|
196
|
+
const fEnd = feature.get('end');
|
|
197
|
+
const leftPx = regionReversed
|
|
198
|
+
? (regionEnd - fEnd) * inverseBpPerPx
|
|
199
|
+
: (fStart - regionStart) * inverseBpPerPx;
|
|
200
|
+
const rightPx = regionReversed
|
|
201
|
+
? (regionEnd - fStart) * inverseBpPerPx
|
|
202
|
+
: (fEnd - regionStart) * inverseBpPerPx;
|
|
164
203
|
const w = rightPx - leftPx + fudgeFactor;
|
|
165
204
|
const score = feature.get('score');
|
|
166
205
|
if (score > niceMax) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
2
|
+
import type { StopToken } from '@jbrowse/core/util/stopToken';
|
|
2
3
|
export interface Source {
|
|
3
4
|
name: string;
|
|
4
5
|
source: string;
|
|
@@ -11,8 +12,8 @@ export declare function getMultiWiggleSourcesAutorun(self: {
|
|
|
11
12
|
adapterConfig: AnyConfigurationModel;
|
|
12
13
|
autoscaleType: string;
|
|
13
14
|
adapterProps: () => Record<string, unknown>;
|
|
14
|
-
setSourcesLoading: (aborter:
|
|
15
|
+
setSourcesLoading: (aborter: StopToken) => void;
|
|
15
16
|
setError: (error: unknown) => void;
|
|
16
|
-
|
|
17
|
+
setStatusMessage: (str: string) => void;
|
|
17
18
|
setSources: (sources: Source[]) => void;
|
|
18
19
|
}): void;
|
|
@@ -2,8 +2,8 @@ import { getContainingView, getSession } from '@jbrowse/core/util';
|
|
|
2
2
|
import { isAbortException } from '@jbrowse/core/util/aborting';
|
|
3
3
|
import { createStopToken } from '@jbrowse/core/util/stopToken';
|
|
4
4
|
import { getRpcSessionId } from '@jbrowse/core/util/tracks';
|
|
5
|
+
import { addDisposer, isAlive } from '@jbrowse/mobx-state-tree';
|
|
5
6
|
import { autorun } from 'mobx';
|
|
6
|
-
import { addDisposer, isAlive } from 'mobx-state-tree';
|
|
7
7
|
export function getMultiWiggleSourcesAutorun(self) {
|
|
8
8
|
addDisposer(self, autorun(async () => {
|
|
9
9
|
try {
|
|
@@ -20,6 +20,11 @@ export function getMultiWiggleSourcesAutorun(self) {
|
|
|
20
20
|
regions: view.staticBlocks.contentBlocks,
|
|
21
21
|
sessionId,
|
|
22
22
|
adapterConfig,
|
|
23
|
+
statusCallback: (arg) => {
|
|
24
|
+
if (isAlive(self)) {
|
|
25
|
+
self.setStatusMessage(arg);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
23
28
|
}));
|
|
24
29
|
if (isAlive(self)) {
|
|
25
30
|
self.setSources(sources);
|
|
@@ -31,5 +36,5 @@ export function getMultiWiggleSourcesAutorun(self) {
|
|
|
31
36
|
getSession(self).notifyError(`${e}`, e);
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
|
-
}));
|
|
39
|
+
}, { name: 'MultiWiggleGetSources' }));
|
|
35
40
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
2
2
|
import type { QuantitativeStats } from '@jbrowse/core/util/stats';
|
|
3
|
+
import type { StopToken } from '@jbrowse/core/util/stopToken';
|
|
3
4
|
export declare function getQuantitativeStats(self: {
|
|
4
5
|
adapterConfig: AnyConfigurationModel;
|
|
5
6
|
configuration: AnyConfigurationModel;
|
|
6
7
|
autoscaleType: string;
|
|
7
|
-
|
|
8
|
+
setStatusMessage: (str: string) => void;
|
|
9
|
+
effectiveRpcDriverName?: string;
|
|
8
10
|
}, opts: {
|
|
9
11
|
headers?: Record<string, string>;
|
|
10
|
-
stopToken?:
|
|
12
|
+
stopToken?: StopToken;
|
|
11
13
|
filters: string[];
|
|
12
14
|
currStatsBpPerPx: number;
|
|
13
15
|
}): Promise<QuantitativeStats>;
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { getConf } from '@jbrowse/core/configuration';
|
|
2
|
-
import { getContainingView, getSession } from '@jbrowse/core/util';
|
|
2
|
+
import { getContainingTrack, getContainingView, getSession, } from '@jbrowse/core/util';
|
|
3
3
|
import { getRpcSessionId } from '@jbrowse/core/util/tracks';
|
|
4
|
-
import { isAlive } from 'mobx-state-tree';
|
|
4
|
+
import { isAlive } from '@jbrowse/mobx-state-tree';
|
|
5
5
|
export async function getQuantitativeStats(self, opts) {
|
|
6
6
|
const { rpcManager } = getSession(self);
|
|
7
7
|
const numStdDev = getConf(self, 'numStdDev') || 3;
|
|
8
|
-
const { adapterConfig, autoscaleType } = self;
|
|
8
|
+
const { adapterConfig, autoscaleType, effectiveRpcDriverName } = self;
|
|
9
9
|
const sessionId = getRpcSessionId(self);
|
|
10
|
+
const trackInstanceId = getContainingTrack(self).id;
|
|
10
11
|
const { currStatsBpPerPx } = opts;
|
|
11
12
|
const params = {
|
|
12
13
|
sessionId,
|
|
14
|
+
trackInstanceId,
|
|
13
15
|
adapterConfig,
|
|
16
|
+
rpcDriverName: effectiveRpcDriverName,
|
|
14
17
|
statusCallback: (message) => {
|
|
15
18
|
if (isAlive(self)) {
|
|
16
|
-
self.
|
|
19
|
+
self.setStatusMessage(message);
|
|
17
20
|
}
|
|
18
21
|
},
|
|
19
22
|
...opts,
|
|
@@ -33,8 +36,8 @@ export async function getQuantitativeStats(self, opts) {
|
|
|
33
36
|
currStatsBpPerPx,
|
|
34
37
|
};
|
|
35
38
|
}
|
|
36
|
-
if (autoscaleType === 'local' || autoscaleType === 'localsd') {
|
|
37
|
-
const { dynamicBlocks, bpPerPx } = getContainingView(self);
|
|
39
|
+
else if (autoscaleType === 'local' || autoscaleType === 'localsd') {
|
|
40
|
+
const { dynamicBlocks, staticBlocks, bpPerPx } = getContainingView(self);
|
|
38
41
|
const results = (await rpcManager.call(sessionId, 'WiggleGetMultiRegionQuantitativeStats', {
|
|
39
42
|
...params,
|
|
40
43
|
regions: dynamicBlocks.contentBlocks.map(region => {
|
|
@@ -45,6 +48,14 @@ export async function getQuantitativeStats(self, opts) {
|
|
|
45
48
|
end: Math.ceil(end),
|
|
46
49
|
};
|
|
47
50
|
}),
|
|
51
|
+
staticBlocks: staticBlocks.contentBlocks.map(region => {
|
|
52
|
+
const { start, end } = region;
|
|
53
|
+
return {
|
|
54
|
+
...JSON.parse(JSON.stringify(region)),
|
|
55
|
+
start: Math.floor(start),
|
|
56
|
+
end: Math.ceil(end),
|
|
57
|
+
};
|
|
58
|
+
}),
|
|
48
59
|
bpPerPx,
|
|
49
60
|
}));
|
|
50
61
|
const { scoreMin, scoreMean, scoreStdDev } = results;
|
|
@@ -60,7 +71,7 @@ export async function getQuantitativeStats(self, opts) {
|
|
|
60
71
|
currStatsBpPerPx,
|
|
61
72
|
};
|
|
62
73
|
}
|
|
63
|
-
if (autoscaleType === 'zscale') {
|
|
74
|
+
else if (autoscaleType === 'zscale') {
|
|
64
75
|
return rpcManager.call(sessionId, 'WiggleGetGlobalQuantitativeStats', params);
|
|
65
76
|
}
|
|
66
77
|
throw new Error(`invalid autoscaleType '${autoscaleType}'`);
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
2
2
|
import type { QuantitativeStats } from '@jbrowse/core/util/stats';
|
|
3
|
+
import type { StopToken } from '@jbrowse/core/util/stopToken';
|
|
3
4
|
export declare function getQuantitativeStatsAutorun(self: {
|
|
4
5
|
quantitativeStatsReady: boolean;
|
|
5
6
|
configuration: AnyConfigurationModel;
|
|
6
7
|
adapterConfig: AnyConfigurationModel;
|
|
7
8
|
autoscaleType: string;
|
|
8
9
|
adapterProps: () => Record<string, unknown>;
|
|
9
|
-
setStatsLoading: (token:
|
|
10
|
+
setStatsLoading: (token: StopToken) => void;
|
|
10
11
|
setError: (error: unknown) => void;
|
|
11
|
-
|
|
12
|
+
setStatusMessage: (str: string) => void;
|
|
12
13
|
updateQuantitativeStats: (stats: QuantitativeStats, region: string) => void;
|
|
13
14
|
}): void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getContainingView, isAbortException } from '@jbrowse/core/util';
|
|
2
2
|
import { createStopToken } from '@jbrowse/core/util/stopToken';
|
|
3
|
+
import { addDisposer, isAlive } from '@jbrowse/mobx-state-tree';
|
|
3
4
|
import { autorun } from 'mobx';
|
|
4
|
-
import {
|
|
5
|
-
import { getQuantitativeStats } from './getQuantitativeStats';
|
|
5
|
+
import { getQuantitativeStats } from "./getQuantitativeStats.js";
|
|
6
6
|
export function getQuantitativeStatsAutorun(self) {
|
|
7
7
|
addDisposer(self, autorun(async () => {
|
|
8
8
|
try {
|
|
@@ -28,5 +28,5 @@ export function getQuantitativeStatsAutorun(self) {
|
|
|
28
28
|
self.setError(e);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
}, { delay:
|
|
31
|
+
}, { delay: 500 }));
|
|
32
32
|
}
|