RDKit
Open-source cheminformatics and machine learning.
BoundsMatrixBuilder.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2004-2018 Rational Discovery LLC
3 //
4 // @@ All Rights Reserved @@
5 // This file is part of the RDKit.
6 // The contents are covered by the terms of the BSD license
7 // which is included in the file license.txt, found at the root
8 // of the RDKit source tree.
9 //
10 #include <RDGeneral/export.h>
11 #ifndef RD_BOUNDS_MATRIX_BUILDER_H
12 #define RD_BOUNDS_MATRIX_BUILDER_H
13 
14 #include <DistGeom/BoundsMatrix.h>
15 
16 namespace RDKit {
17 class ROMol;
18 namespace DGeomHelpers {
19 //! Set default upper and lower distance bounds in a distance matrix
20 /*!
21  \param mmat pointer to the bounds matrix to be altered
22  \param defaultMin default value for the lower distance bounds
23  \param defaultMax default value for the upper distance bounds
24 
25 */
27  double defaultMin = 0.0,
28  double defaultMax = 1000.0);
29 /*! \overload
30  */
32  double defaultMin = 0.0,
33  double defaultMax = 1000.0);
34 
35 //! Set upper and lower distance bounds between atoms in a molecule based on
36 // topology
37 /*!
38  This consists of setting 1-2, 1-3 and 1-4 distance based on bond lengths,
39  bond angles and torsion angle ranges. Optionally 1-5 bounds can also be set,
40  in particular, for path that contain rigid 1-4 paths.
41 
42  The final step involves setting lower bound to the sum of the vdW radii for
43  the remaining atom pairs.
44 
45  \param mol The molecule of interest
46  \param mmat Bounds matrix to the bounds are written
47  \param set15bounds If true try to set 1-5 bounds also based on topology
48  \param scaleVDW If true scale the sum of the vdW radii while setting lower
49  bounds
50  so that a smaller value (0.7*(vdw1 + vdw2) ) is used for
51  paths
52  that are less five bonds apart.
53 
54  <b>Note</b>
55  For some strained systems the bounds matrix resulting from setting 1-5 bounds
56  may
57  fail triangle smoothing. In these cases it is recommended to back out and
58  recompute the bounds matrix with no 1-5 bounds and with vdW scaling.
59 */
62  bool set15bounds = true,
63  bool scaleVDW = false);
64 
65 /*! \overload for experimental torsion angle preferences
66  */
68  const ROMol &mol, DistGeom::BoundsMatPtr mmat,
69  std::vector<std::pair<int, int>> &bonds,
70  std::vector<std::vector<int>> &angles, bool set15bounds = true,
71  bool scaleVDW = false);
72 } // namespace DGeomHelpers
73 } // namespace RDKit
74 #endif
BoundsMatrix.h
RDKIT_DISTGEOMHELPERS_EXPORT
#define RDKIT_DISTGEOMHELPERS_EXPORT
Definition: export.h:151
RDKit::ROMol
Definition: ROMol.h:171
DistGeom::BoundsMatPtr
boost::shared_ptr< BoundsMatrix > BoundsMatPtr
Definition: BoundsMatrix.h:118
RDKit
Std stuff.
Definition: Atom.h:30
RDKit::DGeomHelpers::initBoundsMat
RDKIT_DISTGEOMHELPERS_EXPORT void initBoundsMat(DistGeom::BoundsMatrix *mmat, double defaultMin=0.0, double defaultMax=1000.0)
Set default upper and lower distance bounds in a distance matrix.
RDKit::DGeomHelpers::setTopolBounds
RDKIT_DISTGEOMHELPERS_EXPORT void setTopolBounds(const ROMol &mol, DistGeom::BoundsMatPtr mmat, bool set15bounds=true, bool scaleVDW=false)
Set upper and lower distance bounds between atoms in a molecule based on.
DistGeom::BoundsMatrix
Class to store the distance bound.
Definition: BoundsMatrix.h:27
export.h