00001
#ifndef _DECONVOLVE_H_
00002
#define _DECONVOLVE_H_
00003
00004
00005
00006
00007
00008
00019
typedef struct
00020
{
00021
int size;
00022
float* moz;
00023
float* abu;
00024
00025
int * nc;
00026
float* amt;
00027
00028
float* curr;
00029
00030
int step;
00031 } Deconvolver;
00032
00033
extern int MAX_NO_CLUSTERS;
00034
#define DECONVOLVER_LOWER_BOUND 1
00035
#define DECONVOLVER_UPPER_BOUND 2
00036
00037
extern Byte DECONVOLVER_VERBOSE;
00038
extern Byte DECONVOLVER_BOUNDS_LOADED;
00039
extern int DECONVOLVER_MODE;
00040
00041
extern int NO_CHARGES;
00042
extern int** mzjBounds;
00043
extern float** mozBounds;
00044
00045
00046
enum {DECONVOLVER_MOZ, DECONVOLVER_MZJ};
00047
00048
#define MQ_DECONVOLVING_STRING "---------------- DECONVOLVING PEAKGROUP ------------------\n"
00049
00050
00051
void Deconvolver_fprintMOZBounds(FILE* fp);
00052
int Deconvolver_init(
int mode);
00053
void Deconvolver_release();
00054
int Deconvolver_loadMOZBounds();
00055
00056
00057
00076
int Deconvolver_findBestCarbonFitIteratively(
float* array,
int size,
00077
int c_begin,
int c_end,
00078
int* min_carb,
float* score,
int* mip);
00079
00080
int Deconvolver_guessCarbonContent(
float* array,
int size,
int c_begin,
int c_end,
float* score);
00081
00082
00083
00084
int FPeak2iArray_deconvolveCharge(
FPeak2i* pArray,
int nArray,
00085 IsotopicCluster* clusters,
int* nClusters);
00086
00087
int PeakGroup_deconvolveCharge(
PeakGroup* peak_group);
00088
00089
int** FPeak2iPointerArray_createAdjacencyMatrixByMZJ(
FPeak2iPointer* pVertexArray,
int nVertexArraySize);
00090
float** FPeak2iPointerArray_createAdjacencyMatrixByMOZ(
FPeak2iPointer* pVertexArray,
int nVertexArraySize);
00091
00092
int** FPeak2iArray_createAdjacencyMatrixByMZJ(
FPeak2i* pVertexArray,
int nVertexArraySize);
00093
float** FPeak2iArray_createAdjacencyMatrixByMOZ(
FPeak2i* pVertexArray,
int nVertexArraySize);
00094
00095
int** IntArray_createAdjacencyMatrix(
int* pVertexArray,
int nVertexArraySize);
00096
00097
00103
int IsotopicCluster_findBestCarbonFit(IsotopicCluster* ic);
00104
00105
int IsotopicCluster_findBestCarbonFitUsingResidualArray(IsotopicCluster* ic,
float* res);
00106
00107
FPeak2i FPeak2i_createUsingIsotopicCluster(IsotopicCluster* ic,
int nCurve);
00108
void FPeak2iArray_fillUsingIsotopicCluster(
FPeak2i* pArray,
int* nLastIndex, IsotopicCluster* ic,
int nCurve);
00109
00110
00111
00112
int PeakGroup_deconvolveIsotopes (
PeakGroup* peakgroup,
00113
Map2D* pMap,
00114
FPeak2i* pFPeaksOut,
int nFPeaksOut,
00115
char* szCurve);
00116
00117
int PeakGroup_deconvolveIsotopes2(
PeakGroup* peakgroup,
00118
Map2D* pMap,
00119
FPeak2i* pFPeaksOut,
int nFPeaksOut,
00120
char* szCurve);
00121
00122
int PeakGroup_deconvolveIsotopes3(
PeakGroup* peakgroup,
00123
Map2D* pMap,
00124
FPeak2i* pFPeaksOut,
int nFPeaksOut,
00125
char* szCurve);
00126
00127
int PeakGroup_deconvolveIsotopes3_1(
PeakGroup* peakgroup,
00128
Map2D* pMap,
00129
FPeak2i* pFPeaksOut,
int nFPeaksOut);
00130
00131
int PeakGroup_deconvolveIsotopesWithoutFitting(
PeakGroup* peakgroup);
00132
00133
int PeakGroup_deconvolveIsotopes5(
PeakGroup* peakgroup,
00134
Map2D* pMap,
00135
FPeak2i* pFPeaksOut,
int nFPeaksOut,
00136
char* szCurve);
00137
00138
00139
#endif
00140