peakgroup.h

Go to the documentation of this file.
00001 #ifndef _PEAK_GROUP_H_
00002 #define _PEAK_GROUP_H_
00003 
00004 /* Copyright (c) Kyriacos Leptos and the President and Fellows of Harvard University
00005    Release Date: 2004-11-01
00006    Part of the MapQuant suite library "massspec.lib" 
00007 */
00008 
00018 enum {  PEAKGROUP_FORMAT_WITH_CURVE         = 0x00000001,
00019         PEAKGROUP_FORMAT_WITH_POSITION      = 0x00000002,
00020         PEAKGROUP_FORMAT_VALID_ONLY         = 0x00000004,
00021         PEAKGROUP_FORMAT_WITH_FITTING_PARAM = 0x00000008
00022 };
00023 
00024 extern int PEAKGROUP_INDEX_WIDTH;
00025 
00032 struct PeakGroup
00033 {
00034     unsigned                    isValid: 1;
00035     unsigned                    isFitted: 1;
00036 
00037     int                         nIndex;
00038     int                         rti;
00039     
00040     FPeak2i*                    pFPeaks;
00041 
00042     FPeak2iPointer*             pfpeaks;            //Array of pointers of FPeak
00043     int                         npeaks;
00044 
00045     Map2DPositionPointer*       pPFPeakPosition;
00046     int                         nPositions;
00047     
00048     struct IsotopicCluster*     IC;
00049     int                         nic;
00050     
00051 
00052     int                 nSegments;
00053     
00054     MQTileID*           pTileArray;
00055     int                 nTiles;
00056 
00057     // Fitting arguments
00058     float               dChiSqr;
00059     int                 nIter;
00060     int                 nStatus;
00061     float               dAreaPeakGroupMap;
00062     float               dNumberOfSeconds;
00063 };
00064 
00065 typedef struct PeakGroup PeakGroup;
00066 typedef PeakGroup PEAK_GROUP;
00067 
00068 #define MAX_NO_PG_FPEAKS 1000
00069 
00070 // ***************************************************
00071 // *************** PeakGroup Functions ***************
00072 // ***************************************************
00073 
00074 void            PeakGroup_destroy           (PeakGroup* peakgroup);
00075 PeakGroup       PeakGroup_copy              (PeakGroup *peakgroup);
00076 void            PeakGroup_init              (PeakGroup* pg);
00077 
00078 void            PeakGroup_fprintf           (FILE* fp, PeakGroup* peakgroup, int index, int format);
00079 void            PeakGroup_fprint            (FILE* fp, PeakGroup* peakgroup, int index);
00080 void            PeakGroup_fprintWithCurve   (FILE* fp, PeakGroup* peakgroup, int index);
00081 void            PeakGroup_fprintWithPos     (FILE* fp, PeakGroup* peakgroup, int index);
00082 
00083 int             PeakGroup_cmpByTiles(const void *p1, const void *p2);
00084 int             PeakGroup_cmpByNPeaks(const void *p1, const void *p2);
00085 
00086 void            PeakGroup_sortFPeaksByMOZ(PeakGroup *peakgroup);
00087 void            PeakGroup_createFromFPeak2iArray      (PeakGroup* PG, FPeak2i* pFPeaks, int size);
00088 Rectangle4i     PeakGroup_getBoundaries(PEAK_GROUP PG);
00089 MQTileID PeakGroup_getSmallestTile(PeakGroup* peakgroup);
00090 int PeakGroup_countSegmentsFromTile(PeakGroup* peakgroup, MQTileID bTile);
00091 int             PeakGroup_isPeak2iInPeakGroup         (PeakGroup  PG, int scan, int bin);
00092 
00093 
00094 Peak2i*  SegmentArray_getPeaksNotInPeakGroup  (Segment* pSegments, int nSegments, 
00095                                                PeakGroup peakgroup, 
00096                                                int* nPeaks);
00097 
00098 FPeak2i* SegmentArray_getFPeaksNotInPeakGroupUsingIndexArray(Segment* pSegmentArray, int* index_array, int nSegments, 
00099                                                             PeakGroup peakgroup, 
00100                                                             int* nPeaks);
00101 
00102 Map2DPositionPointer*   PeakGroup_getMap2DPositionPointerArray(PeakGroup* pg);
00103 
00104 // edited 2004-07-28
00105 
00106 int* PeakGroup_getSpanningSegmentIndexArrayUsingLabeledMap(PeakGroup* peakgroup, 
00107                                                            Map2D* mask, 
00108                                                            int* nSegments);
00109 
00110 int* PeakGroup_getSpanningSegmentIndexArrayUsingSegmentArray(   PeakGroup* peakgroup, 
00111                                                                 Segment*   pSegmentArray, int nSegmentArray,
00112                                                                 int* nSegments);
00113 
00114 int  PeakGroup_getSpanningMapFPeaks(PeakGroup* peakgroup, Segment* psegments, int nsegments, FPeak2i* pfpeaks, int *nfpeaks);
00115 
00116 int         PeakGroup_countSpanningTiles(PeakGroup* peakgroup);
00117 int         PeakGroup_getTileArray(PeakGroup* peakgroup);
00118 //void      PeakGroup_getSmallestTile   (PeakGroup* peakgroup);
00119 
00120 
00121 #endif 
00122 

Generated on Tue Feb 7 11:54:27 2006 for libmqobject by  doxygen 1.4.6