00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef MS_XIC_HPP
00018 #define MS_XIC_HPP
00019
00020
00021
00022 #include <string>
00023
00024 namespace matrix_science
00025 {
00026
00032 class ms_xic_body;
00033 class ms_cache_file;
00034
00036
00039 class MS_MASCOTRESFILE_API ms_xic_point
00040 {
00041 public:
00042 ms_xic_point();
00043 ms_xic_point(double rt, int scanId, double intensity);
00044
00045 double getRt() const;
00046 int getScanId() const;
00047 double getIntensity() const;
00048
00049 void setRt(double rt);
00050 void setScanId(int scanId);
00051 void setIntensity(double intensity);
00052
00053 private:
00054 double rt_;
00055 int scanId_;
00056 double intensity_;
00057 };
00058
00060
00067 class MS_MASCOTRESFILE_API ms_xic :
00068 public ms_handle
00069 {
00070 public:
00072
00075 enum peakState
00076 {
00077 PEAK_STATE_UNKNOWN = 0,
00078 PEAK_STATE_OK = 1,
00079 PEAK_STATE_DISCARD =3,
00080 };
00081
00083 static std::string getXmlCode(peakState code);
00084
00086 static peakState getCodeFromXml(std::string text);
00087
00089 ms_xic();
00090
00092 explicit ms_xic(const ms_xic_body & body);
00093
00095 explicit ms_xic(ms_xic_body * body);
00096
00098 void defaultValues();
00099
00101 void copyFrom(const ms_xic * src);
00102
00103 #ifndef SWIG
00104
00105 ms_xic_body * body();
00106
00108 const ms_xic_body * body() const;
00110 void setCacheFile(matrix_science::ms_cache_file * cacheFile);
00111 #endif
00112
00114 peakState getPeakState() const;
00115
00117 bool hasIndexes() const;
00118
00120 int getPeakStartIndex() const;
00121
00123 int getPeakEndIndex() const;
00124
00126 int getRegionStartIndex() const;
00127
00129 int getRegionEndIndex() const;
00130
00132 int getStartIndex() const;
00133
00135 int getEndIndex() const;
00136
00138 int getPeakStartScanId() const;
00139
00141 int getPeakEndScanId() const;
00142
00144 int getRegionStartScanId() const;
00145
00147 int getRegionEndScanId() const;
00148
00150 int getStartScanId() const;
00151
00153 int getEndScanId() const;
00154
00156 bool getUseTimeShift() const;
00157
00159 double getElutionTimeShift() const;
00160
00162 double getRtPeakStart() const;
00163
00165 double getRtPeakEnd() const;
00166
00168 double getRtRegionStart() const;
00169
00171 double getRtRegionEnd() const;
00172
00174 int getNumPoints() const;
00175 #ifndef SWIG
00176
00177 void getPoint(int index, double & rt, int & scanId, double & intensity) const;
00178 #else // SWIG Multiple return values
00179 void getPoint(int index, double & OUTPUT, int & OUTPUT, double & OUTPUT) const;
00180 #endif
00181
00182 void setPeakStartIndex(int value);
00183
00185 void setPeakEndIndex(int value);
00186
00188 void setRegionStartIndex(int value);
00189
00191 void setRegionEndIndex(int value);
00192
00194 void setStartIndex(int value);
00195
00197 void setEndIndex(int value);
00198
00200 void setPeakStartScanId(int value);
00201
00203 void setPeakEndScanId(int scanId);
00204
00206 void setRegionStartScanId(int scanId);
00207
00209 void setRegionEndScanId(int scanId);
00210
00212 void setStartScanId(int scanId);
00213
00215 void setEndScanId(int scanId);
00216
00218 void setRtPeakStart(double value);
00219
00221 void setRtPeakEnd(double value);
00222
00224 void setRtRegionStart(double value);
00225
00227 void setRtRegionEnd(double value);
00228
00230 void setUseTimeShift(bool value);
00231
00233 void setElutionTimeShift(double value);
00234
00236 void setPeakState(peakState value);
00237
00238 protected:
00240 std::deque<ms_xic_point> & getPoints();
00241
00243 const std::deque<ms_xic_point> & getPoints() const;
00244
00245 };
00246
00248
00249
00250 }
00251
00252 #endif // MS_XIC_HPP
00253
00254