OpenMS
LayerData1DBase Class Referenceabstract

Base class for all 1D layers, a special case of LayerData. More...

#include <OpenMS/VISUAL/LayerData1DBase.h>

Inheritance diagram for LayerData1DBase:
[legend]
Collaboration diagram for LayerData1DBase:
[legend]

Public Member Functions

virtual std::unique_ptr< Painter1DBasegetPainter1D () const =0
 Obtain a painter which can draw the layer on a canvas. More...
 
virtual RangeAllType getRange1D () const =0
 
virtual RangeAllType getRangeForArea (const RangeAllType partial_range) const =0
 Given a partial_range for the current 1D layer (e.g. an m/z range), fill in the other dimensions (usually intensity) from all data points which are within the input range. More...
 
virtual QMenu * getContextMenuAnnotation (Annotation1DItem *annot_item, bool &need_repaint)=0
 Get a context menu (with lambda actions included) for this 1D layer, when a Annotation1DItem was right-clicked. More...
 
virtual Annotation1DItemaddPeakAnnotation (const PeakIndex &peak_index, const QString &text, const QColor &color)=0
 Add a Annotation1DPeakItem to getCurrentAnnotations(). The specific type is determined by the derived class (e.g. Peak1D, ChromatogramPeak1D, etc) More...
 
String getDecoratedName () const override
 get name augmented with attributes, e.g. '*' if modified More...
 
const Annotations1DContainergetCurrentAnnotations () const
 Returns a const reference to the annotations of the current spectrum (1D view) More...
 
Annotations1DContainergetCurrentAnnotations ()
 Returns a mutable reference to the annotations of the current spectrum (1D view) More...
 
const Annotations1DContainergetAnnotations (Size spectrum_index) const
 Returns a const reference to the annotations of the spectrum_index's spectrum (1D view) More...
 
Annotations1DContainergetAnnotations (Size spectrum_index)
 Returns a mutable reference to the annotations of the spectrum_index's spectrum (1D view) More...
 
Size getCurrentIndex () const
 Get the index of the current spectrum (1D view) More...
 
void setCurrentIndex (Size index)
 Set the index of the current spectrum (1D view) – and prepares annotations. More...
 
virtual bool hasIndex (Size index) const =0
 Does the layer have at least index items (e.g. spectra, chroms, etc), so a call to setCurrentIndex() is valid? More...
 
- Public Member Functions inherited from LayerDataBase
 LayerDataBase ()=delete
 Default constructor (for virtual inheritance) More...
 
 LayerDataBase (const DataType type)
 C'tor for child classes. More...
 
 LayerDataBase (const LayerDataBase &ld)=default
 Copy-C'tor. More...
 
LayerDataBaseoperator= (const LayerDataBase &ld)=delete
 Assignment operator. More...
 
 LayerDataBase (LayerDataBase &&ld)=delete
 
LayerDataBaseoperator= (LayerDataBase &&ld)=delete
 Move assignment – deleted, by same argument as for move c'tor. More...
 
virtual ~LayerDataBase ()=default
 D'tor. More...
 
virtual std::unique_ptr< Painter2DBasegetPainter2D () const =0
 Obtain a painter which can draw the layer on a 2D canvas. More...
 
virtual std::unique_ptr< LayerData1DBaseto1DLayer () const =0
 Create a shallow copy (i.e. shared experimental data using shared_ptr) of the current layer, and make it 1D (i.e. support showing a single spec/chrom etc) More...
 
virtual std::unique_ptr< LayerStoreDatastoreVisibleData (const RangeAllType &, const DataFilters &) const
 Returns a visitor which contains the current visible data and can write the data to disk. More...
 
virtual std::unique_ptr< LayerStoreDatastoreFullData () const
 Returns a visitor which contains the the full data of the layer and can write the data to disk in the appropriate format (e.g. mzML) More...
 
virtual ProjectionData getProjection (const DIM_UNIT unit_x, const DIM_UNIT unit_y, const RangeAllType &area) const =0
 
virtual PeakIndex findClosestDataPoint (const RangeAllType &area) const
 Find the closest datapoint within the given range and return a proxy to that datapoint. More...
 
virtual PeakIndex findHighestDataPoint (const RangeAllType &area) const
 Find the datapoint with the highest intensity within the given range and return a proxy to that datapoint. More...
 
virtual PointXYType peakIndexToXY (const PeakIndex &peak, const DimMapper< 2 > &mapper) const =0
 Convert a PeakIndex to a XY coordinate (via mapper). More...
 
virtual String getDataArrayDescription (const PeakIndex &peak_index)
 Get name and value of all data-arrays corresponding to the given datapoint. More...
 
virtual bool annotate (const std::vector< PeptideIdentification > &identifications, const std::vector< ProteinIdentification > &protein_identifications)
 
virtual void updateRanges ()=0
 Update ranges of the underlying data. More...
 
float getMinIntensity () const
 Returns the minimum intensity of the internal data, depending on type. More...
 
float getMaxIntensity () const
 Returns the maximum intensity of the internal data, depending on type. More...
 
virtual RangeAllType getRange () const =0
 
virtual std::unique_ptr< LayerStatisticsgetStats () const =0
 Compute layer statistics (via visitor) More...
 
const StringgetName () const
 The name of the layer, usually the basename of the file. More...
 
void setName (const String &new_name)
 Set the name of the layer, usually the basename of the file. More...
 
const StringgetNameSuffix () const
 get the extra annotation to the layers name, e.g. '[39]' for which chromatogram index is currently shown in 1D More...
 
void setNameSuffix (const String &decorator)
 set an extra annotation as suffix to the layers name, e.g. '[39]' for which chromatogram index is currently shown in 1D More...
 

Public Attributes

bool flipped = false
 if this layer is flipped (1d mirror view) More...
 
std::vector< QColor > peak_colors_1d
 Peak colors of the currently shown spectrum. More...
 
- Public Attributes inherited from LayerDataBase
std::bitset< SIZE_OF_FLAGSflags
 Actual state of each flag. More...
 
bool visible = true
 if this layer is visible More...
 
DataType type = DT_UNKNOWN
 data type (peak or feature data, etc) More...
 
String filename
 file name of the file the data comes from (if available) More...
 
Param param
 Layer parameters. More...
 
MultiGradient gradient
 Gradient for 2D and 3D views. More...
 
DataFilters filters
 Filters to apply before painting. More...
 
bool modifiable = false
 Flag that indicates if the layer data can be modified (so far used for features only) More...
 
bool modified = false
 Flag that indicates that the layer data was modified since loading it. More...
 
LabelType label = L_NONE
 Label type. More...
 
int peptide_id_index = -1
 Selected peptide id and hit index (-1 if none is selected) More...
 
int peptide_hit_index = -1
 

Protected Attributes

Size current_idx_ = 0
 Index of the current spectrum/chromatogram etc (by default, show the first one) More...
 
std::vector< Annotations1DContainerannotations_1d_ = std::vector<Annotations1DContainer>(1)
 Annotations of all spectra of the experiment (1D view) More...
 

Additional Inherited Members

- Public Types inherited from LayerDataBase
using RangeAllType = RangeManager< RangeRT, RangeMZ, RangeIntensity, RangeMobility >
 
- Public Types inherited from LayerDataDefs
enum  DataType {
  DT_PEAK , DT_CHROMATOGRAM , DT_FEATURE , DT_CONSENSUS ,
  DT_IDENT , DT_UNKNOWN
}
 
enum  Flags {
  F_HULL , F_HULLS , F_UNASSIGNED , P_PRECURSORS ,
  P_PROJECTIONS , C_ELEMENTS , I_PEPTIDEMZ , I_LABELS ,
  SIZE_OF_FLAGS
}
 Flags that determine which information is shown. More...
 
enum  LabelType {
  L_NONE , L_INDEX , L_META_LABEL , L_ID ,
  L_ID_ALL , SIZE_OF_LABEL_TYPE
}
 Label used in visualization. More...
 
typedef FeatureMap FeatureMapType
 Features. More...
 
typedef boost::shared_ptr< FeatureMapFeatureMapSharedPtrType
 SharedPtr on feature map. More...
 
typedef ConsensusMap ConsensusMapType
 consensus features More...
 
typedef boost::shared_ptr< ConsensusMapConsensusMapSharedPtrType
 SharedPtr on consensus features. More...
 
typedef PeakMap ExperimentType
 Main data type (experiment) More...
 
typedef boost::shared_ptr< ExperimentTypeExperimentSharedPtrType
 SharedPtr on MSExperiment. More...
 
typedef boost::shared_ptr< const ExperimentTypeConstExperimentSharedPtrType
 
typedef boost::shared_ptr< OnDiscMSExperimentODExperimentSharedPtrType
 SharedPtr on On-Disc MSExperiment. More...
 
typedef boost::shared_ptr< OSWDataOSWDataSharedPtrType
 SharedPtr on OSWData. More...
 
- Static Public Attributes inherited from LayerDataDefs
static const std::string NamesOfLabelType [SIZE_OF_LABEL_TYPE]
 Label names. More...
 

Detailed Description

Base class for all 1D layers, a special case of LayerData.

1D is a bit special because we need to remember which spectrum/chrom/IM is currently shown (there are usually many of them to choose from).

Member Function Documentation

◆ addPeakAnnotation()

virtual Annotation1DItem* addPeakAnnotation ( const PeakIndex peak_index,
const QString &  text,
const QColor &  color 
)
pure virtual

Add a Annotation1DPeakItem to getCurrentAnnotations(). The specific type is determined by the derived class (e.g. Peak1D, ChromatogramPeak1D, etc)

Parameters
peak_indexWhich peak should be annotated?
textText to annotate with
colorColor of the text
Returns
The item that was created

Implemented in LayerData1DPeak, LayerData1DIonMobility, and LayerData1DChrom.

◆ getAnnotations() [1/2]

Annotations1DContainer& getAnnotations ( Size  spectrum_index)
inline

Returns a mutable reference to the annotations of the spectrum_index's spectrum (1D view)

◆ getAnnotations() [2/2]

const Annotations1DContainer& getAnnotations ( Size  spectrum_index) const
inline

Returns a const reference to the annotations of the spectrum_index's spectrum (1D view)

◆ getContextMenuAnnotation()

virtual QMenu* getContextMenuAnnotation ( Annotation1DItem annot_item,
bool &  need_repaint 
)
pure virtual

Get a context menu (with lambda actions included) for this 1D layer, when a Annotation1DItem was right-clicked.

Parameters
annot_itemThe annotation item clicked on
need_repaintReference of bool in calling function, which must know if the action requires repainting the canvas
Returns
A context menu to embed into the generic menu

Implemented in LayerData1DPeak, LayerData1DIonMobility, and LayerData1DChrom.

◆ getCurrentAnnotations() [1/2]

Annotations1DContainer& getCurrentAnnotations ( )
inline

Returns a mutable reference to the annotations of the current spectrum (1D view)

◆ getCurrentAnnotations() [2/2]

const Annotations1DContainer& getCurrentAnnotations ( ) const
inline

Returns a const reference to the annotations of the current spectrum (1D view)

◆ getCurrentIndex()

Size getCurrentIndex ( ) const
inline

Get the index of the current spectrum (1D view)

◆ getDecoratedName()

String getDecoratedName ( ) const
overridevirtual

get name augmented with attributes, e.g. '*' if modified

Reimplemented from LayerDataBase.

◆ getPainter1D()

virtual std::unique_ptr<Painter1DBase> getPainter1D ( ) const
pure virtual

Obtain a painter which can draw the layer on a canvas.

Returns
A painter

Implemented in LayerData1DPeak, LayerData1DIonMobility, and LayerData1DChrom.

◆ getRange1D()

virtual RangeAllType getRange1D ( ) const
pure virtual

Returns the data range in all known dimensions for the data of the currently active index (i.e. only a single spec/chrom/etc). If a layer does not support the dimension (or the layer is empty) the dimension will be empty If you need the data range for the whole layer (i.e. all specs/chroms/etc), call 'LayerDataBase::getRange()'

Implemented in LayerData1DPeak, LayerData1DIonMobility, and LayerData1DChrom.

◆ getRangeForArea()

virtual RangeAllType getRangeForArea ( const RangeAllType  partial_range) const
pure virtual

Given a partial_range for the current 1D layer (e.g. an m/z range), fill in the other dimensions (usually intensity) from all data points which are within the input range.

Parameters
partial_rangeRange with at least one dimension populated (which is used to filter the current spectrum/chrom/...)
Returns
Range of the data points within the input range (e.g. for spectra: m/z and intensity; or chroms: RT and intensity, etc)

Implemented in LayerData1DPeak, LayerData1DIonMobility, and LayerData1DChrom.

◆ hasIndex()

virtual bool hasIndex ( Size  index) const
pure virtual

Does the layer have at least index items (e.g. spectra, chroms, etc), so a call to setCurrentIndex() is valid?

Implemented in LayerData1DPeak, LayerData1DIonMobility, and LayerData1DChrom.

◆ setCurrentIndex()

void setCurrentIndex ( Size  index)

Set the index of the current spectrum (1D view) – and prepares annotations.

Member Data Documentation

◆ annotations_1d_

std::vector<Annotations1DContainer> annotations_1d_ = std::vector<Annotations1DContainer>(1)
protected

Annotations of all spectra of the experiment (1D view)

◆ current_idx_

Size current_idx_ = 0
protected

Index of the current spectrum/chromatogram etc (by default, show the first one)

◆ flipped

bool flipped = false

if this layer is flipped (1d mirror view)

◆ peak_colors_1d

std::vector<QColor> peak_colors_1d

Peak colors of the currently shown spectrum.