OpenMS
IDScoreGetterSetter Class Reference

A class for extracting and reinserting IDScores from Peptide/ProteinIdentifications and from ConsensusMaps. More...

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

Classes

struct  IsHitType
 
struct  IsIDType
 

Static Public Member Functions

static void getPickedProteinScores_ (std::unordered_map< String, ScoreToTgtDecLabelPair > &picked_scores, const ProteinIdentification &id, const String &decoy_string, bool decoy_prefix)
 Fills the scores_labels vector from an ProteinIdentification id for picked protein FDR. I.e. it only takes the better of the two scores for each target-decoy pair (based on the accession after removal of the decoy_prefix. More...
 
static void getPickedProteinGroupScores_ (const std::unordered_map< String, ScoreToTgtDecLabelPair > &picked_scores, ScoreToTgtDecLabelPairs &scores_labels, const std::vector< ProteinIdentification::ProteinGroup > &grps, const String &decoy_string, bool decoy_prefix)
 Fills the scores_labels vector from a vector of ProteinGroups grps for picked protein group FDR. More...
 
static std::pair< bool, StringremoveDecoyStringIfPresent_ (const String &acc, const String &decoy_string, bool decoy_prefix)
 removes the decoy_string from acc if present. Returns if string was removed and the new string. More...
 
static void fillPeptideScoreMap_ (std::unordered_map< String, ScoreToTgtDecLabelPair > &seq_to_score_labels, std::vector< PeptideIdentification > const &ids)
 
static void fillPeptideScoreMap_ (std::unordered_map< String, ScoreToTgtDecLabelPair > &seq_to_score_labels, ConsensusMap const &map, bool include_unassigned)
 
static void getScores_ (ScoreToTgtDecLabelPairs &scores_labels, const std::vector< ProteinIdentification::ProteinGroup > &grps, const std::unordered_set< std::string > &decoy_accs)
 
template<class ... Args>
static void getScores_ (ScoreToTgtDecLabelPairs &scores_labels, const std::vector< PeptideIdentification > &ids, Args &&... args)
 
static void getScores_ (ScoreToTgtDecLabelPairs &scores_labels, const ProteinIdentification &id)
 
template<class ... Args>
static void getScores_ (ScoreToTgtDecLabelPairs &scores_labels, const PeptideIdentification &id, bool all_hits, Args &&... args)
 
template<typename IDPredicate , class ... Args>
static void getScores_ (ScoreToTgtDecLabelPairs &scores_labels, const PeptideIdentification &id, IDPredicate &&fun, bool all_hits, Args &&... args)
 
template<typename HitPredicate >
static void getScores_ (ScoreToTgtDecLabelPairs &scores_labels, const PeptideHit &hit, HitPredicate &&fun)
 
template<typename HitType , typename std::enable_if< IsHitType< HitType >::value >::type * = nullptr>
static void getScores_ (ScoreToTgtDecLabelPairs &scores_labels, const HitType &hit)
 
template<class ... Args>
static void getPeptideScoresFromMap_ (ScoreToTgtDecLabelPairs &scores_labels, const ConsensusMap &cmap, bool include_unassigned_peptides, Args &&... args)
 Helper for getting scores in ConsensusMaps. More...
 
static bool getTDLabel_ (const MetaInfoInterface &idOrHit)
 For peptide hits, a hit is considered target also if it maps to both a target and a decoy protein (i.e. "target+decoy") as value in the "target_decoy" metavalue e.g. annotated by PeptideIndexer. More...
 
template<typename IDType , class ... Args>
static void setScores_ (const std::map< double, double > &scores_to_FDR, std::vector< IDType > &ids, const std::string &score_type, bool higher_better, Args &&... args)
 
template<typename IDType >
static String setScoreType_ (IDType &id, const std::string &score_type, bool higher_better)
 
template<typename IDType >
static void setScores_ (const std::map< double, double > &scores_to_FDR, IDType &id, const std::string &score_type, bool higher_better, bool keep_decoy)
 
template<typename IDType >
static void setScores_ (const std::map< double, double > &scores_to_FDR, IDType &id, const String &old_score_type)
 
template<typename IDType >
static void setScoresHigherWorse_ (const std::map< double, double > &scores_to_FDR, IDType &id, const String &old_score_type)
 
template<typename IDType , class ... Args>
static void setScoresAndRemoveDecoys_ (const std::map< double, double > &scores_to_FDR, IDType &id, const String &old_score_type, Args &&... args)
 
template<typename IDType , class ... Args>
static void setScoresHigherWorseAndRemoveDecoys_ (const std::map< double, double > &scores_to_FDR, IDType &id, const String &old_score_type, Args &&... args)
 
template<typename HitType >
static void setScore_ (const std::map< double, double > &scores_to_FDR, HitType &hit, const std::string &old_score_type)
 
template<typename HitType >
static void setScoreHigherWorse_ (const std::map< double, double > &scores_to_FDR, HitType &hit, const std::string &old_score_type)
 
static void setScores_ (const std::map< double, double > &scores_to_FDR, PeptideIdentification &id, const std::string &score_type, bool higher_better, bool keep_decoy, int charge)
 
static void setScores_ (const std::map< double, double > &scores_to_FDR, PeptideIdentification &id, const std::string &score_type, bool higher_better, bool keep_decoy, int charge, const String &identifier)
 
template<typename IDType >
static void setScores_ (const std::map< double, double > &scores_to_FDR, IDType &id, const std::string &score_type, bool higher_better, bool keep_decoy, const String &identifier)
 
static void setScores_ (const std::map< double, double > &scores_to_FDR, PeptideIdentification &id, const std::string &score_type, bool higher_better, int charge, const String &identifier)
 
template<typename IDType >
static void setScores_ (const std::map< double, double > &scores_to_FDR, IDType &id, const std::string &score_type, bool higher_better, const String &identifier)
 
template<typename IDType >
static void setScores_ (const std::map< double, double > &scores_to_FDR, IDType &id, const std::string &score_type, bool higher_better, int charge)
 
static void setScores_ (const std::map< double, double > &scores_to_FDR, std::vector< ProteinIdentification::ProteinGroup > &grps, const std::string &score_type, bool higher_better)
 
template<typename HitType >
static void setScoreAndMoveIfTarget_ (const std::map< double, double > &scores_to_FDR, HitType &hit, const std::string &old_score_type, std::vector< HitType > &new_hits)
 Used when keep_decoy_peptides or proteins is false. More...
 
template<typename HitType >
static void setScoreHigherWorseAndMoveIfTarget_ (const std::map< double, double > &scores_to_FDR, HitType &hit, const std::string &old_score_type, std::vector< HitType > &new_hits)
 
static void setScoreAndMoveIfTarget_ (const std::map< double, double > &scores_to_FDR, PeptideHit &hit, const std::string &old_score_type, std::vector< PeptideHit > &new_hits, int charge)
 Used when keep_decoy_peptides is false and charge states are considered. More...
 
template<class ... Args>
static void setPeptideScoresForMap_ (const std::map< double, double > &scores_to_FDR, ConsensusMap &cmap, bool include_unassigned_peptides, const std::string &score_type, bool higher_better, bool keep_decoy, Args &&... args)
 Helper for applying set Scores on ConsensusMaps. More...
 
static void checkTDAnnotation_ (const MetaInfoInterface &id_or_hit)
 To check the metavalues before we do anything. More...
 
static void setPeptideScoresFromMap_ (std::unordered_map< String, ScoreToTgtDecLabelPair > const &seq_to_fdr, std::vector< PeptideIdentification > &ids, std::string const &score_type, bool keep_decoys)
 
static void setPeptideScoresFromMap_ (std::unordered_map< String, ScoreToTgtDecLabelPair > const &seq_to_fdr, ConsensusMap &map, std::string const &score_type, bool keep_decoys, bool include_unassigned)
 

Detailed Description

A class for extracting and reinserting IDScores from Peptide/ProteinIdentifications and from ConsensusMaps.

Member Function Documentation

◆ checkTDAnnotation_()

static void checkTDAnnotation_ ( const MetaInfoInterface id_or_hit)
inlinestatic

To check the metavalues before we do anything.

Parameters
id_or_hitAny Object with MetaInfoInterface. Specifically ID or Hit Type here.
Exceptions
Exception::MissingInformationif target_decoy annotation does not exist

References MetaInfoInterface::metaValueExists().

Referenced by IDScoreGetterSetter::getScores_().

◆ fillPeptideScoreMap_() [1/2]

static void fillPeptideScoreMap_ ( std::unordered_map< String, ScoreToTgtDecLabelPair > &  seq_to_score_labels,
ConsensusMap const &  map,
bool  include_unassigned 
)
static

◆ fillPeptideScoreMap_() [2/2]

static void fillPeptideScoreMap_ ( std::unordered_map< String, ScoreToTgtDecLabelPair > &  seq_to_score_labels,
std::vector< PeptideIdentification > const &  ids 
)
static

◆ getPeptideScoresFromMap_()

static void getPeptideScoresFromMap_ ( ScoreToTgtDecLabelPairs scores_labels,
const ConsensusMap cmap,
bool  include_unassigned_peptides,
Args &&...  args 
)
inlinestatic

Helper for getting scores in ConsensusMaps.

Todo:
allow FeatureMap?

References MapUtilities< MapType >::applyFunctionOnPeptideIDs(), and IDScoreGetterSetter::getScores_().

◆ getPickedProteinGroupScores_()

static void getPickedProteinGroupScores_ ( const std::unordered_map< String, ScoreToTgtDecLabelPair > &  picked_scores,
ScoreToTgtDecLabelPairs scores_labels,
const std::vector< ProteinIdentification::ProteinGroup > &  grps,
const String decoy_string,
bool  decoy_prefix 
)
static

Fills the scores_labels vector from a vector of ProteinGroups grps for picked protein group FDR.

Todo:
describe more
Parameters
picked_scoresTarget accessions to pairs of scores and target decoy labels (usually 1.0 for target and 0.0 for decoy) to be used for lookup.
scores_labelsScores and target-decoy value for all groups that had at least one picked protein. Targets preferred.
grpsThe groups to iterate over
decoy_stringThe decoy string to remove before comparing accesions for pairs.
decoy_prefixIf the decoy_string is a prefix (true) or suffix.

◆ getPickedProteinScores_()

static void getPickedProteinScores_ ( std::unordered_map< String, ScoreToTgtDecLabelPair > &  picked_scores,
const ProteinIdentification id,
const String decoy_string,
bool  decoy_prefix 
)
static

Fills the scores_labels vector from an ProteinIdentification id for picked protein FDR. I.e. it only takes the better of the two scores for each target-decoy pair (based on the accession after removal of the decoy_prefix.

Parameters
picked_scoresTarget accessions to pairs of scores and target decoy labels (usually 1.0 for target and 0.0 for decoy) to be filled.
idThe hits to iterate over
decoy_stringThe decoy string to remove before comparing accesions for pairs.
decoy_prefixIf the decoy_string is a prefix (true) or suffix.

◆ getTDLabel_()

static bool getTDLabel_ ( const MetaInfoInterface idOrHit)
inlinestatic

For peptide hits, a hit is considered target also if it maps to both a target and a decoy protein (i.e. "target+decoy") as value in the "target_decoy" metavalue e.g. annotated by PeptideIndexer.

References MetaInfoInterface::getMetaValue().

Referenced by IDScoreGetterSetter::getScores_().

◆ removeDecoyStringIfPresent_()

static std::pair<bool,String> removeDecoyStringIfPresent_ ( const String acc,
const String decoy_string,
bool  decoy_prefix 
)
static

removes the decoy_string from acc if present. Returns if string was removed and the new string.

◆ setPeptideScoresForMap_()

static void setPeptideScoresForMap_ ( const std::map< double, double > &  scores_to_FDR,
ConsensusMap cmap,
bool  include_unassigned_peptides,
const std::string &  score_type,
bool  higher_better,
bool  keep_decoy,
Args &&...  args 
)
inlinestatic

Helper for applying set Scores on ConsensusMaps.

Template Parameters
Argsoptional additional arguments (charge, run ID)
Parameters
scores_to_FDRmaps original scores to FDR
cmapthe ConsensusMap
include_unassigned_peptidesAlso modify unassigned peptide IDs in cmap?
score_typeFDR or q-Value
higher_betterusually false
keep_decoyread from Param object
argsoptional additional arguments (int charge, string run ID)

References MapUtilities< MapType >::applyFunctionOnPeptideIDs(), and IDScoreGetterSetter::setScores_().

◆ setPeptideScoresFromMap_() [1/2]

static void setPeptideScoresFromMap_ ( std::unordered_map< String, ScoreToTgtDecLabelPair > const &  seq_to_fdr,
ConsensusMap map,
std::string const &  score_type,
bool  keep_decoys,
bool  include_unassigned 
)
static

◆ setPeptideScoresFromMap_() [2/2]

static void setPeptideScoresFromMap_ ( std::unordered_map< String, ScoreToTgtDecLabelPair > const &  seq_to_fdr,
std::vector< PeptideIdentification > &  ids,
std::string const &  score_type,
bool  keep_decoys 
)
static

◆ setScoreAndMoveIfTarget_() [1/2]

static void setScoreAndMoveIfTarget_ ( const std::map< double, double > &  scores_to_FDR,
HitType &  hit,
const std::string &  old_score_type,
std::vector< HitType > &  new_hits 
)
inlinestatic

Used when keep_decoy_peptides or proteins is false.

Template Parameters
HitTypeProteinHit or PeptideHit
Parameters
scores_to_FDRmap from original score to FDR/qVal
hitThe hit (moved to new_hits if its a target hit)
old_score_typeto save it in metavalue
new_hitswhere to move if target (i.e. target or target+decoy)

Referenced by IDScoreGetterSetter::setScoresAndRemoveDecoys_().

◆ setScoreAndMoveIfTarget_() [2/2]

static void setScoreAndMoveIfTarget_ ( const std::map< double, double > &  scores_to_FDR,
PeptideHit hit,
const std::string &  old_score_type,
std::vector< PeptideHit > &  new_hits,
int  charge 
)
inlinestatic

Used when keep_decoy_peptides is false and charge states are considered.

Parameters
scores_to_FDRmap from original score to FDR/qVal
hitthe PeptideHit itself
old_score_typeto save it in metavalue
new_hitswhere to move if target (i.e. target or target+decoy)
chargeIf only peptides with charge X are currently considered

References PeptideHit::getCharge(), MetaInfoInterface::getMetaValue(), PeptideHit::getScore(), MetaInfoInterface::setMetaValue(), and PeptideHit::setScore().

◆ setScoreHigherWorseAndMoveIfTarget_()

static void setScoreHigherWorseAndMoveIfTarget_ ( const std::map< double, double > &  scores_to_FDR,
HitType &  hit,
const std::string &  old_score_type,
std::vector< HitType > &  new_hits 
)
inlinestatic