libpappsomspp
Library for mass spectrometry
pappso::PrecisionFactory Class Reference

#include <precision.h>

Static Public Member Functions

static PrecisionPtr fromString (const QString &str)
 
static PrecisionPtr getDaltonInstance (pappso_double value)
 
static PrecisionPtr getPpmInstance (pappso_double value)
 
static PrecisionPtr getResInstance (pappso_double value)
 
static PrecisionPtr fromString (const QString &str)
 
static PrecisionPtr getDaltonInstance (pappso_double value)
 
static PrecisionPtr getPpmInstance (pappso_double value)
 
static PrecisionPtr getResInstance (pappso_double value)
 
static PrecisionPtr getMzInstance (pappso_double value, int charge)
 

Private Types

using MapDaltonPrecision = std::map< pappso_double, DaltonPrecision * >
 
using MapPpmPrecision = std::map< pappso_double, PpmPrecision * >
 
using MapResPrecision = std::map< pappso_double, ResPrecision * >
 
using MapDaltonPrecision = std::map< pappso_double, DaltonPrecision * >
 
using MapPpmPrecision = std::map< pappso_double, PpmPrecision * >
 
using MapResPrecision = std::map< pappso_double, ResPrecision * >
 
using MapMzPrecision = std::map< pappso_double, MzPrecision * >
 

Static Private Attributes

static MapDaltonPrecision m_mapDalton
 
static MapPpmPrecision m_mapPpm
 
static MapResPrecision m_mapRes
 
static MapMzPrecision m_mapMz
 

Detailed Description

Definition at line 126 of file precision.h.

Member Typedef Documentation

◆ MapDaltonPrecision [1/2]

Definition at line 128 of file precision.h.

◆ MapDaltonPrecision [2/2]

◆ MapMzPrecision

◆ MapPpmPrecision [1/2]

Definition at line 129 of file precision.h.

◆ MapPpmPrecision [2/2]

◆ MapResPrecision [1/2]

Definition at line 130 of file precision.h.

◆ MapResPrecision [2/2]

Member Function Documentation

◆ fromString() [1/2]

PrecisionPtr pappso::PrecisionFactory::fromString ( const QString &  str)
static

Definition at line 71 of file precision.cpp.

72 {
73 
74  // The format of the string is <number><space *><string> with string either
75  // "ppm" or "dalton" or "res".
76  //
77  // If there only once component, that is, <string> is omitted and charge is
78  // not provided, then "dalton" is considered.
79 
80  QStringList list = str.split(QRegExp("\\s+"), QString::SkipEmptyParts);
81 
82  if(list.size() > 0)
83  {
84  bool ok;
85  pappso_double value = list[0].toDouble(&ok);
86  if(!ok)
87  {
88  throw ExceptionNotPossible(
89  QObject::tr("ERROR getting precision from string :\nunable to "
90  "convert %1 to number in %2")
91  .arg(value)
92  .arg(str));
93  }
94  if(list.size() == 1)
95  {
97  }
98  else if(list.size() == 2)
99  {
100  if(list[1].toLower() == "dalton")
101  {
103  }
104 
105  if(list[1].toLower() == "ppm")
106  {
107  return PrecisionFactory::getPpmInstance(value);
108  }
109 
110  if(list[1].toLower() == "res")
111  {
112  return PrecisionFactory::getResInstance(value);
113  }
114 
115  throw ExceptionNotPossible(
116  QObject::tr("ERROR getting precision from string :\nprecision "
117  "unit %1 to not known in %2")
118  .arg(list[1])
119  .arg(str));
120  }
121  }
122 
123  throw ExceptionNotPossible(QObject::tr("ERROR getting precision from string "
124  ":\nunable to convert %1 to precision")
125  .arg(str));
126 }

References getDaltonInstance(), getPpmInstance(), and getResInstance().

◆ fromString() [2/2]

static PrecisionPtr pappso::PrecisionFactory::fromString ( const QString &  str)
static

◆ getDaltonInstance() [1/2]

PrecisionPtr pappso::PrecisionFactory::getDaltonInstance ( pappso_double  value)
static

Definition at line 129 of file precision.cpp.

130 {
131  MapDaltonPrecision::iterator it = m_mapDalton.find(value);
132  if(it == m_mapDalton.end())
133  {
134  // not found
135  std::pair<MapDaltonPrecision::iterator, bool> insert_res =
136  m_mapDalton.insert(std::pair<pappso_double, DaltonPrecision *>(
137  value, new DaltonPrecision(value)));
138  it = insert_res.first;
139  }
140  else
141  {
142  // found
143  }
144  return it->second;
145 }

References m_mapDalton.

Referenced by pappso::PrecisionWidget::PrecisionWidget(), pappso::TandemWrapperRun::convertOrginalMsData2mzXmlData(), fromString(), pappso::AaModification::getInstanceXtandemMod(), pappso::XtandemSpectrumProcess::process(), and pappso::PrecisionWidget::setDaltonValueChanged().

◆ getDaltonInstance() [2/2]

static PrecisionPtr pappso::PrecisionFactory::getDaltonInstance ( pappso_double  value)
static

◆ getMzInstance()

PrecisionPtr pappso::PrecisionFactory::getMzInstance ( pappso_double  value,
int  charge 
)
static

Definition at line 239 of file massspectrumcombinerfactory.cpp.

240 {
241  // Special find_if search because we need to confirm the presence of the
242  // value, charge pair, not only the value.
243 
244  MapMzPrecision::iterator it = std::find_if(
245  std::begin(m_mapMz),
246  std::end(m_mapMz),
247  [value, charge](const std::pair<pappso_double, MzPrecision *> &pair) {
248  return ((pair.first == value) && (pair.second->charge() == charge));
249  });
250 
251  if(it == m_mapMz.end())
252  {
253  // Not found.
254  std::pair<MapMzPrecision::iterator, bool> insert_res =
255  m_mapMz.insert(std::pair<pappso_double, MzPrecision *>(
256  value, new MzPrecision(value, charge)));
257 
258  it = insert_res.first;
259  }
260  else
261  {
262  // Found.
263  }
264 
265  return it->second;
266 }

References m_mapMz.

◆ getPpmInstance() [1/2]

PrecisionPtr pappso::PrecisionFactory::getPpmInstance ( pappso_double  value)
static

Definition at line 149 of file precision.cpp.

150 {
151  if(!value)
152  throw ExceptionNotPossible(
153  QObject::tr("Fatal error at precision.cpp "
154  "-- ERROR trying to set a Resolution precision value of 0. "
155  "Program aborted."));
156 
157  MapPpmPrecision::iterator it = m_mapPpm.find(value);
158 
159  if(it == m_mapPpm.end())
160  {
161  // Not found.
162  std::pair<MapPpmPrecision::iterator, bool> insert_res =
163  m_mapPpm.insert(std::pair<pappso_double, PpmPrecision *>(
164  value, new PpmPrecision(value)));
165  it = insert_res.first;
166  }
167  else
168  {
169  // found
170  }
171  return it->second;
172 }

References m_mapPpm.

Referenced by pappso::PrecisionWidget::PrecisionWidget(), pappso::MassSpectrum::equals(), fromString(), and pappso::PrecisionWidget::setPpmValueChanged().

◆ getPpmInstance() [2/2]

static PrecisionPtr pappso::PrecisionFactory::getPpmInstance ( pappso_double  value)
static

◆ getResInstance() [1/2]

PrecisionPtr pappso::PrecisionFactory::getResInstance ( pappso_double  value)
static

Definition at line 176 of file precision.cpp.

177 {
178  if(!value)
179  throw ExceptionNotPossible(
180  QObject::tr("Fatal error at precision.cpp "
181  "-- ERROR trying to set a Resolution precision value of 0. "
182  "Program aborted."));
183 
184  MapResPrecision::iterator it = m_mapRes.find(value);
185 
186  if(it == m_mapRes.end())
187  {
188  // not found
189  std::pair<MapResPrecision::iterator, bool> insert_res =
190  m_mapRes.insert(std::pair<pappso_double, ResPrecision *>(
191  value, new ResPrecision(value)));
192  it = insert_res.first;
193  }
194  else
195  {
196  // found
197  }
198  return it->second;
199 }

References m_mapRes.

Referenced by pappso::PrecisionWidget::PrecisionWidget(), fromString(), and pappso::PrecisionWidget::setResValueChanged().

◆ getResInstance() [2/2]

static PrecisionPtr pappso::PrecisionFactory::getResInstance ( pappso_double  value)
static

Member Data Documentation

◆ m_mapDalton

static MapDaltonPrecision pappso::PrecisionFactory::m_mapDalton
staticprivate
Initial value:
= [] {
return ret;
}()

Definition at line 133 of file precision.h.

Referenced by getDaltonInstance().

◆ m_mapMz

PrecisionFactory::MapMzPrecision pappso::PrecisionFactory::m_mapMz
staticprivate
Initial value:
= [] {
return ret;
}()

Definition at line 157 of file massspectrumcombinerfactory.h.

Referenced by getMzInstance().

◆ m_mapPpm

static MapPpmPrecision pappso::PrecisionFactory::m_mapPpm
staticprivate
Initial value:
= [] {
return ret;
}()

Definition at line 134 of file precision.h.

Referenced by getPpmInstance().

◆ m_mapRes

static MapResPrecision pappso::PrecisionFactory::m_mapRes
staticprivate
Initial value:
= [] {
return ret;
}()

Definition at line 135 of file precision.h.

Referenced by getResInstance().


The documentation for this class was generated from the following files:
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:48
pappso::PrecisionFactory::m_mapRes
static MapResPrecision m_mapRes
Definition: precision.h:135
pappso::PrecisionFactory::getPpmInstance
static PrecisionPtr getPpmInstance(pappso_double value)
Definition: precision.cpp:149
pappso::PrecisionFactory::MapDaltonPrecision
std::map< pappso_double, DaltonPrecision * > MapDaltonPrecision
Definition: precision.h:128
pappso::PrecisionFactory::MapMzPrecision
std::map< pappso_double, MzPrecision * > MapMzPrecision
Definition: massspectrumcombinerfactory.h:151
pappso::PrecisionFactory::MapPpmPrecision
std::map< pappso_double, PpmPrecision * > MapPpmPrecision
Definition: precision.h:129
pappso::PrecisionFactory::getDaltonInstance
static PrecisionPtr getDaltonInstance(pappso_double value)
Definition: precision.cpp:129
pappso::PrecisionFactory::m_mapMz
static MapMzPrecision m_mapMz
Definition: massspectrumcombinerfactory.h:157
pappso::PrecisionFactory::m_mapDalton
static MapDaltonPrecision m_mapDalton
Definition: precision.h:133
pappso::PrecisionFactory::MapResPrecision
std::map< pappso_double, ResPrecision * > MapResPrecision
Definition: precision.h:130
pappso::PrecisionFactory::m_mapPpm
static MapPpmPrecision m_mapPpm
Definition: precision.h:134
pappso::PrecisionFactory::getResInstance
static PrecisionPtr getResInstance(pappso_double value)
Definition: precision.cpp:176