OpenMS
CoarseIsotopePatternGenerator.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: Chris Bielow $
6 // $Authors: Clemens Groepl, Andreas Bertsch, Chris Bielow $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
13 
14 #include <set>
15 
16 namespace OpenMS
17 {
77  class OPENMS_DLLAPI CoarseIsotopePatternGenerator
79  {
80 
81  public:
82  CoarseIsotopePatternGenerator(const Size max_isotope = 0, const bool round_masses = false);
83 
85 
88 
94  void setMaxIsotope(const Size& max_isotope);
95 
97  void setRoundMasses(const bool round_masses);
98 
101 
103  bool getRoundMasses() const;
105 
113  IsotopeDistribution run(const EmpiricalFormula&) const override;
114 
122 
131 
132 
143 
164  static IsotopeDistribution approximateFromPeptideWeight(double mass, UInt num_peaks = 20, UInt charge = 1);
165 
176  static std::vector<double> approximateIntensities(double mass, UInt num_peaks = 20);
177 
185 
193 
194 
201 
207  IsotopeDistribution estimateFromWeightAndComp(double average_weight, double C, double H, double N, double O, double S, double P);
208 
214  IsotopeDistribution estimateFromMonoWeightAndComp(double mono_weight, double C, double H, double N, double O, double S, double P);
215 
216 
231  IsotopeDistribution estimateFromWeightAndCompAndS(double average_weight, UInt S, double C, double H, double N, double O, double P);
232 
247  IsotopeDistribution estimateForFragmentFromPeptideWeight(double average_weight_precursor, double average_weight_fragment, const std::set<UInt>& precursor_isotopes);
248 
268  IsotopeDistribution estimateForFragmentFromPeptideWeightAndS(double average_weight_precursor, UInt S_precursor, double average_weight_fragment, UInt S_fragment, const std::set<UInt>& precursor_isotopes) const;
269 
284  IsotopeDistribution estimateForFragmentFromRNAWeight(double average_weight_precursor, double average_weight_fragment, const std::set<UInt>& precursor_isotopes);
285 
300  IsotopeDistribution estimateForFragmentFromDNAWeight(double average_weight_precursor, double average_weight_fragment, const std::set<UInt>& precursor_isotopes);
301 
323  IsotopeDistribution estimateForFragmentFromWeightAndComp(double average_weight_precursor, double average_weight_fragment, const std::set<UInt>& precursor_isotopes, double C, double H, double N, double O, double S, double P) const;
324 
343  IsotopeDistribution calcFragmentIsotopeDist(const IsotopeDistribution& fragment_isotope_dist, const IsotopeDistribution& comp_fragment_isotope_dist, const std::set<UInt>& precursor_isotopes, const double fragment_mono_mass) const;
344 
346 
349 
350  protected:
351 
354 
357 
360 
367  IsotopeDistribution calcFragmentIsotopeDist_(const IsotopeDistribution::ContainerType& fragment_isotope_dist, const IsotopeDistribution::ContainerType& comp_fragment_isotope_dist, const std::set<UInt>& precursor_isotopes) const;
368 
371 
376 
377  };
378 
379 } // namespace OpenMS
Isotope pattern generator for coarse isotope distributions.
Definition: CoarseIsotopePatternGenerator.h:79
IsotopeDistribution estimateForFragmentFromDNAWeight(double average_weight_precursor, double average_weight_fragment, const std::set< UInt > &precursor_isotopes)
Estimate DNA fragment IsotopeDistribution from the precursor's average weight, fragment's average wei...
IsotopeDistribution estimateFromPeptideWeightAndS(double average_weight, UInt S)
Estimate peptide IsotopeDistribution from average weight and exact number of sulfurs.
IsotopeDistribution calcFragmentIsotopeDist_(const IsotopeDistribution::ContainerType &fragment_isotope_dist, const IsotopeDistribution::ContainerType &comp_fragment_isotope_dist, const std::set< UInt > &precursor_isotopes) const
calculates the fragment distribution for a fragment molecule and stores it in result.
Size max_isotope_
maximal isotopes which is used to calculate the distribution
Definition: CoarseIsotopePatternGenerator.h:373
Size getMaxIsotope() const
returns the currently set maximum isotope
IsotopeDistribution estimateFromRNAMonoWeight(double mono_weight)
Estimate Nucleotide Isotopedistribution from monoisotopic weight and number of isotopes that should b...
IsotopeDistribution estimateFromWeightAndComp(double average_weight, double C, double H, double N, double O, double S, double P)
Estimate Isotopedistribution from weight, average composition, and number of isotopes that should be ...
IsotopeDistribution estimateFromDNAWeight(double average_weight)
Estimate Nucleotide Isotopedistribution from weight and number of isotopes that should be reported av...
IsotopeDistribution estimateFromRNAWeight(double average_weight)
Estimate Nucleotide Isotopedistribution from weight and number of isotopes that should be reported.
IsotopeDistribution estimateFromWeightAndCompAndS(double average_weight, UInt S, double C, double H, double N, double O, double P)
Estimate IsotopeDistribution from weight, exact number of sulfurs, and average remaining composition.
static std::vector< double > approximateIntensities(double mass, UInt num_peaks=20)
roughly approximate intensity distribution of peptidic isotope patterns from monoisotopic weight usin...
CoarseIsotopePatternGenerator & operator=(const CoarseIsotopePatternGenerator &iso)
IsotopeDistribution estimateFromPeptideWeight(double average_weight)
Estimate Peptide Isotopedistribution from weight and number of isotopes that should be reported.
static IsotopeDistribution approximateFromPeptideWeight(double mass, UInt num_peaks=20, UInt charge=1)
roughly approximate peptide IsotopeDistribution from monoisotopic weight using Poisson distribution....
IsotopeDistribution::ContainerType convolve(const IsotopeDistribution::ContainerType &left, const IsotopeDistribution::ContainerType &right) const
convolves the distributions left and right and stores the result in result
bool getRoundMasses() const
returns the current value of the flag to return expected masses (true) or atomic numbers (false).
bool round_masses_
flag to determine whether masses should be rounded or not
Definition: CoarseIsotopePatternGenerator.h:375
IsotopeDistribution estimateFromPeptideMonoWeight(double mono_weight)
Estimate Peptide Isotopedistribution from monoisotopic weight and number of isotopes that should be r...
IsotopeDistribution run(const EmpiricalFormula &) const override
Creates an isotope distribution from an empirical sum formula.
IsotopeDistribution::ContainerType convolvePow_(const IsotopeDistribution::ContainerType &input, Size factor) const
convolves the distribution input factor times and stores the result in result
void setMaxIsotope(const Size &max_isotope)
sets the maximal isotope with max_isotope
IsotopeDistribution::ContainerType correctMass_(const IsotopeDistribution::ContainerType &input, const double mono_weight) const
converts the masses of distribution input from atomic numbers to accurate masses
IsotopeDistribution estimateForFragmentFromWeightAndComp(double average_weight_precursor, double average_weight_fragment, const std::set< UInt > &precursor_isotopes, double C, double H, double N, double O, double S, double P) const
Estimate fragment IsotopeDistribution from the precursor's average weight, fragment's average weight,...
IsotopeDistribution estimateForFragmentFromRNAWeight(double average_weight_precursor, double average_weight_fragment, const std::set< UInt > &precursor_isotopes)
Estimate RNA fragment IsotopeDistribution from the precursor's average weight, fragment's average wei...
IsotopeDistribution estimateFromMonoWeightAndComp(double mono_weight, double C, double H, double N, double O, double S, double P)
Estimate Isotopedistribution from monoisotopic weight, average composition, and number of isotopes th...
IsotopeDistribution::ContainerType fillGaps_(const IsotopeDistribution::ContainerType &id) const
fill a gapped isotope pattern (i.e. certain masses are missing), with zero probability masses
IsotopeDistribution::ContainerType convolveSquare_(const IsotopeDistribution::ContainerType &input) const
convolves the distribution input with itself and stores the result in result
IsotopeDistribution calcFragmentIsotopeDist(const IsotopeDistribution &fragment_isotope_dist, const IsotopeDistribution &comp_fragment_isotope_dist, const std::set< UInt > &precursor_isotopes, const double fragment_mono_mass) const
Calculate isotopic distribution for a fragment molecule.
IsotopeDistribution estimateForFragmentFromPeptideWeight(double average_weight_precursor, double average_weight_fragment, const std::set< UInt > &precursor_isotopes)
Estimate peptide fragment IsotopeDistribution from the precursor's average weight,...
CoarseIsotopePatternGenerator(const Size max_isotope=0, const bool round_masses=false)
void setRoundMasses(const bool round_masses)
sets the round_masses_ flag to round masses to integer values (true) or return accurate masses (false...
IsotopeDistribution estimateForFragmentFromPeptideWeightAndS(double average_weight_precursor, UInt S_precursor, double average_weight_fragment, UInt S_fragment, const std::set< UInt > &precursor_isotopes) const
Estimate peptide fragment IsotopeDistribution from the precursor's average weight,...
Representation of an empirical formula.
Definition: EmpiricalFormula.h:59
Definition: IsotopeDistribution.h:39
std::vector< MassAbundance > ContainerType
Definition: IsotopeDistribution.h:46
Provides an interface for different isotope pattern generator methods.
Definition: IsotopePatternGenerator.h:42
unsigned int UInt
Unsigned integer type.
Definition: Types.h:64
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:97
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19