00001
#ifndef _FPEAK_H_
00002
#define _FPEAK_H_
00003
00004
00005
00006
00007
00008
00023 struct FPeak2i
00024 {
00025
unsigned isValid : 1;
00026
unsigned isOversized: 1;
00027
00028
int rt_i;
00029
int mz_j;
00030
float* param;
00031 };
00032
00033
typedef struct FPeak2i FPeak2i;
00034
typedef FPeak2i*
FPeak2iArray;
00035
typedef FPeak2i*
FPeak2iPointer;
00036
00037
enum { FPEAK_METRIC_MZ_WIDTH_OK = 0x00000001,
00038 FPEAK_METRIC_RT_WIDTH_OVER = 0x00000002,
00039 FPEAK_METRIC_MZ_WIDTH_OVER = 0x00000004,
00040 FPEAK_METRIC_RT_WIDTH_UNDER = 0x00001000,
00041 FPEAK_METRIC_MZ_WIDTH_UNDER = 0x00002000,
00042 FPEAK_METRIC_MZ_DISPL_OVER = 0x00100000
00043 };
00044
00045
typedef struct
00046
{
00047 FPeak2i* fpeak;
00048
float aux_param;
00049
00050 } FPeak2iAuxParamIndex;
00051
00052
00053
void FPeak2iAuxParamIndex_sortByAuxParam(FPeak2iAuxParamIndex *pfpeaks,
int nPeaks);
00054
00055
00056
00057
00058
00059
00060
00061 FPeak2i FPeak2i_create(
int scan,
int bin,
float* param);
00062
void FPeak2i_destroy(FPeak2i* peak);
00063 FPeak2i* FPeak2i_new();
00064
void FPeak2i_fprint (FILE* fp, FPeak2i fpeak);
00065
void FPeak2i_fprintln(FILE* fp, FPeak2i fpeak);
00066
00067
void FPeak2i_fprintWithCurve(FILE* fp, FPeak2i fpeak);
00068
void FPeak2i_fprintlnWithCurve(FILE* fp, FPeak2i fpeak);
00069
00070
char* FPeak2i_toString(FPeak2i* fpeak);
00071 FPeak2i FPeak2i_cpyFPeak2i(FPeak2i aa);
00072
void FPeak2i_copy(FPeak2i* fpk, FPeak2iPointer aa);
00073
00074
00075
Peak2i FPeak2i_getPeak2i(FPeak2i peak);
00076
Peak2i FPeak2i_getPeak2iFitted(FPeak2i* peak,
Experiment* expmnt);
00077
00078 Peak2f FPeak2i_getPeak2f(FPeak2i peak);
00079
float FPeak2i_getMZ(FPeak2i* peak);
00080
float FPeak2i_getZ(FPeak2i* peak);
00081
float FPeak2i_hasZ(FPeak2i* peak);
00082
float FPeak2i_getParam(FPeak2i* peak,
int params);
00083
00084
int FPeak2i_areParametersPositive(FPeak2i fpeak);
00085
int FPeak2i_cmpBySamplingCoordinates(
const void *p1,
const void *p2);
00086
int FPeak2i_cmpByAbundance(
const void *p1,
const void *p2);
00087
00088
00089
00090
00091
00092 FPeak2i* FPeak2iArray_create (
int size);
00093 FPeak2i* FPeak2iArray_copy (FPeak2i* fpeaks,
int npeaks);
00094
void FPeak2iArray_destroy (FPeak2i** peak,
int nSize);
00095
void FPeak2iArray_freeParam (FPeak2i* peak,
int nSize);
00096
float* FPeak2iArray_getFloatArray (FPeak2i* pfpeaks,
int size,
int param);
00097
float* FPeak2iArray_getParamArray (FPeak2i* pfpeaks,
int size, ParameterName params,
int* nParameters);
00098
int* FPeak2iArray_getCurveArray (FPeak2i* fpk,
int npeaks);
00099
Peak2i* FPeak2iArray_getPeak2iArray(FPeak2i* peaks,
int npeaks);
00100
Peak2i* FPeak2iArray_getPeak2iArrayFitted(FPeak2i* peaks,
int npeaks,
Experiment* expmnt);
00101
00102
void FPeak2iArray_sortByMZJ (FPeak2i *pfpeaks,
int nPeaks);
00103
void FPeak2iArray_sortByMOZ (FPeak2i *pfpeaks,
int nPeaks);
00104
void FPeak2iArray_sortByAbundance(FPeak2i *pfpeaks,
int nPeaks);
00105
int FPeak2iArray_countFPeaksOfCurve(FPeak2i* array,
int start,
int stop,
int curve);
00106
void FPeak2iArray_fprintRestrictCurve(FILE* fp, FPeak2i* array,
int start,
int stop,
int curve);
00107
void FPeak2iArray_fprint(FILE* fp, FPeak2i* array,
int start,
int stop);
00108
void FPeak2iArray_fprintValid(FILE* fp, FPeak2i* array,
int start,
int stop);
00109
void FPeak2iArray_fprintWithCurve(FILE* fp, FPeak2i* array,
int start,
int stop);
00110
void FPeak2iArray_printParam(FPeak2i* array,
int npeaks,
int parameter);
00111
00112
void FPeak2iArray_setElement(
const void* array,
int index,
const void* data);
00113
00114
00115 FPeak2iPointer* FPeak2iArray_getFPeak2iPointerArray(FPeak2i* peaks,
int npeaks);
00116
int FPeak2iArray_getIndexWithNegativeParam(FPeak2i* array,
int npeaks);
00117 FPeak2iPointer* FPeak2iArray_getFPeak2iPointerArrayWithRestrictions(FPeak2i* peaks,
int npeaks,
00118 PeakRestrictions* restr,
int* npeaks_pass);
00119
00120
void FPeak2iArray_transformSamplingCoordinates(FPeak2iArray* fpeaks,
int npeaks,
int type,
Rectangle4i rect);
00121
00122
void FPeak2iArray_transformSamplingCoordinates_2(FPeak2i** fpeaks,
00123
int npeaks,
00124
Rectangle4i child,
00125
Rectangle4i parent);
00126
00127
void FPeak2iArray_transformSamplingCoordinates_3(FPeak2i** fpeaks,
00128
int npeaks,
00129
Rectangle4i child,
00130
Rectangle4i parent);
00131
00132 FPeak2i* FPeak2iArray_getInitialConditions(
int curve,
struct Map2D* map,
Peak2i* peaks,
int npeaks);
00133
00134
int FPeak2iArray_removePeaksScanWindow(FPeak2i* array_in,
int* npeaks_in,
00135 FPeak2i* array_out,
int* npeaks_out,
00136
int scan_mean,
int scan_width);
00137
00138
int FPeak2iArray_getLastIndexOfValid(FPeak2i* pFPeaks,
int nFPeaks,
int limit);
00139
00140
00141
00142
00143
00144 FPeak2iPointer FPeak2iPointer_copy(FPeak2iPointer aa);
00145
int FPeak2iPointer_cmpBySamplingCoordinates(
const void *p1,
const void *p2);
00146
int FPeak2iPointer_cmpByMZJ(
const void *p1,
const void *p2);
00147
int FPeak2iPointer_cmpByMOZ(
const void *p1,
const void *p2);
00148
int FPeak2iPointer_getSegment(FPeak2iPointer fpeak,
struct Map2D* mask);
00149
00150
00151
00152
00153
00154 FPeak2iPointer* FPeak2iPointerArray_copyPointersOnly(FPeak2iPointer* aa,
int n);
00155 FPeak2iPointer* FPeak2iPointerArray_copy(FPeak2iPointer* aa,
int n);
00156 FPeak2iPointer* FPeak2iPointerArray_copyPart(FPeak2iPointer* in,
int start,
int stop);
00157
00158
Peak2i* FPeak2iPointerArray_getPeak2iArray(FPeak2iPointer* peaks,
int npeaks);
00159
00160
float* FPeak2iPointerArray_getFloatArray(FPeak2iPointer* pfpeaks,
int size,
int param);
00161
void FPeak2iPointerArray_sortByMZJ(FPeak2iPointer *pfpeaks,
int nPeaks);
00162
void FPeak2iPointerArray_sortByMOZ(FPeak2iPointer *pfpeaks,
int nPeaks);
00163 FPeak2i* FPeak2iPointerArray_getFPeak2iArray(FPeak2iPointer* peaks,
int npeaks);
00164
00165
void FPeak2iPointerArray_destroy (FPeak2iPointer** array,
int nsize);
00166 FPeak2iPointer* FPeak2iPointerArray_create (
int size);
00167
00168
void FPeak2iPointerArray_fprint (FILE* fp, FPeak2iPointer* array,
00169
int start,
int stop);
00170
void FPeak2iPointerArray_fprintWithCurve (FILE* fp, FPeak2iPointer* array,
00171
int start,
int stop);
00172
void FPeak2iPointerArray_fprintWithPos (FILE* fp, FPeak2iPointer* array,
00173 Map2DPositionPointer* pos_array,
00174
int start,
int stop);
00175
00176
void FPeak2iPointerArray_setElement (
const void* array,
int index,
const void* data);
00177
00178
00179
00180
00181
00182
#include "fpeakpointer_set.h"
00183
00184
00185
00186
#endif
00187
00188