libpappsomspp
Library for mass spectrometry
massspectrumcombinerfactory.h
Go to the documentation of this file.
1 // Filippo Rusconi 2019
2 
3 #pragma once
4 
5 #include <map>
6 
7 #include "types.h"
8 
9 namespace pappso
10 {
11 
12 
14 {
15 
16  using MapDaltonPrecision = std::map<pappso_double, DaltonPrecision *>;
17  using MapPpmPrecision = std::map<pappso_double, PpmPrecision *>;
18  using MapResPrecision = std::map<pappso_double, ResPrecision *>;
19  using MapMzPrecision = std::map<pappso_double, MzPrecision *>;
20 
21  private:
26 
27  public:
28  MassDataCombiner getPlusCombiner(MzIntegrationParams &integration_params);
29  getPlusCombiner(MzIntegrationParams &integration_params);
30 
31  static PrecisionPtr fromString(const QString &str);
35  static PrecisionPtr getMzInstance(pappso_double value, int charge);
36 };
37 
38 
39 class PrecisionBase
40 {
41  protected:
43 
45  {
46  }
47 
48  public:
49  virtual PrecisionUnit unit() const = 0;
50  virtual pappso_double getNominal() const final;
51  virtual pappso_double delta(pappso_double value) const = 0;
52  virtual QString toString() const = 0;
53 };
54 
55 
56 /** \def specific type for a dalton precision
57  *
58  */
59 class DaltonPrecision : public PrecisionBase
60 {
61  friend class PrecisionFactory;
62 
63  protected:
65 
66  public:
67  virtual ~DaltonPrecision();
68 
69  virtual PrecisionUnit unit() const override;
70 
71  virtual pappso_double delta(pappso_double value) const override;
72 
73  virtual QString toString() const override;
74 };
75 
76 /** \def specific type for a ppm precision
77  *
78  */
79 class PpmPrecision : public PrecisionBase
80 {
81  friend class PrecisionFactory;
82 
83  protected:
85 
86  public:
87  virtual ~PpmPrecision();
88 
89  virtual PrecisionUnit unit() const override;
90 
91  virtual pappso_double delta(pappso_double value) const override;
92 
93  virtual QString toString() const override;
94 };
95 
96 
97 /** \def specific type for a res precision
98  *
99  */
100 class ResPrecision : public PrecisionBase
101 {
102  friend class PrecisionFactory;
103 
104  protected:
106 
107  public:
108  virtual ~ResPrecision();
109 
110  virtual PrecisionUnit unit() const override;
111 
112  virtual pappso_double delta(pappso_double value) const override;
113 
114  virtual QString toString() const override;
115 };
116 
117 
118 /** \def specific type for a m/z precision
119  *
120  */
122 {
123  friend class PrecisionFactory;
124 
125  protected:
126  const int m_charge = 1;
127  MzPrecision(pappso_double value, int charge);
128 
129  public:
130  virtual ~MzPrecision();
131 
132  virtual PrecisionUnit unit() const override;
133 
134  virtual pappso_double delta(pappso_double value) const override;
135 
136  int charge() const;
137 
138  virtual QString toString() const override;
139 };
140 
141 
142 typedef const PrecisionBase *PrecisionPtr;
143 
144 
145 // was class Precision
146 class PrecisionFactory
147 {
148  using MapDaltonPrecision = std::map<pappso_double, DaltonPrecision *>;
149  using MapPpmPrecision = std::map<pappso_double, PpmPrecision *>;
150  using MapResPrecision = std::map<pappso_double, ResPrecision *>;
151  using MapMzPrecision = std::map<pappso_double, MzPrecision *>;
152 
153  private:
154  static MapDaltonPrecision m_mapDalton;
155  static MapPpmPrecision m_mapPpm;
156  static MapResPrecision m_mapRes;
158 
159  public:
160  static PrecisionPtr fromString(const QString &str);
164  static PrecisionPtr getMzInstance(pappso_double value, int charge);
165 };
166 
167 } // namespace pappso
pappso::MassSpectrumCombinerFactory
Definition: massspectrumcombinerfactory.h:14
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:69
pappso::ResPrecision::ResPrecision
ResPrecision(pappso_double x)
pappso::ResPrecision::unit
virtual PrecisionUnit unit() const override
pappso::PrecisionFactory::fromString
static PrecisionPtr fromString(const QString &str)
pappso::PrecisionFactory
Definition: precision.h:148
pappso::MassSpectrumCombinerFactory::m_mapRes
static MapResPrecision m_mapRes
Definition: massspectrumcombinerfactory.h:24
pappso::MassSpectrumCombinerFactory::getPlusCombiner
getPlusCombiner(MzIntegrationParams &integration_params)
pappso::MzPrecision
Definition: massspectrumcombinerfactory.h:122
pappso::MassSpectrumCombinerFactory::m_mapMz
static MapMzPrecision m_mapMz
Definition: massspectrumcombinerfactory.h:25
types.h
This header contains all the type re-definitions and all the global variables definitions used in the...
pappso::MassSpectrumCombinerFactory::getMzInstance
static PrecisionPtr getMzInstance(pappso_double value, int charge)
pappso::PrecisionFactory::MapDaltonPrecision
std::map< pappso_double, DaltonPrecision * > MapDaltonPrecision
Definition: precision.h:149
pappso::MassSpectrumCombinerFactory::m_mapDalton
static MapDaltonPrecision m_mapDalton
Definition: massspectrumcombinerfactory.h:22
pappso::PrecisionFactory::MapMzPrecision
std::map< pappso_double, MzPrecision * > MapMzPrecision
Definition: massspectrumcombinerfactory.h:151
pappso::MassSpectrumCombinerFactory::getPpmInstance
static PrecisionPtr getPpmInstance(pappso_double value)
pappso::DaltonPrecision::~DaltonPrecision
virtual ~DaltonPrecision()
pappso::ResPrecision::toString
virtual QString toString() const override
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks
Definition: aa.cpp:39
pappso::PrecisionFactory::getResInstance
static PrecisionPtr getResInstance(pappso_double value)
pappso::MassSpectrumCombinerFactory::MapDaltonPrecision
std::map< pappso_double, DaltonPrecision * > MapDaltonPrecision
Definition: massspectrumcombinerfactory.h:16
pappso::MassSpectrumCombinerFactory::fromString
static PrecisionPtr fromString(const QString &str)
pappso::DaltonPrecision::delta
virtual pappso_double delta(pappso_double value) const override
pappso::MassSpectrumCombinerFactory::getDaltonInstance
static PrecisionPtr getDaltonInstance(pappso_double value)
pappso::PrecisionFactory::MapPpmPrecision
std::map< pappso_double, PpmPrecision * > MapPpmPrecision
Definition: precision.h:150
pappso::PpmPrecision::~PpmPrecision
virtual ~PpmPrecision()
pappso::PrecisionFactory::getDaltonInstance
static PrecisionPtr getDaltonInstance(pappso_double value)
pappso::ResPrecision::delta
virtual pappso_double delta(pappso_double value) const override
pappso::MassSpectrumCombinerFactory::getResInstance
static PrecisionPtr getResInstance(pappso_double value)
pappso::PrecisionFactory::m_mapMz
static MapMzPrecision m_mapMz
Definition: massspectrumcombinerfactory.h:157
pappso::PpmPrecision::unit
virtual PrecisionUnit unit() const override
pappso::ResPrecision
Definition: precision.h:126
pappso::PpmPrecision::toString
virtual QString toString() const override
pappso::PrecisionPtr
const PrecisionBase * PrecisionPtr
Definition: precision.h:143
pappso::MassSpectrumCombinerFactory::getPlusCombiner
MassDataCombiner getPlusCombiner(MzIntegrationParams &integration_params)
pappso::DaltonPrecision::DaltonPrecision
DaltonPrecision(pappso_double x)
pappso::PrecisionBase::delta
virtual pappso_double delta(pappso_double value) const =0
pappso::MassSpectrumCombinerFactory::MapResPrecision
std::map< pappso_double, ResPrecision * > MapResPrecision
Definition: massspectrumcombinerfactory.h:18
pappso::MassSpectrumCombinerFactory::m_mapPpm
static MapPpmPrecision m_mapPpm
Definition: massspectrumcombinerfactory.h:23
pappso::ResPrecision::~ResPrecision
virtual ~ResPrecision()
pappso::PrecisionUnit
PrecisionUnit
Definition: types.h:84
pappso::PrecisionBase
Definition: precision.h:65
pappso::PrecisionFactory::MapResPrecision
std::map< pappso_double, ResPrecision * > MapResPrecision
Definition: precision.h:151
pappso::DaltonPrecision::unit
virtual PrecisionUnit unit() const override
pappso::MassSpectrumCombinerFactory::MapMzPrecision
std::map< pappso_double, MzPrecision * > MapMzPrecision
Definition: massspectrumcombinerfactory.h:19
pappso::PrecisionFactory::getPpmInstance
static PrecisionPtr getPpmInstance(pappso_double value)
pappso::PrecisionBase::PrecisionBase
PrecisionBase(pappso_double nominal)
Definition: massspectrumcombinerfactory.h:44
pappso::DaltonPrecision::toString
virtual QString toString() const override
pappso::PrecisionBase::m_nominal
const pappso_double m_nominal
Definition: precision.h:88
pappso::PpmPrecision
Definition: precision.h:105
pappso::PrecisionBase::toString
virtual QString toString() const =0
pappso::DaltonPrecision
Definition: precision.h:85
pappso::PrecisionBase::unit
virtual PrecisionUnit unit() const =0
pappso::MassSpectrumCombinerFactory::MapPpmPrecision
std::map< pappso_double, PpmPrecision * > MapPpmPrecision
Definition: massspectrumcombinerfactory.h:17
pappso::PpmPrecision::delta
virtual pappso_double delta(pappso_double value) const override
pappso::PrecisionBase::getNominal
virtual pappso_double getNominal() const final
pappso::PpmPrecision::PpmPrecision
PpmPrecision(pappso_double x)