00001 // 00002 // Copyright (C) 2004-2006 Rational Discovery LLC 00003 // 00004 // @@ All Rights Reserved @@ 00005 // 00006 #ifndef _RD_BOUNDS_MATRIX_BUILDER_H_ 00007 #define _RD_BOUNDS_MATRIX_BUILDER_H_ 00008 00009 #include <DistGeom/BoundsMatrix.h> 00010 00011 namespace RDKit { 00012 class ROMol; 00013 namespace DGeomHelpers { 00014 //! Set default upper and lower distance bounds in a distance matrix 00015 /*! 00016 \param mmat pointer to the bounds matrix to be altered 00017 \param defaultMin default value for the lower distance bounds 00018 \param defaultMax default value for the upper distance bounds 00019 00020 */ 00021 void initBoundsMat(DistGeom::BoundsMatrix *mmat,double defaultMin=0.0, 00022 double defaultMax=1000.0); 00023 void initBoundsMat(DistGeom::BoundsMatPtr mmat,double defaultMin=0.0, 00024 double defaultMax=1000.0); 00025 00026 //! Set upper and lower distance bounds between atoms in a molecule based on topology 00027 /*! 00028 This consists of setting 1-2, 1-3 and 1-4 distance based on bond lengths, 00029 bond angles and torsion angle ranges. Optionally 1-5 bounds can also be set, 00030 in particular, for path that contain rigid 1-4 paths. 00031 00032 The final step involves setting lower bound to the sum of the vdW radii for 00033 the remaining atom pairs. 00034 00035 \param mol The molecule of interest 00036 \param mmat Bounds matrix to the bounds are written 00037 \param set15bounds If true try to set 1-5 bounds also based on topology 00038 \param scaleVDW If true scale the sum of the vdW radii while setting lower bounds 00039 so that a smaller value (0.7*(vdw1 + vdw2) ) is used for paths 00040 that are less five bonds apart. 00041 00042 <b>Note</b> 00043 For some strained systems the bounds matrix resulting from setting 1-5 bounds may 00044 fail triangle smoothing. In these cases it is recommended to back out and 00045 recompute the bounds matrix with no 1-5 bounds and with vdW scaling. 00046 */ 00047 void setTopolBounds(const ROMol &mol, DistGeom::BoundsMatPtr mmat, 00048 bool set15bounds=true, bool scaleVDW=false); 00049 } 00050 } 00051 #endif
1.5.5