50 class ChromatogramPeak;
97 typedef std::vector<SpectrumType>
Base;
102 typedef std::vector<SpectrumType>::iterator
Iterator;
149 return spectra_.size();
161 return spectra_.empty();
184 return spectra_.begin();
189 return spectra_.begin();
194 return spectra_.end();
199 return spectra_.end();
204 void reserveSpaceSpectra(
Size s);
205 void reserveSpaceChromatograms(
Size s);
215 template <
class Container>
218 for (
typename Base::const_iterator spec = spectra_.begin(); spec != spectra_.end(); ++spec)
220 if (spec->getMSLevel() != 1)
224 typename Container::value_type s;
225 for (
typename SpectrumType::const_iterator it = spec->begin(); it != spec->end(); ++it)
228 cont.back().setRT(spec->getRT());
229 cont.back().setMZ(it->getMZ());
230 cont.back().setIntensity(it->getIntensity());
246 template <
class Container>
249 set2DData<false, Container>(container);
266 template <
class Container>
273 for (
typename Container::const_iterator iter = container.begin(); iter != container.end(); ++iter)
276 if (current_rt != iter->getRT() || spectrum ==
nullptr)
279 if (current_rt > iter->getRT())
283 current_rt = iter->getRT();
284 spectrum = createSpec_(current_rt, store_metadata_names);
309 template <
bool add_mass_traces,
class Container>
316 for (
typename Container::const_iterator iter = container.begin(); iter != container.end(); ++iter)
319 if (current_rt != iter->getRT() || spectrum ==
nullptr)
322 if (current_rt > iter->getRT())
326 current_rt = iter->getRT();
327 spectrum = createSpec_(current_rt);
340 AreaIterator areaBegin(CoordinateType min_rt, CoordinateType max_rt, CoordinateType min_mz, CoordinateType max_mz,
UInt ms_level = 1);
350 ConstAreaIterator areaBeginConst(CoordinateType min_rt, CoordinateType max_rt, CoordinateType min_mz, CoordinateType max_mz,
UInt ms_level = 1)
const;
353 ConstAreaIterator areaBeginConst(
const RangeManagerType& range,
UInt ms_level = 1)
const;
356 ConstAreaIterator areaEndConst()
const;
360 std::vector<float>& rt,
361 std::vector<std::vector<float>>& mz,
362 std::vector<std::vector<float>>& intensity)
const 365 for (
auto it = areaBeginConst(min_rt, max_rt, min_mz, max_mz); it != areaEndConst(); ++it)
369 t = (
float)it.getRT();
371 mz.resize(mz.size() + 1);
372 rt.resize(rt.size() + 1);
373 intensity.resize(intensity.size() + 1);
375 mz.back().push_back((
float)it->getMZ());
376 intensity.back().emplace_back(it->getIntensity());
382 std::vector<float>& rt,
383 std::vector<float>& mz,
384 std::vector<float>& intensity)
const 386 for (
auto it = areaBeginConst(min_rt, max_rt, min_mz, max_mz); it != areaEndConst(); ++it)
388 rt.push_back((
float)it.getRT());
389 mz.push_back((
float)it->getMZ());
390 intensity.push_back(it->getIntensity());
402 ConstIterator RTBegin(CoordinateType rt)
const;
411 ConstIterator RTEnd(CoordinateType rt)
const;
418 Iterator RTBegin(CoordinateType rt);
435 ConstIterator IMBegin(CoordinateType im)
const;
444 ConstIterator IMEnd(CoordinateType im)
const;
454 void updateRanges()
override;
461 void updateRanges(
Int ms_level);
464 CoordinateType getMinMZ()
const;
467 CoordinateType getMaxMZ()
const;
470 CoordinateType getMinRT()
const;
473 CoordinateType getMaxRT()
const;
479 const std::vector<UInt>& getMSLevels()
const;
485 UInt64 getSqlRunID()
const;
488 void setSqlRunID(
UInt64 id);
497 void sortSpectra(
bool sort_mz =
true);
504 void sortChromatograms(
bool sort_rt =
true);
511 bool isSorted(
bool check_mz =
true)
const;
523 bool clearMetaDataArrays();
532 void getPrimaryMSRunPath(
StringList& toFill)
const;
539 ConstIterator getPrecursorSpectrum(ConstIterator iterator)
const;
546 int getPrecursorSpectrum(
int zero_based_index)
const;
552 void setSpectra(
const std::vector<MSSpectrum>& spectra);
553 void setSpectra(std::vector<MSSpectrum>&& spectra);
560 const std::vector<MSSpectrum>& getSpectra()
const;
563 std::vector<MSSpectrum>& getSpectra();
566 void setChromatograms(
const std::vector<MSChromatogram>& chromatograms);
567 void setChromatograms(std::vector<MSChromatogram>&& chromatograms);
574 const std::vector<MSChromatogram>& getChromatograms()
const;
577 std::vector<MSChromatogram>& getChromatograms();
588 Size getNrSpectra()
const;
591 Size getNrChromatograms()
const;
611 void clear(
bool clear_meta_data);
614 bool containsScanOfLevel(
size_t ms_level)
const;
617 bool hasZeroIntensities(
size_t ms_level)
const;
620 bool hasPeptideIdentifications()
const;
623 bool isIMFrame()
const;
638 template<
typename ContainerValueType,
bool addMassTraces>
641 static void addData_(
SpectrumType* spectrum,
const ContainerValueType* item);
642 static void addData_(
SpectrumType* spectrum,
const ContainerValueType* item,
const StringList& store_metadata_names);
645 template<
typename ContainerValueType>
652 spectrum->insert(spectrum->end(),
PeakType());
653 spectrum->back().setIntensity(item->getIntensity());
654 spectrum->back().setPosition(item->getMZ());
659 addData_(spectrum, item);
660 for (StringList::const_iterator itm = store_metadata_names.begin(); itm != store_metadata_names.end(); ++itm)
662 float val = std::numeric_limits<float>::quiet_NaN();
663 if (item->metaValueExists(*itm)) val = item->getMetaValue(*itm);
669 template<
typename ContainerValueType>
675 if (item->metaValueExists(
"num_of_masstraces"))
677 Size mts = item->getMetaValue(
"num_of_masstraces");
678 int charge = (item->getCharge()==0 ? 1 : item->getCharge());
679 for (
Size i = 0; i < mts; ++i)
682 if (!item->metaValueExists(meta_name))
684 throw Exception::Precondition(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,
String(
"Meta value '") + meta_name +
"' expected but not found in container.");
686 ContainerValueType p;
687 p.setIntensity(item->getMetaValue(meta_name));
716 OPENMS_DLLAPI std::ostream&
operator<<(std::ostream& os,
const MSExperiment& exp);
const double C13C12_MASSDIFF_U
Definition: Constants.h:121
A more convenient string class.
Definition: String.h:58
void set2DData(const Container &container)
Assignment of a data container with RT and MZ to an MSExperiment.
Definition: MSExperiment.h:310
static void addData_(SpectrumType *spectrum, const ContainerValueType *item)
general method for adding data points
Definition: MSExperiment.h:649
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
std::vector< SpectrumType >::iterator Iterator
Mutable iterator.
Definition: MSExperiment.h:103
Peak1D PeakT
Definition: MSExperiment.h:75
The representation of a chromatogram.
Definition: MSChromatogram.h:53
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:381
Base::value_type value_type
Definition: MSExperiment.h:115
unsigned int UInt
Unsigned integer type.
Definition: Types.h:94
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
Peak2D PeakType
Definition: MassTrace.h:47
ChromatogramPeakT ChromatogramPeakType
Chromatogram peak type.
Definition: MSExperiment.h:83
Forward iterator for an area of peaks in an experiment.
Definition: AreaIterator.h:61
ConstIterator end() const
Definition: MSExperiment.h:197
std::vector< MSChromatogram > chromatograms_
chromatograms
Definition: MSExperiment.h:631
Iterator begin()
Definition: MSExperiment.h:182
Base::const_iterator const_iterator
Definition: MSExperiment.h:117
bool operator==(const IDBoostGraph::ProteinGroup &lhs, const IDBoostGraph::ProteinGroup &rhs)
PeakType::IntensityType IntensityType
Intensity type of peaks.
Definition: MSExperiment.h:87
RangeManagerContainer< RangeRT, RangeMZ, RangeIntensity, RangeMobility > RangeManagerContainerType
RangeManager type.
Definition: MSExperiment.h:91
Size size() const
The number of spectra.
Definition: MSExperiment.h:147
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
Precondition failed exception.
Definition: Exception.h:157
const FloatDataArrays & getFloatDataArrays() const
Returns a const reference to the float meta data arrays.
MSSpectrum SpectrumType
Spectrum Type.
Definition: MSExperiment.h:93
SpectrumType & operator[](Size n)
Random access to n'th spectrum.
Definition: MSExperiment.h:171
void reserve(Size n)
Reserve space for n spectra.
Definition: MSExperiment.h:165
Iterator end()
Definition: MSExperiment.h:192
void resize(Size n)
Resize to n spectra.
Definition: MSExperiment.h:153
Base::iterator iterator
Definition: MSExperiment.h:116
The representation of a 1D spectrum.
Definition: MSSpectrum.h:66
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:267
Helper class to add either general data points in set2DData or use mass traces from meta values...
Definition: MSExperiment.h:639
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:53
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)
ChromatogramPeak ChromatogramPeakT
Definition: MSExperiment.h:76
PeakType::CoordinateType CoordinateType
Coordinate type of peak positions.
Definition: MSExperiment.h:85
bool empty() const
Are there any spectra (does not consider chromatograms)
Definition: MSExperiment.h:159
OPENMS_UINT64_TYPE UInt64
Unsigned integer type (64bit)
Definition: Types.h:77
std::vector< SpectrumType > spectra_
spectra
Definition: MSExperiment.h:633
std::vector< String > StringList
Vector of String.
Definition: ListUtils.h:70
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:359
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:70
MSChromatogram ChromatogramType
Chromatogram type.
Definition: MSExperiment.h:95
std::vector< SpectrumType >::const_iterator ConstIterator
Non-mutable iterator.
Definition: MSExperiment.h:105
bool operator!=(_Iterator< _Val, _Ref, _Ptr > const &, _Iterator< _Val, _Ref, _Ptr > const &)
Definition: KDTree.h:824
static void addData_(SpectrumType *spectrum, const ContainerValueType *item)
specialization for adding feature mass traces (does not support metadata_names currently) ...
Definition: MSExperiment.h:673
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
RangeManager< RangeRT, RangeMZ, RangeIntensity, RangeMobility > RangeManagerType
RangeManager type.
Definition: MSExperiment.h:89
void get2DData(Container &cont) const
Reads out a 2D Spectrum.
Definition: MSExperiment.h:216
std::vector< SpectrumType > Base
STL base class type.
Definition: MSExperiment.h:97
A 1-dimensional raw data point or peak for chromatograms.
Definition: ChromatogramPeak.h:53
void set2DData(const Container &container)
Assignment of a data container with RT and MZ to an MSExperiment.
Definition: MSExperiment.h:247
Definition: RangeManager.h:896
ConstIterator begin() const
Definition: MSExperiment.h:187
UInt64 total_size_
Number of all data points.
Definition: MSExperiment.h:629
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:657
int Int
Signed integer type.
Definition: Types.h:102
const SpectrumType & operator[](Size n) const
Random access to n'th spectrum.
Definition: MSExperiment.h:177
Description of the experimental settings.
Definition: ExperimentalSettings.h:59
std::vector< UInt > ms_levels_
MS levels of the data.
Definition: MSExperiment.h:627