OpenMS
MSChromatogram.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: 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::emplace_back;
86  using ContainerType::pop_back;
87  using ContainerType::empty;
88  using ContainerType::front;
89  using ContainerType::back;
90  using ContainerType::reserve;
91  using ContainerType::insert;
92  using ContainerType::erase;
93  using ContainerType::swap;
94 
95  using typename ContainerType::iterator;
96  using typename ContainerType::const_iterator;
97  using typename ContainerType::size_type;
98  using typename ContainerType::value_type;
99  using typename ContainerType::reference;
100  using typename ContainerType::const_reference;
101  using typename ContainerType::pointer;
102  using typename ContainerType::difference_type;
104 
106  MSChromatogram() = default;
107 
109  MSChromatogram(const MSChromatogram&) = default;
110 
113 
115  ~MSChromatogram() = default;
116 
119 
122 
124  bool operator==(const MSChromatogram& rhs) const;
125 
127  bool operator!=(const MSChromatogram& rhs) const
128  {
129  return !(operator==(rhs));
130  }
131 
132  // Docu in base class (RangeManager)
133  void updateRanges() override;
134 
138  const String& getName() const;
139 
141  void setName(const String& name);
142 
144 
146  double getMZ() const;
147 
163 
166 
169  {
170  float_data_arrays_ = fda;
171  }
172 
175 
178 
181  {
182  string_data_arrays_ = sda;
183  }
184 
187 
190 
193  {
194  integer_data_arrays_ = ida;
195  }
196 
198 
201 
206  void sortByIntensity(bool reverse = false);
207 
215 
217  bool isSorted() const;
218 
220 
223 
234 
242 
250 
258 
266 
274 
282 
290 
298 
308 
318 
328 
338 
348 
358 
368 
378 
384  void clear(bool clear_meta_data);
385 
387 
401  void mergePeaks(MSChromatogram& other, bool add_meta=false);
402 
403 protected:
404 
407 
410 
413 
416  };
417 
419  OPENMS_DLLAPI std::ostream& operator<<(std::ostream& os, const MSChromatogram& chrom);
420 
421 } // namespace OpenMS
422 
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:192
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:406
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:127
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:412
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:415
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:409
const FloatDataArrays & getFloatDataArrays() const
void setStringDataArrays(const StringDataArrays &sda)
Sets the string meta data arrays.
Definition: MSChromatogram.h:180
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
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:168
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
Definition: RangeManager.h:889
Handles the management of a multidimensional range, e.g. RangeMZ and RangeIntensity for spectra.
Definition: RangeManager.h:568
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 precursor m/z time.
Definition: MSChromatogram.h:36
bool operator()(const MSChromatogram &a, const MSChromatogram &b) const