groupcontrib.h

Go to the documentation of this file.
00001 /**********************************************************************
00002 groupcontrib.h - Handle group contribution algorithms.
00003  
00004 Copyright (C) 2007      by Tim Vandermeersch
00005               2001-2007 by Stephen Jelfs
00006               2001-2007 by Joerg Kurt Wegner, [email protected]
00007 
00008 Original version: JOELib2, http://joelib.sf.net
00009  
00010 This file is part of the Open Babel project.
00011 For more information, see <http://openbabel.sourceforge.net/>
00012  
00013 This program is free software; you can redistribute it and/or modify
00014 it under the terms of the GNU General Public License as published by
00015 the Free Software Foundation version 2 of the License.
00016  
00017 This program is distributed in the hope that it will be useful,
00018 but WITHOUT ANY WARRANTY; without even the implied warranty of
00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020 GNU General Public License for more details.
00021 ***********************************************************************/
00022 
00023 #ifndef OB_GROUPCONTRIB_H
00024 #define OB_GROUPCONTRIB_H
00025 
00026 #include <openbabel/mol.h>
00027 #include <openbabel/parsmart.h>
00028 
00029 namespace OpenBabel
00030 {
00031   // class introduction in groupcontrib.cpp
00032   class OBAPI OBGroupContrib
00033   {
00034     public:
00036       OBGroupContrib();
00038       ~OBGroupContrib();
00039     protected:
00042       bool ParseFile(const char *filename);
00050       double GroupContributions(OBMol &mol);
00051    private:
00052       std::vector<std::pair<OBSmartsPattern*, double> > _contribsHeavy; 
00053       std::vector<std::pair<OBSmartsPattern*, double> > _contribsHydrogen; 
00054   };
00055 
00056   // class introduction in groupcontrib.cpp
00057   class OBAPI OBLogP: public OBGroupContrib
00058   {
00059     public:
00061       OBLogP();
00063       ~OBLogP();
00070       double Predict(OBMol &mol);
00071   };
00072   
00073   // class introduction in groupcontrib.cpp
00074   class OBAPI OBPSA: public OBGroupContrib
00075   {
00076     public:
00078       OBPSA();
00080       ~OBPSA();
00087       double Predict(OBMol &mol);
00088   };
00089 
00090   // class introduction in groupcontrib.cpp
00091   class OBAPI OBMR: public OBGroupContrib
00092   {
00093     public:
00095       OBMR();
00097       ~OBMR();
00104       double Predict(OBMol &mol);
00105   };
00106 
00107 
00108 } // end namespace OpenBabel
00109 
00110 #endif // OB_GROUPCONTRIB_H
00111