OpenMS
ProtonDistributionModel Class Reference

A proton distribution model to calculate the proton distribution over charged peptides. More...

#include <OpenMS/ANALYSIS/ID/ProtonDistributionModel.h>

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

Public Member Functions

 ProtonDistributionModel ()
 default constructor More...
 
 ProtonDistributionModel (const ProtonDistributionModel &model)
 copy constructor More...
 
 ~ProtonDistributionModel () override
 destructor More...
 
ProtonDistributionModeloperator= (const ProtonDistributionModel &pdm)
 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...
 

Enumerations

enum  FragmentationType { ChargeDirected = 0 , ChargeRemote , SideChain }
 the type of fragmentation More...
 
std::vector< double > sc_charge_
 
std::vector< double > bb_charge_
 
std::vector< double > sc_charge_full_
 
std::vector< double > bb_charge_full_
 
std::vector< double > sc_charge_ion_n_term_
 
std::vector< double > bb_charge_ion_n_term_
 
std::vector< double > sc_charge_ion_c_term_
 
std::vector< double > bb_charge_ion_c_term_
 
double E_
 
double E_c_term_
 
double E_n_term_
 
void getProtonDistribution (std::vector< double > &bb_charges, std::vector< double > &sc_charges, const AASequence &peptide, Int charge, Residue::ResidueType res_type=Residue::YIon)
 calculates a proton distribution of the given charged peptide More...
 
void getChargeStateIntensities (const AASequence &peptide, const AASequence &n_term_ion, const AASequence &c_term_ion, Int charge, Residue::ResidueType n_term_type, std::vector< double > &n_term_intensities, std::vector< double > &c_term_intensities, FragmentationType type)
 calculates the charge state intensities of different charge states of the same ion More...
 
void setPeptideProtonDistribution (const std::vector< double > &bb_charge, const std::vector< double > &sc_charge)
 sets the proton distributions of the whole peptide, they are needed for the getChargeStateIntensities_ method and need to be recalculated each time if not given More...
 
void calculateProtonDistribution_ (const AASequence &peptide, Int charge, Residue::ResidueType res_type=Residue::YIon, bool fixed_proton=false, Size cleavage_site=0, bool use_most_basic_site=false)
 
void calculateProtonDistributionCharge1_ (const AASequence &peptide, Residue::ResidueType res_type)
 
void calculateProtonDistributionCharge2_ (const AASequence &peptide, Residue::ResidueType res_type, bool fixed_proton, Size cleavage_site, bool use_most_basic_site)
 
void calculateProtonDistributionGreater2_ (const AASequence &peptide, Int charge, Residue::ResidueType res_type)
 
void calculateProtonDistributionIonPair_ (const AASequence &peptide, Residue::ResidueType type, Size cleavage_site)
 
void calcChargeStateIntensities_ (const AASequence &peptide, const AASequence &n_term_ion, const AASequence &c_term_ion, Int charge, Residue::ResidueType n_term_type, std::vector< double > &n_term_intensities, std::vector< double > &c_term_intensities, FragmentationType type)
 
void calcChargeStateIntensities_ (const AASequence &peptide, const AASequence &n_term_ion, const AASequence &c_term_ion, Int charge, Residue::ResidueType n_term_type, double &n_term1, double &c_term1, double &n_term2, double &c_term2, FragmentationType type)
 
void getLeftAndRightGBValues_ (const AASequence &peptide, double &left_gb, double &right_gb, Size position)
 

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
virtual void updateMembers_ ()
 This method is used to update extra member variables at the end of the setParameters() method. More...
 
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

A proton distribution model to calculate the proton distribution over charged peptides.

The model uses proton affinity values of backbone nitrogens and sidechains to calculate the proton distribution of charged peptide among these sites. The possible sites are the peptide bonds between the amino acids, the side chains and the C-terminus and N-terminus. The calculation is done calculating a Boltzmann distribution of the sites.

Details and the proton affinities can be found in Z. Zhang, Prediction of Low-Energy Collision-Induced Dissociation Spectra of Peptides, Anal. Chem., 76 (14), 3908 - 3922, 2004

A proton distribution can be calculated using the getProtonDistribution method. The backbone probabilities are reported in the first parameter (index 0 for the N-terminus, index 1 for the first peptide bond...), the site chain probabilities are reported in the second parameter (index 0, for the first amino acid...). The peptide and the number of protons as well as type of peptide (can be Reside::YIon for peptides and y-ions and any other ion type).

Charge state intensities of differently charged equal (e.g. y7+ and y7++) ions can be calculated using the getChargeStateIntensities function.

Parameters of this class are:

NameTypeDefaultRestrictionsDescription
gb_bb_l_NH2 float916.840000000000032  Gas-phase basicity value of N-terminus
gb_bb_r_COOH float-95.819999999999993  Gas-phase basicity value of C-terminus
gb_bb_r_b-ion float36.460000000000001  Gas-phase basicity value of b-ion C-terminus
gb_bb_r_a-ion float46.850000000000001  Gas-phase basicity value of a-ion C-terminus
sigma float0.5  Width of the gaussian which distributes the mobile protons over the charge states, only for z > 3.
temperature float500.0  Temperature term

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

Member Enumeration Documentation

◆ FragmentationType

the type of fragmentation

Enumerator
ChargeDirected 
ChargeRemote 
SideChain 

Constructor & Destructor Documentation

◆ ProtonDistributionModel() [1/2]

default constructor

Constructor and destructors

◆ ProtonDistributionModel() [2/2]

copy constructor

◆ ~ProtonDistributionModel()

~ProtonDistributionModel ( )
override

destructor

Member Function Documentation

◆ calcChargeStateIntensities_() [1/2]

void calcChargeStateIntensities_ ( const AASequence peptide,
const AASequence n_term_ion,
const AASequence c_term_ion,
Int  charge,
Residue::ResidueType  n_term_type,
double &  n_term1,
double &  c_term1,
double &  n_term2,
double &  c_term2,
FragmentationType  type 
)
protected

◆ calcChargeStateIntensities_() [2/2]

void calcChargeStateIntensities_ ( const AASequence peptide,
const AASequence n_term_ion,
const AASequence c_term_ion,
Int  charge,
Residue::ResidueType  n_term_type,
std::vector< double > &  n_term_intensities,
std::vector< double > &  c_term_intensities,
FragmentationType  type 
)
protected

◆ calculateProtonDistribution_()

void calculateProtonDistribution_ ( const AASequence peptide,
Int  charge,
Residue::ResidueType  res_type = Residue::YIon,
bool  fixed_proton = false,
Size  cleavage_site = 0,
bool  use_most_basic_site = false 
)
protected

◆ calculateProtonDistributionCharge1_()

void calculateProtonDistributionCharge1_ ( const AASequence peptide,
Residue::ResidueType  res_type 
)
protected

◆ calculateProtonDistributionCharge2_()

void calculateProtonDistributionCharge2_ ( const AASequence peptide,
Residue::ResidueType  res_type,
bool  fixed_proton,
Size  cleavage_site,
bool  use_most_basic_site 
)
protected

◆ calculateProtonDistributionGreater2_()

void calculateProtonDistributionGreater2_ ( const AASequence peptide,
Int  charge,
Residue::ResidueType  res_type 
)
protected

◆ calculateProtonDistributionIonPair_()

void calculateProtonDistributionIonPair_ ( const AASequence peptide,
Residue::ResidueType  type,
Size  cleavage_site 
)
protected

◆ getChargeStateIntensities()

void getChargeStateIntensities ( const AASequence peptide,
const AASequence n_term_ion,
const AASequence c_term_ion,
Int  charge,
Residue::ResidueType  n_term_type,
std::vector< double > &  n_term_intensities,
std::vector< double > &  c_term_intensities,
FragmentationType  type 
)

calculates the charge state intensities of different charge states of the same ion

Parameters
peptidethe peptide
n_term_ionthe prefix ion sequence
c_term_ionthe suffix ion sequence
chargethe charge
n_term_typethe ion type of the N-terminal ion; valid values are Residue::AIon, Residue::BIon
n_term_intensitiesthe probability of seeing a charged prefix ions (first index corresponds to ion of charge 1)
c_term_intensitiesthe probability of seeing a charged suffix ions (first index corresponds to ion of charge 2)
typethe type of fragmentation (charge-directed, charge-remote of side chain)

◆ getLeftAndRightGBValues_()

void getLeftAndRightGBValues_ ( const AASequence peptide,
double &  left_gb,
double &  right_gb,
Size  position 
)
protected

◆ getProtonDistribution()

void getProtonDistribution ( std::vector< double > &  bb_charges,
std::vector< double > &  sc_charges,
const AASequence peptide,
Int  charge,
Residue::ResidueType  res_type = Residue::YIon 
)

calculates a proton distribution of the given charged peptide

Parameters
bb_chargesthe calculated probabilities of the backbone sites (including N-terminus and C-terminus)
sc_chargesthe calculated probabilities of the side chain sites
peptidethe peptide
chargethe charge
res_typethe type of the ion given in peptide. Peptides are handled as y-ions, i.e. Residue::YIon

◆ operator=()

ProtonDistributionModel& operator= ( const ProtonDistributionModel pdm)

assignment operator

◆ setPeptideProtonDistribution()

void setPeptideProtonDistribution ( const std::vector< double > &  bb_charge,
const std::vector< double > &  sc_charge 
)

sets the proton distributions of the whole peptide, they are needed for the getChargeStateIntensities_ method and need to be recalculated each time if not given

Member Data Documentation

◆ bb_charge_

std::vector<double> bb_charge_
protected

◆ bb_charge_full_

std::vector<double> bb_charge_full_
protected

◆ bb_charge_ion_c_term_

std::vector<double> bb_charge_ion_c_term_
protected

◆ bb_charge_ion_n_term_

std::vector<double> bb_charge_ion_n_term_
protected

◆ E_

double E_
protected

◆ E_c_term_

double E_c_term_
protected

◆ E_n_term_

double E_n_term_
protected

◆ sc_charge_

std::vector<double> sc_charge_
protected

◆ sc_charge_full_

std::vector<double> sc_charge_full_
protected

◆ sc_charge_ion_c_term_

std::vector<double> sc_charge_ion_c_term_
protected

◆ sc_charge_ion_n_term_

std::vector<double> sc_charge_ion_n_term_
protected