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<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
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, String("IntegerDataArray: ") + name);
156 }
157 return *it;
158 }
159
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, String("StringDataArray: ") + name);
168 }
169 return *it;
170 }
171
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, String("FloatDataArray: ") + name);
180 }
181 return *it;
182 }
183
185 inline const IntegerDataArray& getIntegerDataArrayByName(const 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, String("IntegerDataArray: ") + name);
192 }
193 return *it;
194 }
195
197 inline const StringDataArray& getStringDataArrayByName(const 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, String("StringDataArray: ") + name);
204 }
205 return *it;
206 }
207
209 inline const FloatDataArray& getFloatDataArrayByName(const 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, 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
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 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 String& getScoreType() const;
360 void setScoreType(const 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 String& search_engine);
403 const String& getSearchEngine() const;
407 void setSearchEngineVersion(const String& search_engine_version);
411 void setInferenceEngine(const String& search_engine);
415 void setInferenceEngineVersion(const String& inference_engine_version);
419 void setSearchParameters(const SearchParameters& search_parameters);
421 void setSearchParameters(SearchParameters&& search_parameters);
427 const String& getIdentifier() const;
429 void setIdentifier(const String& id);
436 void setPrimaryMSRunPath(const StringList& s, bool raw = false);
437
440 void addPrimaryMSRunPath(const 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 String& experiment_type) const;
465
468 std::vector<std::pair<String,String>> getSearchEngineSettingsAsPairs(const String& se = "") const;
469
471
474protected:
476
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<String, std::set<PeptideEvidence>>& map);
497 void fillEvidenceMapping_(std::unordered_map<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<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
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: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:73
void setIntegerDataArrays(const IntegerDataArrays &ida)
Sets the integer meta data arrays.
FloatDataArray & getFloatDataArrayByName(const String &name)
Returns a mutable reference to the first float meta data array with the given name.
Definition ProteinIdentification.h:173
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
const StringDataArray & getStringDataArrayByName(const String &name) const
Returns a const reference to the first string meta data array with the given name.
Definition ProteinIdentification.h:197
std::vector< StringDataArray > StringDataArrays
Definition ProteinIdentification.h:80
OpenMS::DataArrays::FloatDataArray FloatDataArray
Float data array vector type.
Definition ProteinIdentification.h:76
const StringDataArrays & getStringDataArrays() const
Returns a const reference to the string meta data arrays.
std::vector< String > accessions
Accessions of (indistinguishable) proteins that belong to the same group.
Definition ProteinIdentification.h:89
StringDataArrays string_data_arrays_
String data arrays.
Definition ProteinIdentification.h:225
const IntegerDataArray & getIntegerDataArrayByName(const String &name) const
Returns a const reference to the first integer meta data array with the given name.
Definition ProteinIdentification.h:185
const FloatDataArray & getFloatDataArrayByName(const 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
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
StringDataArray & getStringDataArrayByName(const String &name)
Returns a mutable reference to the first string meta data array with the given name.
Definition ProteinIdentification.h:161
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:77
IntegerDataArray & getIntegerDataArrayByName(const String &name)
Returns a mutable reference to the first integer meta data array with the given name.
Definition ProteinIdentification.h:149
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
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
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: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.
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:488
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:58
String search_engine_version_
Definition ProteinIdentification.h:479
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:492
SearchParameters search_parameters_
Definition ProteinIdentification.h:480
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:486
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:487
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:481
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:491
const DateTime & getDateTime() const
Returns the date of the protein identification run.
std::vector< ProteinGroup > protein_groups_
Definition ProteinIdentification.h:489
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:477
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:32
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:248
String db_version
The database version.
Definition ProteinIdentification.h:250
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
String taxonomy
The taxonomy restriction.
Definition ProteinIdentification.h:251
std::vector< String > fixed_modifications
Used fixed modifications.
Definition ProteinIdentification.h:254
SearchParameters(const SearchParameters &)=default
Copy constructor.
String charges
The allowed charges for the search.
Definition ProteinIdentification.h:252
Protease digestion_enzyme
The cleavage site information in details (from ProteaseDB)
Definition ProteinIdentification.h:261
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: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
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:255
PeakMassType mass_type
Mass type of the peaks.
Definition ProteinIdentification.h:253
String db
The used database.
Definition ProteinIdentification.h:249
int getChargeValue_(String &charge_str) const
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