MolSurf.h

Go to the documentation of this file.
00001 //
00002 //  Copyright (C) 2007-2011 Greg Landrum
00003 //
00004 //   @@ All Rights Reserved @@
00005 //  This file is part of the RDKit.
00006 //  The contents are covered by the terms of the BSD license
00007 //  which is included in the file license.txt, found at the root
00008 //  of the RDKit source tree.
00009 //
00010 
00011 /*! \file MolSurf.h
00012 
00013   \brief Use MolDescriptors.h in client code.
00014 
00015 */
00016 #ifndef __RD_MOLSURF_H__
00017 #define __RD_MOLSURF_H__
00018 
00019 #include<vector>
00020 
00021 namespace RDKit{
00022   class ROMol;
00023   namespace Descriptors {
00024     const std::string labuteASAVersion="1.0.2";
00025 
00026     //! calculates atomic contributions to Labute's Approximate Surface Area
00027     /*!  
00028       Definition from P. Labute's article in the Journal of the
00029       Chemical Computing Group and J. Mol. Graph. Mod.  _18_ 464-477
00030       (2000)
00031 
00032       \param mol        the molecule of interest
00033       \param Vi         used to return the explict atom contribs
00034       \param hContrib   used to return the H contributions (if calculated)
00035       \param includeHs  (optional) if this is true (the default),
00036           the contribution of H atoms to the ASA will be included.
00037       \param force      (optional) calculate the values even if they are cached.
00038 
00039       \return the sum of the atomic contributions
00040 
00041     */
00042     double getLabuteAtomContribs(const ROMol &mol,
00043                                  std::vector<double> &Vi,
00044                                  double &hContrib,
00045                                  bool includeHs=true,
00046                                  bool force=false);
00047 
00048     //! calculates Labute's Approximate Surface Area (ASA from MOE)
00049     /*!  
00050       Definition from P. Labute's article in the Journal of the
00051       Chemical Computing Group and J. Mol. Graph. Mod.  _18_ 464-477
00052       (2000)
00053 
00054       \param mol        the molecule of interest
00055       \param includeHs  (optional) if this is true (the default),
00056           the contribution of H atoms to the ASA will be included.
00057       \param force      (optional) calculate the value even if it's cached.
00058           
00059     */
00060     double calcLabuteASA(const ROMol &mol,bool includeHs=true,
00061                          bool force=false);
00062 
00063     const std::string tpsaVersion="1.1.0";
00064     //! calculates atomic contributions to the TPSA value
00065     /*!  
00066       The TPSA definition is from:
00067       P. Ertl, B. Rohde, P. Selzer
00068        Fast Calculation of Molecular Polar Surface Area as a Sum of Fragment-based
00069        Contributions and Its Application to the Prediction of Drug Transport 
00070        Properties, J.Med.Chem. 43, 3714-3717, 2000
00071 
00072       \param mol        the molecule of interest
00073       \param Vi         used to return the atom contribs
00074       \param force      (optional) calculate the values even if they are cached.
00075 
00076       \return the sum of the atomic contributions
00077 
00078     */
00079     double getTPSAAtomContribs(const ROMol &mol,
00080                                std::vector<double> &Vi,
00081                                bool force=false);
00082 
00083     //! calculates the TPSA value for a molecule
00084     /*!  
00085       The TPSA definition is from:
00086       P. Ertl, B. Rohde, P. Selzer
00087        Fast Calculation of Molecular Polar Surface Area as a Sum of Fragment-based
00088        Contributions and Its Application to the Prediction of Drug Transport 
00089        Properties, J.Med.Chem. 43, 3714-3717, 2000
00090 
00091       \param mol        the molecule of interest
00092       \param force      (optional) calculate the value even if it's cached.
00093           
00094     */
00095     double calcTPSA(const ROMol &mol,
00096                     bool force=false);
00097 
00098     std::vector<double> calcSlogP_VSA(const ROMol &mol,std::vector<double> *bins=0,
00099                                       bool force=false);
00100     std::vector<double> calcSMR_VSA(const ROMol &mol,std::vector<double> *bins=0,
00101                                       bool force=false);
00102     std::vector<double> calcPEOE_VSA(const ROMol &mol,std::vector<double> *bins=0,
00103                                       bool force=false);
00104     
00105   } // end of namespace Descriptors
00106 } //end of namespace RDKit
00107 
00108 #endif