OpenMS
Loading...
Searching...
No Matches
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
17namespace OpenMS
18{
19 class ChromatogramPeak;
20
26 class OPENMS_DLLAPI MSChromatogram :
27 private std::vector<ChromatogramPeak>,
28 public RangeManagerContainer<RangeRT, RangeIntensity>,
30 {
31
32public:
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
64 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
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
403protected:
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:29
double CoordinateType
Coordinate type.
Definition ChromatogramPeak.h:42
Representation of chromatogram settings, e.g. SRM/MRM chromatograms.
Definition ChromatogramSettings.h:37
Float data array class.
Definition DataArrays.h:25
Integer data array class.
Definition DataArrays.h:75
String data array class.
Definition DataArrays.h:125
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.
MSChromatogram & operator=(const MSChromatogram &source)
Assignment operator.
MSChromatogram(MSChromatogram &&)=default
Move constructor.
PeakType::CoordinateType CoordinateType
Coordinate (RT) type.
Definition MSChromatogram.h:45
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
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
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)
MSChromatogram & operator=(MSChromatogram &&) &=default
Move assignment operator.
ContainerType::reverse_iterator ReverseIterator
Mutable reverse iterator.
Definition MSChromatogram.h:68
const StringDataArrays & getStringDataArrays() const
Returns a const reference to the string meta data arrays.
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.
ContainerType::iterator Iterator
Mutable iterator.
Definition MSChromatogram.h:64
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.
ConstIterator PosEnd(ConstIterator begin, CoordinateType rt, ConstIterator end) const
Binary search for peak range end (returns the past-the-end iterator)
const String & getName() const
FloatDataArrays & getFloatDataArrays()
Returns a mutable reference to the float meta data arrays.
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.
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)
IntegerDataArrays & getIntegerDataArrays()
Returns a mutable reference to the integer meta data arrays.
FloatDataArrays float_data_arrays_
Float data arrays.
Definition MSChromatogram.h:409
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.
const FloatDataArrays & getFloatDataArrays() const
Iterator PosEnd(CoordinateType rt)
Binary search for peak range end (returns the past-the-end iterator)
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
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.
StringDataArrays & getStringDataArrays()
Returns a mutable reference to the string meta data arrays.
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)
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