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