Matrix Science header

ms_masses.hpp

00001 /*
00002 ##############################################################################
00003 # file: ms_masses.hpp                                                        #
00004 # 'msparser' toolkit                                                         #
00005 # Encapsulates "masses"-file that defines atom and residue masses            #
00006 # about several consecutive erros                                            #
00007 ##############################################################################
00008 # COPYRIGHT NOTICE                                                           #
00009 # Copyright 1998-2003 Matrix Science Limited  All Rights Reserved.           #
00010 #                                                                            #
00011 ##############################################################################
00012 #    $Archive:: /Mowse/ms_mascotresfile/include/ms_masses.hpp              $ #
00013 #     $Author: villek@matrixscience.com $ #
00014 #       $Date: 2018-07-30 16:23:53 +0100 $ #
00015 #   $Revision: 1b450440f9c97e1e41d0fc6016a27d68951d4532 | MSPARSER_REL_2_8_1-0-gea32989045 $ #
00016 # $NoKeywords::                                                            $ #
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; // forward declaration
00030     class ms_quant_component; // forward declaration
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         // final destinations - they are assigned either 
00219         // 1) supplied array pointers 
00220         // 2) the internal storages
00221         double* res_mono;
00222         double* res_ave;
00223 
00224         // mass combined with neutral loss for residue-specific mods
00225         bool res_mod[26];
00226         double* frag_res_mono;
00227         double* frag_res_ave;
00228 
00229         // masses of terminal groups for terminus mods
00230         double ntermDelta[2];
00231         double ctermDelta[2];
00232 
00233         // neutral losses on terminal groups for terminus mods
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         // internal storages in case they are not supplied with a proper constructor
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     }; // class ms_masses // end of config_group
00262 }
00263 
00264 #endif // MS_MASSES_HPP
00265 

Copyright © 2022 Matrix Science Ltd.  All Rights Reserved. Generated on Thu Mar 31 2022 01:12:29