libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::PrecisionFactory Class Reference

#include <precision.h>

Static Public Member Functions

static PrecisionPtr fromString (const QString &str)
 get a precision pointer from a string
 
static PrecisionPtr getDaltonInstance (pappso_double value)
 get a Dalton precision pointer
 
static PrecisionPtr getPpmInstance (pappso_double value)
 get a ppm precision pointer
 
static PrecisionPtr getResInstance (pappso_double value)
 get a resolution precision pointer
 
static PrecisionPtr getPrecisionPtrFractionInstance (PrecisionPtr origin, double fraction)
 get the fraction of an existing precision pointer
 
static PrecisionPtr getPrecisionPtrInstance (Enums::PrecisionUnit unit, double value)
 get a precision pointer instance
 

Private Types

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

Static Private Attributes

static MapDaltonPrecision m_mapDalton
 
static MapPpmPrecision m_mapPpm
 
static MapResPrecision m_mapRes
 

Detailed Description

Definition at line 126 of file precision.h.

Member Typedef Documentation

◆ MapDaltonPrecision

Definition at line 128 of file precision.h.

◆ MapPpmPrecision

Definition at line 129 of file precision.h.

◆ MapResPrecision

Definition at line 130 of file precision.h.

Member Function Documentation

◆ fromString()

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

get a precision pointer from a string

Parameters
stris of the form : "nominal_value unit", example : "0.02 dalton"

Definition at line 79 of file precision.cpp.

80{
81
82 // The format of the string is <number><space *><string> with string either
83 // "ppm" or "dalton" or "res".
84 //
85 // If there only once component, that is, <string> is omitted and charge is
86 // not provided, then "dalton" is considered.
87
88 QStringList list = str.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts);
89
90 if(list.size() > 0)
91 {
92 bool ok;
93 pappso_double value = list[0].toDouble(&ok);
94 if(!ok)
95 {
96 throw ExceptionNotPossible(QObject::tr("ERROR getting precision from string :\nunable to "
97 "convert %1 to number in %2")
98 .arg(value)
99 .arg(str));
100 }
101 if(list.size() == 1)
102 {
104 }
105 else if(list.size() == 2)
106 {
107 if(list[1].toLower() == "dalton")
108 {
110 }
111
112 if(list[1].toLower() == "ppm")
113 {
115 }
116
117 if(list[1].toLower() == "res")
118 {
120 }
121
122 throw ExceptionNotPossible(QObject::tr("ERROR getting precision from string :\nprecision "
123 "unit %1 to not known in %2")
124 .arg(list[1])
125 .arg(str));
126 }
127 }
128
129 throw ExceptionNotPossible(QObject::tr("ERROR getting precision from string "
130 ":\nunable to convert %1 to precision")
131 .arg(str));
132}
static PrecisionPtr getResInstance(pappso_double value)
get a resolution precision pointer
static PrecisionPtr getPpmInstance(pappso_double value)
get a ppm precision pointer
static PrecisionPtr getDaltonInstance(pappso_double value)
get a Dalton precision pointer
double pappso_double
A type definition for doubles.
Definition types.h:61

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

Referenced by pappso::FilterChargeDeconvolution::buildFilterFromString(), pappso::FilterComplementIonEnhancer::buildFilterFromString(), pappso::FilterMzExclusion::buildFilterFromString(), and pappso::MzIntegrationParams::initialize().

◆ getDaltonInstance()

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

get a Dalton precision pointer

Parameters
valuethe precision value in dalton

Definition at line 135 of file precision.cpp.

136{
137 MapDaltonPrecision::iterator it = m_mapDalton.find(value);
138 if(it == m_mapDalton.end())
139 {
140 // not found
141 std::pair<MapDaltonPrecision::iterator, bool> insert_res = m_mapDalton.insert(
142 std::pair<pappso_double, DaltonPrecision *>(value, new DaltonPrecision(value)));
143 it = insert_res.first;
144 }
145 else
146 {
147 // found
148 }
149 return it->second;
150}
static MapDaltonPrecision m_mapDalton
Definition precision.h:133

References m_mapDalton.

Referenced by pappso::PrecisionWidget::PrecisionWidget(), pappso::cbor::psm::PsmFeatures::PsmFeatures(), pappso::cbor::psm::PsmSpecGlob::PsmSpecGlob(), fromString(), pappso::AaModification::getInstanceXtandemMod(), getPrecisionPtrInstance(), pappso::masschroq::QuantificationMethod::getXicExtractionMeanPrecisionPtr(), pappso::Utils::guessAaModificationPbyMonoisotopicMassDelta(), pappso::XtandemSpectrumProcess::process(), pappso::PrecisionWidget::setDaltonValueChanged(), and pappso::masschroq::QuantificationMethod::setJsonObject().

◆ getPpmInstance()

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

get a ppm precision pointer

Parameters
valuethe precision value in ppm

Definition at line 154 of file precision.cpp.

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

References m_mapPpm.

Referenced by pappso::MzIntegrationParams::MzIntegrationParams(), pappso::PrecisionWidget::PrecisionWidget(), pappso::cbor::psm::PsmSpecGlob::PsmSpecGlob(), pappso::masschroq::QuantificationMethod::QuantificationMethod(), pappso::MassSpectrum::equals(), fromString(), getPrecisionPtrInstance(), pappso::masschroq::QuantificationMethod::getXicExtractionMeanPrecisionPtr(), pappso::masschroq::QuantificationMethod::setJsonObject(), pappso::PrecisionWidget::setPpmValueChanged(), and pappso::masschroq::PrecursorParser::setQualifiedMassSpectrum().

◆ getPrecisionPtrFractionInstance()

PrecisionPtr pappso::PrecisionFactory::getPrecisionPtrFractionInstance ( PrecisionPtr origin,
double fraction )
static

get the fraction of an existing precision pointer

Parameters
originthe original precision pointer
fractionthe fraction to apply on the original precision

Definition at line 208 of file precision.cpp.

209{
210 Enums::PrecisionUnit unit = origin->unit();
211 double value = origin->getNominal() * fraction;
212
213
214 return getPrecisionPtrInstance(unit, value);
215}
static PrecisionPtr getPrecisionPtrInstance(Enums::PrecisionUnit unit, double value)
get a precision pointer instance

References pappso::PrecisionBase::getNominal(), getPrecisionPtrInstance(), and pappso::PrecisionBase::unit().

Referenced by pappso::FilterChargeDeconvolution::FilterChargeDeconvolution(), and pappso::FilterChargeDeconvolution::buildFilterFromString().

◆ getPrecisionPtrInstance()

PrecisionPtr pappso::PrecisionFactory::getPrecisionPtrInstance ( Enums::PrecisionUnit unit,
double value )
static

get a precision pointer instance

Parameters
unitthe precision unit
valuethe precision value

Definition at line 218 of file precision.cpp.

219{
220
221 switch(unit)
222 {
224 return getDaltonInstance(value);
226 return getPpmInstance(value);
228 return getResInstance(value);
230 return getDaltonInstance(value);
232 throw ExceptionNotPossible(QObject::tr("Unknown precision unit"));
233
234 default:
235 throw ExceptionNotPossible(QObject::tr("Unknown precision unit"));
236 break;
237 }
238
239 return nullptr;
240}

References pappso::Enums::dalton, getDaltonInstance(), getPpmInstance(), getResInstance(), pappso::Enums::mz, pappso::Enums::none, pappso::Enums::ppm, and pappso::Enums::res.

Referenced by pappso::XtandemPresetReader::getMs2FiltersOptions(), and getPrecisionPtrFractionInstance().

◆ getResInstance()

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

get a resolution precision pointer

Parameters
valuethe precision value in resolution

Definition at line 180 of file precision.cpp.

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

References m_mapRes.

Referenced by pappso::PrecisionWidget::PrecisionWidget(), fromString(), getPrecisionPtrInstance(), pappso::MzIntegrationParams::reset(), pappso::MzIntegrationParams::setBinSizeModel(), and pappso::PrecisionWidget::setResValueChanged().

Member Data Documentation

◆ m_mapDalton

PrecisionFactory::MapDaltonPrecision pappso::PrecisionFactory::m_mapDalton
staticprivate
Initial value:
= [] {
return ret;
}()
std::map< pappso_double, DaltonPrecision * > MapDaltonPrecision
Definition precision.h:128

Definition at line 133 of file precision.h.

Referenced by getDaltonInstance().

◆ m_mapPpm

PrecisionFactory::MapPpmPrecision pappso::PrecisionFactory::m_mapPpm
staticprivate
Initial value:
= [] {
return ret;
}()
std::map< pappso_double, PpmPrecision * > MapPpmPrecision
Definition precision.h:129

Definition at line 134 of file precision.h.

Referenced by getPpmInstance().

◆ m_mapRes

PrecisionFactory::MapResPrecision pappso::PrecisionFactory::m_mapRes
staticprivate
Initial value:
= [] {
return ret;
}()
std::map< pappso_double, ResPrecision * > MapResPrecision
Definition precision.h:130

Definition at line 135 of file precision.h.

Referenced by getResInstance().


The documentation for this class was generated from the following files: