OpenMS
FragmentMassError.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: Chris Bielow$
6 // $Authors: Patricia Scheil, Swenja Wagner$
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
12 #include <OpenMS/QC/QCBase.h>
13 #include <vector>
14 
15 namespace OpenMS
16 {
17  class FeatureMap;
18  class MSExperiment;
19  class PeptideIdentification;
20  class WindowMower;
21 
22  class OPENMS_DLLAPI FragmentMassError : public QCBase
23  {
24  public:
26  FragmentMassError() = default;
27 
29  virtual ~FragmentMassError() = default;
30 
34  struct Statistics {
35  double average_ppm = 0;
36  double variance_ppm = 0;
37  };
38 
61  void compute(FeatureMap& fmap, const MSExperiment& exp, const QCBase::SpectraMap& map_to_spectrum, ToleranceUnit tolerance_unit = ToleranceUnit::AUTO, double tolerance = 20);
62 
86  void compute(std::vector<PeptideIdentification>& pep_ids, const ProteinIdentification::SearchParameters& search_params, const MSExperiment& exp, const QCBase::SpectraMap& map_to_spectrum,
87  ToleranceUnit tolerance_unit = ToleranceUnit::AUTO, double tolerance = 20);
88 
90  const String& getName() const override;
91 
93  const std::vector<Statistics>& getResults() const;
94 
95 
100  QCBase::Status requirements() const override;
101 
102  private:
104  std::vector<Statistics> results_;
105 
106  static void calculateFME_(PeptideIdentification& pep_id, const MSExperiment& exp, const QCBase::SpectraMap& map_to_spectrum, bool& print_warning, double tolerance,
107  FragmentMassError::ToleranceUnit tolerance_unit, double& accumulator_ppm, UInt32& counter_ppm, WindowMower& window_mower_filter);
108 
109  static void calculateVariance_(FragmentMassError::Statistics& result, const PeptideIdentification& pep_id, const UInt num_ppm);
110  };
111 
112 } // namespace OpenMS
A container for features.
Definition: FeatureMap.h:80
Stores and handles combinations of enum values, e.g. a set of flags as bits flipped in an UInt64.
Definition: FlagSet.h:28
Definition: FragmentMassError.h:23
void compute(std::vector< PeptideIdentification > &pep_ids, const ProteinIdentification::SearchParameters &search_params, const MSExperiment &exp, const QCBase::SpectraMap &map_to_spectrum, ToleranceUnit tolerance_unit=ToleranceUnit::AUTO, double tolerance=20)
computes FragmentMassError (FME) in ppm and Dalton (only of the first PeptideHit of each PepID)
void compute(FeatureMap &fmap, const MSExperiment &exp, const QCBase::SpectraMap &map_to_spectrum, ToleranceUnit tolerance_unit=ToleranceUnit::AUTO, double tolerance=20)
computes FragmentMassError (FME) in ppm and Dalton (only of the first PeptideHit of each PepID)
const String & getName() const override
returns the name of the metric
static void calculateVariance_(FragmentMassError::Statistics &result, const PeptideIdentification &pep_id, const UInt num_ppm)
static void calculateFME_(PeptideIdentification &pep_id, const MSExperiment &exp, const QCBase::SpectraMap &map_to_spectrum, bool &print_warning, double tolerance, FragmentMassError::ToleranceUnit tolerance_unit, double &accumulator_ppm, UInt32 &counter_ppm, WindowMower &window_mower_filter)
QCBase::Status requirements() const override
Returns the input data requirements of the compute(...) function.
const std::vector< Statistics > & getResults() const
returns results
std::vector< Statistics > results_
container that stores results
Definition: FragmentMassError.h:104
FragmentMassError()=default
Default constructor.
virtual ~FragmentMassError()=default
Destructor.
Structure for storing results: average and variance of all FragmentMassErrors in ppm.
Definition: FragmentMassError.h:34
In-Memory representation of a mass spectrometry run.
Definition: MSExperiment.h:46
Represents the peptide hits for a spectrum.
Definition: PeptideIdentification.h:39
Map to find a spectrum via its NativeID.
Definition: QCBase.h:63
This class serves as an abstract base class for all QC classes.
Definition: QCBase.h:29
ToleranceUnit
Definition: QCBase.h:49
A more convenient string class.
Definition: String.h:34
WindowMower augments the highest peaks in a sliding or jumping window.
Definition: WindowMower.h:30
OPENMS_UINT32_TYPE UInt32
Unsigned integer type (32bit)
Definition: Types.h:37
unsigned int UInt
Unsigned integer type.
Definition: Types.h:68
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22
Search parameters of the DB search.
Definition: ProteinIdentification.h:247