OpenMS
CoarseIsotopePatternGenerator.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, The OpenMS Team -- 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 
163  static IsotopeDistribution approximateFromPeptideWeight(double mass, UInt num_peaks = 20, UInt charge = 1);
164 
175  static std::vector<double> approximateIntensities(double mass, UInt num_peaks = 20);
176 
184 
192 
193 
200 
206  IsotopeDistribution estimateFromWeightAndComp(double average_weight, double C, double H, double N, double O, double S, double P);
207 
213  IsotopeDistribution estimateFromMonoWeightAndComp(double mono_weight, double C, double H, double N, double O, double S, double P);
214 
215 
230  IsotopeDistribution estimateFromWeightAndCompAndS(double average_weight, UInt S, double C, double H, double N, double O, double P);
231 
246  IsotopeDistribution estimateForFragmentFromPeptideWeight(double average_weight_precursor, double average_weight_fragment, const std::set<UInt>& precursor_isotopes);
247 
267  IsotopeDistribution estimateForFragmentFromPeptideWeightAndS(double average_weight_precursor, UInt S_precursor, double average_weight_fragment, UInt S_fragment, const std::set<UInt>& precursor_isotopes) const;
268 
283  IsotopeDistribution estimateForFragmentFromRNAWeight(double average_weight_precursor, double average_weight_fragment, const std::set<UInt>& precursor_isotopes);
284 
299  IsotopeDistribution estimateForFragmentFromDNAWeight(double average_weight_precursor, double average_weight_fragment, const std::set<UInt>& precursor_isotopes);
300 
322  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;
323 
342  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;
343 
345 
348 
349  protected:
350 
353 
356 
359 
366  IsotopeDistribution calcFragmentIsotopeDist_(const IsotopeDistribution::ContainerType& fragment_isotope_dist, const IsotopeDistribution::ContainerType& comp_fragment_isotope_dist, const std::set<UInt>& precursor_isotopes) const;
367 
370 
375 
376  };
377 
378 } // 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:372
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:374
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:68
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:101
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22