Main Page | Modules | Data Structures | File List | Data Fields | Globals

massspec/isocluster.h

00001 #ifndef _ISOCLUSTER_H_ 00002 #define _ISOCLUSTER_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 00009 #define CARBON_RICH 16.34 00010 #define CARBON_POOR 34.34 00011 00012 #define MAX_NO_MS2_SCANS_PER_PEAK 50 00013 00014 extern int ISOCLUSTER_SCORE_RT_SD_WIDTH; 00015 extern int ISOCLUSTER_SCORE_DELTA_MZ_SD_WIDTH; 00016 extern int ISOCLUSTER_SCORE_RT_SD_DECIMAL_PLACES; 00017 extern int ISOCLUSTER_SCORE_DELTA_MZ_SD_DECIMAL_PLACES; 00018 00019 struct ISOTOPIC_CLUSTER 00020 { 00021 unsigned isSubset: 1; 00022 00023 unsigned int isValid; 00024 00025 char* szSession; 00026 int peakgroup; 00027 int fpeak; 00028 00029 int *index_array; 00030 FPeak2iPointer *pfpeaks; //Array of pointers of FPeak 00031 int npeaks; 00032 00033 int *zarray; 00034 00035 float dCharge; 00036 00037 float ab_avg; 00038 float ab_sd; 00039 00040 float rt_avg; 00041 float rt_sd; 00042 00043 float mz_avg; 00044 float mz_sd; 00045 00046 float delta_mz_avg; 00047 float delta_mz_sd; 00048 00049 int ncupper; 00050 int nclower; 00051 00052 int ncarbons; 00053 float dev; 00054 int mip; 00055 00056 00057 Experiment* ms2exp; 00058 int ms2indices[MAX_NO_MS2_SCANS_PER_PEAK+1]; 00059 }; 00060 00061 typedef struct ISOTOPIC_CLUSTER ISOTOPIC_CLUSTER; 00062 typedef ISOTOPIC_CLUSTER IsotopicCluster; 00063 typedef IsotopicCluster* IsotopicClusterPointer; 00064 00065 int findSubsetClusters(PeakGroup* PG); 00066 int isClusterSubsetOfSubset(ISOTOPIC_CLUSTER IC1, ISOTOPIC_CLUSTER IC2); 00067 int doesFPeak2iBelongToCluster(FPeak2iPointer pfpeak, ISOTOPIC_CLUSTER IC); 00068 00069 // Enumeration of properties 00070 00071 #define IC_NPEAKS 0x00000001 00072 #define IC_ABUNDANCE 0x00000002 00073 #define IC_CHARGE 0x00000004 00074 #define IC_PEAKGROUP 0x00000008 00075 #define IC_CARBONS 0x00000010 00076 #define IC_FUNDAMENTAL 0x00000020 00077 #define IC_PRIMARY_PEAK2I 0x00000040 00078 #define IC_RT 0x00000080 00079 #define IC_MS2 0x00000100 00080 #define IC_NPEAKS_SD 0x00000200 00081 #define IC_MZ 0x00000400 00082 00083 enum {IC_TABLE, IC_WITH_HEADER}; 00084 00085 int IsotopicCluster_cmpByCharge (const void *p1, const void *p2); 00086 int IsotopicCluster_cmpByRT (const void *p1, const void *p2); 00087 int IsotopicCluster_cmpByMZ (const void *p1, const void *p2); 00088 int IsotopicCluster_cmpByAbundance (const void *p1, const void *p2); 00089 int IsotopicCluster_cmpByNPeaks (const void *p1, const void *p2); 00090 int IsotopicCluster_cmpByPrimaryPeak2i(const void *p1, const void *p2); 00091 int IsotopicCluster_cmpByNPeaksSD (const void *p1, const void *p2); 00092 00093 void IsotopicClusterArray_sortByField(ISOTOPIC_CLUSTER *ICArray, int nic, int field); 00094 00095 int cmpIsotopicClusterPointerByPrimaryPeak2i(const void *p1, const void *p2); 00096 00097 void sortIsotopicClusterPointerArrayByPrimaryPeak2i(IsotopicClusterPointer* ICPArray, int nicp); 00098 void IsotopicCluster_destroy(ISOTOPIC_CLUSTER *cluster); 00099 void IsotopicCluster_fprint (FILE* fp, int index, ISOTOPIC_CLUSTER cluster, int format); 00100 void IsotopicCluster_init (IsotopicCluster* isc, int npeaks); 00101 void IsotopicClusterArray_fprint(FILE* fp, ISOTOPIC_CLUSTER *clusters, int nclusters, int format); 00102 void IsotopicClusterArray_fprintWithIndex(FILE* fp, ISOTOPIC_CLUSTER *clusters, int nclusters, int start_index); 00103 IsotopicCluster* IsotopicClusterArray_convertFromPeakGroupFile(PeakGroupFile* file, RestrictionStatistics* pRestr, int nRestr, int *nIsoclusters); 00104 00105 void IsotopicClusterArray_destroy(ISOTOPIC_CLUSTER **cluster, int nclusters); 00106 IsotopicClusterPointer* createIsoclusterPointerArrayFromPeakGroupFile(PEAK_GROUP_FILE PGF, int* nicp); 00107 00108 int IsotopicCluster_calcCarbonBounds(IsotopicCluster* cluster); 00109 void IsotopicCluster_calcRT (IsotopicCluster* IC); 00110 void IsotopicCluster_calcDeltaMZ (IsotopicCluster* IC); 00111 void IsotopicCluster_calcTotalAbu(IsotopicCluster* IC); 00112 00113 void IsotopicCluster_setPeakGroup(IsotopicCluster* IC, int peakgroup); 00114 float guessAbundance(IsotopicCluster* ic, int index); 00115 00116 void IsotopicCluster_fixCharge(IsotopicCluster* IC, int charge); 00117 void IsotopicCluster_createFromFPeak2i(IsotopicCluster* IC, FPeak2i* pFPeak); 00118 00119 IsotopicCluster* IsotopicClusterArray_create(int size); 00120 IsotopicCluster* IsotopicClusterArray_linkMS2Scans(IsotopicCluster* ica, int* nIsoclusters, Map2D* map); 00121 void IsotopicCluster_rectangleQuantitation(IsotopicCluster* ic, Map2D* map, Rectangle4i rect); 00122 00123 void tprintIC(FILE* fp, IsotopicCluster* ic, int nsize); 00124 00125 int FPeak2iArray_getHighestScoringIsotopicCluster(FPeak2i* pArray, int nArray, 00126 IsotopicCluster* out); 00127 00128 #endif 00129 00130

Generated on Sun Feb 13 01:05:58 2005 for MapQuant by doxygen 1.3.7