OpenMS  2.7.0
BaseFeature.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2021.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Hendrik Weisser $
32 // $Authors: Hendrik Weisser, Chris Bielow $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
39 
40 namespace OpenMS
41 {
42  class FeatureHandle;
43  class PeptideIdentification;
44 
56  class OPENMS_DLLAPI BaseFeature :
57  public RichPeak2D
58  {
59 public:
61 
62  typedef float QualityType;
65  typedef Int ChargeType;
67  typedef float WidthType;
68 
71  {
76  SIZE_OF_ANNOTATIONSTATE
77  };
78 
79  static const std::string NamesOfAnnotationState[SIZE_OF_ANNOTATIONSTATE];
80 
82 
88 
90  BaseFeature(const BaseFeature& feature) = default;
91 
93  BaseFeature(BaseFeature&& feature) = default;
94 
96  BaseFeature(const BaseFeature& rhs, UInt64 map_index);
97 
99  explicit BaseFeature(const Peak2D& point);
100 
102  explicit BaseFeature(const RichPeak2D& point);
103 
105  explicit BaseFeature(const FeatureHandle& fh);
106 
108  ~BaseFeature() override;
110 
112 
113  QualityType getQuality() const;
118  struct QualityLess
119  {
120  bool operator()(const BaseFeature& left, const BaseFeature& right) const
121  {
122  return left.getQuality() < right.getQuality();
123  }
124 
125  bool operator()(const BaseFeature& left, const QualityType& right) const
126  {
127  return left.getQuality() < right;
128  }
129 
130  bool operator()(const QualityType& left, const BaseFeature& right) const
131  {
132  return left < right.getQuality();
133  }
134 
135  bool operator()(const QualityType& left, const QualityType& right) const
136  {
137  return left < right;
138  }
139 
140  };
142 
146  void setWidth(WidthType fwhm);
147 
149  const ChargeType& getCharge() const;
150 
152  void setCharge(const ChargeType& ch);
153 
155  BaseFeature& operator=(const BaseFeature& rhs) = default;
156 
158  BaseFeature& operator=(BaseFeature&& rhs) & = default;
159 
161  bool operator==(const BaseFeature& rhs) const;
162 
164  bool operator!=(const BaseFeature& rhs) const;
165 
167  const std::vector<PeptideIdentification>& getPeptideIdentifications() const;
168 
170  std::vector<PeptideIdentification>& getPeptideIdentifications();
171 
173  void setPeptideIdentifications(const std::vector<PeptideIdentification>& peptides);
174 
177 
180 
181 protected:
182 
185 
188 
191 
193  std::vector<PeptideIdentification> peptides_;
194  };
195 
196 } // namespace OpenMS
197 
A basic LC-MS feature.
Definition: BaseFeature.h:58
void setPeptideIdentifications(const std::vector< PeptideIdentification > &peptides)
sets the PeptideIdentification vector
void setQuality(QualityType q)
Set the overall quality.
BaseFeature(BaseFeature &&feature)=default
Move constructor.
BaseFeature & operator=(BaseFeature &&rhs) &=default
Move Assignment operator.
void sortPeptideIdentifications()
sorts PeptideIdentifications, assuming they have the same scoreType.
WidthType width_
Width (FWHM) for the feature. The default value is 0.0, a feature finding algorithm can compute this ...
Definition: BaseFeature.h:190
bool operator==(const BaseFeature &rhs) const
Equality operator.
QualityType getQuality() const
Non-mutable access to the overall quality.
const ChargeType & getCharge() const
Non-mutable access to charge state.
AnnotationState getAnnotationState() const
state of peptide identifications attached to this feature. If one ID has multiple hits,...
BaseFeature(const BaseFeature &rhs, UInt64 map_index)
Copy constructor with a new map_index.
ChargeType charge_
Charge of the peptide represented by this feature. The default value is 0, which represents an unknow...
Definition: BaseFeature.h:187
float QualityType
Type of quality values.
Definition: BaseFeature.h:63
float WidthType
Type of feature width/FWHM (RT)
Definition: BaseFeature.h:67
BaseFeature(const BaseFeature &feature)=default
Copy constructor.
std::vector< PeptideIdentification > & getPeptideIdentifications()
returns a mutable reference to the PeptideIdentification vector
WidthType getWidth() const
Non-mutable access to the features width (full width at half max, FWHM)
Int ChargeType
Type of charge values.
Definition: BaseFeature.h:65
void setWidth(WidthType fwhm)
Set the width of the feature (FWHM)
const std::vector< PeptideIdentification > & getPeptideIdentifications() const
returns a const reference to the PeptideIdentification vector
bool operator!=(const BaseFeature &rhs) const
Inequality operator.
QualityType quality_
Overall quality measure of the feature.
Definition: BaseFeature.h:184
BaseFeature(const RichPeak2D &point)
Constructor from raw data point with meta information.
void setCharge(const ChargeType &ch)
Set charge state.
~BaseFeature() override
Destructor.
AnnotationState
state of identification, use getIDState() to query it
Definition: BaseFeature.h:71
@ FEATURE_ID_MULTIPLE_SAME
Definition: BaseFeature.h:74
@ FEATURE_ID_SINGLE
Definition: BaseFeature.h:73
@ FEATURE_ID_NONE
Definition: BaseFeature.h:72
@ FEATURE_ID_MULTIPLE_DIVERGENT
Definition: BaseFeature.h:75
std::vector< PeptideIdentification > peptides_
PeptideIdentifications belonging to the feature.
Definition: BaseFeature.h:193
BaseFeature & operator=(const BaseFeature &rhs)=default
Assignment operator.
BaseFeature()
Default constructor.
BaseFeature(const Peak2D &point)
Constructor from raw data point.
BaseFeature(const FeatureHandle &fh)
Constructor from a featurehandle.
Representation of a Peak2D, RichPeak2D or Feature .
Definition: FeatureHandle.h:60
A 2-dimensional raw data point or peak.
Definition: Peak2D.h:55
A 2-dimensional raw data point or peak with meta information.
Definition: RichPeak2D.h:56
OPENMS_UINT64_TYPE UInt64
Unsigned integer type (64bit)
Definition: Types.h:77
int Int
Signed integer type.
Definition: Types.h:102
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
Compare by quality.
Definition: BaseFeature.h:119
bool operator()(const BaseFeature &left, const BaseFeature &right) const
Definition: BaseFeature.h:120
bool operator()(const QualityType &left, const QualityType &right) const
Definition: BaseFeature.h:135
bool operator()(const BaseFeature &left, const QualityType &right) const
Definition: BaseFeature.h:125
bool operator()(const QualityType &left, const BaseFeature &right) const
Definition: BaseFeature.h:130