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
21
22#include <functional>
23#include <set>
24#include <algorithm>
25
26namespace OpenMS
27{
28 class MSExperiment;
29 class PeptideIdentification;
30 class PeptideIdentificationList;
31 class PeptideEvidence;
32 class ConsensusMap;
33
53 class OPENMS_DLLAPI ProteinIdentification :
55 {
56public:
59
68
72 class OPENMS_DLLAPI ProteinGroup
73 {
74 public:
77 typedef std::vector<FloatDataArray> FloatDataArrays;
80 typedef std::vector<StringDataArray> StringDataArrays;
83 typedef std::vector<IntegerDataArray> IntegerDataArrays;
84
87
89 std::vector<std::string> accessions;
90
92
94 bool operator==(const ProteinGroup& rhs) const;
95
96 /*
97 @brief Comparison operator (for sorting)
98
99 This operator is intended for sorting protein groups in a "best first"
100 manner. That means higher probabilities are "less" than lower
101 probabilities (!); smaller groups are "less" than larger groups;
102 everything else being equal, accessions are compared lexicographically.
103 */
104 bool operator<(const ProteinGroup& rhs) const;
105
107
120
123 {
124 return float_data_arrays_;
125 }
126
129
132
135
138
141
144
147
149 inline IntegerDataArray& getIntegerDataArrayByName(const std::string& name)
150 {
151 auto it = std::find_if(integer_data_arrays_.begin(), integer_data_arrays_.end(),
152 [&name](const IntegerDataArray& da) { return da.getName() == name; } );
153 if (it == integer_data_arrays_.end())
154 {
155 throw Exception::ElementNotFound(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,std::string("IntegerDataArray: ") + name);
156 }
157 return *it;
158 }
159
161 inline StringDataArray& getStringDataArrayByName(const std::string& name)
162 {
163 auto it = std::find_if(string_data_arrays_.begin(), string_data_arrays_.end(),
164 [&name](const StringDataArray& da) { return da.getName() == name; } );
165 if (it == string_data_arrays_.end())
166 {
167 throw Exception::ElementNotFound(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,std::string("StringDataArray: ") + name);
168 }
169 return *it;
170 }
171
173 inline FloatDataArray& getFloatDataArrayByName(const std::string& name)
174 {
175 auto it = std::find_if(float_data_arrays_.begin(), float_data_arrays_.end(),
176 [&name](const FloatDataArray& da) { return da.getName() == name; } );
177 if (it == float_data_arrays_.end())
178 {
179 throw Exception::ElementNotFound(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,std::string("FloatDataArray: ") + name);
180 }
181 return *it;
182 }
183
185 inline const IntegerDataArray& getIntegerDataArrayByName(const std::string& name) const
186 {
187 auto it = std::find_if(integer_data_arrays_.begin(), integer_data_arrays_.end(),
188 [&name](const IntegerDataArray& da) { return da.getName() == name; } );
189 if (it == integer_data_arrays_.end())
190 {
191 throw Exception::ElementNotFound(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,std::string("IntegerDataArray: ") + name);
192 }
193 return *it;
194 }
195
197 inline const StringDataArray& getStringDataArrayByName(const std::string& name) const
198 {
199 auto it = std::find_if(string_data_arrays_.begin(), string_data_arrays_.end(),
200 [&name](const StringDataArray& da) { return da.getName() == name; } );
201 if (it == string_data_arrays_.end())
202 {
203 throw Exception::ElementNotFound(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,std::string("StringDataArray: ") + name);
204 }
205 return *it;
206 }
207
209 inline const FloatDataArray& getFloatDataArrayByName(const std::string& name) const
210 {
211 auto it = std::find_if(float_data_arrays_.begin(), float_data_arrays_.end(),
212 [&name](const FloatDataArray& da) { return da.getName() == name; } );
213 if (it == float_data_arrays_.end())
214 {
215 throw Exception::ElementNotFound(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,std::string("FloatDataArray: ") + name);
216 }
217 return *it;
218 }
219
220 private:
223
226
229 };
230
232 enum class PeakMassType
233 {
234 MONOISOTOPIC,
235 AVERAGE,
236 SIZE_OF_PEAKMASSTYPE
237 };
238
240 static const std::string NamesOfPeakMassType[static_cast<size_t>(PeakMassType::SIZE_OF_PEAKMASSTYPE)];
241
244
246 struct OPENMS_DLLAPI SearchParameters :
247 public MetaInfoInterface
248 {
249 std::string db;
250 std::string db_version;
251 std::string taxonomy;
252 std::string charges;
254 std::vector<std::string> fixed_modifications;
255 std::vector<std::string> variable_modifications;
263
270 ~SearchParameters() = default;
271
276
277 bool operator==(const SearchParameters& rhs) const;
278
279 bool operator!=(const SearchParameters& rhs) const;
280
282 std::pair<int,int> getChargeRange() const;
283
288 bool mergeable(const ProteinIdentification::SearchParameters& sp, const std::string& experiment_type) const;
289
290 private:
291 int getChargeValue_(std::string& charge_str) const;
292 };
293
304
309
311 bool operator==(const ProteinIdentification& rhs) const;
313 bool operator!=(const ProteinIdentification& rhs) const;
315
317
318
319 const std::vector<ProteinHit>& getHits() const;
321 std::vector<ProteinHit>& getHits();
323 void insertHit(const ProteinHit& input);
325 void insertHit(ProteinHit&& input);
326
332 void setHits(const std::vector<ProteinHit>& hits);
333
335 std::vector<ProteinHit>::iterator findHit(const std::string& accession);
336
338 const std::vector<ProteinGroup>& getProteinGroups() const;
340 std::vector<ProteinGroup>& getProteinGroups();
343
345 const std::vector<ProteinGroup>& getIndistinguishableProteins() const;
347 std::vector<ProteinGroup>& getIndistinguishableProteins();
352
356 void setSignificanceThreshold(double value);
358 const std::string& getScoreType() const;
360 void setScoreType(const std::string& type);
364 void setHigherScoreBetter(bool higher_is_better);
366 void sort();
367
376 void computeCoverage(const ConsensusMap& cmap, bool use_unassigned_ids);
378
386 const PeptideIdentificationList& pep_ids,
387 const StringList& skip_modifications);
389 const ConsensusMap& cmap,
390 const StringList& skip_modifications,
391 bool use_unassigned_ids);
392
393
395
396
397 const DateTime& getDateTime() const;
399 void setDateTime(const DateTime& date);
401 void setSearchEngine(const std::string& search_engine);
403 const std::string& getSearchEngine() const;
405 const std::string getOriginalSearchEngineName() const;
407 void setSearchEngineVersion(const std::string& search_engine_version);
409 const std::string& getSearchEngineVersion() const;
411 void setInferenceEngine(const std::string& search_engine);
413 const std::string getInferenceEngine() const;
415 void setInferenceEngineVersion(const std::string& inference_engine_version);
417 const std::string getInferenceEngineVersion() const;
419 void setSearchParameters(const SearchParameters& search_parameters);
421 void setSearchParameters(SearchParameters&& search_parameters);
427 const std::string& getIdentifier() const;
429 void setIdentifier(const std::string& id);
436 void setPrimaryMSRunPath(const StringList& s, bool raw = false);
437
440 void addPrimaryMSRunPath(const std::string& s, bool raw = false);
441 void addPrimaryMSRunPath(const StringList& s, bool raw = false);
442
449 void getPrimaryMSRunPath(StringList& output, bool raw = false) const;
450
452 Size nrPrimaryMSRunPaths(bool raw = false) const;
453
456 bool hasInferenceData() const;
457
460
464 bool peptideIDsMergeable(const ProteinIdentification& id_run, const std::string& experiment_type) const;
465
468 std::vector<std::pair<std::string, std::string>> getSearchEngineSettingsAsPairs(const std::string& se = "") const;
469
471
474protected:
476
477 std::string id_;
478 std::string search_engine_;
483
485
488 std::vector<ProteinHit> protein_hits_;
489 std::vector<ProteinGroup> protein_groups_;
491 std::vector<ProteinGroup> indistinguishable_proteins_;
494
495 private:
496 void computeCoverageFromEvidenceMapping_(const std::unordered_map<std::string, std::set<PeptideEvidence>>& map);
497 void fillEvidenceMapping_(std::unordered_map<std::string, std::set<PeptideEvidence> >& map_acc_2_evidence,
498 const PeptideIdentificationList& pep_ids) const;
499
500 void fillModMapping_(const PeptideIdentificationList& pep_ids, const StringList& skip_modifications,
501 std::unordered_map<std::string, std::set<std::pair<Size, ResidueModification>>>& prot2mod) const;
502 };
503
504
505} //namespace OpenMS
506
507// Hash function specializations
508namespace std
509{
511 template<>
512 struct hash<OpenMS::ProteinIdentification::ProteinGroup>
513 {
514 std::size_t operator()(const OpenMS::ProteinIdentification::ProteinGroup& pg) const noexcept
515 {
516 std::size_t seed = OpenMS::hash_float(pg.probability);
517 for (const auto& acc : pg.accessions)
518 {
520 }
521 return seed;
522 }
523 };
524
526 template<>
527 struct hash<OpenMS::ProteinIdentification::SearchParameters>
528 {
530 {
531 std::size_t seed = OpenMS::fnv1a_hash_string(sp.db);
535 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.mass_type)));
536 // Hash fixed_modifications
537 for (const auto& mod : sp.fixed_modifications)
538 {
540 }
541 // Hash variable_modifications
542 for (const auto& mod : sp.variable_modifications)
543 {
545 }
546 OpenMS::hash_combine(seed, OpenMS::hash_int(sp.missed_cleavages));
547 OpenMS::hash_combine(seed, OpenMS::hash_float(sp.fragment_mass_tolerance));
548 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.fragment_mass_tolerance_ppm)));
549 OpenMS::hash_combine(seed, OpenMS::hash_float(sp.precursor_mass_tolerance));
550 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.precursor_mass_tolerance_ppm)));
551 // Hash digestion_enzyme using the base class hash
552 OpenMS::hash_combine(seed, std::hash<OpenMS::DigestionEnzyme>{}(sp.digestion_enzyme));
553 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(sp.enzyme_term_specificity)));
554 // Hash MetaInfoInterface base class
555 OpenMS::hash_combine(seed, std::hash<OpenMS::MetaInfoInterface>{}(sp));
556 return seed;
557 }
558 };
559
561 template<>
562 struct hash<OpenMS::ProteinIdentification>
563 {
564 std::size_t operator()(const OpenMS::ProteinIdentification& pi) const noexcept
565 {
566 // Hash identifier and search engine info
567 std::size_t seed = OpenMS::fnv1a_hash_string(pi.getIdentifier());
568 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(pi.getSearchEngine()));
569 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(pi.getSearchEngineVersion()));
570 // Hash SearchParameters
571 OpenMS::hash_combine(seed, std::hash<OpenMS::ProteinIdentification::SearchParameters>{}(pi.getSearchParameters()));
572 // Hash DateTime
573 OpenMS::hash_combine(seed, std::hash<OpenMS::DateTime>{}(pi.getDateTime()));
574 // Hash protein_hits
575 for (const auto& hit : pi.getHits())
576 {
577 OpenMS::hash_combine(seed, OpenMS::hash_float(hit.getScore()));
578 OpenMS::hash_combine(seed, OpenMS::hash_int(hit.getRank()));
579 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(hit.getAccession()));
580 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(hit.getSequence()));
581 OpenMS::hash_combine(seed, OpenMS::hash_float(hit.getCoverage()));
582 }
583 // Hash protein_groups
584 for (const auto& group : pi.getProteinGroups())
585 {
586 OpenMS::hash_combine(seed, std::hash<OpenMS::ProteinIdentification::ProteinGroup>{}(group));
587 }
588 // Hash indistinguishable_proteins
589 for (const auto& group : pi.getIndistinguishableProteins())
590 {
591 OpenMS::hash_combine(seed, std::hash<OpenMS::ProteinIdentification::ProteinGroup>{}(group));
592 }
593 // Hash score type and threshold
594 OpenMS::hash_combine(seed, OpenMS::fnv1a_hash_string(pi.getScoreType()));
595 OpenMS::hash_combine(seed, OpenMS::hash_float(pi.getSignificanceThreshold()));
596 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(pi.isHigherScoreBetter())));
597 // Hash MetaInfoInterface base class
598 OpenMS::hash_combine(seed, std::hash<OpenMS::MetaInfoInterface>{}(pi));
599 return seed;
600 }
601 };
602} // namespace std
A container for consensus elements.
Definition ConsensusMap.h:67
Float data array class.
Definition DataArrays.h:25
Integer data array class.
Definition DataArrays.h:75
std::string data array class
Definition DataArrays.h:125
DateTime Class.
Definition DateTime.h:31
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
Element could not be found exception.
Definition Exception.h:654
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:35
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:73
void setIntegerDataArrays(const IntegerDataArrays &ida)
Sets the integer meta data arrays.
const StringDataArray & getStringDataArrayByName(const std::string &name) const
Returns a const reference to the first string meta data array with the given name.
Definition ProteinIdentification.h:197
const IntegerDataArrays & getIntegerDataArrays() const
Returns a const reference to the integer meta data arrays.
double probability
Probability of this group.
Definition ProteinIdentification.h:86
bool operator<(const ProteinGroup &rhs) const
std::vector< StringDataArray > StringDataArrays
Definition ProteinIdentification.h:80
OpenMS::DataArrays::FloatDataArray FloatDataArray
Float data array vector type.
Definition ProteinIdentification.h:76
IntegerDataArray & getIntegerDataArrayByName(const std::string &name)
Returns a mutable reference to the first integer meta data array with the given name.
Definition ProteinIdentification.h:149
const StringDataArrays & getStringDataArrays() const
Returns a const reference to the string meta data arrays.
std::vector< std::string > accessions
Accessions of (indistinguishable) proteins that belong to the same group.
Definition ProteinIdentification.h:89
StringDataArrays string_data_arrays_
std::string data arrays
Definition ProteinIdentification.h:225
const FloatDataArray & getFloatDataArrayByName(const std::string &name) const
Returns a const reference to the first float meta data array with the given name.
Definition ProteinIdentification.h:209
FloatDataArrays & getFloatDataArrays()
Returns a mutable reference to the float meta data arrays.
Definition ProteinIdentification.h:122
IntegerDataArrays integer_data_arrays_
Integer data arrays.
Definition ProteinIdentification.h:228
OpenMS::DataArrays::StringDataArray StringDataArray
std::string data array vector type
Definition ProteinIdentification.h:79
IntegerDataArrays & getIntegerDataArrays()
Returns a mutable reference to the integer meta data arrays.
FloatDataArrays float_data_arrays_
Float data arrays.
Definition ProteinIdentification.h:222
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.
FloatDataArray & getFloatDataArrayByName(const std::string &name)
Returns a mutable reference to the first float meta data array with the given name.
Definition ProteinIdentification.h:173
const IntegerDataArray & getIntegerDataArrayByName(const std::string &name) const
Returns a const reference to the first integer meta data array with the given name.
Definition ProteinIdentification.h:185
std::vector< FloatDataArray > FloatDataArrays
Definition ProteinIdentification.h:77
OpenMS::DataArrays::IntegerDataArray IntegerDataArray
Integer data array vector type.
Definition ProteinIdentification.h:82
bool operator==(const ProteinGroup &rhs) const
Equality operator.
std::vector< IntegerDataArray > IntegerDataArrays
Definition ProteinIdentification.h:83
StringDataArray & getStringDataArrayByName(const std::string &name)
Returns a mutable reference to the first string meta data array with the given name.
Definition ProteinIdentification.h:161
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:55
ProteinIdentification(const ProteinIdentification &)=default
Copy constructor.
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 std::string getInferenceEngineVersion() const
Returns the search engine version.
bool hasInferenceEngineAsSearchEngine() const
Checks if the search engine name matches an inference engine known to OpenMS.
const std::string & getSearchEngine() const
Returns the type of search engine used.
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.
void setIdentifier(const std::string &id)
Sets the identifier.
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.
void setSearchEngineVersion(const std::string &search_engine_version)
Sets the search engine version.
std::string search_engine_
Definition ProteinIdentification.h:478
PeakMassType
Peak mass type.
Definition ProteinIdentification.h:233
ProteinIdentification()
Default constructor.
ProteinIdentification & operator=(ProteinIdentification &&)=default
Move assignment operator.
void setSignificanceThreshold(double value)
Sets the protein significance threshold value.
std::vector< ProteinHit > protein_hits_
Definition ProteinIdentification.h:488
std::string search_engine_version_
Definition ProteinIdentification.h:479
const SearchParameters & getSearchParameters() const
Returns the search parameters.
std::vector< ProteinGroup > & getIndistinguishableProteins()
Returns the indistinguishable proteins (mutable)
void setInferenceEngine(const std::string &search_engine)
Sets the inference engine type.
std::vector< ProteinHit > & getHits()
Returns the protein hits (mutable)
const std::string & getScoreType() const
Returns the protein score type.
bool operator!=(const ProteinIdentification &rhs) const
Inequality operator.
const std::string & getIdentifier() const
Returns the identifier.
ProteinHit HitType
Hit type definition.
Definition ProteinIdentification.h:58
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:492
SearchParameters search_parameters_
Definition ProteinIdentification.h:480
void fillIndistinguishableGroupsWithSingletons()
Appends singleton groups (with the current score) for every yet ungrouped protein hit.
std::vector< std::pair< std::string, std::string > > getSearchEngineSettingsAsPairs(const std::string &se="") const
void setScoreType(const std::string &type)
Sets the protein score type.
std::string protein_score_type_
Definition ProteinIdentification.h:486
static StringList getAllNamesOfPeakMassType()
returns all peak mass type names known to OpenMS
void setSearchEngine(const std::string &search_engine)
Sets the search engine type.
bool higher_score_better_
Definition ProteinIdentification.h:487
void setPrimaryMSRunPath(const StringList &s, bool raw=false)
void computeModifications(const ConsensusMap &cmap, const StringList &skip_modifications, bool use_unassigned_ids)
void setInferenceEngineVersion(const std::string &inference_engine_version)
Sets the search engine version.
DateTime date_
Definition ProteinIdentification.h:481
bool peptideIDsMergeable(const ProteinIdentification &id_run, const std::string &experiment_type) const
const std::string getInferenceEngine() const
Returns the type of search engine used.
void copyMetaDataOnly(const ProteinIdentification &)
Copies only metadata (no protein hits or protein groups)
void addPrimaryMSRunPath(const std::string &s, bool raw=false)
const std::vector< ProteinHit > & getHits() const
Returns the protein hits.
void fillModMapping_(const PeptideIdentificationList &pep_ids, const StringList &skip_modifications, std::unordered_map< std::string, std::set< std::pair< Size, ResidueModification > > > &prot2mod) const
bool isHigherScoreBetter() const
Returns true if a higher score represents a better score.
const std::string & getSearchEngineVersion() const
Returns the search engine version.
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:491
const std::string getOriginalSearchEngineName() const
Return the type of search engine that was first applied (e.g., before percolator or consensusID) or "...
void computeCoverageFromEvidenceMapping_(const std::unordered_map< std::string, std::set< PeptideEvidence > > &map)
const DateTime & getDateTime() const
Returns the date of the protein identification run.
std::vector< ProteinGroup > protein_groups_
Definition ProteinIdentification.h:489
std::string id_
Definition ProteinIdentification.h:477
std::vector< ProteinHit >::iterator findHit(const std::string &accession)
Finds a protein hit by accession (returns past-the-end iterator if not found)
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)
bool operator==(const ProteinIdentification &rhs) const
Equality operator.
void insertHit(ProteinHit &&input)
Appends a protein hit.
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 addPrimaryMSRunPath(const StringList &s, bool raw=false)
SearchParameters & getSearchParameters()
Returns the search parameters (mutable)
void setSearchParameters(const SearchParameters &search_parameters)
Sets the search parameters.
void fillEvidenceMapping_(std::unordered_map< std::string, std::set< PeptideEvidence > > &map_acc_2_evidence, const PeptideIdentificationList &pep_ids) const
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< std::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:248
bool operator!=(const SearchParameters &rhs) const
bool fragment_mass_tolerance_ppm
Mass tolerance unit of fragment ions (true: ppm, false: Dalton)
Definition ProteinIdentification.h:258
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:262
bool mergeable(const ProteinIdentification::SearchParameters &sp, const std::string &experiment_type) const
std::vector< std::string > fixed_modifications
Used fixed modifications.
Definition ProteinIdentification.h:254
SearchParameters(const SearchParameters &)=default
Copy constructor.
std::string taxonomy
The taxonomy restriction.
Definition ProteinIdentification.h:251
Protease digestion_enzyme
The cleavage site information in details (from ProteaseDB)
Definition ProteinIdentification.h:261
bool operator==(const SearchParameters &rhs) const
std::string charges
The allowed charges for the search.
Definition ProteinIdentification.h:252
SearchParameters & operator=(const SearchParameters &)=default
Assignment operator.
double fragment_mass_tolerance
Mass tolerance of fragment ions (Dalton or ppm)
Definition ProteinIdentification.h:257
bool precursor_mass_tolerance_ppm
Mass tolerance unit of precursor ions (true: ppm, false: Dalton)
Definition ProteinIdentification.h:260
SearchParameters(SearchParameters &&)=default
Move constructor.
double precursor_mass_tolerance
Mass tolerance of precursor ions (Dalton or ppm)
Definition ProteinIdentification.h:259
int getChargeValue_(std::string &charge_str) const
std::vector< std::string > variable_modifications
Allowed variable modifications.
Definition ProteinIdentification.h:255
std::pair< int, int > getChargeRange() const
returns the charge range from the search engine settings as a pair of ints
PeakMassType mass_type
Mass type of the peaks.
Definition ProteinIdentification.h:253
std::string db
The used database.
Definition ProteinIdentification.h:249
std::string db_version
The database version.
Definition ProteinIdentification.h:250
UInt missed_cleavages
The number of allowed missed cleavages.
Definition ProteinIdentification.h:256
std::size_t operator()(const OpenMS::ProteinIdentification &pi) const noexcept
Definition ProteinIdentification.h:564
std::size_t operator()(const OpenMS::ProteinIdentification::ProteinGroup &pg) const noexcept
Definition ProteinIdentification.h:514
std::size_t operator()(const OpenMS::ProteinIdentification::SearchParameters &sp) const noexcept
Definition ProteinIdentification.h:529