Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef OPENMS_TRANSFORMATIONS_FEATUREFINDER_LMAISOTOPEFITTER1D_H
00036 #define OPENMS_TRANSFORMATIONS_FEATUREFINDER_LMAISOTOPEFITTER1D_H
00037
00038 #include <OpenMS/TRANSFORMATIONS/FEATUREFINDER/LevMarqFitter1D.h>
00039
00040
00041
00042 namespace OpenMS
00043 {
00049 class OPENMS_DLLAPI LmaIsotopeFitter1D :
00050 public LevMarqFitter1D
00051 {
00052 public:
00053
00054 enum Averagines {C = 0, H, N, O, S, AVERAGINE_NUM};
00055
00057 LmaIsotopeFitter1D();
00058
00060 LmaIsotopeFitter1D(const LmaIsotopeFitter1D & source);
00061
00063 virtual ~LmaIsotopeFitter1D();
00064
00066 virtual LmaIsotopeFitter1D & operator=(const LmaIsotopeFitter1D & source);
00067
00069 static Fitter1D * create()
00070 {
00071 return new LmaIsotopeFitter1D();
00072 }
00073
00075 static const String getProductName()
00076 {
00077 return "LmaIsotopeFitter1D";
00078 }
00079
00081 QualityType fit1d(const RawDataArrayType & range, InterpolationModel * & model);
00082
00083 protected:
00084
00086 struct Data
00087 {
00088 typedef Peak1D PeakType;
00089 typedef std::vector<PeakType> RawDataArrayType;
00090 typedef std::vector<double> ContainerType;
00091 typedef Feature::CoordinateType CoordinateType;
00092
00093 Size n;
00094 RawDataArrayType set;
00095 ContainerType isotopes_exact;
00096 CoordinateType isotope_distance;
00097
00098
00099 CoordinateType isotopes_stdev;
00100 CoordinateType sigma;
00101 };
00102
00104 void setInitialParameters_();
00105
00107 static Int residual_(const gsl_vector * x, void * params, gsl_vector * f);
00108
00110 static Int jacobian_(const gsl_vector * x, void * params, gsl_matrix * J);
00111
00113 static Int evaluate_(const gsl_vector * x, void * params, gsl_vector * f, gsl_matrix * J);
00114
00119 void printState_(Int iter, gsl_multifit_fdfsolver * s);
00120
00122 UInt charge_;
00124 CoordinateType isotope_stdev_;
00126 CoordinateType total_intensity_;
00128 CoordinateType monoisotopic_mz_;
00130 Int max_isotope_;
00132 DoubleReal trim_right_cutoff_;
00134 DoubleReal isotope_distance_;
00136 CoordinateType mean_;
00138 DoubleReal averagine_[AVERAGINE_NUM];
00140 ContainerType isotopes_exact_;
00142 bool monoisotopic_mass_known_;
00143
00144 void updateMembers_();
00145 };
00146 }
00147
00148 #endif // OPENMS_TRANSFORMATIONS_FEATUREFINDER_LMAISOTOPEFITTER1D_H