00001 
#ifndef _SEGMENT_H_
00002 
#define _SEGMENT_H_
00003 
00004 
00005 
00006 
00007 
00008 
00026 struct Segment
00027 {
00028         
int                                     nStatus;
00029         
00030         MQTileID                        bTile;
00031         
int                                     nIndex;
00032 
00033         Attributes                      attr;
00034         
00035         
FPeak2i*                        pFPeaks;
00036         
FPeak2iPointer*         pPFPeaks;
00037 
00038         
int                                     nFPeaks;
00039         
float                           dChiSquare;
00040         
int                                     nIterations;
00041 };
00042 
00043 
typedef struct Segment Segment;
00044 
00045 
void            Segment_fprint  (FILE* fp, Segment seg);
00046 
void            Segment_destroy (Segment* segment);
00047 Segment         Segment_copy(Segment *segm);
00048 
void            Segment_validatePositivePeaks(Segment* segment);
00049 
void            Segment_init(Segment* segment, Attributes* attr);
00050 Segment*        SegmentArray_create                     (
int nSegments);
00051 Segment*        SegmentArray_getUsingIndexArray(Segment* array, 
int* pIndexArray, 
int nIndices);
00052 
void            SegmentArray_destroy(Segment** pSegmentArray, 
int nSegments);
00053 
void Segment_createFromFPeak2iArray(Segment* segment, 
FPeak2i* pFPeaks, 
int size);
00054 
00055 
00056 
FPeak2i* SegmentArray_getFPeaksUsingIndexArray(Segment* array, 
int* index_array, 
int nSegments, 
00057                                                                                            
int* nPeaks);
00058 
00059 
00060 
FPeak2i* SegmentArray_getFPeaks(Segment* array, 
int nSegments, 
int* nFPeaks);
00061 
void     SegmentArray_markSegmentsContainingPeaks( Segment* pSegment, 
int nSegment, 
00062                                                                                            
Peak2i* peaks, 
int npeaks, 
00063                                                                                            
Map2D* map, 
float dMZTolerance, 
int nScanTolerance);
00064 
00065 
00066 
typedef struct
00067 
{
00068         
FPeak2iPointer  fpeak;
00069         
int                             segment;
00070 } FPeak2iToSegmentIndex;
00071 
00072 
typedef struct
00073 
{
00074         
char* szSession;
00075         
int   nSegment;
00076 } SegmentQuery;
00077 
00078 FPeak2iToSegmentIndex* SegmentArray_getFPeak2iToSegmentIndex(Segment* pSegments, 
00079                                                                                                                          
int nSegments, 
00080                                                                                                                          
int nFPeaks);
00081 
void SegmentArray_sortByTileAndSegment(Segment* pArray, 
int nArray);
00082 
00083 
void FPeak2iToSegmentIndex_sortByFPeak2iPointerSamplingCoordinates(FPeak2iToSegmentIndex* fpk2sgm, 
int size);
00084 
int  FPeak2iToSegmentIndex_queryBySamplingCoordinates(FPeak2iToSegmentIndex* fpk2sgm, 
int size, 
int scan, 
int bin);
00085 
00086 
int SegmentArray_countFPeaks(Segment* pSegments, 
int nSegments);
00087 
int SegmentArray_queryBySamplingCoordinates(Segment* pSegments, 
int nSegments, 
int nFPeaks, 
int scan, 
int bin);
00088 Segment* SegmentArray_queryByTileAndSegment(Segment* pArray, 
int nArray, MQTileID bTile, 
int nSegment);
00089 
#endif
00090 
00091 
00092 
00093