00001 #ifndef _FPEAKFILE_H_
00002 #define _FPEAKFILE_H_
00003
00004
00005
00006
00007
00008
00019 struct FPeakFile
00020 {
00021 unsigned int state: 2;
00022 unsigned int isMultiple: 1;
00023
00024 FILE* pFPeakFile;
00025 fpos_t datastart;
00026 fpos_t curr_pos;
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 char* szPathname;
00039 char* szName;
00040 char* szSession;
00041 char* szNameInSession;
00042
00043 char* szSourceMapSubID;
00044 char* szMaskMapSubID;
00045
00046 MQExperiment* expmnt;
00047
00048
00049 Rectangle4i borders;
00050
00051
00052 char* ps;
00053 ProcScript procscript;
00054
00055
00056
00057
00058
00059 int curve;
00060
00061 Map2DPosition* pFPeakPositions;
00062
00063 FPeak2i* pFPeaks;
00064 int nFPeaks;
00065 int nCurrFPeak;
00066
00067 int nFPeaksCutoff;
00068
00069 struct Segment* pSegments;
00070
00071 int nSegments;
00072 int nCurrSegment;
00073
00074 int nSkippedSegment;
00075
00076 };
00077
00078 typedef struct FPeakFile FPeakFile;
00079
00080 int FPeakFile_load(char* szFilename, FPeakFile *file);
00081 int FPeakFile_sntLoad(FPeakFile* file, MQExperiment* expmnt,
00082 char* session,
00083 char* name, char* tile);
00084
00085
00086 int FPeakFile_populateNextSegment(FPeakFile* file);
00087 void FPeakFile_initIterator(FPeakFile* file);
00088 Segment* FPeakFile_getNextSegment(FPeakFile* file);
00089
00090 int FPeakFile_querySegment(char* szFilename, int scan, int bin);
00091
00092
00093
00094 void FPeakFile_destroy(FPeakFile* file);
00095 int FPeakFile_countSegments(FPeakFile* file);
00096 void FPeakFile_init(FPeakFile* file);
00097 void FPeakFile_fprintStatusTypes(FILE* fp);
00098 void FPeakFile_fprintHeader2(FILE* fp, FPeakFile* file);
00099 void FPeakFile_fprintHeader(FILE* fp, char *experiment,
00100 Rectangle4i *rect,
00101 ProcScript *PS,
00102 char* source_map_subid,
00103 char* mask_map_subid,
00104 int nSegments,
00105 char* curve,
00106 int npeaks_cutoff);
00107 void FPeakFile_fprintSegment(FILE* fp, Segment* segment, int index, int ismulti);
00108
00109 FPeak2i* FPeakFile_getFPeak2iArray(FPeakFile fpkfile, int* nFPeaks);
00110 Peak2f* FPeakFile_getPeak2fArray(FPeakFile* fpkfile, int* nFPeaks);
00111
00112 int* getSkippedLabels(char* szPath, char* szFilename, int* nsize);
00113
00114 struct Segment MQExperiment_getSegment(MQExperiment expmnt, char* szSession, int nSegment);
00115 struct Segment FPeakFile_getSegment(FPeakFile fpkfile, char* szSession, int nSegment);
00116
00117 void FPeakFile_tile(FPeakFile* fpk, char* fullname);
00118
00119
00120
00121 #endif
00122
00123