RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
DCLV.h
Go to the documentation of this file.
1/*=================================================================*/
2/* Copyright (C) 2024 Greg Landrum and other RDKit contributors */
3/* Contributed by NextMove Software, Cambridge, UK. */
4/* */
5/* */
6/* @@ All Rights Reserved @@ */
7/* The contents are covered by the terms of the */
8/* BSD license, which is included in the file */
9/* license.txt. */
10/*=================================================================*/
11
12#ifndef RDKIT_DCLV_H
13#define RDKIT_DCLV_H
14
15#include <iostream>
16#include <string>
17#include <list>
18#include <cmath>
19
20#include <GraphMol/GraphMol.h>
21#include <GraphMol/MolOps.h>
22#include <Geometry/point.h>
23#include <GraphMol/RDKitBase.h>
24#include <RDGeneral/export.h>
25
26namespace RDKit {
27namespace Descriptors {
28
30 public:
31 /*!
32
33 \param mol: input molecule or protein
34 \param isProtein: flag to identify input as protein vs unbound ligand
35 (default=true, Protein as input) NOTE that the results for isProtein=false
36 are currently not correct
37 \param includeLigand: flag to trigger
38 inclusion of bound ligand in surface area and volume calculations where
39 molecule is a protein [default false]
40 \param probeRadius: radius of the
41 sphere representing the probe solvent atom
42 \param depth: controls the number
43 of dots per atom
44 \param dotDensity: controls density of dots per atom
45
46 */
47 DoubleCubicLatticeVolume(const ROMol& mol, bool isProtein = true,
48 bool includeLigand = false, double probeRadius = 1.4,
49 int depth = 2, int dotDensity = 0);
50 //! Class for calculation of the Shrake and Rupley surface area and volume
51 //! using the Double Cubic Lattice Method.
52 //!
53 //! Frank Eisenhaber, Philip Lijnzaad, Patrick Argos, Chris Sander and
54 //! Michael Scharf, "The Double Cubic Lattice Method: Efficient Approaches
55 //! to Numerical Integration of Surface Area and Volume and to Dot Surface
56 //! Contouring of Molecular Assemblies", Journal of Computational Chemistry,
57 //! Vol. 16, No. 3, pp. 273-284, 1995.
58
59 // value returns
60 double getSurfaceArea() {
61 /*! \return Solvent Accessible Surface Area */
62 return surfaceArea;
63 }
64
65 double getVolume() {
66 /*! \return Volume bound by probe sphere */
67 return totalVolume;
68 }
69
70 double getVDWVolume() { /*! \return van der Waals Volume */
71 return vdwVolume;
72 }
73
74 double getCompactness() {
75 /*! \return Compactness of the protein */
76 return compactness;
77 }
78
80 /*! \return Packing Density of the protein */
81 return packingDensity;
82 }
83
84 private:
85 // outputs
86 double surfaceArea;
87 double totalVolume;
88 double vdwVolume;
89 double compactness;
90 double packingDensity;
91};
92} // namespace Descriptors
93} // namespace RDKit
94#endif
pulls in RWMol and ROMol
pulls in the core RDKit functionality
DoubleCubicLatticeVolume(const ROMol &mol, bool isProtein=true, bool includeLigand=false, double probeRadius=1.4, int depth=2, int dotDensity=0)
#define RDKIT_DESCRIPTORS_EXPORT
Definition export.h:105
Std stuff.