OpenMS
Loading...
Searching...
No Matches
BaseFeature.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Hendrik Weisser $
6// $Authors: Hendrik Weisser, Chris Bielow $
7// --------------------------------------------------------------------------
8
9#pragma once
10
15
16#include <optional>
17
18namespace OpenMS
19{
20 class FeatureHandle;
21
33 class OPENMS_DLLAPI BaseFeature : public RichPeak2D
34 {
35public:
39 typedef float QualityType;
41 typedef Int ChargeType;
43 typedef float WidthType;
44
54
55 static const std::string NamesOfAnnotationState[SIZE_OF_ANNOTATIONSTATE];
57
62
64 BaseFeature(const BaseFeature& feature) = default;
65
69 BaseFeature(BaseFeature&& feature) noexcept
70 : RichPeak2D(std::move(feature))
71 {
72 quality_ = feature.quality_;
73 charge_ = feature.charge_;
74 width_ = feature.width_;
75 // Note: will terminate program if move assignment throws because of noexcept
76 // but we can't recover in that case anyways and we need to mark it noexcept for the move.
77 peptides_ = std::move(feature.peptides_);
78 primary_id_ = std::move(feature.primary_id_);
79 id_matches_ = std::move(feature.id_matches_);
80 }
81
83 BaseFeature(const BaseFeature& rhs, UInt64 map_index);
84
86 explicit BaseFeature(const Peak2D& point);
87
89 explicit BaseFeature(const RichPeak2D& point);
90
92 explicit BaseFeature(const FeatureHandle& fh);
93
95 ~BaseFeature() override;
97
106 {
107 bool operator()(const BaseFeature& left, const BaseFeature& right) const
108 {
109 return left.getQuality() < right.getQuality();
110 }
111
112 bool operator()(const BaseFeature& left, const QualityType& right) const
113 {
114 return left.getQuality() < right;
115 }
116
117 bool operator()(const QualityType& left, const BaseFeature& right) const
118 {
119 return left < right.getQuality();
120 }
121
122 bool operator()(const QualityType& left, const QualityType& right) const
123 {
124 return left < right;
125 }
126
127 };
129
133 void setWidth(WidthType fwhm);
134
136 const ChargeType& getCharge() const;
137
139 void setCharge(const ChargeType& ch);
140
142 BaseFeature& operator=(const BaseFeature& rhs) = default;
143
145 BaseFeature& operator=(BaseFeature&& rhs) & = default;
146
148 bool operator==(const BaseFeature& rhs) const;
149
151 bool operator!=(const BaseFeature& rhs) const;
152
157
160
163
167
170
174 bool hasPrimaryID() const;
175
182
185
188
190 const std::set<IdentificationData::ObservationMatchRef>& getIDMatches() const;
191
193 std::set<IdentificationData::ObservationMatchRef>& getIDMatches();
194
197
205
206protected:
207
210
213
216
219
221 std::optional<IdentificationData::IdentifiedMolecule> primary_id_;
222
224 std::set<IdentificationData::ObservationMatchRef> id_matches_;
225 };
226
227} // namespace OpenMS
A basic LC-MS feature.
Definition BaseFeature.h:34
const PeptideIdentificationList & getPeptideIdentifications() const
const ChargeType & getCharge() const
Non-mutable access to charge state.
std::optional< IdentificationData::IdentifiedMolecule > primary_id_
primary ID (peptide, RNA, compound) assigned to this feature
Definition BaseFeature.h:221
void setQuality(QualityType q)
Set the overall quality.
PeptideIdentificationList & getPeptideIdentifications()
returns a mutable reference to the PeptideIdentification vector
void setPeptideIdentifications(const PeptideIdentificationList &peptides)
sets the PeptideIdentification vector
const std::set< IdentificationData::ObservationMatchRef > & getIDMatches() const
immutable access to the set of matches (e.g. PSMs) with IDs for this feature
void sortPeptideIdentifications()
sorts PeptideIdentifications, assuming they have the same scoreType.
void clearPrimaryID()
clear any primary ID that was assigned
WidthType width_
Width (FWHM) for the feature. The default value is 0.0, a feature finding algorithm can compute this ...
Definition BaseFeature.h:215
bool operator==(const BaseFeature &rhs) const
Equality operator.
QualityType getQuality() const
BaseFeature & operator=(BaseFeature &&rhs) &=default
Move Assignment operator.
BaseFeature & operator=(const BaseFeature &rhs)=default
Assignment operator.
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:212
const IdentificationData::IdentifiedMolecule & getPrimaryID() const
Return the primary ID (peptide, RNA, compound) assigned to this feature.
bool hasPrimaryID() const
float QualityType
Definition BaseFeature.h:39
float WidthType
Type of feature width/FWHM (RT)
Definition BaseFeature.h:43
BaseFeature(const BaseFeature &feature)=default
Copy constructor.
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:41
void setWidth(WidthType fwhm)
Set the width of the feature (FWHM)
void addIDMatch(IdentificationData::ObservationMatchRef ref)
add an ID match (e.g. PSM) for this feature
bool operator!=(const BaseFeature &rhs) const
Inequality operator.
QualityType quality_
Overall quality measure of the feature.
Definition BaseFeature.h:209
BaseFeature(const RichPeak2D &point)
Constructor from raw data point with meta information.
void setCharge(const ChargeType &ch)
Set charge state.
std::set< IdentificationData::ObservationMatchRef > id_matches_
set of observation matches (e.g. PSMs) with IDs for this feature
Definition BaseFeature.h:224
BaseFeature(BaseFeature &&feature) noexcept
Definition BaseFeature.h:69
~BaseFeature() override
Destructor.
PeptideIdentificationList peptides_
PeptideIdentifications belonging to the feature.
Definition BaseFeature.h:218
std::set< IdentificationData::ObservationMatchRef > & getIDMatches()
mutable access to the set of matches (e.g. PSMs) with IDs for this feature
AnnotationState
state of identification, use getAnnotationState() to query it
Definition BaseFeature.h:47
@ FEATURE_ID_MULTIPLE_SAME
Definition BaseFeature.h:50
@ FEATURE_ID_SINGLE
Definition BaseFeature.h:49
@ FEATURE_ID_NONE
Definition BaseFeature.h:48
@ FEATURE_ID_MULTIPLE_DIVERGENT
Definition BaseFeature.h:51
void updateIDReferences(const IdentificationData::RefTranslator &trans)
Update ID references (primary ID, matches) for this feature.
BaseFeature(const Peak2D &point)
Constructor from raw data point.
BaseFeature(const FeatureHandle &fh)
Constructor from a featurehandle.
void setPrimaryID(const IdentificationData::IdentifiedMolecule &id)
set the primary ID (peptide, RNA, compound) for this feature
Representation of a Peak2D, RichPeak2D or Feature .
Definition FeatureHandle.h:36
A 2-dimensional raw data point or peak.
Definition Peak2D.h:30
Container for peptide identifications from multiple spectra.
Definition PeptideIdentificationList.h:66
A 2-dimensional raw data point or peak with meta information.
Definition RichPeak2D.h:30
int Int
Signed integer type.
Definition Types.h:72
uint64_t UInt64
Unsigned integer type (64bit)
Definition Types.h:47
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Compare by quality.
Definition BaseFeature.h:106
bool operator()(const BaseFeature &left, const BaseFeature &right) const
Definition BaseFeature.h:107
bool operator()(const QualityType &left, const QualityType &right) const
Definition BaseFeature.h:122
bool operator()(const BaseFeature &left, const QualityType &right) const
Definition BaseFeature.h:112
bool operator()(const QualityType &left, const BaseFeature &right) const
Definition BaseFeature.h:117
Variant type holding Peptide/Compound/Oligo references and convenience functions.
Definition IdentifiedMolecule.h:29
Wrapper that adds operator< to iterators, so they can be used as (part of) keys in maps/sets or multi...
Definition MetaData.h:20
structure that maps references of corresponding objects after copying
Definition IdentificationData.h:184