38 #include <OpenMS/VISUAL/OpenMS_GUIConfig.h> 51 #include <QRubberBand> 68 class LayerDataFeature;
69 class LayerDataConsensus;
229 spectrum_widget_ = widget;
240 return spectrum_widget_;
263 return intensity_mode_;
277 intensity_mode_ = mod;
278 intensityModeChange_();
294 return layers_.getLayer(index);
299 return layers_.getLayer(index);
305 return layers_.getCurrentLayer();
310 return layers_.getCurrentLayer();
316 return layers_.getCurrentLayerIndex();
322 return getLayerFlag(layers_.getCurrentLayerIndex(), f);
328 setLayerFlag(layers_.getCurrentLayerIndex(), f, value);
334 return layers_.getLayer(layer).flags.test(f);
341 if (layers_.empty())
return;
343 layers_.getLayer(layer).flags.set(f, value);
344 update_buffer_ =
true;
351 if (layers_.empty())
return;
352 layers_.getCurrentLayer().label = label;
353 update_buffer_ =
true;
364 return visible_area_;
371 return visible_area_.getAreaXY().encloses(p);
378 int X_pixel_count = buffer_.width();
379 int Y_pixel_count = buffer_.height();
388 virtual void setFilters(
const DataFilters & filters);
396 inline Size getLayerCount()
const 399 return layers_.getLayerCount();
403 virtual void activateLayer(
Size layer_index) = 0;
405 virtual void removeLayer(
Size layer_index) = 0;
410 for (
Size i = getLayerCount(); i > 0; --i)
414 visible_area_.clear();
418 bool addLayer(std::unique_ptr<LayerData1DBase> layer);
430 bool addPeakLayer(ExperimentSharedPtrType map, ODExperimentSharedPtrType od_map,
const String& filename =
"",
const bool use_noise_cutoff =
false);
441 bool addChromLayer(ExperimentSharedPtrType map, ODExperimentSharedPtrType od_map,
const String& filename =
"");
452 bool addLayer(FeatureMapSharedPtrType map,
const String & filename =
"");
462 bool addLayer(ConsensusMapSharedPtrType map,
const String & filename =
"");
473 bool addLayer(std::vector<PeptideIdentification> & peptides,
474 const String & filename =
"");
479 return layers_.getCurrentLayer().getMinIntensity();
485 return layers_.getCurrentLayer().getMaxIntensity();
491 return getLayer(index).getMinIntensity();
497 return getLayer(index).getMaxIntensity();
501 void setLayerName(
Size i,
const String & name);
509 getCurrentLayer().param = param;
510 emit preferencesChange();
518 const RangeType& getDataRange()
const;
525 double getSnapFactor();
528 double getPercentageFactor()
const;
531 virtual void showCurrentLayerPreferences() = 0;
539 virtual void showMetaData(
bool modifiable =
false,
Int index = -1);
549 void changeVisibility(
Size i,
bool b);
557 void changeLayerFilterState(
Size i,
bool b);
565 void showGridLines(
bool show);
574 void resetZoom(
bool repaint =
true);
583 void setVisibleArea(
const VisibleArea& area);
601 void setVisibleArea(
const AreaXYType& area);
608 void setVisibleAreaX(
double min,
double max);
615 void setVisibleAreaY(
double min,
double max);
622 void saveCurrentLayer(
bool visible);
629 virtual void horizontalScrollBarChange(
int value);
636 virtual void verticalScrollBarChange(
int value);
639 void setAdditionalContextMenu(QMenu * menu);
642 virtual void updateLayer(
Size i) = 0;
668 void layerModficationChange(
Size layer,
bool modified);
671 void layerActivated(
QWidget * w);
674 void layerZoomChanged(
QWidget * w);
682 void visibleAreaChanged(
const VisibleArea& area);
685 void sendCursorStatus(
const String& x_value,
const String& y_value);
688 void sendStatusMessage(std::string message,
OpenMS::UInt time);
691 void recalculateAxes();
694 void updateVScrollbar(
float,
float,
float,
float);
697 void updateHScrollbar(
float,
float,
float,
float);
700 void changeLegendVisibility();
703 void actionModeChange();
706 void preferencesChange();
711 void updateCursor_();
716 void drawText_(QPainter & painter, QStringList text);
719 double getIdentificationMZ_(
const Size layer_index,
723 virtual bool finishAdding_() = 0;
727 void popIncompleteLayer_(
const QString& error_message =
"");
731 void resizeEvent(QResizeEvent * e)
override;
732 void wheelEvent(QWheelEvent * e)
override;
733 void keyPressEvent(QKeyEvent * e)
override;
734 void keyReleaseEvent(QKeyEvent * e)
override;
735 void focusOutEvent(QFocusEvent * e)
override;
736 void leaveEvent(QEvent * e)
override;
737 void enterEvent(QEvent * e)
override;
741 virtual void intensityModeChange_();
744 void dimensionsChanged_();
756 virtual void changeVisibleArea_(VisibleArea new_area,
bool repaint =
true,
bool add_to_stack =
false);
763 virtual void recalculateSnapFactor_();
767 virtual void zoom_(
int x,
int y,
bool zoom_in);
772 virtual void zoomForward_();
774 void zoomAdd_(
const VisibleArea& area);
781 virtual void translateLeft_(Qt::KeyboardModifiers m);
784 virtual void translateRight_(Qt::KeyboardModifiers m);
786 virtual void translateForward_();
788 virtual void translateBackward_();
796 virtual void updateScrollbars_();
809 const auto& xy = visible_area_.getAreaXY();
811 xy.minX() + x / width() * xy.width(),
812 xy.minY() + (height() - y) / height() * xy.height()
819 return widgetToData_(pos.x(), pos.y());
823 virtual void paintGridLines_(QPainter & painter);
850 void recalculateRanges_();
858 bool show_grid_ =
true;
863 std::vector<VisibleArea>::iterator zoom_pos_ = zoom_stack_.end();
874 virtual void update_(
const char* caller_name);
877 void modificationStatus_(
Size layer_index,
bool modified);
880 bool update_buffer_ =
false;
894 double percentage_factor_ = 1.0;
903 std::vector<double> snap_factors_ = {1.0};
909 QMenu* context_add_ =
nullptr;
912 bool show_timing_ =
false;
922 std::set<DataProcessing::ProcessingAction> actions;
923 actions.insert(action);
927 p->setProcessingActions(actions);
929 p->getSoftware().setName(
"PlotCanvas");
935 for (
Size i = 0; i < map.
size(); ++i)
937 map[i].getDataProcessing().push_back(p);
Description of the applied preprocessing steps.
Definition: DataProcessing.h:51
std::vector< VisibleArea > zoom_stack_
The zoom stack.
Definition: PlotCanvas.h:861
PeakIndex selected_peak_
selected peak
Definition: PlotCanvas.h:915
ActionModes
Mouse action modes.
Definition: PlotCanvas.h:196
LayerStack layers_
Layer data.
Definition: PlotCanvas.h:838
bool getLayerFlag(Size layer, LayerDataBase::Flags f) const
returns a layer flag of the layer layer
Definition: PlotCanvas.h:332
RangeManager< RangeRT, RangeMZ, RangeIntensity, RangeMobility > RangeAllType
Range which contains all known dimensions.
Definition: RangeManager.h:920
A more convenient string class.
Definition: String.h:58
boost::shared_ptr< ExperimentType > ExperimentSharedPtrType
SharedPtr on MSExperiment.
Definition: LayerDataBase.h:152
QPoint last_mouse_pos_
start position of mouse actions
Definition: PlotCanvas.h:886
boost::shared_ptr< OnDiscMSExperiment > ODExperimentSharedPtrType
SharedPtr on On-Disc MSExperiment.
Definition: LayerDataBase.h:157
void setLayerFlag(LayerDataBase::Flags f, bool value)
sets a layer flag of the current layer
Definition: PlotCanvas.h:326
Size current_layer_
Definition: PlotCanvas.h:113
std::unique_ptr< LayerDataChrom > LayerDataChromUPtr
Definition: PlotCanvas.h:72
const Area & setArea(const RangeAllType &data)
Set the area using unit data (RT, m/z, ...)
Definition: DimMapper.h:846
Size getCurrentLayerIndex() const
returns the index of the active layer
Definition: PlotCanvas.h:314
Allows dynamical switching (at runtime) between a dimension (RT, m/z, int, IM, etc) and X...
Definition: DimMapper.h:625
A container for features.
Definition: FeatureMap.h:98
unsigned int UInt
Unsigned integer type.
Definition: Types.h:94
std::unique_ptr< LayerDataConsensus > LayerDataConsensusUPtr
Definition: PlotCanvas.h:75
const LayerDataBase & getLayer(const Size index) const
Normal mode: f(x)=x.
Definition: PlotCanvas.h:206
ContainerType::const_iterator ConstIterator
Non-mutable iterator.
Definition: MSSpectrum.h:134
std::unique_ptr< LayerDataBase > LayerDataBaseUPtr
Definition: PlotCanvas.h:71
DimMapper< 2 > unit_mapper_
Mapper for X and Y axis.
Definition: PlotCanvas.h:829
A container for consensus elements.
Definition: ConsensusMap.h:82
PixelArea getPixelRange() const
Definition: PlotCanvas.h:376
void setLabel(LayerDataBase::LabelType label)
Definition: PlotCanvas.h:348
Size size() const
The number of spectra.
Definition: MSExperiment.h:147
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
boost::shared_ptr< ConsensusMap > ConsensusMapSharedPtrType
SharedPtr on consensus features.
Definition: LayerDataBase.h:146
RangeType overall_data_range_
Stores the data range (m/z, RT and intensity) of all layers.
Definition: PlotCanvas.h:855
std::vector< LayerDataBaseUPtr > layers_
Definition: PlotCanvas.h:111
LayerDataBase & getCurrentLayer()
returns the layer data of the active layer
Definition: PlotCanvas.h:308
Shows intensities normalized by layer maximum: f(x)=x/max(x)*100.
Definition: PlotCanvas.h:207
SpectrumType::PeakType PeakType
Peak type.
Definition: PlotCanvas.h:175
LayerDataBase & getLayer(Size index)
returns the layer data with index index
Definition: PlotCanvas.h:297
PeakIndex measurement_start_
start peak of measuring mode
Definition: PlotCanvas.h:917
bool getLayerFlag(LayerDataBase::Flags f) const
returns a layer flag of the current layer
Definition: PlotCanvas.h:320
QImage buffer_
Buffer that stores the actual peak information.
Definition: PlotCanvas.h:826
LabelType
Label used in visualization.
Definition: LayerDataBase.h:123
The representation of a 1D spectrum.
Definition: MSSpectrum.h:66
void removeCurrentLayer()
Area< 2 >::AreaXYType AreaXYType
The range of data shown on the X and Y axis (unit depends on runtime config)
Definition: PlotCanvas.h:180
DimMapper< 2 >::Point PointOnAxis
Definition: PlotCanvas.h:193
const VisibleArea & getVisibleArea() const
Returns the currently visible area.
Definition: PlotCanvas.h:362
ProcessingAction
Definition: DataProcessing.h:58
boost::shared_ptr< DataProcessing > DataProcessingPtr
Definition: DataProcessing.h:136
Shows the maximum displayed intensity as if it was the overall maximum intensity. ...
Definition: PlotCanvas.h:208
PointXYType widgetToData_(double x, double y)
Convert widget (pixel) to chart (unit) coordinates.
Definition: PlotCanvas.h:807
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:53
LayerDataBase::ExperimentType ExperimentType
Main data type (experiment)
Definition: PlotCanvas.h:156
bool isVisible(const PointOnAxis &p) const
Definition: PlotCanvas.h:369
float getMinIntensity(Size index) const
Returns the minimum intensity of the layer with index index.
Definition: PlotCanvas.h:489
LayerDataBase::FeatureMapSharedPtrType FeatureMapSharedPtrType
Main managed data type (features)
Definition: PlotCanvas.h:164
const LayerDataBase & getCurrentLayer() const
DPosition< 2U > PointXYType
Type of the Points in a 'flat' canvas (1D and 2D)
Definition: CommonDefs.h:59
const LayerDataBase & getLayer(Size index) const
returns the layer data with index index
Definition: PlotCanvas.h:292
Int getActionMode() const
Returns the action mode.
Definition: PlotCanvas.h:249
LayerDataBase::ConsensusMapSharedPtrType ConsensusMapSharedPtrType
Main managed data type (consensus features)
Definition: PlotCanvas.h:168
PlotWidget * getPlotWidget() const
Returns the spectrum widget.
Definition: PlotCanvas.h:238
IntensityModes getIntensityMode() const
Returns the intensity mode.
Definition: PlotCanvas.h:261
std::unique_ptr< LayerDataFeature > LayerDataFeatureUPtr
Definition: PlotCanvas.h:74
const LayerDataBase & getCurrentLayer() const
returns the layer data of the active layer
Definition: PlotCanvas.h:303
Management and storage of parameters / INI files.
Definition: Param.h:69
LayerDataBase::FeatureMapType FeatureMapType
Main data type (features)
Definition: PlotCanvas.h:162
void setCurrentLayer(Size index)
throws Exception::IndexOverflow unless index is smaller than getLayerCount()
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:70
IntensityModes
Display modes of intensity.
Definition: PlotCanvas.h:204
void addDataProcessing_(PeakMap &map, DataProcessing::ProcessingAction action) const
Data processing setter for peak maps.
Definition: PlotCanvas.h:920
static String getVersion()
Return the version number of OpenMS.
float getMaxIntensity(Size index) const
Returns the maximum intensity of the layer with index index.
Definition: PlotCanvas.h:495
QRubberBand rubber_band_
Rubber band for selected area.
Definition: PlotCanvas.h:906
PointXYType widgetToData_(const QPoint &pos)
Calls widgetToData_ with x and y position of pos.
Definition: PlotCanvas.h:817
Definition: DimMapper.h:799
float getCurrentMinIntensity() const
Returns the minimum intensity of the active layer.
Definition: PlotCanvas.h:477
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
LayerDataBase::ConstExperimentSharedPtrType ConstExperimentSharedPtrType
Definition: PlotCanvas.h:159
void setIntensityMode(IntensityModes mod)
Sets the intensity mode.
Definition: PlotCanvas.h:275
LayerDataBase::ExperimentSharedPtrType ExperimentSharedPtrType
Main managed data type (experiment)
Definition: PlotCanvas.h:158
void setCurrentLayerParameters(const Param ¶m)
Sets the parameters of the current layer.
Definition: PlotCanvas.h:507
bool gridLinesShown() const
Returns if the grid is currently shown.
Definition: PlotCanvas.h:286
boost::shared_ptr< const ExperimentType > ConstExperimentSharedPtrType
Definition: LayerDataBase.h:154
std::unique_ptr< LayerDataPeak > LayerDataPeakUPtr
Definition: PlotCanvas.h:73
Size getCurrentLayerIndex() const
void setLayerFlag(Size layer, LayerDataBase::Flags f, bool value)
sets a layer flag of the layer layer
Definition: PlotCanvas.h:338
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:92
boost::shared_ptr< FeatureMap > FeatureMapSharedPtrType
SharedPtr on feature map.
Definition: LayerDataBase.h:140
Base class for visualization canvas classes.
Definition: PlotCanvas.h:145
static DateTime now()
Returns the current date and time.
DataFilter array providing some convenience functions.
Definition: DataFilters.h:52
LayerDataBase::ODExperimentSharedPtrType ODExperimentSharedPtrType
Definition: PlotCanvas.h:160
void removeLayers()
removes all layers by calling removeLayer() for all layer indices (from highest to lowest) ...
Definition: PlotCanvas.h:408
ExperimentType::SpectrumType SpectrumType
Spectrum type.
Definition: PlotCanvas.h:171
Definition: PlotCanvas.h:82
translate
Definition: PlotCanvas.h:198
void setPlotWidget(PlotWidget *widget)
Sets the spectrum widget.
Definition: PlotCanvas.h:227
int Int
Signed integer type.
Definition: Types.h:102
float getCurrentMaxIntensity() const
Returns the maximum intensity of the active layer.
Definition: PlotCanvas.h:483
void addLayer(LayerDataBaseUPtr new_layer)
zoom
Definition: PlotCanvas.h:199
AreaXYType canvasPixelArea() const
Get the Area in pixel coordinates of the current canvas for X and Y axis.
Definition: PlotCanvas.h:649
Class that stores the data for one layer.
Definition: LayerDataBase.h:191
Flags
Flags that determine which information is shown.
Definition: LayerDataBase.h:109
SpectrumType::ConstIterator SpectrumConstIteratorType
Spectrum iterator type (iterates over peaks)
Definition: PlotCanvas.h:173
Index of a peak or feature.
Definition: PeakIndex.h:50
VisibleArea visible_area_
Stores the currently visible area in data units (e.g. seconds, m/z, intensity etc) and axis (X...
Definition: PlotCanvas.h:843
Represents the peptide hits for a spectrum.
Definition: PeptideIdentification.h:63
Size getLayerCount() const
LayerDataBase::ConsensusMapType ConsensusMapType
Main data type (consensus features)
Definition: PlotCanvas.h:166
void removeLayer(Size layer_index)