00001
#ifndef _FITTER_H_
00002
#define _FITTER_H_
00003
00004
00005
00006
00007
00008
00019
typedef struct
00020
{
00021
Peak2i* pPeaks;
00022
int nPeaks;
00023
int* pCurves;
00024
int nCurves;
00025
Map2D* pMap;
00026 } FitterInput;
00027
00028
typedef struct
00029
{
00030
int nIteration;
00031
float dChiSquare;
00032
FPeak2i* pFPeaks;
00033
int nFPeaks;
00034 } FitterOutput;
00035
00036
typedef struct
00037
{
00038
unsigned isMutlipleCurves: 1;
00039
unsigned haveCommonWidth: 1;
00040
00041 FitterInput input;
00042 FitterOutput output;
00043
00044
int nStatus;
00045
int nOptions;
00046
00047
int nCurrPeaks;
00048
float* pValueParamArray;
00049
int* pStateParamArray;
00050
int nParams;
00051
int* pParamPerCurveArray;
00052
00053 } MapFitter;
00054
00055
extern int FITTER_INIT_SIGMA_RT_SET;
00056
extern int FITTER_INIT_SIGMA_MZ_SET;
00057
00058
extern float INIT_SIGMA_RT;
00059
extern float INIT_SIGMA_MZ;
00060
00061
enum {FITTER_INIT_SIGMA_RT_PARAMETER,
00062 FITTER_INIT_SIGMA_MZ_PARAMETER};
00063
00064
extern int NR_BD_GAUSSIOID_FIX_CHARGE;
00065
extern int FITTER_MAX_NO_PEAKS;
00066
extern int FITTER_MAX_ITERATIONS;
00067
00068
void Fitter_setParameter(
int parameter,
float value);
00069
00070
void Fitter_init(MapFitter* mfitter);
00071
int Fitter_init_2(MapFitter* fitter,
Map2D* map,
int scan,
int bin,
int charge);
00072
00073
int Fitter_setInitCondForPeptide(MapFitter* fitter,
Map2D* map,
00074
int scan,
int bin,
00075
float charge,
int carbons,
00076
int curve_index);
00077
00078
void Fitter_fixParameter(MapFitter* mfitter,
int parameter);
00079
void Fitter_setStateParamArray(MapFitter* mfitter);
00080
void Fitter_destroy(MapFitter* mfitter);
00081
void Fitter_fprint(FILE* fp, MapFitter* fitter);
00082
00083
Map2D Fitter_createFittedMap(MapFitter MFF);
00084
Map2D Fitter_createFittedMapFromFPeaks(
Map2D* pMap,
FPeak2i* pFPeaks,
int nFPeaks);
00085
Map2D Fitter_createMapFromFPeaks(
Map2D* temp_map,
FPeak2i* pFPeaks,
int nFPeaks);
00086
00087
float* Fitter_getInitialConditionsOfUnion(
FPeak2i* pIn1 ,
int nIn1,
00088
FPeak2i* pIn2 ,
int nIn2,
00089
int* nInit);
00090
00091
Peak2i* Fitter_getPeak2iArrayOfUnion(
FPeak2i* pIn1 ,
int nIn1,
00092
FPeak2i* pIn2 ,
int nIn2,
00093
int* nPeaks);
00094
00095
int* Fitter_getCurveArrayOfUnion(
FPeak2i* pIn1 ,
int nIn1,
00096
FPeak2i* pIn2 ,
int nIn2,
00097
int* nCurves);
00098
00099
int Fitter_getInitialConditionsFromPeak2iArray(MapFitter* ftt,
00100
Map2D* map,
00101
Peak2i* pPeaks,
int nPeaks,
00102
int curve);
00103
00104
int Fitter_getInitialConditionsFromFPeak2iArray(MapFitter* ftt,
00105
Map2D* map,
00106
FPeak2i* pFPeaks,
int nPeaks,
00107
int curve);
00108
00109
float* Fitter_getInitialConditionsWithMultipleCurves(MapFitter* fitter);
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
int Fitter_fitPeaks(MapFitter* fitter);
00124
00125
00126
00127
00128
00129
00130
00131
int Fitter_fitPeaksGivenInitialConditions(MapFitter* fitter);
00132
00133
00134
00135
00136
00137
00138
int Fitter_fitPeaksWithMultipleCurves(MapFitter* fitter);
00139
00140
00141
00142
00143
00144
00145
int Fitter_fitPeaksGivenInitialConditionsMultipleCurves(MapFitter* fitter);
00146
00147
00148
00149
#endif
00150