OpenMS
TheoreticalSpectrumGenerator Class Reference

Generates theoretical spectra for peptides with various options. More...

#include <OpenMS/CHEMISTRY/TheoreticalSpectrumGenerator.h>

Inheritance diagram for TheoreticalSpectrumGenerator:
[legend]
Collaboration diagram for TheoreticalSpectrumGenerator:
[legend]

Public Member Functions

Constructors and Destructors
 TheoreticalSpectrumGenerator ()
 default constructor More...
 
 TheoreticalSpectrumGenerator (const TheoreticalSpectrumGenerator &source)
 copy constructor More...
 
 ~TheoreticalSpectrumGenerator () override
 destructor More...
 
TheoreticalSpectrumGeneratoroperator= (const TheoreticalSpectrumGenerator &tsg)
 assignment operator More...
 
- Public Member Functions inherited from DefaultParamHandler
 DefaultParamHandler (const String &name)
 Constructor with name that is displayed in error messages. More...
 
 DefaultParamHandler (const DefaultParamHandler &rhs)
 Copy constructor. More...
 
virtual ~DefaultParamHandler ()
 Destructor. More...
 
DefaultParamHandleroperator= (const DefaultParamHandler &rhs)
 Assignment operator. More...
 
virtual bool operator== (const DefaultParamHandler &rhs) const
 Equality operator. More...
 
void setParameters (const Param &param)
 Sets the parameters. More...
 
const ParamgetParameters () const
 Non-mutable access to the parameters. More...
 
const ParamgetDefaults () const
 Non-mutable access to the default parameters. More...
 
const StringgetName () const
 Non-mutable access to the name. More...
 
void setName (const String &name)
 Mutable access to the name. More...
 
const std::vector< String > & getSubsections () const
 Non-mutable access to the registered subsections. More...
 

Acessors

bool add_b_ions_
 
bool add_y_ions_
 
bool add_a_ions_
 
bool add_c_ions_
 
bool add_x_ions_
 
bool add_z_ions_
 
bool add_zp1_ions_
 
bool add_zp2_ions_
 
bool add_first_prefix_ion_
 
bool add_losses_
 
bool add_metainfo_
 
bool add_isotopes_
 
int isotope_model_
 
bool add_precursor_peaks_
 
bool add_all_precursor_charges_
 
bool add_abundant_immonium_ions_
 
bool sort_by_position_
 
double a_intensity_
 
double b_intensity_
 
double c_intensity_
 
double x_intensity_
 
double y_intensity_
 
double z_intensity_
 
Int max_isotope_
 
double rel_loss_intensity_
 
double max_isotope_probability_
 
double pre_int_
 
double pre_int_H2O_
 
double pre_int_NH3_
 
virtual void getSpectrum (PeakSpectrum &spec, const AASequence &peptide, Int min_charge, Int max_charge, Int precursor_charge=0) const
 
void updateMembers_ () override
 overwrite More...
 
static MSSpectrum generateSpectrum (const Precursor::ActivationMethod &fm, const AASequence &seq, int precursor_charge)
 
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 ion names to the DataArrays, if the add_metainfo parameter is set to true More...
 
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, if the add_metainfo parameter is set to true More...
 
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 in the peptide sequence, also adds charges and ion names to the DataArrays, if the add_metainfo parameter is set to true. More...
 
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, if the add_metainfo parameter is set to true More...
 
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 the DataArrays, if the add_metainfo parameter is set to true More...
 
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 DataArrays, if the add_metainfo parameter is set to true More...
 

Additional Inherited Members

- Static Public Member Functions inherited from DefaultParamHandler
static void writeParametersToMetaValues (const Param &write_this, MetaInfoInterface &write_here, const String &key_prefix="")
 Writes all parameters to meta values. More...
 
- Protected Member Functions inherited from DefaultParamHandler
void defaultsToParam_ ()
 Updates the parameters after the defaults have been set in the constructor. More...
 
- Protected Attributes inherited from DefaultParamHandler
Param param_
 Container for current parameters. More...
 
Param defaults_
 Container for default parameters. This member should be filled in the constructor of derived classes! More...
 
std::vector< Stringsubsections_
 Container for registered subsections. This member should be filled in the constructor of derived classes! More...
 
String error_name_
 Name that is displayed in error messages during the parameter checking. More...
 
bool check_defaults_
 If this member is set to false no checking if parameters in done;. More...
 
bool warn_empty_defaults_
 If this member is set to false no warning is emitted when defaults are empty;. More...
 

Detailed Description

Generates theoretical spectra for peptides with various options.

If the tool parameter add_metainfo is set to true, ion names like y8+ or [M-H2O+2H]++ are written as strings in a StringDataArray with the name corresponding to the constant Constants::UserParam::IonNames and charges are written as integers in an IntegerDataArray with the name "Charges" in the returned PeakSpectrum.

The getSpectrum function can be called with the same PeakSpectrum multiple times to add additional peaks. If the PeakSpectrum already has DataArrays, then the first StringDataArray and the first IntegerDataArray are extended. Therefore it is not recommended to add to or change the PeakSpectrum or these DataArrays between calls of the getSpectrum function with the same PeakSpectrum.

Note
The generation of neutral loss peaks is very slow in this class. Something similar to the neutral loss precalculation used in TheoreticalSpectrumGeneratorXLMS should be implemented here as well.
Parameters of this class are:

NameTypeDefaultRestrictionsDescription
isotope_model stringnone none, coarse, fineModel to use for isotopic peaks ('none' means no isotopic peaks are added, 'coarse' adds isotopic peaks in unit mass distance, 'fine' uses the hyperfine isotopic generator to add accurate isotopic peaks. Note that adding isotopic peaks is very slow.
max_isotope int2  Defines the maximal isotopic peak which is added if 'isotope_model' is 'coarse'
max_isotope_probability float0.05  Defines the maximal isotopic probability to cover if 'isotope_model' is 'fine'
add_metainfo stringfalse true, falseAdds the type of peaks as metainfo to the peaks, like y8+, [M-H2O+2H]++
add_losses stringfalse true, falseAdds common losses to those ion expect to have them, only water and ammonia loss is considered
sort_by_position stringtrue true, falseSort output by position
add_precursor_peaks stringfalse true, falseAdds peaks of the unfragmented precursor ion to the spectrum
add_all_precursor_charges stringfalse true, falseAdds precursor peaks with all charges in the given range
add_abundant_immonium_ions stringfalse true, falseAdd most abundant immonium ions (for Proline, Cystein, Iso/Leucine, Histidin, Phenylalanin, Tyrosine, Tryptophan)
add_first_prefix_ion stringfalse true, falseIf set to true e.g. b1 ions are added
add_y_ions stringtrue true, falseAdd peaks of y-ions to the spectrum
add_b_ions stringtrue true, falseAdd peaks of b-ions to the spectrum
add_a_ions stringfalse true, falseAdd peaks of a-ions to the spectrum
add_c_ions stringfalse true, falseAdd peaks of c-ions to the spectrum
add_x_ions stringfalse true, falseAdd peaks of x-ions to the spectrum
add_z_ions stringfalse true, falseAdd peaks of z-ions to the spectrum (sometimes observed in CID and for some AAs in ExD due to H abstraction)
add_zp1_ions stringfalse true, falseAdd peaks of z+1-radical cations (also [z+H]*^{+} or simply z*) to the spectrum (often observed in ExD)
add_zp2_ions stringfalse true, falseAdd peaks of z+2-radical cations (also [z+2H]*^{2+} or simply z') to the spectrum (often observed in ExD esp. with higher precursor charges >3 and smaller z-ions.)
y_intensity float1.0 min: 0.0Intensity of the y-ions
b_intensity float1.0 min: 0.0Intensity of the b-ions
a_intensity float1.0 min: 0.0Intensity of the a-ions
c_intensity float1.0 min: 0.0Intensity of the c-ions
x_intensity float1.0 min: 0.0Intensity of the x-ions
z_intensity float1.0 min: 0.0Intensity of the z-ions
relative_loss_intensity float0.1 min: 0.0 max: 1.0Intensity of loss ions, in relation to the intact ion intensity
precursor_intensity float1.0 min: 0.0Intensity of the precursor peak
precursor_H2O_intensity float1.0 min: 0.0Intensity of the H2O loss peak of the precursor
precursor_NH3_intensity float1.0 min: 0.0Intensity of the NH3 loss peak of the precursor

Note:
  • If a section name is documented, the documentation is displayed as tooltip.
  • Advanced parameter names are italic.

Constructor & Destructor Documentation

◆ TheoreticalSpectrumGenerator() [1/2]

default constructor

◆ TheoreticalSpectrumGenerator() [2/2]

copy constructor

◆ ~TheoreticalSpectrumGenerator()

destructor

Member Function Documentation

◆ addAbundantImmoniumIons_()

void addAbundantImmoniumIons_ ( PeakSpectrum spec,
const AASequence peptide,
DataArrays::StringDataArray ion_names,
DataArrays::IntegerDataArray charges 
) const
protected

Adds the common, most abundant immonium ions to the theoretical spectra if the residue is contained in the peptide sequence, also adds charges and ion names to the DataArrays, if the add_metainfo parameter is set to true.

◆ addIsotopeCluster_()

void addIsotopeCluster_ ( PeakSpectrum spectrum,
const AASequence ion,
DataArrays::StringDataArray ion_names,
DataArrays::IntegerDataArray charges,
const Residue::ResidueType  res_type,
Int  charge,
double  intensity 
) const
protected

helper to add an isotope cluster to a spectrum, also adds charges and ion names to the DataArrays, if the add_metainfo parameter is set to true

◆ addLosses_()

void addLosses_ ( PeakSpectrum spectrum,
const AASequence ion,
DataArrays::StringDataArray ion_names,
DataArrays::IntegerDataArray charges,
double  intensity,
const Residue::ResidueType  res_type,
int  charge 
) const
protected

helper to add full neutral loss ladders (for isotope clusters), also adds charges and ion names to the DataArrays, if the add_metainfo parameter is set to true

◆ addLossesFaster_()

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
protected

helper to add full neutral loss ladders (for single peaks), also adds charges and ion names to the DataArrays, if the add_metainfo parameter is set to true

◆ addPeaks_()

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
protectedvirtual

adds peaks to a spectrum of the given ion-type, peptide, charge, and intensity, also adds charges and ion names to the DataArrays, if the add_metainfo parameter is set to true

◆ addPrecursorPeaks_()

virtual void addPrecursorPeaks_ ( PeakSpectrum spec,
const AASequence peptide,
DataArrays::StringDataArray ion_names,
DataArrays::IntegerDataArray charges,
Int  charge = 1 
) const
protectedvirtual

adds the precursor peaks to the spectrum, also adds charges and ion names to the DataArrays, if the add_metainfo parameter is set to true

◆ generateSpectrum()

static MSSpectrum generateSpectrum ( const Precursor::ActivationMethod fm,
const AASequence seq,
int  precursor_charge 
)
static

Generates a spectrum for a peptide sequence based on activation method and precursor charge. Activation method 'CID' or 'HCID' will generate only b- and y-ions. Activation method 'ECD' or 'ETD' will generate only c- and z-ions. If precursor charge is greater than 2 ions with charge 1 & 2 will be generated, else only ions of charge 1 will appear in the spectrum.

Exceptions
Exception::InvalidParameterIf fragmentation method is anything else than 'CID', 'HCID', 'ECD' or 'ETD'.

◆ getSpectrum()

virtual void getSpectrum ( PeakSpectrum spec,
const AASequence peptide,
Int  min_charge,
Int  max_charge,
Int  precursor_charge = 0 
) const
virtual

Generates a spectrum for a peptide sequence, with the ion types that are set in the tool parameters If precursor_charge is set to 0 max_charge + 1 will be used.

Exceptions
Exception::InvalidParameterif precursor_charge < max_charge

◆ operator=()

assignment operator

◆ updateMembers_()

void updateMembers_ ( )
overridevirtual

overwrite

Reimplemented from DefaultParamHandler.

Member Data Documentation

◆ a_intensity_

double a_intensity_
protected

◆ add_a_ions_

bool add_a_ions_
protected

◆ add_abundant_immonium_ions_

bool add_abundant_immonium_ions_
protected

◆ add_all_precursor_charges_

bool add_all_precursor_charges_
protected

◆ add_b_ions_

bool add_b_ions_
protected

◆ add_c_ions_

bool add_c_ions_
protected

◆ add_first_prefix_ion_

bool add_first_prefix_ion_
protected

◆ add_isotopes_

bool add_isotopes_
protected

◆ add_losses_

bool add_losses_
protected

◆ add_metainfo_

bool add_metainfo_
protected

◆ add_precursor_peaks_

bool add_precursor_peaks_
protected

◆ add_x_ions_

bool add_x_ions_
protected

◆ add_y_ions_

bool add_y_ions_
protected

◆ add_z_ions_

bool add_z_ions_
protected

◆ add_zp1_ions_

bool add_zp1_ions_
protected

◆ add_zp2_ions_

bool add_zp2_ions_
protected

◆ b_intensity_

double b_intensity_
protected

◆ c_intensity_

double c_intensity_
protected

◆ isotope_model_

int isotope_model_
protected

◆ max_isotope_

Int max_isotope_
protected

◆ max_isotope_probability_

double max_isotope_probability_
protected

◆ pre_int_

double pre_int_
protected

◆ pre_int_H2O_

double pre_int_H2O_
protected

◆ pre_int_NH3_

double pre_int_NH3_
protected

◆ rel_loss_intensity_

double rel_loss_intensity_
protected

◆ sort_by_position_

bool sort_by_position_
protected

◆ x_intensity_

double x_intensity_
protected

◆ y_intensity_

double y_intensity_
protected

◆ z_intensity_

double z_intensity_
protected