OpenMS
TheoreticalSpectrumGenerator.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: Timo Sachsenberg, Eugen Netz $
6 // $Authors: Andreas Bertsch $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
16 
17 namespace OpenMS
18 {
19  class AASequence;
20 
42  class OPENMS_DLLAPI TheoreticalSpectrumGenerator :
43  public DefaultParamHandler
44  {
45  public:
46 
52 
55 
59 
62 
69  virtual void getSpectrum(PeakSpectrum& spec, const AASequence& peptide, Int min_charge, Int max_charge, Int precursor_charge = 0) const;
70 
76  static MSSpectrum generateSpectrum(const Precursor::ActivationMethod& fm, const AASequence& seq, int precursor_charge);
77 
79  void updateMembers_() override;
81 
82  protected:
83 
85  virtual void addPeaks_(PeakSpectrum& spectrum, const AASequence& peptide, DataArrays::StringDataArray& ion_names, DataArrays::IntegerDataArray& charges, MSSpectrum::Chunks& chunks, const Residue::ResidueType res_type, Int charge = 1) const;
86 
88  virtual void addPrecursorPeaks_(PeakSpectrum& spec, const AASequence& peptide, DataArrays::StringDataArray& ion_names, DataArrays::IntegerDataArray& charges, Int charge = 1) const;
89 
92 
94  void addIsotopeCluster_(PeakSpectrum& spectrum, const AASequence& ion, DataArrays::StringDataArray& ion_names, DataArrays::IntegerDataArray& charges, const Residue::ResidueType res_type, Int charge, double intensity) const;
95 
97  static char residueTypeToIonLetter_(const Residue::ResidueType res_type);
98 
100  void addLosses_(PeakSpectrum& spectrum, const AASequence& ion, DataArrays::StringDataArray& ion_names, DataArrays::IntegerDataArray& charges, double intensity, const Residue::ResidueType res_type, int charge) const;
101 
103  void addLossesFaster_(PeakSpectrum& spectrum, double mz, const std::set<EmpiricalFormula>& f_losses, int ion_ordinal, DataArrays::StringDataArray& ion_names, DataArrays::IntegerDataArray& charges, const std::map<EmpiricalFormula, String>& formula_str_cache, double intensity, const Residue::ResidueType res_type, bool add_metainfo, int charge) const;
104 
120  double a_intensity_;
121  double b_intensity_;
122  double c_intensity_;
123  double x_intensity_;
124  double y_intensity_;
125  double z_intensity_;
126 
130  double pre_int_;
131  double pre_int_H2O_;
132  double pre_int_NH3_;
133  };
134 }
Representation of a peptide/protein sequence.
Definition: AASequence.h:86
Integer data array class.
Definition: DataArrays.h:29
String data array class.
Definition: DataArrays.h:36
A base class for all classes handling default parameters.
Definition: DefaultParamHandler.h:66
The representation of a 1D spectrum.
Definition: MSSpectrum.h:44
ActivationMethod
Method of activation.
Definition: Precursor.h:59
ResidueType
Definition: Residue.h:126
Generates theoretical spectra for peptides with various options.
Definition: TheoreticalSpectrumGenerator.h:44
bool add_x_ions_
Definition: TheoreticalSpectrumGenerator.h:109
bool add_precursor_peaks_
Definition: TheoreticalSpectrumGenerator.h:116
void addLosses_(PeakSpectrum &spectrum, const AASequence &ion, DataArrays::StringDataArray &ion_names, DataArrays::IntegerDataArray &charges, double intensity, const Residue::ResidueType res_type, int charge) const
helper to add full neutral loss ladders (for isotope clusters), also adds charges and ion names to th...
virtual void addPeaks_(PeakSpectrum &spectrum, const AASequence &peptide, DataArrays::StringDataArray &ion_names, DataArrays::IntegerDataArray &charges, MSSpectrum::Chunks &chunks, const Residue::ResidueType res_type, Int charge=1) const
adds peaks to a spectrum of the given ion-type, peptide, charge, and intensity, also adds charges and...
TheoreticalSpectrumGenerator()
default constructor
double rel_loss_intensity_
Definition: TheoreticalSpectrumGenerator.h:128
bool add_all_precursor_charges_
Definition: TheoreticalSpectrumGenerator.h:117
bool add_losses_
Definition: TheoreticalSpectrumGenerator.h:112
bool add_a_ions_
Definition: TheoreticalSpectrumGenerator.h:107
double max_isotope_probability_
Definition: TheoreticalSpectrumGenerator.h:129
static char residueTypeToIonLetter_(const Residue::ResidueType res_type)
helper for mapping residue type to letter
double c_intensity_
Definition: TheoreticalSpectrumGenerator.h:122
bool add_b_ions_
Definition: TheoreticalSpectrumGenerator.h:105
double z_intensity_
Definition: TheoreticalSpectrumGenerator.h:125
~TheoreticalSpectrumGenerator() override
destructor
bool sort_by_position_
Definition: TheoreticalSpectrumGenerator.h:119
bool add_abundant_immonium_ions_
Definition: TheoreticalSpectrumGenerator.h:118
bool add_y_ions_
Definition: TheoreticalSpectrumGenerator.h:106
bool add_isotopes_
Definition: TheoreticalSpectrumGenerator.h:114
double pre_int_NH3_
Definition: TheoreticalSpectrumGenerator.h:132
TheoreticalSpectrumGenerator(const TheoreticalSpectrumGenerator &source)
copy constructor
virtual void addPrecursorPeaks_(PeakSpectrum &spec, const AASequence &peptide, DataArrays::StringDataArray &ion_names, DataArrays::IntegerDataArray &charges, Int charge=1) const
adds the precursor peaks to the spectrum, also adds charges and ion names to the DataArrays,...
double x_intensity_
Definition: TheoreticalSpectrumGenerator.h:123
TheoreticalSpectrumGenerator & operator=(const TheoreticalSpectrumGenerator &tsg)
assignment operator
double a_intensity_
Definition: TheoreticalSpectrumGenerator.h:120
bool add_first_prefix_ion_
Definition: TheoreticalSpectrumGenerator.h:111
double b_intensity_
Definition: TheoreticalSpectrumGenerator.h:121
void addIsotopeCluster_(PeakSpectrum &spectrum, const AASequence &ion, DataArrays::StringDataArray &ion_names, DataArrays::IntegerDataArray &charges, const Residue::ResidueType res_type, Int charge, double intensity) const
helper to add an isotope cluster to a spectrum, also adds charges and ion names to the DataArrays,...
int isotope_model_
Definition: TheoreticalSpectrumGenerator.h:115
static MSSpectrum generateSpectrum(const Precursor::ActivationMethod &fm, const AASequence &seq, int precursor_charge)
void updateMembers_() override
overwrite
double pre_int_
Definition: TheoreticalSpectrumGenerator.h:130
double y_intensity_
Definition: TheoreticalSpectrumGenerator.h:124
void addAbundantImmoniumIons_(PeakSpectrum &spec, const AASequence &peptide, DataArrays::StringDataArray &ion_names, DataArrays::IntegerDataArray &charges) const
Adds the common, most abundant immonium ions to the theoretical spectra if the residue is contained i...
virtual void getSpectrum(PeakSpectrum &spec, const AASequence &peptide, Int min_charge, Int max_charge, Int precursor_charge=0) const
Int max_isotope_
Definition: TheoreticalSpectrumGenerator.h:127
void addLossesFaster_(PeakSpectrum &spectrum, double mz, const std::set< EmpiricalFormula > &f_losses, int ion_ordinal, DataArrays::StringDataArray &ion_names, DataArrays::IntegerDataArray &charges, const std::map< EmpiricalFormula, String > &formula_str_cache, double intensity, const Residue::ResidueType res_type, bool add_metainfo, int charge) const
helper to add full neutral loss ladders (for single peaks), also adds charges and ion names to the Da...
bool add_c_ions_
Definition: TheoreticalSpectrumGenerator.h:108
bool add_z_ions_
Definition: TheoreticalSpectrumGenerator.h:110
bool add_metainfo_
Definition: TheoreticalSpectrumGenerator.h:113
double pre_int_H2O_
Definition: TheoreticalSpectrumGenerator.h:131
int Int
Signed integer type.
Definition: Types.h:76
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
Definition: MSSpectrum.h:67