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