00001 
#ifndef _MS_MS_SPEC_HEADER_H_
00002 
#define _MS_MS_SPEC_HEADER_H_
00003 
00004 
00005 
enum {MS2_SCAN, MS2_PARENT_SCAN, MS2_PARENT_MOZ};
00006 
00007 
struct MS_MS_SpectrumHeader
00008 {
00009         
unsigned                        isEmpty :1;
00010         
unsigned                        hasScored :1;   
00011         
00012         
int                                     scan;
00013         
int                                     nSize;
00014         LPeak2f                         parent;
00015 
00016         
int                                     nParentScan;
00017         
float                           dParentRT;
00018         
float                           dParentMOZ;
00019         
00020         
float                           dBasepeak;      
00021         
float                           dTIC;
00022         
struct Experiment       *expmnt;
00023 } ;
00024 
00025 
typedef struct MS_MS_SpectrumHeader MS_MS_SpectrumHeader;
00026 
00027 
00028 
int                                       MSMSSpectrumHeader_loadUsingPath(MS_MS_SpectrumHeader* sh, 
char* path_name,  
char* file_name);
00029 MS_MS_SpectrumHeader* MSMSSpectrumHeaderArray_load(
char* filename, 
int* nscans);
00030 
00031 
void MSMSSpectrumHeader_init(MS_MS_SpectrumHeader* sh, 
short empty, 
00032                                                                                                            
short scored, 
00033                                                                                                            
int   scan, 
00034                                                                                                            
int   parentscan, 
00035                                                                                                                  
float parentrt, 
00036                                                                                                                  
float parentmoz, 
00037                                                                                                                  
int   nsize,
00038                                                                                                                  
float basepeak,
00039                                                                                                                  
float dTIC);
00040 
00041 
00042 
void    MSMSSpectrumHeader_fprint(FILE* fp, MS_MS_SpectrumHeader sh);
00043 
00044 
00045 MS_MS_SpectrumHeader* MSMSSpectrumHeaderArray_create(
int size);
00046 IndexArray   MSMSSpectrumHeaderArray_getIndicesOfScansInRect(MS_MS_SpectrumHeader* ms2array, 
int size, 
Rectangle4i rect);
00047 
void    MSMSSpectrumHeaderArray_fprint(FILE* fp, MS_MS_SpectrumHeader* MSMSARRAY, 
int start, 
int stop);
00048 
int*    MSMSHeaderArray_getFieldArrayFromIndexArray(MS_MS_SpectrumHeader* array, 
00049                                                                                                         
int* index_array, 
00050                                                                                                         
int npeaks,
00051                                                                                                         
int field);
00052 
00053 
00054 
void MSMSSpectrumHeaderArray_fprintAsTabDelimitedTable(FILE* fp, MS_MS_SpectrumHeader* MSMSARRAY, 
int start, 
int stop);
00055 
00056 
void    MSMSSpectrumHeaderArray_sortByParentMOZ(MS_MS_SpectrumHeader* msmsarray, 
long nPeaks);
00057 
char**  MSMSSpectrumHeaderArray_toStringArray(MS_MS_SpectrumHeader* ms2array, 
int size, 
const char* format, 
int field);
00058 
00059 
struct Peak2i* MSMSHeaderArray_getPeak2iArray(MS_MS_SpectrumHeader* array, 
int size);
00060 
00061 
struct Peak2f* MSMSHeaderArray_getMS2Peaks2fForMassChrom(
struct Experiment expmnt, 
struct Map2D* map, 
int bin, 
int* nPeaks);
00062 
00063 
#endif
00064