35 #ifndef OPENMS_TRANSFORMATIONS_FEATUREFINDER_GAUSSTRACEFITTER_H
36 #define OPENMS_TRANSFORMATIONS_FEATUREFINDER_GAUSSTRACEFITTER_H
52 template <
typename PeakType>
92 LOG_DEBUG <<
"Traces length: " << traces.size() << std::endl;
145 return (rt_bounds.second - rt_bounds.first) < (min_rt_span * 5.0 *
sigma_);
161 s <<
String(function_name) <<
"(x)= " << baseline <<
" + ";
176 height_ = gsl_vector_get(s->x, 0);
177 x0_ = gsl_vector_get(s->x, 1);
178 sigma_ = std::fabs(gsl_vector_get(s->x, 2));
181 static Int residual_(
const gsl_vector * param,
void * data, gsl_vector * f)
184 double height = gsl_vector_get(param, 0);
185 double x0 = gsl_vector_get(param, 1);
186 double sig = gsl_vector_get(param, 2);
187 double c_fac = -0.5 / pow(sig, 2);
190 for (
Size t = 0; t < traces->size(); ++t)
193 for (
Size i = 0; i < trace.
peaks.size(); ++i)
195 gsl_vector_set(f, count, traces->
baseline + trace.
theoretical_int * height * exp(c_fac * pow(trace.
peaks[i].first - x0, 2)) - trace.
peaks[i].second->getIntensity());
202 static Int jacobian_(
const gsl_vector * param,
void * data, gsl_matrix * J)
205 double height = gsl_vector_get(param, 0);
206 double x0 = gsl_vector_get(param, 1);
207 double sig = gsl_vector_get(param, 2);
208 double sig_sq = pow(sig, 2);
209 double sig_3 = pow(sig, 3);
210 double c_fac = -0.5 / sig_sq;
213 for (
Size t = 0; t < traces->size(); ++t)
216 for (
Size i = 0; i < trace.
peaks.size(); ++i)
221 gsl_matrix_set(J, count, 1, trace.
theoretical_int * height * e * (rt - x0) / sig_sq);
222 gsl_matrix_set(J, count, 2, 0.125 * trace.
theoretical_int * height * e * pow(rt - x0, 2) / sig_3);
229 static Int evaluate_(
const gsl_vector * param,
void * data, gsl_vector * f, gsl_matrix * J)
238 LOG_DEBUG <<
"GaussTraceFitter->setInitialParameters(..)" << std::endl;
239 LOG_DEBUG <<
"Traces length: " << traces.size() << std::endl;
261 "height: " << gsl_vector_get(s->x, 0) <<
" " <<
262 "x0: " << gsl_vector_get(s->x, 1) <<
" " <<
263 "sigma: " << std::fabs(gsl_vector_get(s->x, 2)) <<
" " <<
264 "|f(x)| = " << gsl_blas_dnrm2(s->f) << std::endl;
271 #endif // #ifndef OPENMS_TRANSFORMATIONS_FEATUREFINDER_FEATUREFINDERALGORITHMPICKEDTRACEFITTERGAUSS_H
DoubleReal getHeight() const
Definition: GaussTraceFitter.h:115
A more convenient string class.
Definition: String.h:56
void getOptimizedParameters_(gsl_multifit_fdfsolver *s)
Definition: GaussTraceFitter.h:174
A 2-dimensional raw data point or peak.
Definition: Peak2D.h:55
Size max_trace
Maximum intensity trace.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:269
void optimize_(FeatureFinderAlgorithmPickedHelperStructs::MassTraces< PeakType > &traces, const Size num_params, double x_init[], Int(*residual)(const gsl_vector *x, void *params, gsl_vector *f), Int(*jacobian)(const gsl_vector *x, void *params, gsl_matrix *J), Int(*evaluate)(const gsl_vector *x, void *params, gsl_vector *f, gsl_matrix *J))
Definition: TraceFitter.h:199
virtual void updateMembers_()
This method is used to update extra member variables at the end of the setParameters() method...
Definition: TraceFitter.h:182
DoubleReal x0_
Definition: GaussTraceFitter.h:168
Helper struct for a collection of mass traces used in FeatureFinderAlgorithmPicked.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:153
Abstract fitter for RT profile fitting.
Definition: TraceFitter.h:62
virtual void updateMembers_()
This method is used to update extra member variables at the end of the setParameters() method...
Definition: GaussTraceFitter.h:253
bool checkMinimalRTSpan(const std::pair< DoubleReal, DoubleReal > &rt_bounds, const DoubleReal min_rt_span)
Definition: GaussTraceFitter.h:143
GaussTraceFitter(const GaussTraceFitter &other)
Definition: GaussTraceFitter.h:62
ptrdiff_t SignedSize
Signed Size type e.g. used as pointer difference.
Definition: Types.h:151
DoubleReal sigma_
Definition: GaussTraceFitter.h:167
GaussTraceFitter()
Definition: GaussTraceFitter.h:57
#define LOG_DEBUG
Macro for general debugging information.
Definition: LogStream.h:459
DoubleReal computeTheoretical(const FeatureFinderAlgorithmPickedHelperStructs::MassTrace< PeakType > &trace, Size k)
Definition: GaussTraceFitter.h:148
Fitter for RT profiles using a gaussian background model.
Definition: GaussTraceFitter.h:53
virtual TraceFitter & operator=(const TraceFitter &source)
assignment operator
Definition: TraceFitter.h:86
DoubleReal getSigma() const
Returns the sigma of the fitted gaussian model.
Definition: GaussTraceFitter.h:133
DoubleReal getCenter() const
Definition: GaussTraceFitter.h:120
DoubleReal theoretical_int
Theoretical intensity value (scaled to [0,1])
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:91
String getGnuplotFormula(FeatureFinderAlgorithmPickedHelperStructs::MassTrace< PeakType > const &trace, const char function_name, const DoubleReal baseline, const DoubleReal rt_shift)
Definition: GaussTraceFitter.h:158
DoubleReal getFeatureIntensityContribution()
Definition: GaussTraceFitter.h:153
GaussTraceFitter & operator=(const GaussTraceFitter &source)
Definition: GaussTraceFitter.h:72
void printState_(SignedSize iter, gsl_multifit_fdfsolver *s)
Definition: GaussTraceFitter.h:258
DoubleReal baseline
Estimated baseline in the region of the feature (used for the fit)
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:271
DoubleReal getFWHM() const
Definition: GaussTraceFitter.h:125
void fit(FeatureFinderAlgorithmPickedHelperStructs::MassTraces< PeakType > &traces)
Definition: GaussTraceFitter.h:90
virtual ~GaussTraceFitter()
Definition: GaussTraceFitter.h:85
DoubleReal height_
Definition: GaussTraceFitter.h:169
DoubleReal region_rt_span_
Definition: GaussTraceFitter.h:170
void setInitialParameters_(FeatureFinderAlgorithmPickedHelperStructs::MassTraces< PeakType > &traces)
Definition: GaussTraceFitter.h:236
static Int evaluate_(const gsl_vector *param, void *data, gsl_vector *f, gsl_matrix *J)
Definition: GaussTraceFitter.h:229
static Int residual_(const gsl_vector *param, void *data, gsl_vector *f)
Definition: GaussTraceFitter.h:181
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:144
std::vector< std::pair< DoubleReal, const PeakType * > > peaks
Contained peaks (pair of RT and pointer to peak)
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:94
DoubleReal getUpperRTBound() const
Definition: GaussTraceFitter.h:110
static const Size NUM_PARAMS_
Definition: GaussTraceFitter.h:172
DoubleReal getLowerRTBound() const
Definition: GaussTraceFitter.h:105
bool checkMaximalRTSpan(const DoubleReal max_rt_span)
Definition: GaussTraceFitter.h:138
int Int
Signed integer type.
Definition: Types.h:100
static Int jacobian_(const gsl_vector *param, void *data, gsl_matrix *J)
Definition: GaussTraceFitter.h:202
Helper struct for mass traces used in FeatureFinderAlgorithmPicked.
Definition: FeatureFinderAlgorithmPickedHelperStructs.h:83