OpenMS
MSChromatogram.h
Go to the documentation of this file.
1 // Copyright (c) 2002-present, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Timo Sachsenberg $
6 // $Authors: Andreas Bertsch $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
16 
17 namespace OpenMS
18 {
19  class ChromatogramPeak;
20 
26  class OPENMS_DLLAPI MSChromatogram :
27  private std::vector<ChromatogramPeak>,
28  public RangeManagerContainer<RangeRT, RangeIntensity>,
30  {
31 
32 public:
33 
35  struct OPENMS_DLLAPI MZLess
36  {
37  bool operator()(const MSChromatogram& a, const MSChromatogram& b) const;
38  };
39 
47  typedef std::vector<PeakType> ContainerType;
52  typedef std::vector<FloatDataArray> FloatDataArrays;
55  typedef std::vector<StringDataArray> StringDataArrays;
58  typedef std::vector<IntegerDataArray> IntegerDataArrays;
60 
62 
63  typedef typename ContainerType::iterator Iterator;
66  typedef typename ContainerType::const_iterator ConstIterator;
68  typedef typename ContainerType::reverse_iterator ReverseIterator;
70  typedef typename ContainerType::const_reverse_iterator ConstReverseIterator;
72 
74 
75  using ContainerType::operator[];
76  using ContainerType::begin;
77  using ContainerType::cbegin;
78  using ContainerType::rbegin;
79  using ContainerType::end;
80  using ContainerType::cend;
81  using ContainerType::rend;
82  using ContainerType::resize;
83  using ContainerType::size;
84  using ContainerType::push_back;
85  using ContainerType::pop_back;
86  using ContainerType::empty;
87  using ContainerType::front;
88  using ContainerType::back;
89  using ContainerType::reserve;
90  using ContainerType::insert;
91  using ContainerType::erase;
92  using ContainerType::swap;
93 
94  using typename ContainerType::iterator;
95  using typename ContainerType::const_iterator;
96  using typename ContainerType::size_type;
97  using typename ContainerType::value_type;
98  using typename ContainerType::reference;
99  using typename ContainerType::const_reference;
100  using typename ContainerType::pointer;
101  using typename ContainerType::difference_type;
103 
105  MSChromatogram() = default;
106 
108  MSChromatogram(const MSChromatogram&) = default;
109 
112 
114  ~MSChromatogram() = default;
115 
118 
121 
123  bool operator==(const MSChromatogram& rhs) const;
124 
126  bool operator!=(const MSChromatogram& rhs) const
127  {
128  return !(operator==(rhs));
129  }
130 
131  // Docu in base class (RangeManager)
132  void updateRanges() override
133  {
134  clearRanges();
135  for (const auto& peak : (ContainerType&) *this)
136  {
137  extendRT(peak.getRT());
138  extendIntensity(peak.getIntensity());
139  }
140  }
141 
145  const String& getName() const;
146 
148  void setName(const String& name);
149 
151 
153  double getMZ() const;
154 
170 
173 
176  {
177  float_data_arrays_ = fda;
178  }
179 
182 
185 
188  {
189  string_data_arrays_ = sda;
190  }
191 
194 
197 
200  {
201  integer_data_arrays_ = ida;
202  }
203 
205 
208 
213  void sortByIntensity(bool reverse = false);
214 
222 
224  bool isSorted() const;
225 
227 
230 
241 
249 
257 
265 
273 
281 
289 
297 
299 
307 
317 
327 
337 
347 
357 
367 
377 
387 
393  void clear(bool clear_meta_data);
394 
396 
410  void mergePeaks(MSChromatogram& other, bool add_meta=false);
411 
412 protected:
413 
416 
419 
422 
425  };
426 
428  OPENMS_DLLAPI std::ostream& operator<<(std::ostream& os, const MSChromatogram& chrom);
429 
430 } // namespace OpenMS
431 
A 1-dimensional raw data point or peak for chromatograms.
Definition: ChromatogramPeak.h:28
double CoordinateType
Coordinate type.
Definition: ChromatogramPeak.h:41
Representation of chromatogram settings, e.g. SRM/MRM chromatograms.
Definition: ChromatogramSettings.h:35
Float data array class.
Definition: DataArrays.h:22
Integer data array class.
Definition: DataArrays.h:30
String data array class.
Definition: DataArrays.h:38
The representation of a chromatogram.
Definition: MSChromatogram.h:30
void setIntegerDataArrays(const IntegerDataArrays &ida)
Sets the integer meta data arrays.
Definition: MSChromatogram.h:199
Iterator PosBegin(CoordinateType rt)
Binary search for peak range begin.
FloatDataArrays & getFloatDataArrays()
Returns a mutable reference to the float meta data arrays.
MSChromatogram(MSChromatogram &&)=default
Move constructor.
PeakType::CoordinateType CoordinateType
Coordinate (RT) type.
Definition: MSChromatogram.h:45
ConstIterator RTBegin(CoordinateType rt) const
Binary search for peak range begin.
std::vector< StringDataArray > StringDataArrays
Definition: MSChromatogram.h:55
OpenMS::DataArrays::FloatDataArray FloatDataArray
Float data array vector type.
Definition: MSChromatogram.h:51
ConstIterator RTEnd(ConstIterator begin, CoordinateType rt, ConstIterator end) const
Binary search for peak range end (returns the past-the-end iterator)
MSChromatogram(const MSChromatogram &)=default
Copy constructor.
ChromatogramPeak PeakType
Definition: MSChromatogram.h:43
MSChromatogram & operator=(const MSChromatogram &source)
Assignment operator.
String name_
Name.
Definition: MSChromatogram.h:415
ContainerType::const_iterator ConstIterator
Non-mutable iterator.
Definition: MSChromatogram.h:66
ConstIterator RTEnd(CoordinateType rt) const
Binary search for peak range end (returns the past-the-end iterator)
StringDataArrays & getStringDataArrays()
Returns a mutable reference to the string meta data arrays.
ContainerType::reverse_iterator ReverseIterator
Mutable reverse iterator.
Definition: MSChromatogram.h:68
Iterator RTEnd(Iterator begin, CoordinateType rt, Iterator end)
Binary search for peak range end (returns the past-the-end iterator)
Iterator RTEnd(CoordinateType rt)
Binary search for peak range end (returns the past-the-end iterator)
std::vector< PeakType > ContainerType
Chromatogram base type.
Definition: MSChromatogram.h:47
ContainerType::const_reverse_iterator ConstReverseIterator
Non-mutable reverse iterator.
Definition: MSChromatogram.h:70
void mergePeaks(MSChromatogram &other, bool add_meta=false)
Adds all the chromatogram peaks from another MSChromatogram and updates the metadata to indicate a me...
bool isSorted() const
Checks if all peaks are sorted with respect to ascending RT.
~MSChromatogram()=default
Destructor.
RangeManager< RangeRT, RangeIntensity > RangeManagerType
RangeManager.
Definition: MSChromatogram.h:49
MSChromatogram()=default
Constructor.
Iterator PosBegin(Iterator begin, CoordinateType rt, Iterator end)
Binary search for peak range begin.
bool operator!=(const MSChromatogram &rhs) const
Equality operator.
Definition: MSChromatogram.h:126
void setName(const String &name)
Sets the name.
void sortByPosition()
Lexicographically sorts the peaks by their position.
StringDataArrays string_data_arrays_
String data arrays.
Definition: MSChromatogram.h:421
ConstIterator PosBegin(ConstIterator begin, CoordinateType rt, ConstIterator end) const
Binary search for peak range begin.
void sortByIntensity(bool reverse=false)
Lexicographically sorts the peaks by their intensity.
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
ConstIterator PosEnd(ConstIterator begin, CoordinateType rt, ConstIterator end) const
Binary search for peak range end (returns the past-the-end iterator)
IntegerDataArrays integer_data_arrays_
Integer data arrays.
Definition: MSChromatogram.h:424
Size findNearest(CoordinateType rt) const
Binary search for the peak nearest to a specific RT.
OpenMS::DataArrays::StringDataArray StringDataArray
String data array vector type.
Definition: MSChromatogram.h:54
ConstIterator PosBegin(CoordinateType rt) const
Binary search for peak range begin.
MSChromatogram & operator=(MSChromatogram &&) &=default
Move assignment operator.
Iterator RTBegin(CoordinateType rt)
Binary search for peak range begin.
Iterator PosEnd(Iterator begin, CoordinateType rt, Iterator end)
Binary search for peak range end (returns the past-the-end iterator)
bool operator==(const MSChromatogram &rhs) const
Equality operator.
ConstIterator PosEnd(CoordinateType rt) const
Binary search for peak range end (returns the past-the-end iterator)
const String & getName() const
FloatDataArrays float_data_arrays_
Float data arrays.
Definition: MSChromatogram.h:418
const FloatDataArrays & getFloatDataArrays() const
void setStringDataArrays(const StringDataArrays &sda)
Sets the string meta data arrays.
Definition: MSChromatogram.h:187
ConstIterator RTBegin(ConstIterator begin, CoordinateType rt, ConstIterator end) const
Binary search for peak range begin.
Iterator PosEnd(CoordinateType rt)
Binary search for peak range end (returns the past-the-end iterator)
const StringDataArrays & getStringDataArrays() const
Returns a const reference to the string meta data arrays.
std::vector< FloatDataArray > FloatDataArrays
Definition: MSChromatogram.h:52
void updateRanges() override
Definition: MSChromatogram.h:132
OpenMS::DataArrays::IntegerDataArray IntegerDataArray
Integer data array vector type.
Definition: MSChromatogram.h:57
void clear(bool clear_meta_data)
Clears all data and meta data.
std::vector< IntegerDataArray > IntegerDataArrays
Definition: MSChromatogram.h:58
IntegerDataArrays & getIntegerDataArrays()
Returns a mutable reference to the integer meta data arrays.
void setFloatDataArrays(const FloatDataArrays &fda)
Sets the float meta data arrays.
Definition: MSChromatogram.h:175
Iterator RTBegin(Iterator begin, CoordinateType rt, Iterator end)
Binary search for peak range begin.
double getMZ() const
returns the mz of the product entry, makes sense especially for MRM scans
ConstIterator MZEnd(CoordinateType rt) const
Definition: RangeManager.h:867
Handles the management of a multidimensional range, e.g. RangeMZ and RangeIntensity for spectra.
Definition: RangeManager.h:546
A more convenient string class.
Definition: String.h:34
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:97
bool operator==(const IDBoostGraph::ProteinGroup &lhs, const IDBoostGraph::ProteinGroup &rhs)
static String & reverse(String &this_s)
Definition: StringUtilsSimple.h:330
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
Comparator for the retention time.
Definition: MSChromatogram.h:36
bool operator()(const MSChromatogram &a, const MSChromatogram &b) const