|  | 
|  | 
| Functions for filtering a container based on a predicate  | 
| template<class Container , class Predicate > | 
| static void | removeMatchingItems (Container &items, const Predicate &pred) | 
|  | Remove items that satisfy a condition from a container (e.g. vector)  More... 
 | 
|  | 
| template<class Container , class Predicate > | 
| static void | keepMatchingItems (Container &items, const Predicate &pred) | 
|  | Keep items that satisfy a condition in a container (e.g. vector), removing all others.  More... 
 | 
|  | 
| template<class Container , class Predicate > | 
| static void | moveMatchingItems (Container &items, const Predicate &pred, Container &target) | 
|  | Move items that satisfy a condition to a container (e.g. vector)  More... 
 | 
|  | 
| template<class IDContainer , class Predicate > | 
| static void | removeMatchingItemsUnroll (IDContainer &items, const Predicate &pred) | 
|  | Remove Hit items that satisfy a condition in one of our ID containers (e.g. vector of Peptide or ProteinIDs)  More... 
 | 
|  | 
| template<class IDContainer , class Predicate > | 
| static void | keepMatchingItemsUnroll (IDContainer &items, const Predicate &pred) | 
|  | Keep Hit items that satisfy a condition in one of our ID containers (e.g. vector of Peptide or ProteinIDs)  More... 
 | 
|  | 
| template<class MapType , class Predicate > | 
| static void | keepMatchingPeptideHits (MapType &prot_and_pep_ids, Predicate &pred) | 
|  | 
| template<class MapType , class Predicate > | 
| static void | removeMatchingPeptideHits (MapType &prot_and_pep_ids, Predicate &pred) | 
|  | 
| template<class MapType , class Predicate > | 
| static void | removeMatchingPeptideIdentifications (MapType &prot_and_pep_ids, Predicate &pred) | 
|  | 
|  | 
| template<class IdentificationType > | 
| static Size | countHits (const std::vector< IdentificationType > &ids) | 
|  | Returns the total number of peptide/protein hits in a vector of peptide/protein identifications.  More... 
 | 
|  | 
| template<class IdentificationType > | 
| static bool | getBestHit (const std::vector< IdentificationType > &identifications, bool assume_sorted, typename IdentificationType::HitType &best_hit) | 
|  | Finds the best-scoring hit in a vector of peptide or protein identifications.  More... 
 | 
|  | 
| static void | extractPeptideSequences (const std::vector< PeptideIdentification > &peptides, std::set< String > &sequences, bool ignore_mods=false) | 
|  | Extracts all unique peptide sequences from a list of peptide IDs.  More... 
 | 
|  | 
| static std::map< String, std::vector< ProteinHit > > | extractUnassignedProteins (ConsensusMap &cmap) | 
|  | Extracts all proteins not matched by PSMs in features.  More... 
 | 
|  | 
| template<class EvidenceFilter > | 
| static void | FilterPeptideEvidences (EvidenceFilter &filter, std::vector< PeptideIdentification > &peptides) | 
|  | remove peptide evidences based on a filter  More... 
 | 
|  | 
|  | 
| template<class IdentificationType > | 
| static void | updateHitRanks (std::vector< IdentificationType > &ids) | 
|  | Updates the hit ranks on all peptide or protein IDs.  More... 
 | 
|  | 
| static void | removeUnreferencedProteins (ConsensusMap &cmap, bool include_unassigned) | 
|  | 
| static void | removeUnreferencedProteins (std::vector< ProteinIdentification > &proteins, const std::vector< PeptideIdentification > &peptides) | 
|  | Removes protein hits from proteinsthat are not referenced by a peptide inpeptides.  More...
 | 
|  | 
| static void | updateProteinReferences (std::vector< PeptideIdentification > &peptides, const std::vector< ProteinIdentification > &proteins, bool remove_peptides_without_reference=false) | 
|  | Removes references to missing proteins.  More... 
 | 
|  | 
| static void | updateProteinReferences (ConsensusMap &cmap, bool remove_peptides_without_reference=false) | 
|  | Removes references to missing proteins.  More... 
 | 
|  | 
| static bool | updateProteinGroups (std::vector< ProteinIdentification::ProteinGroup > &groups, const std::vector< ProteinHit > &hits) | 
|  | Update protein groups after protein hits were filtered.  More... 
 | 
|  | 
| static void | removeUngroupedProteins (const std::vector< ProteinIdentification::ProteinGroup > &groups, std::vector< ProteinHit > &hits) | 
|  | Update protein hits after protein groups were filtered.  More... 
 | 
|  | 
|  | 
| template<class IdentificationType > | 
| static void | removeEmptyIdentifications (std::vector< IdentificationType > &ids) | 
|  | Removes peptide or protein identifications that have no hits in them.  More... 
 | 
|  | 
| template<class IdentificationType > | 
| static void | filterHitsByScore (std::vector< IdentificationType > &ids, double threshold_score) | 
|  | Filters peptide or protein identifications according to the score of the hits.  More... 
 | 
|  | 
| static void | filterGroupsByScore (std::vector< ProteinIdentification::ProteinGroup > &grps, double threshold_score, bool higher_better) | 
|  | Filters protein groups according to the score of the groups.  More... 
 | 
|  | 
| template<class IdentificationType > | 
| static void | filterHitsByScore (IdentificationType &id, double threshold_score) | 
|  | Filters peptide or protein identifications according to the score of the hits.  More... 
 | 
|  | 
| template<class IdentificationType > | 
| static void | keepNBestHits (std::vector< IdentificationType > &ids, Size n) | 
|  | Filters peptide or protein identifications according to the score of the hits, keeping the nbest hits per ID.  More...
 | 
|  | 
| template<class IdentificationType > | 
| static void | filterHitsByRank (std::vector< IdentificationType > &ids, Size min_rank, Size max_rank) | 
|  | Filters peptide or protein identifications according to the ranking of the hits.  More... 
 | 
|  | 
| template<class IdentificationType > | 
| static void | removeDecoyHits (std::vector< IdentificationType > &ids) | 
|  | Removes hits annotated as decoys from peptide or protein identifications.  More... 
 | 
|  | 
| template<class IdentificationType > | 
| static void | removeHitsMatchingProteins (std::vector< IdentificationType > &ids, const std::set< String > accessions) | 
|  | Filters peptide or protein identifications according to the given proteins (negative).  More... 
 | 
|  | 
| template<class IdentificationType > | 
| static void | keepHitsMatchingProteins (std::vector< IdentificationType > &ids, const std::set< String > &accessions) | 
|  | Filters peptide or protein identifications according to the given proteins (positive).  More... 
 | 
|  | 
|  | 
| static void | keepBestPeptideHits (std::vector< PeptideIdentification > &peptides, bool strict=false) | 
|  | Filters peptide identifications keeping only the single best-scoring hit per ID.  More... 
 | 
|  | 
| static void | filterPeptidesByLength (std::vector< PeptideIdentification > &peptides, Size min_length, Size max_length=UINT_MAX) | 
|  | Filters peptide identifications according to peptide sequence length.  More... 
 | 
|  | 
| static void | filterPeptidesByCharge (std::vector< PeptideIdentification > &peptides, Int min_charge, Int max_charge) | 
|  | Filters peptide identifications according to charge state.  More... 
 | 
|  | 
| static void | filterPeptidesByRT (std::vector< PeptideIdentification > &peptides, double min_rt, double max_rt) | 
|  | Filters peptide identifications by precursor RT, keeping only IDs in the given range.  More... 
 | 
|  | 
| static void | filterPeptidesByMZ (std::vector< PeptideIdentification > &peptides, double min_mz, double max_mz) | 
|  | Filters peptide identifications by precursor m/z, keeping only IDs in the given range.  More... 
 | 
|  | 
| static void | filterPeptidesByMZError (std::vector< PeptideIdentification > &peptides, double mass_error, bool unit_ppm) | 
|  | Filter peptide identifications according to mass deviation.  More... 
 | 
|  | 
| template<class Filter > | 
| static void | filterPeptideEvidences (Filter &filter, std::vector< PeptideIdentification > &peptides) | 
|  | Digest a collection of proteins and filter PeptideEvidences based on specificity PeptideEvidences of peptides are removed if the digest of a protein did not produce the peptide sequence.  More... 
 | 
|  | 
| static void | filterPeptidesByRTPredictPValue (std::vector< PeptideIdentification > &peptides, const String &metavalue_key, double threshold=0.05) | 
|  | Filters peptide identifications according to p-values from RTPredict.  More... 
 | 
|  | 
| static void | removePeptidesWithMatchingModifications (std::vector< PeptideIdentification > &peptides, const std::set< String > &modifications) | 
|  | Removes all peptide hits that have at least one of the given modifications.  More... 
 | 
|  | 
| static void | keepPeptidesWithMatchingModifications (std::vector< PeptideIdentification > &peptides, const std::set< String > &modifications) | 
|  | Keeps only peptide hits that have at least one of the given modifications.  More... 
 | 
|  | 
| static void | removePeptidesWithMatchingSequences (std::vector< PeptideIdentification > &peptides, const std::vector< PeptideIdentification > &bad_peptides, bool ignore_mods=false) | 
|  | Removes all peptide hits with a sequence that matches one in bad_peptides.  More...
 | 
|  | 
| static void | keepPeptidesWithMatchingSequences (std::vector< PeptideIdentification > &peptides, const std::vector< PeptideIdentification > &good_peptides, bool ignore_mods=false) | 
|  | Removes all peptide hits with a sequence that does not match one in good_peptides.  More...
 | 
|  | 
| static void | keepUniquePeptidesPerProtein (std::vector< PeptideIdentification > &peptides) | 
|  | Removes all peptides that are not annotated as unique for a protein (by PeptideIndexer)  More... 
 | 
|  | 
| static void | removeDuplicatePeptideHits (std::vector< PeptideIdentification > &peptides, bool seq_only=false) | 
|  | Removes duplicate peptide hits from each peptide identification, keeping only unique hits (per ID).  More... 
 | 
|  | 
|  | 
| static void | filterHitsByScore (PeakMap &experiment, double peptide_threshold_score, double protein_threshold_score) | 
|  | Filters an MS/MS experiment according to score thresholds.  More... 
 | 
|  | 
| static void | keepNBestHits (PeakMap &experiment, Size n) | 
|  | Filters an MS/MS experiment by keeping the N best peptide hits for every spectrum.  More... 
 | 
|  | 
| template<class MapType > | 
| static void | keepNBestPeptideHits (MapType &map, Size n) | 
|  | Filters a Consensus/FeatureMap by keeping the N best peptide hits for every spectrum.  More... 
 | 
|  | 
| template<class MapType > | 
| static void | removeEmptyIdentifications (MapType &prot_and_pep_ids) | 
|  | 
| static void | keepBestPerPeptide (std::vector< PeptideIdentification > &pep_ids, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | Filters PeptideHits from PeptideIdentification by keeping only the best peptide hits for every peptide sequence.  More... 
 | 
|  | 
| static void | keepBestPerPeptidePerRun (std::vector< ProteinIdentification > &prot_ids, std::vector< PeptideIdentification > &pep_ids, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | 
| template<class MapType > | 
| static void | annotateBestPerPeptidePerRun (MapType &prot_and_pep_ids, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | 
| template<class MapType > | 
| static void | keepBestPerPeptidePerRun (MapType &prot_and_pep_ids, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | 
| static void | annotateBestPerPeptidePerRun (const std::vector< ProteinIdentification > &prot_ids, std::vector< PeptideIdentification > &pep_ids, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | 
| static void | annotateBestPerPeptidePerRunWithData (RunToSequenceToChargeToPepHitP &best_peps_per_run, std::vector< PeptideIdentification > &pep_ids, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | 
| static void | annotateBestPerPeptide (std::vector< PeptideIdentification > &pep_ids, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | 
| static void | annotateBestPerPeptideWithData (SequenceToChargeToPepHitP &best_pep, PeptideIdentification &pep, bool ignore_mods, bool ignore_charges, Size nr_best_spectrum) | 
|  | 
| static void | keepHitsMatchingProteins (PeakMap &experiment, const std::vector< FASTAFile::FASTAEntry > &proteins) | 
|  | Filters an MS/MS experiment according to the given proteins.  More... 
 | 
|  | 
|  | 
| static void | keepBestMatchPerQuery (IdentificationData &id_data, IdentificationData::ScoreTypeRef score_ref) | 
|  | 
| static void | filterQueryMatchesByScore (IdentificationData &id_data, IdentificationData::ScoreTypeRef score_ref, double cutoff) | 
|  | 
| static void | removeDecoys (IdentificationData &id_data) | 
|  | 
Collection of functions for filtering peptide and protein identifications. 
This class provides functions for filtering collections of peptide or protein identifications according to various criteria. It also contains helper functions and classes (functors that implement predicates) that are used in this context.
The filter functions modify their inputs, rather than creating filtered copies.
Most filters work on the hit level, i.e. they remove peptide or protein hits from peptide or protein identifications (IDs). A few filters work on the ID level instead, i.e. they remove peptide or protein IDs from vectors thereof. Independent of this, the inputs for all filter functions are vectors of IDs, because the data most often comes in this form. This design also allows many helper objects to be set up only once per vector, rather than once per ID.
The filter functions for vectors of peptide/protein IDs do not include clean-up steps (e.g. removal of IDs without hits, reassignment of hit ranks, ...). They only carry out their specific filtering operations. This is so filters can be chained without having to repeat clean-up operations. The group of clean-up functions provides helpers that are useful to ensure data integrity after filters have been applied, but it is up to the individual developer to use them when necessary.
The filter functions for MS/MS experiments do include clean-up steps, because they filter peptide and protein IDs in conjunction and potential contradictions between the two must be eliminated.