OpenMS
Precursor.h
Go to the documentation of this file.
1 // Copyright (c) 2002-2023, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Mathias Walzer $
6 // $Authors: Marc Sturm, Mathias Walzer $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
11 #include <OpenMS/KERNEL/Peak1D.h>
15 
16 #include <set>
17 
18 namespace OpenMS
19 {
32  class OPENMS_DLLAPI Precursor :
33  public CVTermList,
34  public Peak1D
35  {
36 
37 public:
39  Precursor() = default;
41  Precursor(const Precursor&) = default;
42 
43  // note: we implement the move constructor ourselves due to a bug in MSVS
44  // 2015/2017 which cannot produce a default move constructor for classes
45  // that contain STL containers (other than vector).
46 
48  Precursor(Precursor&&) noexcept;
50  ~Precursor() override = default;
51 
53  Precursor& operator=(const Precursor&) = default;
55  Precursor& operator=(Precursor&&) & = default;
56 
59  {
60  CID,
61  PSD,
62  PD,
63  SID,
64  BIRD,
65  ECD,
66  IMD,
67  SORI,
68  HCID,
69  LCID,
70  PHD,
71  ETD,
72  PQD,
73  TRAP,
74  HCD,
76  LIFT,
77  SIZE_OF_ACTIVATIONMETHOD
78  };
80  static const std::string NamesOfActivationMethod[SIZE_OF_ACTIVATIONMETHOD];
81  static const std::string NamesOfActivationMethodShort[SIZE_OF_ACTIVATIONMETHOD];
82 
84  bool operator==(const Precursor & rhs) const;
86  bool operator!=(const Precursor & rhs) const;
87 
89  const std::set<ActivationMethod>& getActivationMethods() const;
91  std::set<ActivationMethod>& getActivationMethods();
95  void setActivationMethods(const std::set<ActivationMethod> & activation_methods);
96 
98  double getActivationEnergy() const;
100  void setActivationEnergy(double activation_energy);
101 
114  void setIsolationWindowLowerOffset(double bound);
115 
128  void setIsolationWindowUpperOffset(double bound);
129 
137  double getDriftTime() const;
139  void setDriftTime(double drift_time);
140 
145 
150 
151 
164  void setDriftTimeWindowLowerOffset(double drift_time);
165 
178  void setDriftTimeWindowUpperOffset(double drift_time);
179 
181  Int getCharge() const;
183  void setCharge(Int charge);
184 
186  std::vector<Int>& getPossibleChargeStates();
188  const std::vector<Int>& getPossibleChargeStates() const;
190  void setPossibleChargeStates(const std::vector<Int> & possible_charge_states);
191 
193  inline double getUnchargedMass() const
194  {
195  int c = charge_;
196  (c == 0) ? c = 2 : c = charge_;
197  return getMZ() * c - c * Constants::PROTON_MASS_U;
198  }
199 
200 protected:
201 
202  std::set<ActivationMethod> activation_methods_;
203  double activation_energy_{};
204  double window_low_{};
205  double window_up_{};
206  double drift_time_{-1};
207  double drift_window_low_{};
208  double drift_window_up_{};
210  Int charge_{};
211  std::vector<Int> possible_charge_states_;
212  };
213 } // namespace OpenMS
214 
Representation of controlled vocabulary term list.
Definition: CVTermList.h:28
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:28
Precursor meta information.
Definition: Precursor.h:35
void setActivationEnergy(double activation_energy)
sets the activation energy (in electronvolt)
Precursor(const Precursor &)=default
Copy constructor.
double getIsolationWindowLowerOffset() const
Returns the lower offset from the target m/z.
StringList getActivationMethodsAsString() const
convenience function, returning string representation of getActivationMethods()
double getDriftTimeWindowUpperOffset() const
Returns the upper offset from the target ion mobility in milliseconds.
std::vector< Int > & getPossibleChargeStates()
Mutable access to possible charge states.
const std::set< ActivationMethod > & getActivationMethods() const
returns a const reference to the activation methods
void setActivationMethods(const std::set< ActivationMethod > &activation_methods)
sets the activation methods
void setIsolationWindowUpperOffset(double bound)
sets the upper offset from the target m/z
bool operator==(const Precursor &rhs) const
Equality operator.
Precursor()=default
Constructor.
Precursor(Precursor &&) noexcept
Move constructor.
std::vector< Int > possible_charge_states_
Definition: Precursor.h:211
void setDriftTime(double drift_time)
sets the ion mobility drift time in milliseconds
void setDriftTimeUnit(DriftTimeUnit dt)
Sets the ion mobility drift time unit.
Int getCharge() const
Non-mutable access to the charge.
void setDriftTimeWindowUpperOffset(double drift_time)
sets the upper offset from the target ion mobility
bool operator!=(const Precursor &rhs) const
Equality operator.
double getIsolationWindowUpperOffset() const
Returns the upper offset from the target m/z.
DriftTimeUnit getDriftTimeUnit() const
Returns the ion mobility drift time unit.
double getDriftTimeWindowLowerOffset() const
Returns the lower offset from the target ion mobility in milliseconds.
void setDriftTimeWindowLowerOffset(double drift_time)
sets the lower offset from the target ion mobility
std::set< ActivationMethod > activation_methods_
Definition: Precursor.h:202
double getUnchargedMass() const
Returns the uncharged mass of the precursor, if charge is unknown, i.e. 0, our best guess is doubly c...
Definition: Precursor.h:193
std::set< ActivationMethod > & getActivationMethods()
returns a mutable reference to the activation methods
void setIsolationWindowLowerOffset(double bound)
sets the lower offset from the target m/z
double getActivationEnergy() const
returns the activation energy (in electronvolt)
void setCharge(Int charge)
Mutable access to the charge.
ActivationMethod
Method of activation.
Definition: Precursor.h:59
@ LIFT
Bruker proprietary method (MS:1002000)
Definition: Precursor.h:76
@ SORI
Sustained off-resonance irradiation.
Definition: Precursor.h:67
@ HCID
High-energy collision-induced dissociation.
Definition: Precursor.h:68
@ PQD
Pulsed q dissociation.
Definition: Precursor.h:72
@ ECD
Electron capture dissociation.
Definition: Precursor.h:65
@ BIRD
Blackbody infrared radiative dissociation.
Definition: Precursor.h:64
@ PHD
Photodissociation.
Definition: Precursor.h:70
@ LCID
Low-energy collision-induced dissociation.
Definition: Precursor.h:69
@ ETD
Electron transfer dissociation.
Definition: Precursor.h:71
@ HCD
beam-type collision-induced dissociation (MS:1000422) "HCD"
Definition: Precursor.h:74
@ PSD
Post-source decay.
Definition: Precursor.h:61
@ IMD
Infrared multiphoton dissociation.
Definition: Precursor.h:66
@ CID
Collision-induced dissociation.
Definition: Precursor.h:60
@ SID
Surface-induced dissociation.
Definition: Precursor.h:63
@ TRAP
trap-type collision-induced dissociation (MS:1002472)
Definition: Precursor.h:73
@ INSOURCE
in-source collision-induced dissociation (MS:1001880)
Definition: Precursor.h:75
@ PD
Plasma desorption.
Definition: Precursor.h:62
double getDriftTime() const
Returns the ion mobility drift time in milliseconds (-1 means it is not set)
const std::vector< Int > & getPossibleChargeStates() const
Non-mutable access to possible charge states.
void setPossibleChargeStates(const std::vector< Int > &possible_charge_states)
Sets the possible charge states.
int Int
Signed integer type.
Definition: Types.h:76
std::vector< String > StringList
Vector of String.
Definition: ListUtils.h:44
const double PROTON_MASS_U
Definition: Constants.h:90
const double c
Definition: Constants.h:188
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
DriftTimeUnit
Drift time unit for ion mobility.
Definition: IMTypes.h:23