00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MS_MASSES_HPP
00021 #define MS_MASSES_HPP
00022
00023
00024 #include <string>
00025
00026
00027 namespace matrix_science {
00028
00029 class ms_umod_configfile;
00030 class ms_quant_component;
00031
00037
00038
00047 class MS_MASCOTRESFILE_API ms_masses: public ms_errors
00048 {
00049 public:
00051 ms_masses();
00052
00054 ms_masses(const ms_masses& src);
00055
00057 ms_masses(const ms_umod_configfile& src, bool addMissingResidueMasses=true);
00058
00060 ms_masses(const ms_umod_configfile& src, const ms_quant_component& quantComp);
00061
00063 ms_masses(const char* filename, const matrix_science::ms_connection_settings * cs = 0);
00064
00066 ~ms_masses();
00067
00069 void defaultValues(bool useDefaultResidueMasses=true);
00070
00072 void copyFrom(const ms_masses* right);
00073
00075 void copyFrom(const ms_umod_configfile *right, bool addMissingResidueMasses=true);
00076
00078 ms_modvector applyFixedMods(const ms_modvector *mods, ms_errs *err);
00079
00081 void applyIsotopes(const ms_umod_configfile *umodFile, const ms_quant_component *quantComp);
00082
00084 bool isSame(const ms_masses& other, const MASS_TYPE massType) const;
00085
00086 #ifndef SWIG
00087
00088 ms_masses& operator=(const ms_masses& right);
00089 #endif
00090
00091 std::string getFileName() const;
00092
00094 void setFileName(const char* name);
00095
00097 void setConnectionSettings(const matrix_science::ms_connection_settings & cs);
00098
00100 matrix_science::ms_connection_settings getConnectionSettings() const;
00101
00103 void read_file();
00104
00106 void save_file();
00107
00109 double getResidueMass(const matrix_science::MASS_TYPE massType, const char residue) const;
00110
00112 void setResidueMasses(const char residue, const double massMono, const double massAve);
00113
00115 double getNtermDelta(const matrix_science::MASS_TYPE massType) const;
00116
00118 double getNterminalMass(const matrix_science::MASS_TYPE massType) const;
00119
00121 double getNtermNeutralLoss(const matrix_science::MASS_TYPE massType) const;
00122
00124 void setNtermModification(const double monoDelta,
00125 const double aveDelta,
00126 const double monoNeutralLoss = 0.0,
00127 const double aveNeutralLoss = 0.0);
00128
00130 double getCtermDelta(const matrix_science::MASS_TYPE massType) const;
00131
00133 double getCterminalMass(const matrix_science::MASS_TYPE massType) const;
00134
00136 double getCtermNeutralLoss(const matrix_science::MASS_TYPE massType) const;
00137
00139 void setCtermModification(const double monoDelta,
00140 const double aveDelta,
00141 const double monoNeutralLoss = 0.0,
00142 const double aveNeutralLoss = 0.0);
00143
00145 double getFragResidueMass(const matrix_science::MASS_TYPE massType, const char residue) const;
00146
00148 bool isResidueModified(const char residue) const;
00149
00151 void setResidueModification(const double monoDelta,
00152 const double aveDelta,
00153 const double monoNeutralLoss,
00154 const double aveNeutralLoss,
00155 const char *residues);
00156
00158 double getHydrogenMass(const matrix_science::MASS_TYPE massType) const;
00159
00161 void setHydrogenMass(const double massMono, const double massAve);
00162
00164 double getCarbonMass(const matrix_science::MASS_TYPE massType) const;
00165
00167 void setCarbonMass(const double massMono, const double massAve);
00168
00170 double getNitrogenMass(const matrix_science::MASS_TYPE massType) const;
00171
00173 void setNitrogenMass(const double massMono, const double massAve);
00174
00176 double getOxygenMass(const matrix_science::MASS_TYPE massType) const;
00177
00179 void setOxygenMass(const double massMono, const double massAve);
00180
00182 double getElectronMass() const;
00183
00185 void setElectronMass(const double mass);
00186
00188 void setStorage(double* res_mono,
00189 double* res_ave,
00190 double* hydrogen,
00191 double* carbon,
00192 double* nitrogen,
00193 double* oxygen,
00194 double* electron);
00195
00197 void defaultMasses(double* res_mono,
00198 double* res_ave,
00199 double* hydrogen,
00200 double* carbon,
00201 double* nitrogen,
00202 double* oxygen,
00203 double* electron,
00204 bool useDefaultResidueMasses = true);
00205
00206 private:
00207
00208 bool getTwoMasses(char * line,
00209 char *lineForError,
00210 double *pMono,
00211 double *pAve,
00212 const double dMin,
00213 const double dMax);
00214
00215 void setCustomProperty();
00216
00217 private:
00218
00219
00220
00221 double* res_mono;
00222 double* res_ave;
00223
00224
00225 bool res_mod[26];
00226 double* frag_res_mono;
00227 double* frag_res_ave;
00228
00229
00230 double ntermDelta[2];
00231 double ctermDelta[2];
00232
00233
00234 double neutralLossNterm[2];
00235 double neutralLossCterm[2];
00236
00237 double* hydrogen;
00238 double* carbon;
00239 double* nitrogen;
00240 double* oxygen;
00241
00242 double* electron;
00243
00244
00245 double _res_mono[26];
00246 double _res_ave[26];
00247 double _frag_res_mono[26];
00248 double _frag_res_ave[26];
00249
00250 double _hydrogen[2];
00251 double _carbon[2];
00252 double _nitrogen[2];
00253 double _oxygen[2];
00254
00255 double _electron;
00256
00257 std::string _fn;
00258 ms_customproperty _custprop;
00259 ms_connection_settings cs_;
00260 };
00262 }
00263
00264 #endif // MS_MASSES_HPP
00265