$darkmode
DENOPTIM
denoptim.graph.rings.CyclicGraphHandler Class Reference

This is a tool to identify and manage vertices' connections not included in the DGraph, which is a spanning tree, thus connections that identify cyclic paths in the graph. More...

Collaboration diagram for denoptim.graph.rings.CyclicGraphHandler:
[legend]

Classes

class  ClosableConf
 Utility class to handle the simultaneous closeness condition. More...
 

Public Member Functions

 CyclicGraphHandler (RingClosureParameters settings, FragmentSpace fragSpace)
 Constructor from data structure. More...
 
List< RinggetRandomCombinationOfRings (IAtomContainer inMol, DGraph molGraph, int maxRingClosures) throws DENOPTIMException
 Identifies a random combination of ring closing paths and returns it as list of DENOPTIMRings ready to be appended to a DENOPTIMGraph. More...
 
ArrayList< List< Ring > > getPossibleCombinationOfRings (IAtomContainer mol, DGraph molGraph) throws DENOPTIMException
 Identifies all possible ring closing paths and returns them as list of DENOPTIMRings ready to be appended to a DENOPTIMGraph. More...
 
boolean checkChelatesGraph (DGraph molGraph, List< Ring > ringsSet)
 Evaluates the combination of a DENOPTIMGraph and a set of DENOPTIMRings and decides whether it's a proper candidate for the generation of a chelating ligand. More...
 

Private Member Functions

boolean combineCompatPathSubGraphs (int ii0, ArrayList< Vertex > sortedKeys, Map< Vertex, ArrayList< Vertex > > compatMap, ArrayList< ObjectPair > lstPairs, ArrayList< Long > usedId, Map< ObjectPair, PathSubGraph > allGoodPaths, Map< IBond, List< PathSubGraph > > interdepPaths, ArrayList< List< Ring > > allCombsOfRings) throws DENOPTIMException
 Recursive method to identify all the combination of rings. More...
 
boolean hasInterdependentPaths (ArrayList< ObjectPair > lstPairs, Map< IBond, List< PathSubGraph > > interdepPaths)
 Checks whether the combination of RCA's pairs leads to interdependent paths, that is, paths that share one or more bonds. More...
 
boolean checkClosabilityOfInterdependentPaths (ArrayList< ObjectPair > lstPairs, Map< IBond, List< PathSubGraph > > interdepPaths, Map< ObjectPair, PathSubGraph > allGoodPaths)
 This method checks whether the interdependent paths are simultaneously closable. More...
 

Private Attributes

int recCount = 0
 variables needed by recursive methods More...
 
int maxLng = 0
 
RingClosureParameters settings
 Parameters. More...
 
FragmentSpace fragSpace
 Fragment space definition. More...
 
Logger logger
 Logger to use. More...
 

Static Private Attributes

static final String NL = DENOPTIMConstants.EOL
 New line character. More...
 

Detailed Description

This is a tool to identify and manage vertices' connections not included in the DGraph, which is a spanning tree, thus connections that identify cyclic paths in the graph.

The three dimensional features of the vertices can be taken into account while defining the closability of a candidate chain. Since this is a computationally demanding task, we make use of serialized data that is recovered from previous experiments, updated on the fly, and stored for future used.

Author
Marco Foscato

Definition at line 75 of file CyclicGraphHandler.java.

Constructor & Destructor Documentation

◆ CyclicGraphHandler()

denoptim.graph.rings.CyclicGraphHandler.CyclicGraphHandler ( RingClosureParameters  settings,
FragmentSpace  fragSpace 
)

Constructor from data structure.

Parameters
libScaffthe library of scaffolds
libFragthe library of fragments
libCapthe library of capping groups

Definition at line 112 of file CyclicGraphHandler.java.

References denoptim.graph.rings.CyclicGraphHandler.fragSpace, denoptim.programs.RunTimeParameters.getLogger(), and denoptim.graph.rings.CyclicGraphHandler.settings.

Here is the call graph for this function:

Member Function Documentation

◆ checkChelatesGraph()

boolean denoptim.graph.rings.CyclicGraphHandler.checkChelatesGraph ( DGraph  molGraph,
List< Ring ringsSet 
)

Evaluates the combination of a DENOPTIMGraph and a set of DENOPTIMRings and decides whether it's a proper candidate for the generation of a chelating ligand.

Returns
true it this system is a good candidate

Definition at line 850 of file CyclicGraphHandler.java.

References denoptim.graph.Vertex.BBType.FRAGMENT, denoptim.graph.AttachmentPoint.getAPClass(), denoptim.graph.Vertex.getBuildingBlockType(), denoptim.graph.Vertex.getChilddren(), denoptim.graph.DGraph.getEdgeWithParent(), denoptim.graph.DGraph.getLevel(), denoptim.graph.Edge.getTrgAPClass(), denoptim.graph.DGraph.getVertexList(), denoptim.graph.DGraph.isVertexInRing(), denoptim.graph.rings.CyclicGraphHandler.logger, denoptim.graph.rings.RingClosureParameters.metalCoordinatingAPClasses, denoptim.graph.rings.CyclicGraphHandler.settings, and denoptim.graph.APClass.toString().

Referenced by denoptim.graph.DGraph.makeAllGraphsWithDifferentRingSets(), and denoptim.ga.EAUtils.setupRings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkClosabilityOfInterdependentPaths()

boolean denoptim.graph.rings.CyclicGraphHandler.checkClosabilityOfInterdependentPaths ( ArrayList< ObjectPair lstPairs,
Map< IBond, List< PathSubGraph > >  interdepPaths,
Map< ObjectPair, PathSubGraph allGoodPaths 
)
private

This method checks whether the interdependent paths are simultaneously closable.

Returns
true is all interdependent sets are closable

Definition at line 592 of file CyclicGraphHandler.java.

References denoptim.graph.rings.PathSubGraph.getBondPath(), denoptim.graph.rings.RingClosingConformations.getListOfConformations(), and denoptim.graph.rings.PathSubGraph.getRCC().

Referenced by denoptim.graph.rings.CyclicGraphHandler.combineCompatPathSubGraphs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ combineCompatPathSubGraphs()

boolean denoptim.graph.rings.CyclicGraphHandler.combineCompatPathSubGraphs ( int  ii0,
ArrayList< Vertex sortedKeys,
Map< Vertex, ArrayList< Vertex > >  compatMap,
ArrayList< ObjectPair lstPairs,
ArrayList< Long >  usedId,
Map< ObjectPair, PathSubGraph allGoodPaths,
Map< IBond, List< PathSubGraph > >  interdepPaths,
ArrayList< List< Ring > >  allCombsOfRings 
) throws DENOPTIMException
private

Recursive method to identify all the combination of rings.

Definition at line 339 of file CyclicGraphHandler.java.

References denoptim.utils.RingClosingUtils.areSameRingsSet(), denoptim.graph.rings.CyclicGraphHandler.checkClosabilityOfInterdependentPaths(), denoptim.graph.rings.RingClosureParameters.checkInterdependentChains(), denoptim.graph.rings.CyclicGraphHandler.combineCompatPathSubGraphs(), denoptim.graph.rings.PathSubGraph.getEdgesPath(), denoptim.utils.ObjectPair.getFirst(), denoptim.graph.rings.PathSubGraph.getHeadVertex(), denoptim.utils.ObjectPair.getSecond(), denoptim.graph.rings.PathSubGraph.getTailVertex(), denoptim.graph.rings.PathSubGraph.getVertecesPath(), denoptim.graph.Vertex.getVertexId(), denoptim.graph.rings.CyclicGraphHandler.hasInterdependentPaths(), denoptim.graph.rings.CyclicGraphHandler.logger, denoptim.graph.rings.CyclicGraphHandler.maxLng, denoptim.graph.rings.CyclicGraphHandler.NL, denoptim.graph.rings.CyclicGraphHandler.recCount, denoptim.graph.Ring.setBondType(), and denoptim.graph.rings.CyclicGraphHandler.settings.

Referenced by denoptim.graph.rings.CyclicGraphHandler.combineCompatPathSubGraphs(), and denoptim.graph.rings.CyclicGraphHandler.getPossibleCombinationOfRings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPossibleCombinationOfRings()

ArrayList< List< Ring > > denoptim.graph.rings.CyclicGraphHandler.getPossibleCombinationOfRings ( IAtomContainer  mol,
DGraph  molGraph 
) throws DENOPTIMException

Identifies all possible ring closing paths and returns them as list of DENOPTIMRings ready to be appended to a DENOPTIMGraph.

Parameters
molthe molecule
molGraphthe molecular graph
Returns
the candidate closable paths in the given graph

Definition at line 153 of file CyclicGraphHandler.java.

References denoptim.constants.DENOPTIMConstants.BONDPROPROTATABLE, denoptim.graph.rings.RingClosureParameters.checkInterdependentChains(), denoptim.graph.rings.CyclicGraphHandler.combineCompatPathSubGraphs(), denoptim.graph.rings.CyclicGraphHandler.fragSpace, denoptim.graph.rings.RingSizeManager.getCompatibilityOfPair(), denoptim.graph.Vertex.getProperty(), denoptim.graph.Vertex.getVertexId(), denoptim.graph.rings.RingSizeManager.initialize(), denoptim.graph.rings.PathClosabilityTools.isCloseable(), denoptim.graph.rings.CyclicGraphHandler.logger, denoptim.graph.rings.CyclicGraphHandler.NL, and denoptim.graph.rings.CyclicGraphHandler.settings.

Referenced by denoptim.graph.DGraph.makeAllGraphsWithDifferentRingSets(), and denoptim.ga.EAUtils.setupRings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRandomCombinationOfRings()

List< Ring > denoptim.graph.rings.CyclicGraphHandler.getRandomCombinationOfRings ( IAtomContainer  inMol,
DGraph  molGraph,
int  maxRingClosures 
) throws DENOPTIMException

Identifies a random combination of ring closing paths and returns it as list of DENOPTIMRings ready to be appended to a DENOPTIMGraph.

Parameters
inMolthe molecule
molGraphthe molecular graph
maxRingClosuresmaximum number of ring closures to perform.
Returns
the selected combination of closable paths

Definition at line 131 of file CyclicGraphHandler.java.

References denoptim.graph.rings.CyclicGraphHandler.fragSpace, denoptim.graph.rings.CyclicGraphHandler.logger, denoptim.graph.rings.RandomCombOfRingsIterator.next(), and denoptim.graph.rings.CyclicGraphHandler.settings.

Referenced by denoptim.ga.EAUtils.setupRings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasInterdependentPaths()

boolean denoptim.graph.rings.CyclicGraphHandler.hasInterdependentPaths ( ArrayList< ObjectPair lstPairs,
Map< IBond, List< PathSubGraph > >  interdepPaths 
)
private

Checks whether the combination of RCA's pairs leads to interdependent paths, that is, paths that share one or more bonds.

Definition at line 550 of file CyclicGraphHandler.java.

Referenced by denoptim.graph.rings.CyclicGraphHandler.combineCompatPathSubGraphs().

Here is the caller graph for this function:

Member Data Documentation

◆ fragSpace

◆ logger

◆ maxLng

int denoptim.graph.rings.CyclicGraphHandler.maxLng = 0
private

◆ NL

final String denoptim.graph.rings.CyclicGraphHandler.NL = DENOPTIMConstants.EOL
staticprivate

◆ recCount

int denoptim.graph.rings.CyclicGraphHandler.recCount = 0
private

variables needed by recursive methods

Definition at line 80 of file CyclicGraphHandler.java.

Referenced by denoptim.graph.rings.CyclicGraphHandler.combineCompatPathSubGraphs().

◆ settings


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