00001
#ifndef _MAP_TK_H_
00002
#define _MAP_TK_H_
00003
00004
00005
00006
00007
00008
00016
00017
00018
#define MAP_VALUE_NOT_SEGMENT FLT_MIN
00019
00020
extern float MAP2D_MAX_SIZE_IN_POINTS;
00021
00022
enum {REMOVE_EDGES, INCLUDE_EDGES};
00023
00024
enum {RT_DIMENSION, MZ_DIMENSION};
00025
00026
enum { MAP2D_POINT_INDEX,
00027 MAP2D_POINT_SAMPLING,
00028 MAP2D_POINT_REAL };
00029
00034
typedef struct Map2D Map2D;
00035
00036 struct Map2D
00037 {
00038
unsigned isLoaded : 1;
00039
unsigned isBinary : 1;
00040
unsigned isMultiple : 1;
00041
unsigned isTile : 1;
00042
unsigned isSeam : 1;
00043
00044
unsigned isProcessed : 1;
00045
unsigned isGrayscale : 1;
00046
unsigned isDeconvolved : 1;
00047
00048
unsigned isMarked : 1;
00049
unsigned isFitted : 1;
00050
00051
unsigned nScanMode : 1;
00052
00053
00054
unsigned isSegment : 1;
00055
unsigned isOnEdge : 1;
00056
00057
unsigned isStatCalculated : 1;
00058
00059
00060
00061
struct Attributes* pAttributes;
00062
int nAttributes;
00063
00064
00065
00066
00067
00068
struct Map2D* parentMap;
00069
struct Map2D* labeledMap;
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00084
char*
path;
00085
00089
char*
name;
00090
00091
00092
char* experiment;
00093
Experiment* expmnt;
00094
00095
00096
char* session;
00097
00098
00099
Rectangle4i borders;
00100
00101
00102
char* ps;
00103 ProcScript procscript;
00104
00105
00106
00107
00108
void* pMS2Data;
00109
int nMS2Data;
00110
00111
Rectangle4i* pTiles;
00112
int nTiles;
00113 MQTileID bTile;
00114
00115 DescriptiveStatistics stat;
00116
00117 Dimensions2i dim;
00118
00124
float*
rtsa;
00125
int* scsa;
00126
00132
float*
mssa;
00133
00134
00135
float max;
00136
00142
float** abu;
00143 } ;
00144
00145
00146
00147
00148
00149
00156 Map2D* Map2D_new();
00157
00158
00166
void Map2D_mallocAbundanceMatrix(Map2D* map);
00167
00168
00173
void Map2D_mallocScanArray(Map2D* map);
00174
00175
00185
void Map2D_mallocDim(Map2D* map, Dimensions2i dim);
00186
00187
00198
void Map2D_malloc(Map2D* map,
int no_of_scans,
int no_of_bins);
00199
00200
00201
00202
00210
void Map2D_initHeader(Map2D* map);
00211
void Map2D_initAbundance(Map2D* map,
float value);
00212
00213
void initMap(Map2D* MP);
00214
void initMapWithValue(Map2D* MP,
float value);
00215
00225
void Map2D_setHeader(Map2D* map,
Experiment* expmnt,
Rectangle4i rect);
00226
void Map2D_setSamplingArrays(Map2D* map,
Rectangle4i* rect);
00227
void Map2D_setBorders(Map2D* map,
int x_start,
int x_stop,
int y_start,
int y_stop);
00228
void Map2D_setProcScript(Map2D* map, ProcScript PS);
00229
int Map2D_fprintHeader(FILE* fp, Map2D* map);
00230
void Map2D_fprintAbundanceMatrix(FILE* fp, Map2D* map,
int format);
00231
void Map2D_fprintAbundanceSubMatrix(FILE* fp, Map2D* map,
Rectangle4i* rect);
00232
void Map2D_printHeader(Map2D *map,
char* mapname);
00233
00234
00235
00236
00237
void Map2D_copyHeader(Map2D* source, Map2D* dest);
00238
void Map2D_copy(Map2D* dest, Map2D* source);
00239
00240
00241
00242
void Map2D_create(Map2D* map,
Experiment* expmnt,
Rectangle4i rect);
00243
void Map2D_createUsingTemplate(Map2D* template_map, Map2D* output_map,
float init_value);
00244 Map2D Map2D_createBinaryMap(Map2D* map,
float threshold);
00245
00246
void Map2D_destroy(Map2D *map);
00247
00248
void Map2D_invert_new(Map2D* out, Map2D* in);
00249
float Map2D_calcArea(Map2D* map);
00250
00251
float Map2D_getResidualVolume(Map2D *original, Map2D *fitted);
00252
void Map2D_subtractMaps(Map2D *one, Map2D *two, Map2D *diff);
00253
void Map2D_mergeMaps(Map2D *one, Map2D *two, Map2D *result);
00254
00255
void Map2D_applyLinearInterpolation(Map2D* map);
00256
int Map2D_applyErosion(Map2D *OMAP, Map2D *IMAP,
char* szStructElemName);
00257
int Map2D_applyDilation(Map2D *OMAP, Map2D *IMAP,
char* szStructElemName);
00258
int Map2D_applyClosing(Map2D *map,
char* szStructElemName);
00259
int Map2D_applyClosingUsingOriginal(Map2D *out, Map2D *in,
char* szStructElemName);
00260
int Map2D_applyOpening(Map2D *map,
char* szStructElemName);
00261
00262
00263
00264
00265
int Map2D_isMOZValid(Map2D *map,
float MOZ);
00266
int Map2D_isRTValid(Map2D *map,
float RT);
00267
00268
int Map2D_isMassBinValid(Map2D *map,
int mass_bin);
00269
int Map2D_isScanValid(Map2D *map,
int rt_bin);
00270
00271
int Map2D_isMassIndexValid(Map2D *map,
int mass_index);
00272
int Map2D_isRTIndexValid(Map2D *map,
int rt_index);
00273
00274
00275
00276
enum { MASS_TYPE_MOZ, MASS_TYPE_BIN, MASS_TYPE_MZJ };
00277
enum { RT_TYPE_MIN, RT_TYPE_SCAN, RT_TYPE_RTI };
00278
00279
float* Map2D_getAbundanceArrayFromMassChrm(Map2D *map,
int size,
float index_value,
int index_type);
00280
float* Map2D_getAbundanceArrayFromMassSpec(Map2D *map,
int size,
float index_value,
int index_type);
00281
00282
float* Map2D_getAbundancePointerFromScan (Map2D* map,
int scan);
00283
float* Map2D_getAbundancePointerFromIndex(Map2D* map,
int scanIndex);
00284
00285
float* getAbundanceArrayOfMassSpecAtRTI(Map2D *map,
int rt_index,
00286
int start,
00287
int stop);
00288
00289
void putMassChrmToMap2D_BIN(Map2D* MP,
int bin,
float* array,
int size);
00290
void putMassChrmToMap2D_MZI(Map2D* MP,
int mz_index,
float* array,
int size);
00291
00292
void putMassSpecToMap2D_RTI(Map2D *MP,
int rt_index,
float* array,
int size);
00293
00294 Map2D Map2D_extractSubMap(Map2D* map,
Rectangle4i* rect);
00295
00296
00297
00298
float* getRTSamplingArrayFromMap2D(Map2D* MP);
00299
float* getMSSamplingArrayFromMap2D(Map2D* MP);
00300
00301
00302
00303
void Map2D_transformPeak2i (Map2D* map,
Peak2i* peak,
int type);
00304
void Map2D_transformPeak2iArray(Map2D* map,
Peak2i* peaks,
int npeaks,
int type);
00305
void Map2D_transformRectangle4i(Map2D* map,
Rectangle4i* target,
int type);
00306
00307
float Map2D_getValue (Map2D *map ,
Peak2i peak);
00308
00309
void Peak2i_fprintlnWithMapValue (FILE* fp,
Peak2i peak, Map2D* map);
00310
void Peak2i_fprintlnWithMapValues (FILE* fp,
Peak2i peak, Map2D* map);
00311
void Peak2iArray_fprintWithMapValues(FILE* fp,
Peak2i* peaks,
int start,
int stop, Map2D* map);
00312
void Peak2iArray_fprintWithMapValue (FILE* fp,
Peak2i* peaks,
int start,
int stop,
struct Map2D* map);
00313
00314
int Map2D_getIndexFromScan (Map2D *map,
int scan);
00315
int Map2D_getIndexFromMassBin(Map2D *map,
int bin);
00316
00317
int Map2D_getIndexFromRT(Map2D* map,
float RT);
00318
int Map2D_getIndexFromMOZ(Map2D* map,
float MOZ);
00319
00320
int Map2D_getScanFromIndex (Map2D* map,
int index);
00321
int Map2D_getMassBinFromIndex(Map2D* map,
int binIndex);
00322
00323
float Map2D_getFloatScanFromIndex(Map2D* map,
int scanIndex);
00324
float Map2D_getFloatMassBinFromIndex(Map2D* map,
int binIndex);
00325
00326
float Map2D_getRTFromScan(Map2D* map,
int scanNumber);
00327
float Map2D_getMOZFromMassBin(Map2D* map,
int binNumber);
00328
00329
float Map2D_getRTFromIndex(Map2D* map,
int scanIndex);
00330
float Map2D_getMOZFromIndex(Map2D* map,
int binIndex);
00331
00332
int Map2D_findHighestIntensityScan(Map2D* map);
00333
void Map2D_findMinMax(Map2D *map,
float* max,
float* min);
00334
void Map2D_findMinMaxMultiple(
Experiment* expmnt,
char* szSession,
char* type,
float* max,
float* min);
00335
int* Map2D_getHistogramMultiple(
Experiment* expmnt,
char* szSession,
char* type,
float max,
int* nbins);
00336
int* Map2D_getHistogram(Map2D* map,
float max,
int* nBinSize,
int* nbins);
00337
int Map2D_getNumberOfSegmentsMultiple(
Experiment* expmnt,
char* szSessionName);
00338
00349
struct Segment* Map2D_getSegmentArray(Map2D* map,
int nMode,
int* nSegment);
00350
00351
void Map2D_saveRawInfo(
char* szPath,
char* szMap2D, Map2D* map);
00352
00353
int Map2D_isPeakInMap(Map2D* map,
int scan,
int bin);
00354
float* Map2D_collapseToTIC(Map2D* map,
int* nSize);
00355
int Map2D_alignMaps(Map2D* map1, Map2D* map2 );
00356
00357
void Map2D_trimEdges(Map2D* map,
float value);
00358
void Map2D_eliminateNegativeValues(Map2D* map);
00359
00360
void Map2D_tile(Map2D* map,
float mz_width);
00361
void Map2D_tileUsingSize(Map2D* map,
float tile_size);
00362
00363
int Map2D_getNumberOfTiles(
Experiment* expmnt,
char* szSession);
00364
00365
int Map2D_aIsText(
char* filename);
00366
int Map2D_pIsText(
char* path,
char* mapname,
char* type);
00367
int Map2D_snIsText(
Experiment* expmnt,
char* szSession,
char* szName);
00368
00369 Peak3iif* Map2D_getPeak3iifArray(Map2D* MAP,
int* npeaks,
int type);
00370
00371
char* Map2D_getFullHeaderName(
Experiment* expmnt,
char* szSession,
char* type);
00372
00373
int Map2D_deconvolveUsingWienerFilter(Map2D* pMap,
float dSD,
int nDimension,
00374
int signal_scan,
int noisy_scan);
00375
00376
int Map2D_deconvolve(Map2D* pMap,
float dSD,
int nDimension);
00377
int Map2D_getStatFromMassChrm(Map2D *map,
int index_type,
void* index_value, DescriptiveStatistics* stat);
00378
int Map2D_getStatFromMassSpec(Map2D *map,
int index_type,
void* index_value, DescriptiveStatistics* stat);
00379
00380
int Map2D_loadMS2Data(Map2D* map,
Experiment* ms2_expmnt);
00381
00392 DescriptiveStatistics
Stat_getDescriptiveStatForMap2D(Map2D* map );
00393
00400 DescriptiveStatistics Stat_getDescriptiveStatForSubMap2D(Map2D* map,
Rectangle4i* rect);
00401
00402
float Stat_getMedianForMap2D(Map2D* map,
int mode);
00403
float Stat_getMeanForMap2D (Map2D* map,
int mode);
00404
00405
float Stat_getAvgAbsDevFromValueForMap2D (Map2D* map,
float median,
int mode);
00406
float Stat_getMedianAbsDevFromValueForMap2D(Map2D* map,
float median,
int mode);
00407
00408
float Stat_getSDForMap2D(Map2D* map,
float mean,
int mode);
00409
00410
int Map2D_isMassSpecSignalConstant(Map2D *map,
int index_type,
void* index_value);
00411
00412 BaselineMark Map2D_getBaselineForPeak(Map2D* map,
Peak2i* peak,
int dimension);
00413 BaselineMark* Map2D_getBaselineForPeak2iArray(Map2D* map,
Peak2i* peakarray,
int nsize,
int dimension);
00414
void Map2D_getPeakEndsInRT(Map2D* map,
int scan,
int bin,
int* left,
int* right);
00415 DescriptiveStatistics
Stat_getDescriptiveStatForMap2D(Map2D* map);
00416 DescriptiveStatistics Stat_getDescriptiveStatForMap2DNonZero(Map2D* map);
00417
00418
00419
00420
00421
#endif
00422