OpenMS
ProteinHit.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: Timo Sachsenberg $
6 // $Authors: $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
11 #include <iosfwd>
12 #include <vector>
13 #include <functional>
14 #include <set>
15 #include <map>
16 
18 #include <OpenMS/CONCEPT/Types.h>
21 
22 namespace OpenMS
23 {
32  class OPENMS_DLLAPI ProteinHit :
33  public MetaInfoInterface
34  {
35 public:
37  enum class TargetDecoyType
38  {
39  TARGET,
40  DECOY,
41  UNKNOWN
42  };
43 
44  static const double COVERAGE_UNKNOWN; // == -1
45 
47 
48  class OPENMS_DLLAPI ProteinHitAccessionHash
50  {
51  public:
52  size_t operator()(const ProteinHit & p)
53  {
54  return std::hash<std::string>{}(p.getAccession());
55  }
56 
57  };
58  class OPENMS_DLLAPI ProteinHitPtrAccessionHash
59  {
60  public:
61  size_t operator()(const ProteinHit * p)
62  {
63  return std::hash<std::string>{}(p->getAccession());
64  }
65 
66  };
68 
70 
71  class OPENMS_DLLAPI ScoreMore
73  {
74  public:
75  template<typename Arg>
76  bool operator()(const Arg& a, const Arg& b) const
77  {
78  return std::make_tuple(a.getScore(), a.getAccession()) > std::make_tuple(b.getScore(), b.getAccession());
79  }
80  };
81 
83  class OPENMS_DLLAPI ScoreLess
84  {
85 public:
86  template <typename Arg>
87  bool operator()(const Arg & a, const Arg & b) const
88  {
89  return std::make_tuple(a.getScore(), a.getAccession()) < std::make_tuple(b.getScore(), b.getAccession());
90  }
91 
92  };
94 
97 
100 
102  ProteinHit(double score, UInt rank, String accession, String sequence);
103 
105  ProteinHit(const ProteinHit &) = default;
106 
108  ProteinHit(ProteinHit&&) = default;
109 
111 
113  ProteinHit & operator=(const ProteinHit &) = default;
114 
116  ProteinHit& operator=(ProteinHit&&) = default; // TODO: add noexcept (gcc 4.8 bug)
117 
120 
122  bool operator==(const ProteinHit & rhs) const;
123 
125  bool operator!=(const ProteinHit & rhs) const;
126 
127 
130 
132  double getScore() const;
133 
135  UInt getRank() const;
136 
138  const String & getSequence() const;
139 
141  const String & getAccession() const;
142 
145 
147  double getCoverage() const;
148 
150  void setScore(const double score);
151 
153  void setRank(UInt newrank);
154 
156  void setSequence(const String & sequence);
157  void setSequence(String && sequence);
158 
160  void setAccession(const String & accession);
161 
163  void setDescription(const String & description);
164 
166  void setCoverage(const double coverage);
167 
169  const std::set<std::pair<Size, ResidueModification> >& getModifications() const;
170 
172  void setModifications(std::set<std::pair<Size, ResidueModification> >& mods);
173 
175  bool isDecoy() const;
176 
188 
201 
203 
204 protected:
205  double score_;
209  double coverage_;
210  std::set<std::pair<Size, ResidueModification> > modifications_;
211  };
212 
214  OPENMS_DLLAPI std::ostream& operator<< (std::ostream& stream, const ProteinHit& hit);
215 
216 } // namespace OpenMS
217 
Interface for classes that can store arbitrary meta information (Type-Name-Value tuples).
Definition: MetaInfoInterface.h:35
Hash of a ProteinHit based on its accession only!
Definition: ProteinHit.h:50
size_t operator()(const ProteinHit &p)
Definition: ProteinHit.h:52
size_t operator()(const ProteinHit *p)
Definition: ProteinHit.h:61
Lesser predicate for scores of hits.
Definition: ProteinHit.h:84
bool operator()(const Arg &a, const Arg &b) const
Definition: ProteinHit.h:87
bool operator()(const Arg &a, const Arg &b) const
Definition: ProteinHit.h:76
Representation of a protein hit.
Definition: ProteinHit.h:34
double getScore() const
returns the score of the protein hit
double getCoverage() const
returns the coverage (in percent) of the protein hit based upon matched peptides
void setTargetDecoyType(TargetDecoyType type)
Sets the target/decoy type for this protein hit.
TargetDecoyType getTargetDecoyType() const
Returns the target/decoy type for this protein hit.
bool operator==(const ProteinHit &rhs) const
Equality operator.
void setSequence(const String &sequence)
sets the protein sequence
bool isDecoy() const
returns true if this is a decoy hit (false for TARGET and UNKNOWN)
String sequence_
the amino acid sequence of the protein hit
Definition: ProteinHit.h:208
UInt rank_
the position(rank) where the hit appeared in the hit list
Definition: ProteinHit.h:206
void setModifications(std::set< std::pair< Size, ResidueModification > > &mods)
sets the set of modified protein positions
void setSequence(String &&sequence)
ProteinHit()
Default constructor.
void setScore(const double score)
sets the score of the protein hit
bool operator!=(const ProteinHit &rhs) const
Inequality operator.
const std::set< std::pair< Size, ResidueModification > > & getModifications() const
returns the set of modified protein positions
std::set< std::pair< Size, ResidueModification > > modifications_
modified positions in a protein
Definition: ProteinHit.h:210
void setRank(UInt newrank)
sets the rank
const String & getSequence() const
returns the protein sequence
UInt getRank() const
returns the rank of the protein hit
const String & getAccession() const
returns the accession of the protein
ProteinHit(double score, UInt rank, String accession, String sequence)
Values constructor.
String accession_
the protein identifier
Definition: ProteinHit.h:207
void setDescription(const String &description)
sets the description of the protein
void setAccession(const String &accession)
sets the accession of the protein
double coverage_
coverage of the protein based upon the matched peptide sequences
Definition: ProteinHit.h:209
ProteinHit & operator=(const MetaInfoInterface &source)
Assignment for MetaInfo.
ProteinHit & operator=(const ProteinHit &)=default
Assignment operator.
TargetDecoyType
Enum for target/decoy annotation.
Definition: ProteinHit.h:38
String getDescription() const
returns the description of the protein
double score_
the score of the protein hit
Definition: ProteinHit.h:205
ProteinHit & operator=(ProteinHit &&)=default
Move assignment operator.
void setCoverage(const double coverage)
sets the coverage (in percent) of the protein hit based upon matched peptides
static const double COVERAGE_UNKNOWN
Definition: ProteinHit.h:44
ProteinHit(ProteinHit &&)=default
Move constructor.
ProteinHit(const ProteinHit &)=default
Copy constructor.
A more convenient string class.
Definition: String.h:34
unsigned int UInt
Unsigned integer type.
Definition: Types.h:64
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
std::ostream & operator<<(std::ostream &os, const AccurateMassSearchResult &amsr)