35 #ifndef OPENMS_KERNEL_MSSPECTRUM_H
36 #define OPENMS_KERNEL_MSSPECTRUM_H
66 template <
typename PeakT = Peak1D>
68 public std::vector<PeakT>,
78 public std::vector<Real>
84 public std::vector<Int>
90 public std::vector<String>
95 public std::binary_function<MSSpectrum, MSSpectrum, bool>
122 typedef typename ContainerType::iterator
Iterator;
168 if (&source ==
this)
return *
this;
170 ContainerType::operator=(source);
189 return std::operator==(*
this, rhs) &&
330 std::vector<std::pair<typename PeakType::IntensityType, Size> > sorted_indices;
331 sorted_indices.reserve(ContainerType::size());
332 for (
Size i = 0; i < ContainerType::size(); ++i)
334 sorted_indices.push_back(std::make_pair(ContainerType::operator[](i).getIntensity(), i));
348 for (
Size i = 0; i < sorted_indices.size(); ++i)
350 tmp.push_back(*(ContainerType::begin() + (sorted_indices[i].second)));
352 ContainerType::swap(tmp);
356 std::vector<Real> mda_tmp;
366 std::vector<String> mda_tmp;
376 std::vector<Int> mda_tmp;
400 std::vector<std::pair<typename PeakType::PositionType, Size> > sorted_indices;
401 sorted_indices.reserve(ContainerType::size());
402 for (
Size i = 0; i < ContainerType::size(); ++i)
404 sorted_indices.push_back(std::make_pair(ContainerType::operator[](i).getPosition(), i));
410 tmp.reserve(sorted_indices.size());
411 for (
Size i = 0; i < sorted_indices.size(); ++i)
413 tmp.push_back(*(ContainerType::begin() + (sorted_indices[i].second)));
415 ContainerType::swap(tmp);
419 std::vector<Real> mda_tmp;
430 std::vector<String> mda_tmp;
441 std::vector<Int> mda_tmp;
455 for (
Size i = 1; i < this->size(); ++i)
457 if (this->
operator[](i - 1).getMZ() > this->operator[](i).getMZ())
return false;
479 if (ContainerType::size() == 0)
throw Exception::Precondition(__FILE__, __LINE__, __PRETTY_FUNCTION__,
"There must be at least one peak to determine the nearest peak!");
484 if (it == ContainerType::begin())
return 0;
486 if (it == ContainerType::end())
return ContainerType::size() - 1;
491 if (std::fabs(it->getMZ() - mz) < std::fabs(it2->getMZ() - mz))
493 return Size(it - ContainerType::begin());
497 return Size(it2 - ContainerType::begin());
607 ContainerType::clear();
648 template <
typename PeakT>
649 std::ostream & operator<<(std::ostream & os, const MSSpectrum<PeakT> & spec)
651 os <<
"-- MSSPECTRUM BEGIN --" << std::endl;
654 os << static_cast<const SpectrumSettings &>(spec);
659 os << *it << std::endl;
662 os <<
"-- MSSPECTRUM END --" << std::endl;
668 #endif // OPENMS_KERNEL_MSSPECTRUM_H
String data array class.
Definition: MSSpectrum.h:88
MSSpectrum & operator=(const MSSpectrum &source)
Assignment operator.
Definition: MSSpectrum.h:166
PeakType::CoordinateType CoordinateType
Coordinate (m/z) type.
Definition: MSSpectrum.h:109
ConstIterator MZEnd(ConstIterator begin, CoordinateType mz, ConstIterator end) const
Binary search for peak range end (returns the past-the-end iterator)
Definition: MSSpectrum.h:590
A more convenient string class.
Definition: String.h:56
IntegerDataArrays integer_data_arrays_
Intager data arrays.
Definition: MSSpectrum.h:644
UInt getMSLevel() const
Returns the MS level.
Definition: MSSpectrum.h:231
void sortByPosition()
Lexicographically sorts the peaks by their position.
Definition: MSSpectrum.h:391
Size findNearest(CoordinateType mz) const
Binary search for the peak nearest to a specific m/z.
Definition: MSSpectrum.h:476
Iterator MZEnd(Iterator begin, CoordinateType mz, Iterator end)
Binary search for peak range end (returns the past-the-end iterator)
Definition: MSSpectrum.h:542
StringDataArrays string_data_arrays_
String data arrays.
Definition: MSSpectrum.h:641
bool isSorted() const
Checks if all peaks are sorted with respect to ascending m/z.
Definition: MSSpectrum.h:453
Comparator for the retention time.
Definition: MSSpectrum.h:94
ContainerType::reverse_iterator ReverseIterator
Mutable reverse iterator.
Definition: MSSpectrum.h:127
Iterator MZBegin(Iterator begin, CoordinateType mz, Iterator end)
Binary search for peak range begin.
Definition: MSSpectrum.h:518
ContainerType::const_iterator ConstIterator
Non-mutable iterator.
Definition: MSSpectrum.h:125
bool operator==(const MSSpectrum &rhs) const
Equality operator.
Definition: MSSpectrum.h:186
ReverseComparator< Cmp > reverseComparator(Cmp const &cmp)
Make-function to create a ReverseComparator from another comparator without the need to specify the t...
Definition: ComparatorUtils.h:261
Iterator MZEnd(CoordinateType mz)
Binary search for peak range end (returns the past-the-end iterator)
Definition: MSSpectrum.h:530
Integer data array class.
Definition: MSSpectrum.h:82
SpectrumSettings()
Constructor.
const String & getName() const
Returns the name.
Definition: MSSpectrum.h:243
Representation of 1D spectrum settings.
Definition: SpectrumSettings.h:64
void setName(const String &name)
Sets the name.
Definition: MSSpectrum.h:249
String name_
Name.
Definition: MSSpectrum.h:635
MSSpectrum(const MSSpectrum &source)
Copy constructor.
Definition: MSSpectrum.h:148
StringDataArrays & getStringDataArrays()
Returns a mutable reference to the string meta data arrays.
Definition: MSSpectrum.h:288
bool operator==(const RangeManager &rhs) const
Equality operator.
Definition: RangeManager.h:88
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
Definition: MSSpectrum.h:294
A 1-dimensional raw data point or peak mith meta information.
Definition: RichPeak1D.h:52
ContainerType::iterator Iterator
Mutable iterator.
Definition: MSSpectrum.h:123
Precondition failed exception.
Definition: Exception.h:167
virtual void clearChildIds_()
Clears the persistence id of all sub-objects.
Definition: MSSpectrum.h:625
IntegerDataArrays & getIntegerDataArrays()
Returns a mutable reference to the integer meta data arrays.
Definition: MSSpectrum.h:300
Comparator by position. As this class has dimension 1, this is basically an alias for MZLess...
Definition: Peak1D.h:232
Iterator MZBegin(CoordinateType mz)
Binary search for peak range begin.
Definition: MSSpectrum.h:506
bool operator!=(const MSSpectrum &rhs) const
Equality operator.
Definition: MSSpectrum.h:200
std::vector< FloatDataArray > FloatDataArrays
Float data array vector type.
Definition: MSSpectrum.h:113
virtual void updateRanges()
Updates minimum and maximum position/intensity.
Definition: MSSpectrum.h:206
FloatDataArrays float_data_arrays_
Float data arrays.
Definition: MSSpectrum.h:638
MSSpectrum()
Constructor.
Definition: MSSpectrum.h:134
The representation of a 1D spectrum.
Definition: MSSpectrum.h:67
Base class for all persistent objects.
Definition: PersistentObject.h:52
SpectrumSettings & operator=(const SpectrumSettings &source)
RangeManager & operator=(const RangeManager &rhs)
Assignment operator.
Definition: RangeManager.h:77
void sortByIntensity(bool reverse=false)
Lexicographically sorts the peaks by their intensity.
Definition: MSSpectrum.h:314
PersistentObject & operator=(const PersistentObject &rhs)
Assignment operator.
void setPosition(PositionType const &position)
Mutable access to the position.
Definition: Peak1D.h:144
void clearRanges()
Resets the ranges.
Definition: RangeManager.h:140
void setMSLevel(UInt ms_level)
Sets the MS level.
Definition: MSSpectrum.h:237
ConstIterator MZBegin(CoordinateType mz) const
Binary search for peak range begin.
Definition: MSSpectrum.h:554
std::vector< StringDataArray > StringDataArrays
String data array vector type.
Definition: MSSpectrum.h:115
ConstIterator MZBegin(ConstIterator begin, CoordinateType mz, ConstIterator end) const
Binary search for peak range begin.
Definition: MSSpectrum.h:566
FloatDataArrays & getFloatDataArrays()
Returns a mutable reference to the float meta data arrays.
Definition: MSSpectrum.h:276
std::vector< PeakType > ContainerType
Spectrum base type.
Definition: MSSpectrum.h:111
void clear(bool clear_meta_data)
Clears all data and meta data.
Definition: MSSpectrum.h:605
PeakT PeakType
Peak type.
Definition: MSSpectrum.h:107
std::vector< IntegerDataArray > IntegerDataArrays
Integer data array vector type.
Definition: MSSpectrum.h:117
Float data array class.
Definition: MSSpectrum.h:76
void clearId(bool deep=true)
Clears the persistence id.
const StringDataArrays & getStringDataArrays() const
Returns a const reference to the string meta data arrays.
Definition: MSSpectrum.h:282
bool operator()(const MSSpectrum &a, const MSSpectrum &b) const
Definition: MSSpectrum.h:97
void setRT(DoubleReal rt)
Sets the absolute retention time (is seconds)
Definition: MSSpectrum.h:221
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:144
UInt ms_level_
MS level.
Definition: MSSpectrum.h:632
ConstIterator MZEnd(CoordinateType mz) const
Binary search for peak range end (returns the past-the-end iterator)
Definition: MSSpectrum.h:578
DoubleReal getRT() const
Definition: MSSpectrum.h:215
void updateRanges_(const PeakIteratorType &begin, const PeakIteratorType &end)
Updates the range using data points in the iterator range.
Definition: RangeManager.h:155
Handles the managment of a position and intensity range.
Definition: RangeManager.h:48
DoubleReal retention_time_
Retention time.
Definition: MSSpectrum.h:629
Class for comparison of std::pair using first ONLY e.g. for use with std::sort.
Definition: ComparatorUtils.h:326
const FloatDataArrays & getFloatDataArrays() const
Returns a const reference to the float meta data arrays.
Definition: MSSpectrum.h:270
bool operator==(const SpectrumSettings &rhs) const
Equality operator.
ContainerType::const_reverse_iterator ConstReverseIterator
Non-mutable reverse iterator.
Definition: MSSpectrum.h:129
~MSSpectrum()
Destructor.
Definition: MSSpectrum.h:162