00001 
#ifndef _MS_SPECTRUM_TK_H_
00002 
#define _MS_SPECTRUM_TK_H_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
enum {MS_CENTROID, MS_PROFILE};
00010 
00011 
struct MS_Spectrum
00012 {
00013         Point2f                 *peaks;
00014         
float                   *moz;
00015         
float                   *abu;                   
00016         
int                             type;
00017         
float                   RT;
00018         
int                             scanNumber;
00019         
int                             no_of_peaks;
00020         
Experiment              *expmnt;
00021 };
00022 
00023 
typedef struct MS_Spectrum MS_Spectrum;
00024 
00025 
void MSSpectrum_alloc(MS_Spectrum* ms_sp, 
int size);
00026 
int  MSSpectrum_create(MS_Spectrum* mss, Point2f* dpeaks, 
int npeaks);
00027 
00028 
void MSSpectrum_init(MS_Spectrum* ms_sp);
00029 
void MSSpectrum_initPeaks(MS_Spectrum* ms_sp);
00030 
00031 
void MSSpectrum_destroy(MS_Spectrum* ms_sp);
00032 
00033 int (*MSSpectrum_loadFromRawFile)(MS_Spectrum* sp, 
Experiment* expmnt, 
int scanNumber);
00034 
00035 
int MSSpectrum_loadFromTextFile            (MS_Spectrum* sp, 
char* specFile);
00036 
int MSSpectrum_loadFromOpenRawMSArchive(MS_Spectrum* sp, 
Experiment* expmnt, 
int scanNumber);
00037 
00038 
int MSSpectrum_loadFromMQXML               (MS_Spectrum* sp, 
Experiment* expmnt, 
int scanNumber);
00039 
00040 
float* MSSpectrum_getAbundanceFloatArrayWithLimitsAndWithZeroFill(MS_Spectrum* sp, 
float start_moz, 
float stop_moz, 
float start_zero, 
float stop_zero);
00041 
00042 
float* MSSpectrum_getMZArray(MS_Spectrum* sp);
00043 
float* MSSpectrum_getMZArrayWithLimits(MS_Spectrum* sp, 
float start, 
float stop);
00044 
00045 
float*  MSSpectrum_getAbundanceFloatArray(MS_Spectrum* sp);
00046 
float*  MSSpectrum_getAbundanceFloatArrayWithLimits(MS_Spectrum* sp, 
float start, 
float stop);
00047 
float*  MSSpectrum_getAbundanceFloatArrayWithLimitsAndWithZeroFill(MS_Spectrum* sp, 
float start_moz, 
float stop_moz, 
float start_zero, 
float stop_zero);
00048 
00049 
void MSSpectrum_fprint(FILE* fp, MS_Spectrum* mss);
00050 
void MSSpectrum_fprintHeader(FILE *fp, MS_Spectrum* MS);
00051 
void MSSpectrum_fprintNonZeros(FILE* fp, MS_Spectrum* mss);
00052 
void MSSpectrum_print(MS_Spectrum* sp);
00053 
00054 
00055 
#endif
00056