Chemical Data Processing Library C++ API - Version 1.4.0
Public Member Functions | Static Public Attributes | List of all members
CDPL::Chem::SurfaceAtomExtractor Class Reference

Extracts the solvent-accessible surface atoms of a set of atoms. More...

#include <SurfaceAtomExtractor.hpp>

Public Member Functions

 SurfaceAtomExtractor ()
 Constructs the SurfaceAtomExtractor instance. More...
 
 SurfaceAtomExtractor (const AtomContainer &cntnr, const MolecularGraph &parent_molgraph, Fragment &frag)
 Perceives the surface accessible atoms of cntnr and adds them to the fragment frag. More...
 
void setProbeRadius (double radius)
 Specifies the radius of the probe sphere that determines the accessibility of the surface atoms. More...
 
double getProbeRadius () const
 Returns the radius of the probe sphere that determines the accessibility of the surface atoms. More...
 
void setGridStepSize (double size)
 Specifies the distance between the grid-points in space which store lists of atoms with proximal positions. More...
 
double getGridStepSize () const
 Return the distance between the grid-points for proximal atom lookup. More...
 
void setGridOversize (double size)
 Specifies the margin that gets added to each side of the molecular graph's bounding-box for the calculation of the final atom-lookup grid dimensions. More...
 
double getGridOversize () const
 Returns the margin that gets added to each side of the molecular graph's bounding-box for the calculation of the final atom-lookup grid dimensions. More...
 
void setMinSurfaceAccessibility (double min_acc)
 Specifies the minimum fraction of test points that have to be accessible by the probe sphere to consider an atom as a surface atom. More...
 
double getMinSurfaceAccessibility () const
 Returns the minimum fraction of test points that have to be accessible by the probe sphere to consider an atom as a surface atom. More...
 
void setNumTestPoints (std::size_t num_points)
 Specifies the number of points on the atom surface at which a test for surface accessibility is carried out. More...
 
std::size_t getNumTestPoints () const
 Returns the number of points on the atom surface at which a test for surface accessibility is carried out. More...
 
void setAtom3DCoordinatesFunction (const Atom3DCoordinatesFunction &func)
 Specifies a function for the retrieval of atom 3D-coordinates. More...
 
const Atom3DCoordinatesFunctiongetAtom3DCoordinatesFunction () const
 Returns the function that was registered for the retrieval of atom 3D-coordinates. More...
 
void extract (const AtomContainer &cntnr, const MolecularGraph &parent_molgraph, Fragment &frag)
 Perceives the surface accessible atoms of cntnr that are part of molgraph and adds them to the fragment frag. More...
 

Static Public Attributes

static constexpr double DEF_PROBE_RADIUS = 1.2
 The default probe sphere radius (in Å). More...
 
static constexpr double DEF_GRID_OVERSIZE = 5.0
 The default margin (in Å) added to each side of the bounding box for the atom-lookup grid. More...
 
static constexpr double DEF_GRID_STEP_SIZE = 0.75
 The default distance between grid points (in Å) along each axis of the atom-lookup grid. More...
 
static constexpr double DEF_MIN_SURFACE_ACC = 0.01
 The default minimum fraction of accessible test points required to classify an atom as surface-accessible. More...
 
static constexpr std::size_t DEF_NUM_TEST_POINTS = 250
 The default number of test points generated per atom on its van-der-Waals surface. More...
 

Detailed Description

Extracts the solvent-accessible surface atoms of a set of atoms.

For each candidate atom, a configurable number of probe-sphere test points is generated on the atom's van-der-Waals surface and tested against the surrounding atoms (looked up via an internal 3D grid for efficiency). An atom is reported as surface-accessible when at least the minimum required fraction of its test points is reachable by the probe sphere. The probe radius, accessibility threshold, test-point count, and grid parameters can be tuned via the setters; atom 3D coordinates are obtained through a user-replaceable accessor function.

Constructor & Destructor Documentation

◆ SurfaceAtomExtractor() [1/2]

CDPL::Chem::SurfaceAtomExtractor::SurfaceAtomExtractor ( )

Constructs the SurfaceAtomExtractor instance.

◆ SurfaceAtomExtractor() [2/2]

CDPL::Chem::SurfaceAtomExtractor::SurfaceAtomExtractor ( const AtomContainer cntnr,
const MolecularGraph parent_molgraph,
Fragment frag 
)

Perceives the surface accessible atoms of cntnr and adds them to the fragment frag.

Parameters
cntnrThe set of atoms for which to perceive the surface accessibility.
parent_molgraphThe parent molecular graph which embeds the atoms in cntnr.
fragThe output fragment where to store the perceived surface atoms.

Member Function Documentation

◆ setProbeRadius()

void CDPL::Chem::SurfaceAtomExtractor::setProbeRadius ( double  radius)

Specifies the radius of the probe sphere that determines the accessibility of the surface atoms.

Parameters
radiusThe radius of the probe sphere.
Note
The default value is specified by the constant SurfaceAtomExtractor::DEF_PROBE_RADIUS.

◆ getProbeRadius()

double CDPL::Chem::SurfaceAtomExtractor::getProbeRadius ( ) const

Returns the radius of the probe sphere that determines the accessibility of the surface atoms.

Returns
The used probe sphere radius.

◆ setGridStepSize()

void CDPL::Chem::SurfaceAtomExtractor::setGridStepSize ( double  size)

Specifies the distance between the grid-points in space which store lists of atoms with proximal positions.

Parameters
sizeThe distance between the grid-points along each axis.
Note
The default value is specified by the constant SurfaceAtomExtractor::DEF_GRID_STEP_SIZE.

◆ getGridStepSize()

double CDPL::Chem::SurfaceAtomExtractor::getGridStepSize ( ) const

Return the distance between the grid-points for proximal atom lookup.

Returns
The used distance between the grid-points along each axis.

◆ setGridOversize()

void CDPL::Chem::SurfaceAtomExtractor::setGridOversize ( double  size)

Specifies the margin that gets added to each side of the molecular graph's bounding-box for the calculation of the final atom-lookup grid dimensions.

Parameters
sizeThe margin that gets added to the molecular graph's bounding-box.
Note
The default value is specified by the constant SurfaceAtomExtractor::DEF_GRID_OVERSIZE.

◆ getGridOversize()

double CDPL::Chem::SurfaceAtomExtractor::getGridOversize ( ) const

Returns the margin that gets added to each side of the molecular graph's bounding-box for the calculation of the final atom-lookup grid dimensions.

Returns
The margin that gets added to the molecular graph's bounding-box.

◆ setMinSurfaceAccessibility()

void CDPL::Chem::SurfaceAtomExtractor::setMinSurfaceAccessibility ( double  min_acc)

Specifies the minimum fraction of test points that have to be accessible by the probe sphere to consider an atom as a surface atom.

Parameters
min_accThe minimum required fraction of accessible test points.
Note
The default value is specified by the constant SurfaceAtomExtractor::DEF_MIN_SURFACE_ACC.

◆ getMinSurfaceAccessibility()

double CDPL::Chem::SurfaceAtomExtractor::getMinSurfaceAccessibility ( ) const

Returns the minimum fraction of test points that have to be accessible by the probe sphere to consider an atom as a surface atom.

Returns
The minimum required fraction of accessible test points.

◆ setNumTestPoints()

void CDPL::Chem::SurfaceAtomExtractor::setNumTestPoints ( std::size_t  num_points)

Specifies the number of points on the atom surface at which a test for surface accessibility is carried out.

Parameters
num_pointsThe number of test points.
Note
The default value is specified by the constant SurfaceAtomExtractor::DEF_NUM_TEST_POINTS.

◆ getNumTestPoints()

std::size_t CDPL::Chem::SurfaceAtomExtractor::getNumTestPoints ( ) const

Returns the number of points on the atom surface at which a test for surface accessibility is carried out.

Returns
The number of test points.

◆ setAtom3DCoordinatesFunction()

void CDPL::Chem::SurfaceAtomExtractor::setAtom3DCoordinatesFunction ( const Atom3DCoordinatesFunction func)

Specifies a function for the retrieval of atom 3D-coordinates.

Parameters
funcThe atom 3D-coordinates function.

◆ getAtom3DCoordinatesFunction()

const Atom3DCoordinatesFunction& CDPL::Chem::SurfaceAtomExtractor::getAtom3DCoordinatesFunction ( ) const

Returns the function that was registered for the retrieval of atom 3D-coordinates.

Returns
The registered atom 3D-coordinates function.

◆ extract()

void CDPL::Chem::SurfaceAtomExtractor::extract ( const AtomContainer cntnr,
const MolecularGraph parent_molgraph,
Fragment frag 
)

Perceives the surface accessible atoms of cntnr that are part of molgraph and adds them to the fragment frag.

Parameters
cntnrThe set of atoms for which to perceive the surface accessibility.
parent_molgraphThe parent molecular graph which embeds the atoms in cntnr.
fragThe output fragment where to store the perceived surface atoms.

Member Data Documentation

◆ DEF_PROBE_RADIUS

constexpr double CDPL::Chem::SurfaceAtomExtractor::DEF_PROBE_RADIUS = 1.2
staticconstexpr

The default probe sphere radius (in Å).

◆ DEF_GRID_OVERSIZE

constexpr double CDPL::Chem::SurfaceAtomExtractor::DEF_GRID_OVERSIZE = 5.0
staticconstexpr

The default margin (in Å) added to each side of the bounding box for the atom-lookup grid.

◆ DEF_GRID_STEP_SIZE

constexpr double CDPL::Chem::SurfaceAtomExtractor::DEF_GRID_STEP_SIZE = 0.75
staticconstexpr

The default distance between grid points (in Å) along each axis of the atom-lookup grid.

◆ DEF_MIN_SURFACE_ACC

constexpr double CDPL::Chem::SurfaceAtomExtractor::DEF_MIN_SURFACE_ACC = 0.01
staticconstexpr

The default minimum fraction of accessible test points required to classify an atom as surface-accessible.

◆ DEF_NUM_TEST_POINTS

constexpr std::size_t CDPL::Chem::SurfaceAtomExtractor::DEF_NUM_TEST_POINTS = 250
staticconstexpr

The default number of test points generated per atom on its van-der-Waals surface.


The documentation for this class was generated from the following file: