OpenMS
MobilityPeak2D.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: Chris Bielow $
6 // $Authors: Chris Bielow $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
11 #include <OpenMS/CONCEPT/Types.h>
13 
14 #include <iosfwd>
15 #include <functional>
16 
17 namespace OpenMS
18 {
19 
28  class OPENMS_DLLAPI MobilityPeak2D
29  {
30  public:
33 
35  typedef float IntensityType;
37  typedef double CoordinateType;
41 
44 
47  {
48  IM = 0,
49  MZ = 1,
50  DIMENSION = 2
51  };
52 
54  static char const * shortDimensionName(UInt const dim);
56  static char const * shortDimensionNameIM();
58  static char const * shortDimensionNameMZ();
59 
61  static char const * fullDimensionName(UInt const dim);
63  static char const * fullDimensionNameIM();
65  static char const * fullDimensionNameMZ();
66 
68  static char const * shortDimensionUnit(UInt const dim);
70  static char const * shortDimensionUnitIM();
72  static char const * shortDimensionUnitMZ();
73 
75  static char const * fullDimensionUnit(UInt const dim);
77  static char const * fullDimensionUnitIM();
79  static char const * fullDimensionUnitMZ();
80 
82 
83  protected:
86 
88  static char const * const dimension_name_short_[DIMENSION];
89 
91  static char const * const dimension_name_full_[DIMENSION];
92 
94  static char const * const dimension_unit_short_[DIMENSION];
95 
97  static char const * const dimension_unit_full_[DIMENSION];
98 
100 
101  public:
105  MobilityPeak2D() = default;
106 
108  explicit MobilityPeak2D(const PositionType& pos, const IntensityType in) :
109  position_(pos),
110  intensity_(in)
111  {}
112 
114  MobilityPeak2D(const MobilityPeak2D & p) = default;
115 
117  MobilityPeak2D(MobilityPeak2D&&) noexcept = default;
118 
120  MobilityPeak2D& operator=(const MobilityPeak2D& rhs) = default;
121 
123  MobilityPeak2D& operator=(MobilityPeak2D&&) noexcept = default;
132  ~MobilityPeak2D() noexcept = default;
134 
138  IntensityType getIntensity() const
139  {
140  return intensity_;
141  }
142 
144  void setIntensity(IntensityType intensity)
145  {
146  intensity_ = intensity;
147  }
148 
150  PositionType const & getPosition() const
151  {
152  return position_;
153  }
154 
157  {
158  return position_;
159  }
160 
162  void setPosition(const PositionType & position)
163  {
164  position_ = position;
165  }
166 
169  {
170  return position_[MZ];
171  }
172 
174  void setMZ(CoordinateType coordinate)
175  {
176  position_[MZ] = coordinate;
177  }
178 
181  {
182  return position_[IM];
183  }
184 
186  void setMobility(CoordinateType coordinate)
187  {
188  position_[IM] = coordinate;
189  }
190 
192 
194  bool operator==(const MobilityPeak2D & rhs) const
195  {
196  return std::tie(intensity_, position_) == std::tie(rhs.intensity_, rhs.position_);
197  }
198 
200  bool operator!=(const MobilityPeak2D& rhs) const
201  {
202  return !(operator==(rhs));
203  }
204 
213  {
214  bool operator()(const MobilityPeak2D & left, const MobilityPeak2D & right) const
215  {
216  return left.getIntensity() < right.getIntensity();
217  }
218 
219  bool operator()(const MobilityPeak2D & left, IntensityType right) const
220  {
221  return left.getIntensity() < right;
222  }
223 
224  bool operator()(IntensityType left, const MobilityPeak2D & right) const
225  {
226  return left < right.getIntensity();
227  }
228 
229  bool operator()(IntensityType left, IntensityType right) const
230  {
231  return left < right;
232  }
233  };
234 
236  struct IMLess
237  {
238  bool operator()(const MobilityPeak2D & left, const MobilityPeak2D & right) const
239  {
240  return left.getMobility() < right.getMobility();
241  }
242 
243  bool operator()(const MobilityPeak2D & left, CoordinateType right) const
244  {
245  return left.getMobility() < right;
246  }
247 
248  bool operator()(CoordinateType left, const MobilityPeak2D & right) const
249  {
250  return left < right.getMobility();
251  }
252 
253  bool operator()(CoordinateType left, CoordinateType right) const
254  {
255  return left < right;
256  }
257  };
258 
260  struct MZLess
261  {
262  bool operator()(const MobilityPeak2D & left, const MobilityPeak2D & right) const
263  {
264  return left.getMZ() < right.getMZ();
265  }
266 
267  bool operator()(const MobilityPeak2D & left, CoordinateType right) const
268  {
269  return left.getMZ() < right;
270  }
271 
272  bool operator()(CoordinateType left, const MobilityPeak2D & right) const
273  {
274  return left < right.getMZ();
275  }
276 
277  bool operator()(CoordinateType left, CoordinateType right) const
278  {
279  return left < right;
280  }
281  };
282 
285  {
286  bool operator()(const MobilityPeak2D & left, const MobilityPeak2D & right) const
287  {
288  return left.getPosition() < right.getPosition();
289  }
290 
291  bool operator()(const MobilityPeak2D & left, const PositionType & right) const
292  {
293  return left.getPosition() < right;
294  }
295 
296  bool operator()(const PositionType & left, const MobilityPeak2D & right) const
297  {
298  return left < right.getPosition();
299  }
300 
301  bool operator()(const PositionType & left, const PositionType & right) const
302  {
303  return left < right;
304  }
305  };
307 
308  friend OPENMS_DLLAPI std::ostream & operator<<(std::ostream & os, const MobilityPeak2D & point);
309 
310 protected:
312  PositionType position_{};
314  IntensityType intensity_ {};
315  };
316 
318  OPENMS_DLLAPI std::ostream & operator<<(std::ostream & os, const MobilityPeak2D & point);
319 } // namespace OpenMS
A 2-dimensional raw data point or peak.
Definition: MobilityPeak2D.h:29
CoordinateType getMZ() const
Returns the m/z coordinate (index 1)
Definition: MobilityPeak2D.h:168
MobilityPeak2D(const PositionType &pos, const IntensityType in)
Member constructor.
Definition: MobilityPeak2D.h:108
PositionType const & getPosition() const
Non-mutable access to the position.
Definition: MobilityPeak2D.h:150
void setMZ(CoordinateType coordinate)
Mutable access to the m/z coordinate (index 1)
Definition: MobilityPeak2D.h:174
void setMobility(CoordinateType coordinate)
Mutable access to the IM coordinate (index 0)
Definition: MobilityPeak2D.h:186
float IntensityType
Intensity type.
Definition: MobilityPeak2D.h:35
double CoordinateType
Coordinate type (of the position)
Definition: MobilityPeak2D.h:37
static char const * fullDimensionName(UInt const dim)
Full name of the dimension (self-explanatory form)
PositionType position_
The data point position.
Definition: MobilityPeak2D.h:312
static char const * shortDimensionUnitIM()
Unit of measurement (abbreviated form)
bool operator==(const MobilityPeak2D &rhs) const
Equality operator.
Definition: MobilityPeak2D.h:194
static char const * shortDimensionUnitMZ()
Unit of measurement (abbreviated form)
static char const * shortDimensionNameMZ()
Short name of the dimension (abbreviated form)
IntensityType getIntensity() const
Definition: MobilityPeak2D.h:138
static char const * shortDimensionUnit(UInt const dim)
Unit of measurement (abbreviated form)
friend std::ostream & operator<<(std::ostream &os, const MobilityPeak2D &point)
Print the contents to a stream.
static char const * fullDimensionUnitIM()
Unit of measurement (self-explanatory form)
bool operator!=(const MobilityPeak2D &rhs) const
Equality operator.
Definition: MobilityPeak2D.h:200
void setIntensity(IntensityType intensity)
Sets data point intensity (height)
Definition: MobilityPeak2D.h:144
void setPosition(const PositionType &position)
Mutable access to the position.
Definition: MobilityPeak2D.h:162
CoordinateType getMobility() const
Returns the IM coordinate (index 0)
Definition: MobilityPeak2D.h:180
DimensionDescription
This enum maps the symbolic names of the dimensions to numbers.
Definition: MobilityPeak2D.h:47
MobilityPeak2D(const MobilityPeak2D &p)=default
Copy constructor.
DPosition< 2 > PositionType
Position type.
Definition: MobilityPeak2D.h:39
static char const * fullDimensionNameIM()
Full name of the dimension (self-explanatory form)
static char const * shortDimensionName(UInt const dim)
Short name of the dimension (abbreviated form)
IntensityType intensity_
The data point intensity.
Definition: MobilityPeak2D.h:314
static char const * fullDimensionUnit(UInt const dim)
Unit of measurement (self-explanatory form)
static char const * fullDimensionNameMZ()
Full name of the dimension (self-explanatory form)
static char const * fullDimensionUnitMZ()
Unit of measurement (self-explanatory form)
static char const * shortDimensionNameIM()
Short name of the dimension (abbreviated form)
MobilityPeak2D(MobilityPeak2D &&) noexcept=default
Move constructor.
PositionType & getPosition()
Mutable access to the position.
Definition: MobilityPeak2D.h:156
unsigned int UInt
Unsigned integer type.
Definition: Types.h:64
bool operator==(const IDBoostGraph::ProteinGroup &lhs, const IDBoostGraph::ProteinGroup &rhs)
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
Comparator by IM position.
Definition: MobilityPeak2D.h:237
bool operator()(CoordinateType left, CoordinateType right) const
Definition: MobilityPeak2D.h:253
bool operator()(CoordinateType left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:248
bool operator()(const MobilityPeak2D &left, CoordinateType right) const
Definition: MobilityPeak2D.h:243
bool operator()(const MobilityPeak2D &left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:238
Definition: MobilityPeak2D.h:213
bool operator()(const MobilityPeak2D &left, IntensityType right) const
Definition: MobilityPeak2D.h:219
bool operator()(IntensityType left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:224
bool operator()(const MobilityPeak2D &left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:214
bool operator()(IntensityType left, IntensityType right) const
Definition: MobilityPeak2D.h:229
Comparator by m/z position.
Definition: MobilityPeak2D.h:261
bool operator()(CoordinateType left, CoordinateType right) const
Definition: MobilityPeak2D.h:277
bool operator()(CoordinateType left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:272
bool operator()(const MobilityPeak2D &left, CoordinateType right) const
Definition: MobilityPeak2D.h:267
bool operator()(const MobilityPeak2D &left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:262
Comparator by position. Lexicographical comparison (first IM then m/z) is done.
Definition: MobilityPeak2D.h:285
bool operator()(const PositionType &left, const PositionType &right) const
Definition: MobilityPeak2D.h:301
bool operator()(const MobilityPeak2D &left, const PositionType &right) const
Definition: MobilityPeak2D.h:291
bool operator()(const PositionType &left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:296
bool operator()(const MobilityPeak2D &left, const MobilityPeak2D &right) const
Definition: MobilityPeak2D.h:286