OpenMS  3.0.0
MSExperiment.h
Go to the documentation of this file.
1 // --------------------------------------------------------------------------
2 // OpenMS -- Open-Source Mass Spectrometry
3 // --------------------------------------------------------------------------
4 // Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
5 // ETH Zurich, and Freie Universitaet Berlin 2002-2022.
6 //
7 // This software is released under a three-clause BSD license:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of any author or any participating institution
14 // may be used to endorse or promote products derived from this software
15 // without specific prior written permission.
16 // For a full list of authors, refer to the file AUTHORS.
17 // --------------------------------------------------------------------------
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
22 // INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
28 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // --------------------------------------------------------------------------
31 // $Maintainer: Timo Sachsenberg $
32 // $Authors: Marc Sturm, Tom Waschischeck $
33 // --------------------------------------------------------------------------
34 
35 #pragma once
36 
43 
44 #include <vector>
45 
46 
47 namespace OpenMS
48 {
49  class Peak1D;
50  class ChromatogramPeak;
51 
70  class OPENMS_DLLAPI MSExperiment final : public RangeManagerContainer<RangeRT, RangeMZ, RangeIntensity, RangeMobility>,
72  {
73 
74 public:
75  typedef Peak1D PeakT;
77 
79 
80  typedef PeakT PeakType;
97  typedef std::vector<SpectrumType> Base;
99 
101 
102  typedef std::vector<SpectrumType>::iterator Iterator;
105  typedef std::vector<SpectrumType>::const_iterator ConstIterator;
111 
113  // Attention: these refer to the spectra vector only!
115  typedef Base::value_type value_type;
116  typedef Base::iterator iterator;
117  typedef Base::const_iterator const_iterator;
118 
119  inline Size size() const
120  {
121  return spectra_.size();
122  }
123 
124  inline void resize(Size s)
125  {
126  spectra_.resize(s);
127  }
128 
129  inline bool empty() const
130  {
131  return spectra_.empty();
132  }
133 
134  inline void reserve(Size s)
135  {
136  spectra_.reserve(s);
137  }
138 
139  inline SpectrumType& operator[] (Size n)
140  {
141  return spectra_[n];
142  }
143 
144  inline const SpectrumType& operator[] (Size n) const
145  {
146  return spectra_[n];
147  }
148 
149  inline Iterator begin()
150  {
151  return spectra_.begin();
152  }
153 
154  inline ConstIterator begin() const
155  {
156  return spectra_.begin();
157  }
158 
159  inline Iterator end()
160  {
161  return spectra_.end();
162  }
163 
164  inline ConstIterator end() const
165  {
166  return spectra_.end();
167  }
169 
170  // Aliases / chromatograms
173 
176 
178  MSExperiment(const MSExperiment & source);
179 
182 
185 
188 
191 
193  bool operator==(const MSExperiment & rhs) const;
194 
196  bool operator!=(const MSExperiment & rhs) const;
197 
199 
200 
206  template <class Container>
207  void get2DData(Container& cont) const
208  {
209  for (typename Base::const_iterator spec = spectra_.begin(); spec != spectra_.end(); ++spec)
210  {
211  if (spec->getMSLevel() != 1)
212  {
213  continue;
214  }
215  typename Container::value_type s; // explicit object here, since instantiation within push_back() fails on VS<12
216  for (typename SpectrumType::const_iterator it = spec->begin(); it != spec->end(); ++it)
217  {
218  cont.push_back(s);
219  cont.back().setRT(spec->getRT());
220  cont.back().setMZ(it->getMZ());
221  cont.back().setIntensity(it->getIntensity());
222  }
223  }
224  }
225 
237  template <class Container>
238  void set2DData(const Container& container)
239  {
240  set2DData<false, Container>(container);
241  }
242 
257  template <class Container>
258  void set2DData(const Container& container, const StringList& store_metadata_names)
259  {
260  // clean up the container first
261  clear(true);
262  SpectrumType* spectrum = nullptr;
263  typename PeakType::CoordinateType current_rt = -std::numeric_limits<typename PeakType::CoordinateType>::max();
264  for (typename Container::const_iterator iter = container.begin(); iter != container.end(); ++iter)
265  {
266  // check if the retention time has changed
267  if (current_rt != iter->getRT() || spectrum == nullptr)
268  {
269  // append new spectrum
270  if (current_rt > iter->getRT())
271  {
272  throw Exception::Precondition(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION, "Input container is not sorted!");
273  }
274  current_rt = iter->getRT();
275  spectrum = createSpec_(current_rt, store_metadata_names);
276  }
277 
278  // add either data point or mass traces (depending on template argument value)
279  ContainerAdd_<typename Container::value_type, false>::addData_(spectrum, &(*iter), store_metadata_names);
280  }
281  }
282 
300  template <bool add_mass_traces, class Container>
301  void set2DData(const Container& container)
302  {
303  // clean up the container first
304  clear(true);
305  SpectrumType* spectrum = nullptr;
306  typename PeakType::CoordinateType current_rt = -std::numeric_limits<typename PeakType::CoordinateType>::max();
307  for (typename Container::const_iterator iter = container.begin(); iter != container.end(); ++iter)
308  {
309  // check if the retention time has changed
310  if (current_rt != iter->getRT() || spectrum == nullptr)
311  {
312  // append new spectrum
313  if (current_rt > iter->getRT())
314  {
315  throw Exception::Precondition(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION, "Input container is not sorted!");
316  }
317  current_rt = iter->getRT();
318  spectrum = createSpec_(current_rt);
319  }
320 
321  // add either data point or mass traces (depending on template argument value)
323  }
324  }
325 
327 
328 
330 
331  AreaIterator areaBegin(CoordinateType min_rt, CoordinateType max_rt, CoordinateType min_mz, CoordinateType max_mz);
333 
336 
339 
342 
345 
348 
349  // for fast pyOpenMS access to MS1 peak data in format: [rt, [mz, intensity]]
351  std::vector<float>& rt,
352  std::vector<std::vector<float>>& mz,
353  std::vector<std::vector<float>>& intensity) const
354  {
355  float t = -1.0;
356  for (auto it = areaBeginConst(min_rt, max_rt, min_mz, max_mz); it != areaEndConst(); ++it)
357  {
358  if (it.getRT() != t)
359  {
360  t = (float)it.getRT();
361  rt.emplace_back(t);
362  mz.resize(mz.size() + 1);
363  rt.resize(rt.size() + 1);
364  intensity.resize(intensity.size() + 1);
365  }
366  mz.back().push_back((float)it->getMZ());
367  intensity.back().emplace_back(it->getIntensity());
368  }
369  }
370 
371  // for fast pyOpenMS access to MS1 peak data in format: [rt, mz, intensity]
373  std::vector<float>& rt,
374  std::vector<float>& mz,
375  std::vector<float>& intensity) const
376  {
377  for (auto it = areaBeginConst(min_rt, max_rt, min_mz, max_mz); it != areaEndConst(); ++it)
378  {
379  rt.push_back((float)it.getRT());
380  mz.push_back((float)it->getMZ());
381  intensity.push_back(it->getIntensity());
382  }
383  }
384 
385 
394 
403 
410 
417 
418 
427 
437 
444  // Docu in base class
445  void updateRanges() override;
446 
452  void updateRanges(Int ms_level);
453 
456 
459 
462 
465 
467  UInt64 getSize() const;
468 
470  const std::vector<UInt>& getMSLevels() const;
471 
473 
477 
479  void setSqlRunID(UInt64 id);
480 
483 
488  void sortSpectra(bool sort_mz = true);
489 
495  void sortChromatograms(bool sort_rt = true);
496 
502  bool isSorted(bool check_mz = true) const;
503 
505 
507  void reset();
508 
515 
518 
521 
523  void getPrimaryMSRunPath(StringList& toFill) const;
524 
531 
537  int getPrecursorSpectrum(int zero_based_index) const;
538 
540  void swap(MSExperiment& from);
541 
543  void setSpectra(const std::vector<MSSpectrum>& spectra);
544  void setSpectra(std::vector<MSSpectrum>&& spectra);
545 
547  void addSpectrum(const MSSpectrum& spectrum);
548  void addSpectrum(MSSpectrum&& spectrum);
549 
551  const std::vector<MSSpectrum>& getSpectra() const;
552 
554  std::vector<MSSpectrum>& getSpectra();
555 
557  void setChromatograms(const std::vector<MSChromatogram>& chromatograms);
558  void setChromatograms(std::vector<MSChromatogram>&& chromatograms);
559 
561  void addChromatogram(const MSChromatogram& chromatogram);
563 
565  const std::vector<MSChromatogram>& getChromatograms() const;
566 
568  std::vector<MSChromatogram>& getChromatograms();
569 
571 
572  MSChromatogram& getChromatogram(Size id);
574 
577 
580 
584 
595  const MSChromatogram calculateTIC(float rt_bin_size = 0, UInt ms_level = 1) const;
596 
602  void clear(bool clear_meta_data);
603 
605  bool containsScanOfLevel(size_t ms_level) const;
606 
608  bool hasZeroIntensities(size_t ms_level) const;
609 
612 
614  bool isIMFrame() const;
615 
616  protected:
618  std::vector<UInt> ms_levels_;
622  std::vector<MSChromatogram > chromatograms_;
624  std::vector<SpectrumType> spectra_;
625 
626 private:
627 
629  template<typename ContainerValueType, bool addMassTraces>
631  {
632  static void addData_(SpectrumType* spectrum, const ContainerValueType* item);
633  static void addData_(SpectrumType* spectrum, const ContainerValueType* item, const StringList& store_metadata_names);
634  };
635 
636  template<typename ContainerValueType>
637  struct ContainerAdd_<ContainerValueType, false>
638  {
640  static void addData_(SpectrumType* spectrum, const ContainerValueType* item)
641  {
642  // create temporary peak and insert it into spectrum
643  spectrum->insert(spectrum->end(), PeakType());
644  spectrum->back().setIntensity(item->getIntensity());
645  spectrum->back().setPosition(item->getMZ());
646  }
648  static void addData_(SpectrumType* spectrum, const ContainerValueType* item, const StringList& store_metadata_names)
649  {
650  addData_(spectrum, item);
651  for (StringList::const_iterator itm = store_metadata_names.begin(); itm != store_metadata_names.end(); ++itm)
652  {
653  float val = std::numeric_limits<float>::quiet_NaN();
654  if (item->metaValueExists(*itm)) val = item->getMetaValue(*itm);
655  spectrum->getFloatDataArrays()[itm - store_metadata_names.begin()].push_back(val);
656  }
657  }
658  };
659 
660  template<typename ContainerValueType>
661  struct ContainerAdd_<ContainerValueType, true>
662  {
664  static void addData_(SpectrumType* spectrum, const ContainerValueType* item)
665  {
666  if (item->metaValueExists("num_of_masstraces"))
667  {
668  Size mts = item->getMetaValue("num_of_masstraces");
669  int charge = (item->getCharge()==0 ? 1 : item->getCharge()); // set to 1 if charge is 0, otherwise div/0 below
670  for (Size i = 0; i < mts; ++i)
671  {
672  String meta_name = String("masstrace_intensity_") + i;
673  if (!item->metaValueExists(meta_name))
674  {
675  throw Exception::Precondition(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION, String("Meta value '") + meta_name + "' expected but not found in container.");
676  }
677  ContainerValueType p;
678  p.setIntensity(item->getMetaValue(meta_name));
679  p.setPosition(item->getMZ() + Constants::C13C12_MASSDIFF_U / charge * i);
681  }
682  }
684  }
685  };
686 
687  /*
688  @brief Append a spectrum to current MSExperiment
689 
690  @param rt RT of new spectrum
691  @return Pointer to newly created spectrum
692  */
694 
695  /*
696  @brief Append a spectrum including floatdata arrays to current MSExperiment
697 
698  @param rt RT of new spectrum
699  @param metadata_names Names of floatdata arrays attached to this spectrum
700  @return Pointer to newly created spectrum
701  */
703 
704  };
705 
707  OPENMS_DLLAPI std::ostream& operator<<(std::ostream& os, const MSExperiment& exp);
708 
709 } // namespace OpenMS
710 
712 
713 
A 1-dimensional raw data point or peak for chromatograms.
Definition: ChromatogramPeak.h:54
Precondition failed exception.
Definition: Exception.h:159
Description of the experimental settings.
Definition: ExperimentalSettings.h:62
Forward iterator for an area of peaks in an experiment.
Definition: AreaIterator.h:63
The representation of a chromatogram.
Definition: MSChromatogram.h:57
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:72
const std::vector< UInt > & getMSLevels() const
returns an array of MS levels
const ExperimentalSettings & getExperimentalSettings() const
returns the meta information of this experiment (const access)
MSExperiment(MSExperiment &&)=default
Move constructor.
ConstIterator IMBegin(CoordinateType im) const
Fast search for spectrum range begin.
std::vector< SpectrumType > spectra_
spectra
Definition: MSExperiment.h:624
const std::vector< MSChromatogram > & getChromatograms() const
returns the chromatogram list
std::vector< SpectrumType > Base
STL base class type.
Definition: MSExperiment.h:97
void setChromatograms(std::vector< MSChromatogram > &&chromatograms)
Base::iterator iterator
Definition: MSExperiment.h:116
bool containsScanOfLevel(size_t ms_level) const
returns true if at least one of the spectra has the specified level
PeakType::CoordinateType CoordinateType
Coordinate type of peak positions.
Definition: MSExperiment.h:85
void get2DData(Container &cont) const
Reads out a 2D Spectrum.
Definition: MSExperiment.h:207
void swap(MSExperiment &from)
Swaps the content of this map with the content of from.
MSChromatogram ChromatogramType
Chromatogram type.
Definition: MSExperiment.h:95
void addSpectrum(const MSSpectrum &spectrum)
adds a spectrum to the list
PeakType::IntensityType IntensityType
Intensity type of peaks.
Definition: MSExperiment.h:87
Iterator begin()
Definition: MSExperiment.h:149
void set2DData(const Container &container, const StringList &store_metadata_names)
Assignment of a data container with RT and MZ to an MSExperiment.
Definition: MSExperiment.h:258
std::vector< SpectrumType >::iterator Iterator
Mutable iterator.
Definition: MSExperiment.h:103
bool clearMetaDataArrays()
Clears the meta data arrays of all contained spectra (float, integer and string arrays)
SpectrumType * createSpec_(PeakType::CoordinateType rt)
ConstIterator RTBegin(CoordinateType rt) const
Fast search for spectrum range begin.
Size getNrSpectra() const
get the total number of spectra available
UInt64 getSize() const
returns the total number of peaks
MSExperiment & operator=(MSExperiment &&) &=default
Move assignment operator.
ConstIterator RTEnd(CoordinateType rt) const
Fast search for spectrum range end (returns the past-the-end iterator)
RangeManagerContainer< RangeRT, RangeMZ, RangeIntensity, RangeMobility > RangeManagerContainerType
RangeManager type.
Definition: MSExperiment.h:91
void addChromatogram(MSChromatogram &&chrom)
ExperimentalSettings & getExperimentalSettings()
returns the meta information of this experiment (mutable access)
void reserveSpaceChromatograms(Size s)
SpectrumType * createSpec_(PeakType::CoordinateType rt, const StringList &metadata_names)
ChromatogramPeakT ChromatogramPeakType
Chromatogram peak type.
Definition: MSExperiment.h:83
MSSpectrum & getSpectrum(Size id)
returns a single spectrum
CoordinateType getMinMZ() const
returns the minimal m/z value
Iterator RTEnd(CoordinateType rt)
Fast search for spectrum range end (returns the past-the-end iterator)
MSExperiment & operator=(const MSExperiment &source)
Assignment operator.
MSSpectrum SpectrumType
Spectrum Type.
Definition: MSExperiment.h:93
bool empty() const
Definition: MSExperiment.h:129
Size getNrChromatograms() const
get the total number of chromatograms available
ConstIterator end() const
Definition: MSExperiment.h:164
CoordinateType getMaxRT() const
returns the maximal retention time value
void get2DPeakData(CoordinateType min_rt, CoordinateType max_rt, CoordinateType min_mz, CoordinateType max_mz, std::vector< float > &rt, std::vector< std::vector< float >> &mz, std::vector< std::vector< float >> &intensity) const
Definition: MSExperiment.h:350
Base::value_type value_type
Definition: MSExperiment.h:115
MSExperiment()
Constructor.
bool operator!=(const MSExperiment &rhs) const
Equality operator.
CoordinateType getMaxMZ() const
returns the maximal m/z value
AreaIterator areaBegin(const RangeManagerType &range)
Returns a area iterator for all peaks in range. If a dimension is empty(), it is ignored (i....
Peak1D PeakT
Definition: MSExperiment.h:75
ConstAreaIterator areaEndConst() const
Returns an non-mutable invalid area iterator marking the end of an area.
void set2DData(const Container &container)
Assignment of a data container with RT and MZ to an MSExperiment.
Definition: MSExperiment.h:238
void setSpectra(std::vector< MSSpectrum > &&spectra)
void getPrimaryMSRunPath(StringList &toFill) const
get the file path to the first MS run
std::vector< UInt > ms_levels_
MS levels of the data.
Definition: MSExperiment.h:618
ConstAreaIterator areaBeginConst(CoordinateType min_rt, CoordinateType max_rt, CoordinateType min_mz, CoordinateType max_mz) const
Returns a non-mutable area iterator for area.
std::vector< MSChromatogram > & getChromatograms()
returns the chromatogram list (mutable)
void setSpectra(const std::vector< MSSpectrum > &spectra)
sets the spectrum list
void updateRanges(Int ms_level)
Updates the m/z, intensity, retention time and MS level ranges of all spectra with a certain ms level...
void get2DPeakData(CoordinateType min_rt, CoordinateType max_rt, CoordinateType min_mz, CoordinateType max_mz, std::vector< float > &rt, std::vector< float > &mz, std::vector< float > &intensity) const
Definition: MSExperiment.h:372
void sortChromatograms(bool sort_rt=true)
Sorts the data points of the chromatograms by m/z.
Iterator RTBegin(CoordinateType rt)
Fast search for spectrum range begin.
Internal::AreaIterator< const PeakT, const PeakT &, const PeakT *, ConstIterator, SpectrumType::ConstIterator > ConstAreaIterator
Immutable area iterator type (for traversal of a rectangular subset of the peaks)
Definition: MSExperiment.h:109
void setChromatograms(const std::vector< MSChromatogram > &chromatograms)
sets the chromatogram list
Internal::AreaIterator< PeakT, PeakT &, PeakT *, Iterator, SpectrumType::Iterator > AreaIterator
Mutable area iterator type (for traversal of a rectangular subset of the peaks)
Definition: MSExperiment.h:107
CoordinateType getMinRT() const
returns the minimal retention time value
const MSChromatogram calculateTIC(float rt_bin_size=0, UInt ms_level=1) const
Computes the total ion chromatogram (TIC) for a given MS level (use ms_level = 0 for all levels).
const std::vector< MSSpectrum > & getSpectra() const
returns the spectrum list
Iterator end()
Definition: MSExperiment.h:159
UInt64 total_size_
Number of all data points.
Definition: MSExperiment.h:620
bool isSorted(bool check_mz=true) const
Checks if all spectra are sorted with respect to ascending RT.
MSExperiment(const MSExperiment &source)
Copy constructor.
RangeManager< RangeRT, RangeMZ, RangeIntensity, RangeMobility > RangeManagerType
RangeManager type.
Definition: MSExperiment.h:89
std::vector< MSSpectrum > & getSpectra()
returns the spectrum list (mutable)
void resize(Size s)
Definition: MSExperiment.h:124
void set2DData(const Container &container)
Assignment of a data container with RT and MZ to an MSExperiment.
Definition: MSExperiment.h:301
ChromatogramPeak ChromatogramPeakT
Definition: MSExperiment.h:76
void sortSpectra(bool sort_mz=true)
Sorts the data points by retention time.
Size size() const
Definition: MSExperiment.h:119
void reset()
Clear all internal data (spectra, ranges, metadata)
ConstIterator begin() const
Definition: MSExperiment.h:154
void addSpectrum(MSSpectrum &&spectrum)
void reserveSpaceSpectra(Size s)
bool hasZeroIntensities(size_t ms_level) const
returns true if any MS spectra of trthe specified level contain at least one peak with intensity of 0...
bool operator==(const MSExperiment &rhs) const
Equality operator.
ConstIterator IMEnd(CoordinateType im) const
Fast search for spectrum range end (returns the past-the-end iterator)
ConstIterator getPrecursorSpectrum(ConstIterator iterator) const
Returns the precursor spectrum of the scan pointed to by iterator.
Base::const_iterator const_iterator
Definition: MSExperiment.h:117
void updateRanges() override
void setSqlRunID(UInt64 id)
sets the run-ID which is used when storing an sqMass file
MSExperiment & operator=(const ExperimentalSettings &source)
Assignment operator.
UInt64 getSqlRunID() const
ConstAreaIterator areaBeginConst(const RangeManagerType &range) const
Returns a non-mutable area iterator for all peaks in range. If a dimension is empty(),...
void addChromatogram(const MSChromatogram &chromatogram)
adds a chromatogram to the list
std::vector< SpectrumType >::const_iterator ConstIterator
Non-mutable iterator.
Definition: MSExperiment.h:105
bool hasPeptideIdentifications() const
do any of the spectra have a PeptideID?
void clear(bool clear_meta_data)
Clears all data and meta data.
void reserve(Size s)
Definition: MSExperiment.h:134
int getPrecursorSpectrum(int zero_based_index) const
Returns the index of the precursor spectrum for spectrum at index zero_based_index.
std::vector< MSChromatogram > chromatograms_
chromatograms
Definition: MSExperiment.h:622
AreaIterator areaEnd()
Returns an invalid area iterator marking the end of an area.
bool isIMFrame() const
Are all MSSpectra in this experiment part of an IM Frame? I.e. they all have the same RT,...
The representation of a 1D spectrum.
Definition: MSSpectrum.h:70
const FloatDataArrays & getFloatDataArrays() const
Returns a const reference to the float meta data arrays.
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:54
double CoordinateType
Coordinate type.
Definition: Peak1D.h:66
float IntensityType
Intensity type.
Definition: Peak1D.h:62
Definition: RangeManager.h:921
A more convenient string class.
Definition: String.h:60
OPENMS_UINT64_TYPE UInt64
Unsigned integer type (64bit)
Definition: Types.h:77
int Int
Signed integer type.
Definition: Types.h:102
unsigned int UInt
Unsigned integer type.
Definition: Types.h:94
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
std::vector< String > StringList
Vector of String.
Definition: ListUtils.h:70
const double C13C12_MASSDIFF_U
Definition: Constants.h:121
FLASHIda C++ to C# (or vice versa) bridge functions The functions here are called in C# to invoke fun...
Definition: FeatureDeconvolution.h:48
Peak2D PeakType
Definition: MassTrace.h:47
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
static void addData_(SpectrumType *spectrum, const ContainerValueType *item)
general method for adding data points
Definition: MSExperiment.h:640
static void addData_(SpectrumType *spectrum, const ContainerValueType *item, const StringList &store_metadata_names)
general method for adding data points, including metadata arrays (populated from metainfointerface)
Definition: MSExperiment.h:648
static void addData_(SpectrumType *spectrum, const ContainerValueType *item)
specialization for adding feature mass traces (does not support metadata_names currently)
Definition: MSExperiment.h:664
Helper class to add either general data points in set2DData or use mass traces from meta values.
Definition: MSExperiment.h:631
static void addData_(SpectrumType *spectrum, const ContainerValueType *item)
static void addData_(SpectrumType *spectrum, const ContainerValueType *item, const StringList &store_metadata_names)