Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef OB_PHMODEL_H
00021 #define OB_PHMODEL_H
00022
00023 #include <openbabel/parsmart.h>
00024 #include <openbabel/data.h>
00025
00026 namespace OpenBabel
00027 {
00028
00029
00030 class OBAPI OBChemTsfm
00031 {
00032 std::vector<int> _vadel;
00033 std::vector<std::pair<int,int> > _vele;
00034 std::vector<std::pair<int,int> > _vchrg;
00035 std::vector<std::pair<int,int> > _vbdel;
00036 std::vector<std::pair<std::pair<int,int>,int> > _vbond;
00037 OBSmartsPattern _bgn,_end;
00038 public:
00039 OBChemTsfm() {}
00040 ~OBChemTsfm() {}
00042 bool Init(std::string&start, std::string &end);
00044 bool Apply(OBMol&);
00054 bool IsAcid();
00064 bool IsBase();
00065 };
00066
00107 class OBAPI OBPhModel : public OBGlobalDataBase
00108 {
00109 std::vector<std::vector<int> > _mlist;
00110 std::vector<OBChemTsfm*> _vtsfm;
00111 std::vector<double> _vpKa;
00112 std::vector<std::pair<OBSmartsPattern*,std::vector<double> > > _vschrg;
00113 public:
00114 OBPhModel();
00115 ~OBPhModel();
00116
00117 void ParseLine(const char*);
00119 size_t GetSize() { return _vtsfm.size();}
00120 void AssignSeedPartialCharge(OBMol&);
00121
00122 void CorrectForPH(OBMol&, double pH = 7.4 );
00123 };
00124
00125
00126
00127 }
00128
00129 #endif // OB_PHMODEL_H
00130
00133