OpenMS
|
Helper class for peptide and protein quantification based on feature data annotated with IDs. More...
#include <OpenMS/ANALYSIS/QUANTITATION/PeptideAndProteinQuant.h>
Classes | |
struct | PeptideData |
Quantitative and associated data for a peptide. More... | |
struct | ProteinData |
Quantitative and associated data for a protein. More... | |
struct | Statistics |
Statistics for processing summary. More... | |
Public Types | |
typedef std::map< UInt64, double > | SampleAbundances |
Mapping: sample ID -> abundance. More... | |
typedef std::map< AASequence, PeptideData > | PeptideQuant |
Mapping: peptide sequence (modified) -> peptide data. More... | |
typedef std::map< String, ProteinData > | ProteinQuant |
Mapping: protein accession -> protein data. More... | |
Public Member Functions | |
PeptideAndProteinQuant () | |
Constructor. More... | |
~PeptideAndProteinQuant () override | |
Destructor. More... | |
void | readQuantData (FeatureMap &features, const ExperimentalDesign &ed) |
Read quantitative data from a feature map. More... | |
void | readQuantData (ConsensusMap &consensus, const ExperimentalDesign &ed) |
Read quantitative data from a consensus map. More... | |
void | readQuantData (std::vector< ProteinIdentification > &proteins, std::vector< PeptideIdentification > &peptides, const ExperimentalDesign &ed) |
Read quantitative data from identification results (for quantification via spectral counting). More... | |
void | quantifyPeptides (const std::vector< PeptideIdentification > &peptides=std::vector< PeptideIdentification >()) |
Compute peptide abundances. More... | |
void | quantifyProteins (const ProteinIdentification &proteins=ProteinIdentification()) |
Compute protein abundances. More... | |
const Statistics & | getStatistics () |
Get summary statistics. More... | |
const PeptideQuant & | getPeptideResults () |
Get peptide abundance data. More... | |
const ProteinQuant & | getProteinResults () |
Get protein abundance data. More... | |
void | annotateQuantificationsToProteins (const ProteinQuant &protein_quants, ProteinIdentification &proteins, bool remove_unquantified=true) |
Annotate protein quant results as meta data to protein ids. 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... | |
DefaultParamHandler & | operator= (const DefaultParamHandler &rhs) |
Assignment operator. More... | |
virtual bool | operator== (const DefaultParamHandler &rhs) const |
Equality operator. More... | |
void | setParameters (const Param ¶m) |
Sets the parameters. More... | |
const Param & | getParameters () const |
Non-mutable access to the parameters. More... | |
const Param & | getDefaults () const |
Non-mutable access to the default parameters. More... | |
const String & | getName () 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... | |
Private Member Functions | |
PeptideHit | getAnnotation_ (std::vector< PeptideIdentification > &peptides) |
Get the "canonical" annotation (a single peptide hit) of a feature/consensus feature from the associated list of peptide identifications. More... | |
void | quantifyFeature_ (const FeatureHandle &feature, size_t fraction, size_t sample, const PeptideHit &hit) |
Gather quantitative information from a feature. More... | |
bool | getBest_ (const std::map< Int, std::map< Int, SampleAbundances >> &peptide_abundances, std::pair< size_t, size_t > &best) |
Determine fraction and charge state of a peptide with the highest number of abundances. More... | |
template<typename T > | |
void | orderBest_ (const std::map< T, SampleAbundances > &abundances, std::vector< T > &result) |
Order keys (charges/peptides for peptide/protein quantification) according to how many samples they allow to quantify, breaking ties by total abundance. More... | |
void | normalizePeptides_ () |
Normalize peptide abundances across samples by (multiplicative) scaling to equal medians. More... | |
String | getAccession_ (const std::set< String > &pep_accessions, std::map< String, String > &accession_to_leader) |
Get the "canonical" protein accession from the list of protein accessions of a peptide. More... | |
void | countPeptides_ (std::vector< PeptideIdentification > &peptides) |
Count the number of identifications (best hits only) of each peptide sequence. More... | |
void | updateMembers_ () override |
Clear all data when parameters are set. More... | |
Private Attributes | |
Statistics | stats_ |
Processing statistics for output in the end. More... | |
PeptideQuant | pep_quant_ |
Peptide quantification data. More... | |
ProteinQuant | prot_quant_ |
Protein quantification data. 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< String > | subsections_ |
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... | |
Helper class for peptide and protein quantification based on feature data annotated with IDs.
This class is used by ProteinQuantifier. See there for further documentation.
Parameters of this class are:Name | Type | Default | Restrictions | Description |
---|---|---|---|---|
method | string | top | top, iBAQ | - top - quantify based on three most abundant peptides (number can be changed in 'top'). - iBAQ (intensity based absolute quantification), calculate the sum of all peptide peak intensities divided by the number of theoretically observable tryptic peptides (https://rdcu.be/cND1J). Warning: only consensusXML or featureXML input is allowed! |
best_charge_and_fraction | string | false | true, false | Distinguish between fraction and charge states of a peptide. For peptides, abundances will be reported separately for each fraction and charge; for proteins, abundances will be computed based only on the most prevalent charge observed of each peptide (over all fractions). By default, abundances are summed over all charge states. |
top:N | int | 3 | min: 0 | Calculate protein abundance from this number of proteotypic peptides (most abundant first; '0' for all) |
top:aggregate | string | median | median, mean, weighted_mean, sum | Aggregation method used to compute protein abundances from peptide abundances |
top:include_all | string | false | true, false | Include results for proteins with fewer proteotypic peptides than indicated by 'N' (no effect if 'N' is 0 or 1) |
consensus:normalize | string | false | true, false | Scale peptide abundances so that medians of all samples are equal |
consensus:fix_peptides | string | false | true, false | Use the same peptides for protein quantification across all samples. With 'N 0',all peptides that occur in every sample are considered. Otherwise ('N'), the N peptides that occur in the most samples (independently of each other) are selected, breaking ties by total abundance (there is no guarantee that the best co-ocurring peptides are chosen!). |
typedef std::map<AASequence, PeptideData> PeptideQuant |
Mapping: peptide sequence (modified) -> peptide data.
typedef std::map<String, ProteinData> ProteinQuant |
Mapping: protein accession -> protein data.
typedef std::map<UInt64, double> SampleAbundances |
Mapping: sample ID -> abundance.
Constructor.
|
inlineoverride |
Destructor.
void annotateQuantificationsToProteins | ( | const ProteinQuant & | protein_quants, |
ProteinIdentification & | proteins, | ||
bool | remove_unquantified = true |
||
) |
Annotate protein quant results as meta data to protein ids.
|
private |
Count the number of identifications (best hits only) of each peptide sequence.
The peptide hits in peptides
are sorted by score in the process.
|
private |
Get the "canonical" protein accession from the list of protein accessions of a peptide.
pep_accessions | Protein accessions of a peptide |
accession_to_leader | Captures information about indistinguishable proteins (maps accession to accession of group leader) |
If there is no information about indistinguishable proteins (from protXML) available, a canonical accession exists only for proteotypic peptides - it's the single accession for the respective peptide.
Otherwise, a peptide has a canonical accession if it maps only to proteins of one indistinguishable group. In this case, the canonical accession is that of the group leader.
If there is no canonical accession, the empty string is returned.
|
private |
Get the "canonical" annotation (a single peptide hit) of a feature/consensus feature from the associated list of peptide identifications.
Only the best-scoring peptide hit of each ID in peptides
is taken into account. The hits of each ID must already be sorted! If there's more than one ID and the best hits are not identical by sequence, or if there's no peptide ID, an empty peptide hit (for "ambiguous/no annotation") is returned. Protein accessions from identical peptide hits are accumulated.
|
private |
Determine fraction and charge state of a peptide with the highest number of abundances.
peptide_abundances | Const input map fraction -> charge -> SampleAbundances |
best | Will additionally return the best fraction and charge state |
const PeptideQuant& getPeptideResults | ( | ) |
Get peptide abundance data.
const ProteinQuant& getProteinResults | ( | ) |
Get protein abundance data.
const Statistics& getStatistics | ( | ) |
Get summary statistics.
|
private |
Normalize peptide abundances across samples by (multiplicative) scaling to equal medians.
|
inlineprivate |
Order keys (charges/peptides for peptide/protein quantification) according to how many samples they allow to quantify, breaking ties by total abundance.
The keys of abundances
are stored ordered in result
, best first.
|
private |
Gather quantitative information from a feature.
Store quantitative information from feature
in member pep_quant_
, based on the peptide annotation in hit
. fraction
, use 0 for first fraction (or if no fractionation was performed) sample
, use 0 for first sample, 1 for second, ... If hit
is empty ("ambiguous/no annotation"), nothing is stored.
void quantifyPeptides | ( | const std::vector< PeptideIdentification > & | peptides = std::vector< PeptideIdentification >() | ) |
Compute peptide abundances.
Based on quantitative data for individual charge states (in member pep_quant_
), overall abundances for peptides are computed (and stored again in pep_quant_
).
Quantitative data must first be read via readQuantData().
Optional (peptide-level) protein inference information (e.g. from Fido or ProteinProphet) can be supplied via peptides
. In that case, peptide-to-protein associations - the basis for protein-level quantification - will also be read from peptides!
void quantifyProteins | ( | const ProteinIdentification & | proteins = ProteinIdentification() | ) |
Compute protein abundances.
Peptide abundances must be computed first with quantifyPeptides(). Optional protein inference information (e.g. from Fido or ProteinProphet) can be supplied via proteins
.
void readQuantData | ( | ConsensusMap & | consensus, |
const ExperimentalDesign & | ed | ||
) |
Read quantitative data from a consensus map.
Parameters should be set before using this method, as setting parameters will clear all results.
void readQuantData | ( | FeatureMap & | features, |
const ExperimentalDesign & | ed | ||
) |
Read quantitative data from a feature map.
Parameters should be set before using this method, as setting parameters will clear all results.
void readQuantData | ( | std::vector< ProteinIdentification > & | proteins, |
std::vector< PeptideIdentification > & | peptides, | ||
const ExperimentalDesign & | ed | ||
) |
Read quantitative data from identification results (for quantification via spectral counting).
Parameters should be set before using this method, as setting parameters will clear all results.
|
overrideprivatevirtual |
Clear all data when parameters are set.
Reimplemented from DefaultParamHandler.
|
private |
Peptide quantification data.
|
private |
Protein quantification data.
|
private |
Processing statistics for output in the end.