OpenMS
Loading...
Searching...
No Matches
ProteinIdentification.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Chris Bielow $
6// $Authors: Nico Pfeifer, Chris Bielow $
7// --------------------------------------------------------------------------
8
9#pragma once
10
22
23#include <functional>
24#include <set>
25
26namespace OpenMS
27{
28 class MSExperiment;
29 class PeptideIdentification;
30 class PeptideEvidence;
31 class ConsensusMap;
32
52 class OPENMS_DLLAPI ProteinIdentification :
54 {
55public:
58
67
71 class OPENMS_DLLAPI ProteinGroup
72 {
73 public:
76 typedef std::vector<FloatDataArray> FloatDataArrays;
79 typedef std::vector<StringDataArray> StringDataArrays;
82 typedef std::vector<IntegerDataArray> IntegerDataArrays;
83
86
88 std::vector<String> accessions;
89
91
93 bool operator==(const ProteinGroup& rhs) const;
94
95 /*
96 @brief Comparison operator (for sorting)
97
98 This operator is intended for sorting protein groups in a "best first"
99 manner. That means higher probabilities are "less" than lower
100 probabilities (!); smaller groups are "less" than larger groups;
101 everything else being equal, accessions are compared lexicographically.
102 */
103 bool operator<(const ProteinGroup& rhs) const;
104
106
119
122 {
123 return float_data_arrays_;
124 }
125
128
131
134
137
140
143
146
149 {
150 return *std::find_if(integer_data_arrays_.begin(), integer_data_arrays_.end(),
151 [&name](const IntegerDataArray& da) { return da.getName() == name; } );
152 }
153
156 {
157 return *std::find_if(string_data_arrays_.begin(), string_data_arrays_.end(),
158 [&name](const StringDataArray& da) { return da.getName() == name; } );
159 }
160
163 {
164 return *std::find_if(float_data_arrays_.begin(), float_data_arrays_.end(),
165 [&name](const FloatDataArray& da) { return da.getName() == name; } );
166 }
167
170 {
171 return *std::find_if(integer_data_arrays_.begin(), integer_data_arrays_.end(),
172 [&name](const IntegerDataArray& da) { return da.getName() == name; } );
173 }
174
177 {
178 return *std::find_if(string_data_arrays_.begin(), string_data_arrays_.end(),
179 [&name](const StringDataArray& da) { return da.getName() == name; } );
180 }
181
184 {
185 return *std::find_if(float_data_arrays_.begin(), float_data_arrays_.end(),
186 [&name](const FloatDataArray& da) { return da.getName() == name; } );
187 }
188
189 private:
192
195
198 };
199
201 enum class PeakMassType
202 {
203 MONOISOTOPIC,
204 AVERAGE,
205 SIZE_OF_PEAKMASSTYPE
206 };
207
209 static const std::string NamesOfPeakMassType[static_cast<size_t>(PeakMassType::SIZE_OF_PEAKMASSTYPE)];
210
213
262
273
278
280 bool operator==(const ProteinIdentification& rhs) const;
282 bool operator!=(const ProteinIdentification& rhs) const;
284
286
287
288 const std::vector<ProteinHit>& getHits() const;
290 std::vector<ProteinHit>& getHits();
292 void insertHit(const ProteinHit& input);
294 void insertHit(ProteinHit&& input);
295
301 void setHits(const std::vector<ProteinHit>& hits);
302
304 std::vector<ProteinHit>::iterator findHit(const String& accession);
305
307 const std::vector<ProteinGroup>& getProteinGroups() const;
309 std::vector<ProteinGroup>& getProteinGroups();
312
314 const std::vector<ProteinGroup>& getIndistinguishableProteins() const;
316 std::vector<ProteinGroup>& getIndistinguishableProteins();
321
325 void setSignificanceThreshold(double value);
327 const String& getScoreType() const;
329 void setScoreType(const String& type);
333 void setHigherScoreBetter(bool higher_is_better);
335 void sort();
336
345 void computeCoverage(const ConsensusMap& cmap, bool use_unassigned_ids);
347
355 const PeptideIdentificationList& pep_ids,
356 const StringList& skip_modifications);
358 const ConsensusMap& cmap,
359 const StringList& skip_modifications,
360 bool use_unassigned_ids);
361
362
364
365
366 const DateTime& getDateTime() const;
368 void setDateTime(const DateTime& date);
370 void setSearchEngine(const String& search_engine);
372 const String& getSearchEngine() const;
376 void setSearchEngineVersion(const String& search_engine_version);
380 void setInferenceEngine(const String& search_engine);
384 void setInferenceEngineVersion(const String& inference_engine_version);
388 void setSearchParameters(const SearchParameters& search_parameters);
390 void setSearchParameters(SearchParameters&& search_parameters);
396 const String& getIdentifier() const;
398 void setIdentifier(const String& id);
405 void setPrimaryMSRunPath(const StringList& s, bool raw = false);
406
409 void addPrimaryMSRunPath(const String& s, bool raw = false);
410 void addPrimaryMSRunPath(const StringList& s, bool raw = false);
411
418 void getPrimaryMSRunPath(StringList& output, bool raw = false) const;
419
421 Size nrPrimaryMSRunPaths(bool raw = false) const;
422
425 bool hasInferenceData() const;
426
429
433 bool peptideIDsMergeable(const ProteinIdentification& id_run, const String& experiment_type) const;
434
437 std::vector<std::pair<String,String>> getSearchEngineSettingsAsPairs(const String& se = "") const;
438
440
443protected:
445
452
454
457 std::vector<ProteinHit> protein_hits_;
458 std::vector<ProteinGroup> protein_groups_;
460 std::vector<ProteinGroup> indistinguishable_proteins_;
463
464 private:
465 void computeCoverageFromEvidenceMapping_(const std::unordered_map<String, std::set<PeptideEvidence>>& map);
466 void fillEvidenceMapping_(std::unordered_map<String, std::set<PeptideEvidence> >& map_acc_2_evidence,
467 const PeptideIdentificationList& pep_ids) const;
468
469 void fillModMapping_(const PeptideIdentificationList& pep_ids, const StringList& skip_modifications,
470 std::unordered_map<String, std::set<std::pair<Size, ResidueModification>>>& prot2mod) const;
471 };
472
473
474} //namespace OpenMS
475
476// Hash function specializations
477namespace std
478{
480 template<>
481 struct hash<OpenMS::ProteinIdentification::ProteinGroup>
482 {
483 std::size_t operator()(const OpenMS::ProteinIdentification::ProteinGroup& pg) const noexcept
484 {
485 std::size_t seed = OpenMS::hash_float(pg.probability);
486 for (const auto& acc : pg.accessions)
487 {
489 }
490 return seed;
491 }
492 };
493
495 template<>
496 struct hash<OpenMS::ProteinIdentification::SearchParameters>
497 {
499 {
500 std::size_t seed = OpenMS::fnv1a_hash_string(sp.db);
504 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.mass_type)));
505 // Hash fixed_modifications
506 for (const auto& mod : sp.fixed_modifications)
507 {
509 }
510 // Hash variable_modifications
511 for (const auto& mod : sp.variable_modifications)
512 {
514 }
515 OpenMS::hash_combine(seed, OpenMS::hash_int(sp.missed_cleavages));
516 OpenMS::hash_combine(seed, OpenMS::hash_float(sp.fragment_mass_tolerance));
517 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.fragment_mass_tolerance_ppm)));
518 OpenMS::hash_combine(seed, OpenMS::hash_float(sp.precursor_mass_tolerance));
519 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.precursor_mass_tolerance_ppm)));
520 // Hash digestion_enzyme using the base class hash
521 OpenMS::hash_combine(seed, std::hash<OpenMS::DigestionEnzyme>{}(sp.digestion_enzyme));
522 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.enzyme_term_specificity)));
523 // Hash MetaInfoInterface base class
524 OpenMS::hash_combine(seed, std::hash<OpenMS::MetaInfoInterface>{}(sp));
525 return seed;
526 }
527 };
528
530 template<>
531 struct hash<OpenMS::ProteinIdentification>
532 {
533 std::size_t operator()(const OpenMS::ProteinIdentification& pi) const noexcept
534 {
535 // Hash identifier and search engine info
536 std::size_t seed = OpenMS::fnv1a_hash_string(pi.getIdentifier());
537 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(pi.getSearchEngine()));
538 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(pi.getSearchEngineVersion()));
539 // Hash SearchParameters
540 OpenMS::hash_combine(seed, std::hash<OpenMS::ProteinIdentification::SearchParameters>{}(pi.getSearchParameters()));
541 // Hash DateTime
542 OpenMS::hash_combine(seed, std::hash<OpenMS::DateTime>{}(pi.getDateTime()));
543 // Hash protein_hits
544 for (const auto& hit : pi.getHits())
545 {
546 OpenMS::hash_combine(seed, OpenMS::hash_float(hit.getScore()));
547 OpenMS::hash_combine(seed, OpenMS::hash_int(hit.getRank()));
548 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(hit.getAccession()));
549 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(hit.getSequence()));
550 OpenMS::hash_combine(seed, OpenMS::hash_float(hit.getCoverage()));
551 }
552 // Hash protein_groups
553 for (const auto& group : pi.getProteinGroups())
554 {
555 OpenMS::hash_combine(seed, std::hash<OpenMS::ProteinIdentification::ProteinGroup>{}(group));
556 }
557 // Hash indistinguishable_proteins
558 for (const auto& group : pi.getIndistinguishableProteins())
559 {
560 OpenMS::hash_combine(seed, std::hash<OpenMS::ProteinIdentification::ProteinGroup>{}(group));
561 }
562 // Hash score type and threshold
563 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(pi.getScoreType()));
564 OpenMS::hash_combine(seed, OpenMS::hash_float(pi.getSignificanceThreshold()));
565 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(pi.isHigherScoreBetter())));
566 // Hash MetaInfoInterface base class
567 OpenMS::hash_combine(seed, std::hash<OpenMS::MetaInfoInterface>{}(pi));
568 return seed;
569 }
570 };
571} // namespace std
A container for consensus elements.
Definition ConsensusMap.h:68
Float data array class.
Definition DataArrays.h:25
Integer data array class.
Definition DataArrays.h:75
String data array class.
Definition DataArrays.h:125
DateTime Class.
Definition DateTime.h:35
Representation of a digestion enzyme for proteins (protease)
Definition DigestionEnzymeProtein.h:24
Specificity
when querying for valid digestion products, this determines if the specificity of the two peptide end...
Definition EnzymaticDigestion.h:42
Two-way mapping from ms-run-path to protID|pepID-identifier.
Definition IdentifierMSRunMapper.h:51
In-Memory representation of a mass spectrometry run.
Definition MSExperiment.h:49
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition MetaInfoInterface.h:36
Container for peptide identifications from multiple spectra.
Definition PeptideIdentificationList.h:66
Representation of a protein hit.
Definition ProteinHit.h:35
Bundles multiple (e.g. indistinguishable) proteins in a group.
Definition ProteinIdentification.h:72
void setIntegerDataArrays(const IntegerDataArrays &ida)
Sets the integer meta data arrays.
StringDataArray & getStringDataArrayByName(String name)
Returns a mutable reference to the first string meta data array with the given name.
Definition ProteinIdentification.h:155
FloatDataArray & getFloatDataArrayByName(String name)
Returns a mutable reference to the first float meta data array with the given name.
Definition ProteinIdentification.h:162
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
double probability
Probability of this group.
Definition ProteinIdentification.h:85
bool operator<(const ProteinGroup &rhs) const
std::vector< StringDataArray > StringDataArrays
Definition ProteinIdentification.h:79
OpenMS::DataArrays::FloatDataArray FloatDataArray
Float data array vector type.
Definition ProteinIdentification.h:75
const StringDataArray & getStringDataArrayByName(String name) const
Returns a const reference to the first string meta data array with the given name.
Definition ProteinIdentification.h:176
IntegerDataArray & getIntegerDataArrayByName(String name)
Returns a mutable reference to the first integer meta data array with the given name.
Definition ProteinIdentification.h:148
const IntegerDataArray & getIntegerDataArrayByName(String name) const
Returns a const reference to the first integer meta data array with the given name.
Definition ProteinIdentification.h:169
const StringDataArrays & getStringDataArrays() const
Returns a const reference to the string meta data arrays.
const FloatDataArray & getFloatDataArrayByName(String name) const
Returns a const reference to the first float meta data array with the given name.
Definition ProteinIdentification.h:183
std::vector< String > accessions
Accessions of (indistinguishable) proteins that belong to the same group.
Definition ProteinIdentification.h:88
StringDataArrays string_data_arrays_
String data arrays.
Definition ProteinIdentification.h:194
FloatDataArrays & getFloatDataArrays()
Returns a mutable reference to the float meta data arrays.
Definition ProteinIdentification.h:121
IntegerDataArrays integer_data_arrays_
Integer data arrays.
Definition ProteinIdentification.h:197
OpenMS::DataArrays::StringDataArray StringDataArray
String data array vector type.
Definition ProteinIdentification.h:78
IntegerDataArrays & getIntegerDataArrays()
Returns a mutable reference to the integer meta data arrays.
FloatDataArrays float_data_arrays_
Float data arrays.
Definition ProteinIdentification.h:191
void setStringDataArrays(const StringDataArrays &sda)
Sets the string meta data arrays.
const FloatDataArrays & getFloatDataArrays() const
Returns a const reference to the float meta data arrays.
std::vector< FloatDataArray > FloatDataArrays
Definition ProteinIdentification.h:76
OpenMS::DataArrays::IntegerDataArray IntegerDataArray
Integer data array vector type.
Definition ProteinIdentification.h:81
bool operator==(const ProteinGroup &rhs) const
Equality operator.
std::vector< IntegerDataArray > IntegerDataArrays
Definition ProteinIdentification.h:82
void setFloatDataArrays(const FloatDataArrays &fda)
Sets the float meta data arrays.
StringDataArrays & getStringDataArrays()
Returns a mutable reference to the string meta data arrays.
Representation of a protein identification run.
Definition ProteinIdentification.h:54
void setIdentifier(const String &id)
Sets the identifier.
ProteinIdentification(const ProteinIdentification &)=default
Copy constructor.
const String & getIdentifier() const
Returns the identifier.
void insertProteinGroup(const ProteinGroup &group)
Appends a new protein group.
const std::vector< ProteinGroup > & getProteinGroups() const
Returns the protein groups.
void insertHit(const ProteinHit &input)
Appends a protein hit.
const String getInferenceEngineVersion() const
Returns the search engine version.
void setSearchEngine(const String &search_engine)
Sets the search engine type.
void addPrimaryMSRunPath(const String &s, bool raw=false)
const String & getSearchEngine() const
Returns the type of search engine used.
const String getOriginalSearchEngineName() const
Return the type of search engine that was first applied (e.g., before percolator or consensusID) or "...
bool hasInferenceEngineAsSearchEngine() const
Checks if the search engine name matches an inference engine known to OpenMS.
const String & getScoreType() const
Returns the protein score type.
void setHigherScoreBetter(bool higher_is_better)
Sets the orientation of the score (is higher better?)
Size nrPrimaryMSRunPaths(bool raw=false) const
get the number of primary MS runs involve in this ID run
double getSignificanceThreshold() const
Returns the protein significance threshold value.
const String getInferenceEngine() const
Returns the type of search engine used.
std::vector< ProteinGroup > & getProteinGroups()
Returns the protein groups (mutable)
void computeModifications(const PeptideIdentificationList &pep_ids, const StringList &skip_modifications)
Compute the modifications of all ProteinHits given PeptideHits.
void sort()
Sorts the protein hits according to their score.
void insertIndistinguishableProteins(const ProteinGroup &group)
Appends new indistinguishable proteins.
const std::vector< ProteinGroup > & getIndistinguishableProteins() const
Returns the indistinguishable proteins.
String search_engine_
Definition ProteinIdentification.h:447
PeakMassType
Peak mass type.
Definition ProteinIdentification.h:202
ProteinIdentification()
Default constructor.
ProteinIdentification & operator=(ProteinIdentification &&)=default
Move assignment operator.
void setSignificanceThreshold(double value)
Sets the protein significance threshold value.
void fillModMapping_(const PeptideIdentificationList &pep_ids, const StringList &skip_modifications, std::unordered_map< String, std::set< std::pair< Size, ResidueModification > > > &prot2mod) const
std::vector< ProteinHit > protein_hits_
Definition ProteinIdentification.h:457
const SearchParameters & getSearchParameters() const
Returns the search parameters.
std::vector< ProteinGroup > & getIndistinguishableProteins()
Returns the indistinguishable proteins (mutable)
std::vector< ProteinHit > & getHits()
Returns the protein hits (mutable)
void setInferenceEngineVersion(const String &inference_engine_version)
Sets the search engine version.
bool operator!=(const ProteinIdentification &rhs) const
Inequality operator.
std::vector< std::pair< String, String > > getSearchEngineSettingsAsPairs(const String &se="") const
ProteinHit HitType
Hit type definition.
Definition ProteinIdentification.h:57
String search_engine_version_
Definition ProteinIdentification.h:448
void setSearchEngineVersion(const String &search_engine_version)
Sets the search engine version.
void setHits(const std::vector< ProteinHit > &hits)
Sets the protein hits.
void computeCoverage(const ConsensusMap &cmap, bool use_unassigned_ids)
void getPrimaryMSRunPath(StringList &output, bool raw=false) const
double protein_significance_threshold_
Definition ProteinIdentification.h:461
SearchParameters search_parameters_
Definition ProteinIdentification.h:449
void fillIndistinguishableGroupsWithSingletons()
Appends singleton groups (with the current score) for every yet ungrouped protein hit.
void setScoreType(const String &type)
Sets the protein score type.
String protein_score_type_
Definition ProteinIdentification.h:455
static StringList getAllNamesOfPeakMassType()
returns all peak mass type names known to OpenMS
std::vector< ProteinHit >::iterator findHit(const String &accession)
Finds a protein hit by accession (returns past-the-end iterator if not found)
bool higher_score_better_
Definition ProteinIdentification.h:456
void fillEvidenceMapping_(std::unordered_map< String, std::set< PeptideEvidence > > &map_acc_2_evidence, const PeptideIdentificationList &pep_ids) const
void setPrimaryMSRunPath(const StringList &s, bool raw=false)
void computeModifications(const ConsensusMap &cmap, const StringList &skip_modifications, bool use_unassigned_ids)
DateTime date_
Definition ProteinIdentification.h:450
void setInferenceEngine(const String &search_engine)
Sets the inference engine type.
void copyMetaDataOnly(const ProteinIdentification &)
Copies only metadata (no protein hits or protein groups)
const std::vector< ProteinHit > & getHits() const
Returns the protein hits.
bool peptideIDsMergeable(const ProteinIdentification &id_run, const String &experiment_type) const
bool isHigherScoreBetter() const
Returns true if a higher score represents a better score.
void computeCoverage(const PeptideIdentificationList &pep_ids)
Compute the coverage (in percent) of all ProteinHits given PeptideHits.
ProteinIdentification(ProteinIdentification &&)=default
Move constructor.
std::vector< ProteinGroup > indistinguishable_proteins_
Indistinguishable proteins: accessions[0] is "group leader", probability is meaningless.
Definition ProteinIdentification.h:460
const DateTime & getDateTime() const
Returns the date of the protein identification run.
std::vector< ProteinGroup > protein_groups_
Definition ProteinIdentification.h:458
virtual ~ProteinIdentification()
Destructor.
void setDateTime(const DateTime &date)
Sets the date of the protein identification run.
void setSearchParameters(SearchParameters &&search_parameters)
Sets the search parameters (move)
String id_
Definition ProteinIdentification.h:446
bool operator==(const ProteinIdentification &rhs) const
Equality operator.
void insertHit(ProteinHit &&input)
Appends a protein hit.
const String & getSearchEngineVersion() const
Returns the search engine version.
void setPrimaryMSRunPath(const StringList &s, MSExperiment &e)
set the file path to the primary MS run but try to use the mzML annotated in the MSExperiment.
ProteinIdentification & operator=(const ProteinIdentification &)=default
Assignment operator.
void computeCoverageFromEvidenceMapping_(const std::unordered_map< String, std::set< PeptideEvidence > > &map)
void addPrimaryMSRunPath(const StringList &s, bool raw=false)
SearchParameters & getSearchParameters()
Returns the search parameters (mutable)
void setSearchParameters(const SearchParameters &search_parameters)
Sets the search parameters.
A more convenient string class.
Definition String.h:34
unsigned int UInt
Unsigned integer type.
Definition Types.h:64
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
std::vector< String > StringList
Vector of String.
Definition ListUtils.h:44
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::size_t hash_int(T value) noexcept
Hash for an integer type.
Definition HashUtils.h:107
void hash_combine(std::size_t &seed, std::size_t value) noexcept
Combine a hash value with additional data using golden ratio mixing.
Definition HashUtils.h:87
std::size_t hash_float(T value) noexcept
Hash for a floating point type (float or double).
Definition HashUtils.h:142
std::size_t fnv1a_hash_string(const std::string &s) noexcept
FNV-1a hash for a string.
Definition HashUtils.h:70
STL namespace.
Search parameters of the DB search.
Definition ProteinIdentification.h:217
String db_version
The database version.
Definition ProteinIdentification.h:219
bool operator!=(const SearchParameters &rhs) const
bool fragment_mass_tolerance_ppm
Mass tolerance unit of fragment ions (true: ppm, false: Dalton)
Definition ProteinIdentification.h:227
SearchParameters & operator=(SearchParameters &&) &=default
Move assignment operator.
EnzymaticDigestion::Specificity enzyme_term_specificity
The number of required cutting-rule matching termini during search (none=0, semi=1,...
Definition ProteinIdentification.h:231
String taxonomy
The taxonomy restriction.
Definition ProteinIdentification.h:220
std::vector< String > fixed_modifications
Used fixed modifications.
Definition ProteinIdentification.h:223
SearchParameters(const SearchParameters &)=default
Copy constructor.
String charges
The allowed charges for the search.
Definition ProteinIdentification.h:221
Protease digestion_enzyme
The cleavage site information in details (from ProteaseDB)
Definition ProteinIdentification.h:230
bool operator==(const SearchParameters &rhs) const
SearchParameters & operator=(const SearchParameters &)=default
Assignment operator.
bool mergeable(const ProteinIdentification::SearchParameters &sp, const String &experiment_type) const
double fragment_mass_tolerance
Mass tolerance of fragment ions (Dalton or ppm)
Definition ProteinIdentification.h:226
bool precursor_mass_tolerance_ppm
Mass tolerance unit of precursor ions (true: ppm, false: Dalton)
Definition ProteinIdentification.h:229
SearchParameters(SearchParameters &&)=default
Move constructor.
double precursor_mass_tolerance
Mass tolerance of precursor ions (Dalton or ppm)
Definition ProteinIdentification.h:228
std::pair< int, int > getChargeRange() const
returns the charge range from the search engine settings as a pair of ints
std::vector< String > variable_modifications
Allowed variable modifications.
Definition ProteinIdentification.h:224
PeakMassType mass_type
Mass type of the peaks.
Definition ProteinIdentification.h:222
String db
The used database.
Definition ProteinIdentification.h:218
int getChargeValue_(String &charge_str) const
UInt missed_cleavages
The number of allowed missed cleavages.
Definition ProteinIdentification.h:225
std::size_t operator()(const OpenMS::ProteinIdentification &pi) const noexcept
Definition ProteinIdentification.h:533
std::size_t operator()(const OpenMS::ProteinIdentification::ProteinGroup &pg) const noexcept
Definition ProteinIdentification.h:483
std::size_t operator()(const OpenMS::ProteinIdentification::SearchParameters &sp) const noexcept
Definition ProteinIdentification.h:498