OpenMS
Loading...
Searching...
No Matches
ModificationDefinition.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
10#pragma once
11
16
17#include <cstdint>
18#include <functional>
19
20namespace OpenMS
21{
30 class OPENMS_DLLAPI ModificationDefinition
31 {
32public:
33
39
42
44 explicit ModificationDefinition(const String& mod, bool fixed = true, UInt max_occur = 0);
45
47 explicit ModificationDefinition(const ResidueModification& mod, bool fixed = true, UInt max_occur = 0);
48
52
57 void setFixedModification(bool fixed);
58
60 bool isFixedModification() const;
61
64
67
70
72 void setModification(const String& modification);
73
81
88
93 bool operator==(const ModificationDefinition& rhs) const;
94
96 bool operator!=(const ModificationDefinition& rhs) const;
97
101
102protected:
103
106
109
112 };
113
114} // namespace OpenMS
115
116namespace std
117{
130 template<>
131 struct hash<OpenMS::ModificationDefinition>
132 {
133 std::size_t operator()(const OpenMS::ModificationDefinition& md) const noexcept
134 {
135 // Hash the modification pointer as uintptr_t (matches pointer comparison in operator==)
136 std::size_t seed = OpenMS::hash_int(reinterpret_cast<std::uintptr_t>(&md.getModification()));
137 // Hash fixed_modification_ flag
138 OpenMS::hash_combine(seed, OpenMS::hash_int(static_cast<int>(md.isFixedModification())));
139 // Hash max_occurrences_
140 OpenMS::hash_combine(seed, OpenMS::hash_int(md.getMaxOccurrences()));
141 return seed;
142 }
143 };
144} // namespace std
145
Definition ModificationDefinition.h:31
void setFixedModification(bool fixed)
sets whether this modification definition is fixed or variable (modification must occur vs....
const ResidueModification & getModification() const
Returns the modification.
UInt max_occurrences_
maximal number of occurrences per peptide
Definition ModificationDefinition.h:111
ModificationDefinition(const String &mod, bool fixed=true, UInt max_occur=0)
detailed constructor specifying the modification by name
UInt getMaxOccurrences() const
returns the maximal number of occurrences per peptide
bool operator!=(const ModificationDefinition &rhs) const
inequality operator
ModificationDefinition()
default constructor
bool operator<(const OpenMS::ModificationDefinition &) const
less than operator for e.g. usage in maps; only mod FullIds are compared!
bool isFixedModification() const
returns if the modification if fixed true, else false
void setMaxOccurrences(UInt num)
set the maximal number of occurrences per peptide (unbounded if 0)
ModificationDefinition & operator=(const ModificationDefinition &element)
assignment operator
String getModificationName() const
returns the name of the modification
bool operator==(const ModificationDefinition &rhs) const
equality operator
virtual ~ModificationDefinition()
destructor
bool fixed_modification_
fixed (true) or variable (false)
Definition ModificationDefinition.h:108
ModificationDefinition(const ModificationDefinition &rhs)
copy constructor
ModificationDefinition(const ResidueModification &mod, bool fixed=true, UInt max_occur=0)
direct constructor from a residue modification
void setModification(const String &modification)
sets the modification, allowed are unique names provided by ModificationsDB
const ResidueModification * mod_
the modification
Definition ModificationDefinition.h:105
Representation of a modification on an amino acid residue.
Definition ResidueModification.h:55
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::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
STL namespace.
std::size_t operator()(const OpenMS::ModificationDefinition &md) const noexcept
Definition ModificationDefinition.h:133