• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files

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, me@cheminformatics.eu
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 #include <openbabel/descriptor.h>
00029 
00030 // This macro is used in DLL builds. If it has not
00031 // been set in babelconfig.h, define it as nothing.
00032 #ifndef OBDESC
00033         #define OBDESC
00034 #endif
00035 
00036 namespace OpenBabel
00037 {
00038 
00045 class OBDESC OBGroupContrib : public OBDescriptor
00046 {
00047 public:
00048 
00054 
00055   OBGroupContrib(const char* ID, const char* filename, const char* descr)
00056     : OBDescriptor(ID, false), _filename(filename), _descr(descr){}
00057 
00058   virtual const char* Description();
00059 
00060   virtual OBGroupContrib* MakeInstance(const std::vector<std::string>& textlines)
00061   {
00062     return new OBGroupContrib(textlines[1].c_str(),textlines[2].c_str(),textlines[3].c_str());
00063   }
00064 
00065 
00066   virtual double Predict(OBBase* pOb); 
00067 
00068  private:
00069   bool ParseFile();
00070 
00071   const char* _filename;
00072   const char* _descr;
00073   std::vector<std::pair<OBSmartsPattern*, double> > _contribsHeavy; 
00074   std::vector<std::pair<OBSmartsPattern*, double> > _contribsHydrogen; 
00075 };
00076 
00077 /* The classes OBLogp, OBPSA and OBMR have been replaced by instances of
00078 OBGroupContrib with different IDs.
00079 So instead of: 
00080       OBLogp logP;
00081       cout << "logP  " << logP.Predict(mol) << endl;
00082 use:
00083       OBDescriptor* pDesc = OBDescriptor::FindType("logP")
00084       if(pDesc)
00085         cout << "logP  " << pDesc->Predict(&mol) << endl;
00086 */
00087 } // end namespace OpenBabel
00088 
00089 #endif // OB_GROUPCONTRIB_H
00090 

This file is part of the documentation for Open Babel, version 2.2.0.

Documentation copyright © 1998-2007, the Open Babel Developers.
Open Babel is hosted by: SourceForge Logo
Generated on Thu Jul 3 14:30:33 2008 by doxygen 1.5.6.