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&);
00045 };
00046
00048 class OBPhModel : public OBGlobalDataBase
00049 {
00050 std::vector<std::vector<int> > _mlist;
00051 std::vector<OBChemTsfm*> _vtsfm;
00052 std::vector<std::pair<OBSmartsPattern*,std::vector<double> > > _vschrg;
00053 public:
00054 OBPhModel();
00055 ~OBPhModel();
00056
00057 void ParseLine(const char*);
00059 unsigned int GetSize() { return _vtsfm.size();}
00060 void AssignSeedPartialCharge(OBMol&);
00061 void CorrectForPH(OBMol&);
00062 };
00063
00064
00065
00066 }
00067
00068 #endif // OB_PHMODEL_H
00069