RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
RingUtils Namespace Reference

Typedefs

typedef std::vector< int > INT_VECT
 
typedef std::vector< std::vector< int > > VECT_INT_VECT
 
typedef std::map< int, std::vector< int > > INT_INT_VECT_MAP
 

Functions

RDKIT_GRAPHMOL_EXPORT void pickFusedRings (int curr, const INT_INT_VECT_MAP &neighMap, INT_VECT &res, boost::dynamic_bitset<> &done, int depth=0)
 Pick a set of rings that are fused together and contain a specified ring.
 
RDKIT_GRAPHMOL_EXPORT void makeRingNeighborMap (const VECT_INT_VECT &brings, INT_INT_VECT_MAP &neighMap, unsigned int maxSize=0, unsigned int maxOverlapSize=0)
 For each ring in bring compute and store the ring that are fused (share at least one bond with it).
 
RDKIT_GRAPHMOL_EXPORT void convertToBonds (const VECT_INT_VECT &res, VECT_INT_VECT &brings, const RDKit::ROMol &mol)
 converts a list of atom indices into a list of bond indices
 

Typedef Documentation

◆ INT_INT_VECT_MAP

typedef std::map<int, std::vector<int> > RingUtils::INT_INT_VECT_MAP

Definition at line 29 of file Rings.h.

◆ INT_VECT

typedef std::vector<int> RingUtils::INT_VECT

Definition at line 27 of file Rings.h.

◆ VECT_INT_VECT

typedef std::vector<std::vector<int> > RingUtils::VECT_INT_VECT

Definition at line 28 of file Rings.h.

Function Documentation

◆ convertToBonds()

RDKIT_GRAPHMOL_EXPORT void RingUtils::convertToBonds ( const VECT_INT_VECT res,
VECT_INT_VECT brings,
const RDKit::ROMol mol 
)

converts a list of atom indices into a list of bond indices

Parameters
reslist of ring - each ring is a list of atom ids
bringsreference to a list of rings to the write the results to each ring here is list of bonds ids
molthe molecule of interest

Assumptions:

  • each list of atom ids in "res" form a legitimate ring
  • each of these list of ordered such that a ring can be traversed

◆ makeRingNeighborMap()

RDKIT_GRAPHMOL_EXPORT void RingUtils::makeRingNeighborMap ( const VECT_INT_VECT brings,
INT_INT_VECT_MAP neighMap,
unsigned int  maxSize = 0,
unsigned int  maxOverlapSize = 0 
)

For each ring in bring compute and store the ring that are fused (share at least one bond with it).

Useful both for the keulization stuff and aromaticity perception.

Parameters
bringslist of rings - each ring is specified as a list of bond IDs
neighMapan STL map into which the results are stored. Each entry in the map is indexed by the ring ID and the contents are the list rings (rather their IDs) that are fused with this ring
maxSizeif this is >0, rings that are larger than the threshold will not be considered as candidates to be neighbors
maxOverlapSizeif this is >0, rings that overlap by more bonds than this will not be considered to be neighbors

◆ pickFusedRings()

RDKIT_GRAPHMOL_EXPORT void RingUtils::pickFusedRings ( int  curr,
const INT_INT_VECT_MAP neighMap,
INT_VECT res,
boost::dynamic_bitset<> &  done,
int  depth = 0 
)

Pick a set of rings that are fused together and contain a specified ring.

Parameters
currthe ID for the irng that should be in the fused system
neighMapadjacency lists for for all rings in the molecule. See documentation for makeNeighMap
resused to return the results: a list of rings that are fused with curr in them
donea bit vector recording the rings that are already dealt with this also can be used to avoid any rings that should not be included in the fused system
depthused to track recursion depth