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

Calculation of GRAIL descriptors for protein-ligand complexes. More...

#include <GRAILDescriptorCalculator.hpp>

Public Types

enum  ElementIndex {
  PI_COUNT ,
  NI_COUNT ,
  AR_COUNT ,
  H_COUNT ,
  HBD_COUNT ,
  HBA_COUNT ,
  XBD_COUNT ,
  XBA_COUNT ,
  HVY_ATOM_COUNT ,
  ROT_BOND_COUNT ,
  TOTAL_HYD ,
  LOGP ,
  TPSA ,
  ENV_HBA_OCC_SUM ,
  ENV_HBA_OCC_MAX ,
  ENV_HBD_OCC_SUM ,
  ENV_HBD_OCC_MAX ,
  PI_AR_SCORE_SUM ,
  PI_AR_SCORE_MAX ,
  AR_PI_SCORE_SUM ,
  AR_PI_SCORE_MAX ,
  H_H_SCORE_SUM ,
  H_H_SCORE_MAX ,
  AR_AR_SCORE_SUM ,
  AR_AR_SCORE_MAX ,
  HBD_HBA_SCORE_SUM ,
  HBD_HBA_SCORE_MAX ,
  HBA_HBD_SCORE_SUM ,
  HBA_HBD_SCORE_MAX ,
  XBD_XBA_SCORE_SUM ,
  XBD_XBA_SCORE_MAX ,
  ES_ENERGY ,
  ES_ENERGY_SQRD_DIST ,
  VDW_ENERGY_ATT ,
  VDW_ENERGY_REP
}
 Indices of the individual elements of the GRAIL descriptor vector. More...
 
typedef std::shared_ptr< GRAILDescriptorCalculatorSharedPointer
 A reference-counted smart pointer [SHPTR] for dynamically allocated GRAILDescriptorCalculator instances. More...
 

Public Member Functions

 GRAILDescriptorCalculator ()
 Constructs the GRAILDescriptorCalculator instance. More...
 
 GRAILDescriptorCalculator (const GRAILDescriptorCalculator &calc)
 Constructs a copy of the GRAILDescriptorCalculator instance calc. More...
 
 ~GRAILDescriptorCalculator ()
 Destructor. More...
 
GRAILDescriptorCalculatoroperator= (const GRAILDescriptorCalculator &calc)
 Copy assignment operator. More...
 
void initTargetData (const Chem::MolecularGraph &tgt_env, const Chem::Atom3DCoordinatesFunction &coords_func, bool tgt_env_changed=true)
 Initializes the calculator with target-environment data for subsequent descriptor calculations. More...
 
void initLigandData (const Chem::MolecularGraph &ligand)
 Initializes the calculator with the molecular graph of the ligand. More...
 
void calculate (const Math::Vector3DArray &atom_coords, Math::DVector &descr, bool update_lig_part=true)
 Calculates the GRAIL descriptor for the current ligand pose. More...
 

Static Public Attributes

static constexpr std::size_t TOTAL_DESCRIPTOR_SIZE = 35
 Total number of elements in the calculated descriptor vector. More...
 
static constexpr std::size_t LIGAND_DESCRIPTOR_SIZE = 13
 Number of ligand-only descriptor elements (the first LIGAND_DESCRIPTOR_SIZE entries of the vector). More...
 

Detailed Description

Calculation of GRAIL descriptors for protein-ligand complexes.

The descriptor is a vector of 35 elements that captures ligand-only properties (counts of pharmacophore features, heavy atoms, rotatable bonds, \( \log P \), \( TPSA \), etc.) and target-environment-specific scores (HBA/HBD occupancy sums and maxima, pi/aromatic/hydrophobic/halogen-bonding interaction scores, and electrostatic

See also
[GRADE]

Member Typedef Documentation

◆ SharedPointer

A reference-counted smart pointer [SHPTR] for dynamically allocated GRAILDescriptorCalculator instances.

Member Enumeration Documentation

◆ ElementIndex

Indices of the individual elements of the GRAIL descriptor vector.

Enumerator
PI_COUNT 

Positive-ionizable feature count (ligand).

NI_COUNT 

Negative-ionizable feature count (ligand).

AR_COUNT 

Aromatic feature count (ligand).

H_COUNT 

Hydrophobic feature count (ligand).

HBD_COUNT 

Hydrogen-bond donor feature count (ligand).

HBA_COUNT 

Hydrogen-bond acceptor feature count (ligand).

XBD_COUNT 

Halogen-bond donor feature count (ligand).

XBA_COUNT 

Halogen-bond acceptor feature count (ligand).

HVY_ATOM_COUNT 

Heavy atom count (ligand).

ROT_BOND_COUNT 

Rotatable bond count (ligand).

TOTAL_HYD 

Total computed hydrophobicity (ligand).

LOGP 

Computed \( \log P \) (ligand).

TPSA 

Computed topological polar surface area (ligand).

ENV_HBA_OCC_SUM 

Sum of HBA occupancy scores against the target environment.

ENV_HBA_OCC_MAX 

Maximum HBA occupancy score against the target environment.

ENV_HBD_OCC_SUM 

Sum of HBD occupancy scores against the target environment.

ENV_HBD_OCC_MAX 

Maximum HBD occupancy score against the target environment.

PI_AR_SCORE_SUM 

Sum of (ligand positive-ionizable → target aromatic) interaction scores.

PI_AR_SCORE_MAX 

Maximum (ligand positive-ionizable → target aromatic) interaction score.

AR_PI_SCORE_SUM 

Sum of (ligand aromatic → target positive-ionizable) interaction scores.

AR_PI_SCORE_MAX 

Maximum (ligand aromatic → target positive-ionizable) interaction score.

H_H_SCORE_SUM 

Sum of hydrophobic-hydrophobic interaction scores.

H_H_SCORE_MAX 

Maximum hydrophobic-hydrophobic interaction score.

AR_AR_SCORE_SUM 

Sum of aromatic-aromatic interaction scores.

AR_AR_SCORE_MAX 

Maximum aromatic-aromatic interaction score.

HBD_HBA_SCORE_SUM 

Sum of (ligand HBD → target HBA) interaction scores.

HBD_HBA_SCORE_MAX 

Maximum (ligand HBD → target HBA) interaction score.

HBA_HBD_SCORE_SUM 

Sum of (ligand HBA → target HBD) interaction scores.

HBA_HBD_SCORE_MAX 

Maximum (ligand HBA → target HBD) interaction score.

XBD_XBA_SCORE_SUM 

Sum of (ligand XBD → target XBA) interaction scores.

XBD_XBA_SCORE_MAX 

Maximum (ligand XBD → target XBA) interaction score.

ES_ENERGY 

Electrostatic interaction energy.

ES_ENERGY_SQRD_DIST 

Electrostatic interaction energy with squared atom-pair distance dependency.

VDW_ENERGY_ATT 

Attractive part of the Van der Waals interaction energy.

VDW_ENERGY_REP 

Repulsive part of the Van der Waals interaction energy.

Constructor & Destructor Documentation

◆ GRAILDescriptorCalculator() [1/2]

CDPL::GRAIL::GRAILDescriptorCalculator::GRAILDescriptorCalculator ( )

Constructs the GRAILDescriptorCalculator instance.

◆ GRAILDescriptorCalculator() [2/2]

CDPL::GRAIL::GRAILDescriptorCalculator::GRAILDescriptorCalculator ( const GRAILDescriptorCalculator calc)

Constructs a copy of the GRAILDescriptorCalculator instance calc.

Parameters
calcThe GRAILDescriptorCalculator to copy.

◆ ~GRAILDescriptorCalculator()

CDPL::GRAIL::GRAILDescriptorCalculator::~GRAILDescriptorCalculator ( )

Destructor.

Member Function Documentation

◆ operator=()

GRAILDescriptorCalculator& CDPL::GRAIL::GRAILDescriptorCalculator::operator= ( const GRAILDescriptorCalculator calc)

Copy assignment operator.

Parameters
calcThe other GRAILDescriptorCalculator instance.
Returns
A reference to itself.

◆ initTargetData()

void CDPL::GRAIL::GRAILDescriptorCalculator::initTargetData ( const Chem::MolecularGraph tgt_env,
const Chem::Atom3DCoordinatesFunction coords_func,
bool  tgt_env_changed = true 
)

Initializes the calculator with target-environment data for subsequent descriptor calculations.

Parameters
tgt_envThe target environment (e.g. binding-site residues).
coords_funcThe function used to retrieve atom 3D-coordinates from tgt_env.
tgt_env_changedIf true, the target environment is reinitialized even if the same target was supplied previously.

◆ initLigandData()

void CDPL::GRAIL::GRAILDescriptorCalculator::initLigandData ( const Chem::MolecularGraph ligand)

Initializes the calculator with the molecular graph of the ligand.

Parameters
ligandThe ligand molecular graph.

◆ calculate()

void CDPL::GRAIL::GRAILDescriptorCalculator::calculate ( const Math::Vector3DArray atom_coords,
Math::DVector descr,
bool  update_lig_part = true 
)

Calculates the GRAIL descriptor for the current ligand pose.

The pose is supplied via per-atom 3D coordinates in atom_coords (same order as the atoms of the molecular graph passed to initLigandData()). The result is written to descr.

Parameters
atom_coordsThe 3D coordinates of the ligand atoms.
descrThe output descriptor vector (resized to TOTAL_DESCRIPTOR_SIZE).
update_lig_partIf true, the ligand-only part of the descriptor is recomputed.

Member Data Documentation

◆ TOTAL_DESCRIPTOR_SIZE

constexpr std::size_t CDPL::GRAIL::GRAILDescriptorCalculator::TOTAL_DESCRIPTOR_SIZE = 35
staticconstexpr

Total number of elements in the calculated descriptor vector.

◆ LIGAND_DESCRIPTOR_SIZE

constexpr std::size_t CDPL::GRAIL::GRAILDescriptorCalculator::LIGAND_DESCRIPTOR_SIZE = 13
staticconstexpr

Number of ligand-only descriptor elements (the first LIGAND_DESCRIPTOR_SIZE entries of the vector).


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