$darkmode
DENOPTIM
denoptim.molecularmodeling.ChemicalObjectModel Class Reference

Collector of molecular information, related to a single chemical object, that is deployed within the 3D builder. More...

Collaboration diagram for denoptim.molecularmodeling.ChemicalObjectModel:
[legend]

Public Member Functions

 ChemicalObjectModel (DGraph molGraph, IAtomContainer fmol, ZMatrix zmat, String molName, List< ObjectPair > rotatableBnds, List< RingClosingAttractor > attractors, Map< RingClosingAttractor, Integer > attToAtmID, List< Set< ObjectPair > > allRCACombs, List< RingClosure > ringClosures, List< Integer > oldToNewOrder, List< Integer > newToOldOrder, Logger logger)
 Constructs an item specifying all its features. More...
 
 ChemicalObjectModel (DGraph molGraph, IAtomContainer fmol, ZMatrix zmat, String molName, List< ObjectPair > rotatableBnds, List< Integer > oldToNewOrder, List< Integer > newToOldOrder, Logger logger) throws DENOPTIMException
 Constructs a Molecule3DBuilder specifying all its features. More...
 
List< Integer > getOldToNewOrder ()
 
List< Integer > getNewToOldOrder ()
 
void updateXYZ (List< Point3d > newCoords) throws DENOPTIMException
 currently loaded internal coordinates into Cartesian overwriting the current XYZ. More...
 
void updateXYZFromINT () throws DENOPTIMException
 Converts currently loaded internal coordinates into Cartesian overwriting the current XYZ. More...
 
DGraph getGraph ()
 Returns the graph representation of this molecule as it was originally generated by DEOPTIM. More...
 
IAtomContainer getIAtomContainer ()
 Returns the CDK representation of the molecular system. More...
 
ZMatrix getZMatrix ()
 Returns the ZMatrix representation of the molecule. More...
 
List< RingClosingAttractorgetAttractorsList ()
 Returns the list of RuingClosingAttractors. More...
 
RingClosingAttractor getAttractor (int i)
 Returns the attractor given its position in the list of attractors. More...
 
int getZMatIdxOfRCA (RingClosingAttractor rca)
 
int getZMatIdxOfRCASrc (RingClosingAttractor rca)
 
List< Set< ObjectPair > > getRCACombinations ()
 Returns the list of combinations of RingClosingAttractor. More...
 
List< ObjectPairgetRotatableBonds ()
 Returns the list of rotatable bonds. More...
 
int getNumberRotatableBonds ()
 Returns the size of the current list of rotatable bonds. More...
 
List< RingClosuregetNewRingClosures ()
 Return the list of RingClosures that have been identified as closable head/tail of atom chains during RC-PSSROT conformational adaptation. More...
 
double getNewRingClosuresQuality ()
 Return the overal evaluation of the whole list of RingClosures. More...
 
double getAtomOverlapScore ()
 Return the atoms overlap score which is calculated for all atoms pairs not in 1-4 or lower relationship. More...
 
String getName ()
 Return the name of this molecule. More...
 
void addBond (IAtom atmA, IAtom atmB, RingClosure nRc, BondType bndTyp)
 Modify the molecule adding a cyclic bond between two atoms. More...
 
void purgeListRotatableBonds () throws DENOPTIMException
 Remove the cyclic bonds from the list of rotatable bonds. More...
 
ChemicalObjectModel deepcopy () throws DENOPTIMException
 Return a new Molecule3DBuilder having exactly the same features of this Molecule3DBuilder. More...
 

Private Member Functions

void findAttractors ()
 
void convertRingsToRCACombinations ()
 

Private Attributes

DGraph molGraph
 DENOPTIM representation. More...
 
IAtomContainer fmol
 CDK representation. More...
 
ZMatrix zmat
 ZMatrix representation. More...
 
String molName
 Reference name. More...
 
List< RingClosingAttractorattractors
 List of RingClosingAttractors. More...
 
Map< RingClosingAttractor, Integer > attToAtmID
 Relation between RingClosingAttractor and index in the ZMatrix. More...
 
List< Set< ObjectPair > > allRCACombs
 List of combinations of RingClosingAttractor (i.e., possible set of rings to create) More...
 
List< ObjectPairrotatableBnds
 List of rotatable bonds. More...
 
List< RingClosurenewRingClosures
 List of new ring closing environments. More...
 
double overalRCScore = Double.NaN
 Quality score of the list of ring closures. More...
 
double atmOveralScore = Double.NaN
 Atom overlap score (for atoms not is 1-4 or lower relationship) More...
 
Logger logger
 Program-specific logger. More...
 
List< Integer > oldToNewOrder
 
List< Integer > newToOldOrder
 

Detailed Description

Collector of molecular information, related to a single chemical object, that is deployed within the 3D builder.

Author
Marco Foscato

Definition at line 60 of file ChemicalObjectModel.java.

Constructor & Destructor Documentation

◆ ChemicalObjectModel() [1/2]

denoptim.molecularmodeling.ChemicalObjectModel.ChemicalObjectModel ( DGraph  molGraph,
IAtomContainer  fmol,
ZMatrix  zmat,
String  molName,
List< ObjectPair rotatableBnds,
List< RingClosingAttractor attractors,
Map< RingClosingAttractor, Integer >  attToAtmID,
List< Set< ObjectPair > >  allRCACombs,
List< RingClosure ringClosures,
List< Integer >  oldToNewOrder,
List< Integer >  newToOldOrder,
Logger  logger 
)

Constructs an item specifying all its features.

Parameters
molGraphthe graph representation
fmolthe CDK molecular representation
zmatthe internal coordinates representation
molNamethe reference name of this molecule
rotatableBndsthe list of rotatable bonds (as pairs of atom indexes)
attractorsall the ring closing attractors (RCA)
attToAtmIDthe correspondence between RCA and atom index in the ZMatrix
allRCACombsall combinations of compatible pairs of RCAs
ringClosuresthe list of closed multi-fragment rings
loggerthe tool to use for logging.

Definition at line 144 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.allRCACombs, denoptim.molecularmodeling.ChemicalObjectModel.attractors, denoptim.molecularmodeling.ChemicalObjectModel.attToAtmID, denoptim.molecularmodeling.ChemicalObjectModel.convertRingsToRCACombinations(), denoptim.molecularmodeling.ChemicalObjectModel.fmol, denoptim.graph.DGraph.hasOrEmbedsRings(), denoptim.molecularmodeling.ChemicalObjectModel.logger, denoptim.molecularmodeling.ChemicalObjectModel.molGraph, denoptim.molecularmodeling.ChemicalObjectModel.molName, denoptim.molecularmodeling.ChemicalObjectModel.newToOldOrder, denoptim.molecularmodeling.ChemicalObjectModel.oldToNewOrder, denoptim.molecularmodeling.ChemicalObjectModel.rotatableBnds, and denoptim.molecularmodeling.ChemicalObjectModel.zmat.

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.deepcopy().

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

◆ ChemicalObjectModel() [2/2]

denoptim.molecularmodeling.ChemicalObjectModel.ChemicalObjectModel ( DGraph  molGraph,
IAtomContainer  fmol,
ZMatrix  zmat,
String  molName,
List< ObjectPair rotatableBnds,
List< Integer >  oldToNewOrder,
List< Integer >  newToOldOrder,
Logger  logger 
) throws DENOPTIMException

Constructs a Molecule3DBuilder specifying all its features.

Parameters
molGraphthe graph representation
fmolthe CDK molecular representation
zmatthe internal coordinates representation
molNamethe reference name of this molecule
rotatableBndsthe list of rotatable bonds (as pairs of atom
oldToNewOrderindexes that allow to map the atom position before and after the reordering needed to make use of internal coordinates possible.
newToOldOrderindexes that allow to map the atom position before and after the reordering needed to make use of internal coordinates possible.
loggerthe tool dealing with log messages. indexes)

Definition at line 200 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.convertRingsToRCACombinations(), denoptim.molecularmodeling.ChemicalObjectModel.findAttractors(), denoptim.molecularmodeling.ChemicalObjectModel.fmol, denoptim.graph.DGraph.hasOrEmbedsRings(), denoptim.molecularmodeling.ChemicalObjectModel.logger, denoptim.molecularmodeling.ChemicalObjectModel.molGraph, denoptim.molecularmodeling.ChemicalObjectModel.molName, denoptim.molecularmodeling.ChemicalObjectModel.newToOldOrder, denoptim.molecularmodeling.ChemicalObjectModel.oldToNewOrder, denoptim.molecularmodeling.ChemicalObjectModel.rotatableBnds, denoptim.molecularmodeling.ChemicalObjectModel.updateXYZFromINT(), and denoptim.molecularmodeling.ChemicalObjectModel.zmat.

Here is the call graph for this function:

Member Function Documentation

◆ addBond()

void denoptim.molecularmodeling.ChemicalObjectModel.addBond ( IAtom  atmA,
IAtom  atmB,
RingClosure  nRc,
BondType  bndTyp 
)

Modify the molecule adding a cyclic bond between two atoms.

This method is ONLY meant to add new cyclic bonds and requires that the pair of involved atoms comes with the object RingClosure.

Parameters
atmAthe first atom
atmAthe second atom
nRcthe RingClosure object describing the ring-closing arrangement of atoms.

Definition at line 704 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.zmatrix.ZMatrix.addBond(), denoptim.molecularmodeling.ChemicalObjectModel.fmol, denoptim.graph.Edge.BondType.getCDKOrder(), denoptim.graph.Edge.BondType.hasCDKAnalogue(), and denoptim.molecularmodeling.ChemicalObjectModel.logger.

Referenced by denoptim.molecularmodeling.RingClosureTool.closeRings().

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

◆ convertRingsToRCACombinations()

void denoptim.molecularmodeling.ChemicalObjectModel.convertRingsToRCACombinations ( )
private

Definition at line 266 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.allRCACombs, denoptim.molecularmodeling.ChemicalObjectModel.attractors, and denoptim.graph.rings.RingClosingAttractor.getRingUser().

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.ChemicalObjectModel().

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

◆ deepcopy()

ChemicalObjectModel denoptim.molecularmodeling.ChemicalObjectModel.deepcopy ( ) throws DENOPTIMException

Return a new Molecule3DBuilder having exactly the same features of this Molecule3DBuilder.

Exceptions
DENOPTIMException

Definition at line 782 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.attractors, denoptim.molecularmodeling.ChemicalObjectModel.ChemicalObjectModel(), denoptim.graph.DGraph.clone(), denoptim.molecularmodeling.zmatrix.ZMatrix.clone(), denoptim.molecularmodeling.ChemicalObjectModel.logger, denoptim.molecularmodeling.ChemicalObjectModel.molName, denoptim.molecularmodeling.ChemicalObjectModel.newToOldOrder, and denoptim.molecularmodeling.ChemicalObjectModel.oldToNewOrder.

Referenced by denoptim.molecularmodeling.RingClosureTool.attemptAllRingClosures(), and denoptim.molecularmodeling.MultiMolecularModelBuilder.buildMulti3DStructure().

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

◆ findAttractors()

void denoptim.molecularmodeling.ChemicalObjectModel.findAttractors ( )
private

Definition at line 250 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.attractors, denoptim.molecularmodeling.ChemicalObjectModel.attToAtmID, denoptim.molecularmodeling.ChemicalObjectModel.fmol, and denoptim.graph.rings.RingClosingAttractor.isAttractor().

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.ChemicalObjectModel().

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

◆ getAtomOverlapScore()

double denoptim.molecularmodeling.ChemicalObjectModel.getAtomOverlapScore ( )

Return the atoms overlap score which is calculated for all atoms pairs not in 1-4 or lower relationship.

Definition at line 647 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.atmOveralScore, denoptim.constants.DENOPTIMConstants.DUMMYATMSYMBOL, and denoptim.molecularmodeling.ChemicalObjectModel.fmol.

Referenced by denoptim.molecularmodeling.RingClosureTool.RingClosedMolComparator.compare().

Here is the caller graph for this function:

◆ getAttractor()

RingClosingAttractor denoptim.molecularmodeling.ChemicalObjectModel.getAttractor ( int  i)

Returns the attractor given its position in the list of attractors.

Definition at line 541 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.attractors.

◆ getAttractorsList()

List< RingClosingAttractor > denoptim.molecularmodeling.ChemicalObjectModel.getAttractorsList ( )

Returns the list of RuingClosingAttractors.

Definition at line 530 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.attractors.

◆ getGraph()

DGraph denoptim.molecularmodeling.ChemicalObjectModel.getGraph ( )

Returns the graph representation of this molecule as it was originally generated by DEOPTIM.

No change is expected after ring-closing step

Definition at line 497 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.molGraph.

Referenced by denoptim.molecularmodeling.MultiMolecularModelBuilder.buildMulti3DStructure().

Here is the caller graph for this function:

◆ getIAtomContainer()

IAtomContainer denoptim.molecularmodeling.ChemicalObjectModel.getIAtomContainer ( )

Returns the CDK representation of the molecular system.

Definition at line 508 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.fmol.

Referenced by denoptim.molecularmodeling.RingClosureTool.attemptAllRingClosures(), and denoptim.molecularmodeling.MultiMolecularModelBuilder.buildMulti3DStructure().

Here is the caller graph for this function:

◆ getName()

String denoptim.molecularmodeling.ChemicalObjectModel.getName ( )

Return the name of this molecule.

Definition at line 687 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.molName.

◆ getNewRingClosures()

List< RingClosure > denoptim.molecularmodeling.ChemicalObjectModel.getNewRingClosures ( )

Return the list of RingClosures that have been identified as closable head/tail of atom chains during RC-PSSROT conformational adaptation.

Definition at line 615 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.newRingClosures.

Referenced by denoptim.molecularmodeling.RingClosureTool.attemptAllRingClosures(), and denoptim.molecularmodeling.RingClosureTool.RingClosedMolComparator.compare().

Here is the caller graph for this function:

◆ getNewRingClosuresQuality()

double denoptim.molecularmodeling.ChemicalObjectModel.getNewRingClosuresQuality ( )

Return the overal evaluation of the whole list of RingClosures.

Definition at line 626 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.newRingClosures, and denoptim.molecularmodeling.ChemicalObjectModel.overalRCScore.

Referenced by denoptim.molecularmodeling.RingClosureTool.RingClosedMolComparator.compare().

Here is the caller graph for this function:

◆ getNewToOldOrder()

List< Integer > denoptim.molecularmodeling.ChemicalObjectModel.getNewToOldOrder ( )

◆ getNumberRotatableBonds()

int denoptim.molecularmodeling.ChemicalObjectModel.getNumberRotatableBonds ( )

Returns the size of the current list of rotatable bonds.

Definition at line 603 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.rotatableBnds.

◆ getOldToNewOrder()

List< Integer > denoptim.molecularmodeling.ChemicalObjectModel.getOldToNewOrder ( )

◆ getRCACombinations()

List< Set< ObjectPair > > denoptim.molecularmodeling.ChemicalObjectModel.getRCACombinations ( )

Returns the list of combinations of RingClosingAttractor.

This method require that there are Rings in the DGraph representation of this object.

Definition at line 581 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.allRCACombs.

Referenced by denoptim.molecularmodeling.RingClosureTool.attemptAllRingClosures(), and denoptim.molecularmodeling.MultiMolecularModelBuilder.buildMulti3DStructure().

Here is the caller graph for this function:

◆ getRotatableBonds()

List< ObjectPair > denoptim.molecularmodeling.ChemicalObjectModel.getRotatableBonds ( )

Returns the list of rotatable bonds.

Definition at line 592 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.rotatableBnds.

Referenced by denoptim.molecularmodeling.MultiMolecularModelBuilder.buildMulti3DStructure().

Here is the caller graph for this function:

◆ getZMatIdxOfRCA()

int denoptim.molecularmodeling.ChemicalObjectModel.getZMatIdxOfRCA ( RingClosingAttractor  rca)
Returns
the index of the given RingClosingAttractor in the ZMatrix representation

Definition at line 553 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.attToAtmID.

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.getZMatIdxOfRCASrc().

Here is the caller graph for this function:

◆ getZMatIdxOfRCASrc()

int denoptim.molecularmodeling.ChemicalObjectModel.getZMatIdxOfRCASrc ( RingClosingAttractor  rca)
Returns
the index of the source atom of the given RingClosingAttractor (i.e., the only atom bonded to the
RingClosingAttractor) in the ZMatrix representation.

Definition at line 566 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.zmatrix.ZMatrix.getBondRefAtomIndex(), denoptim.molecularmodeling.ChemicalObjectModel.getZMatIdxOfRCA(), and denoptim.molecularmodeling.ChemicalObjectModel.zmat.

Here is the call graph for this function:

◆ getZMatrix()

ZMatrix denoptim.molecularmodeling.ChemicalObjectModel.getZMatrix ( )

Returns the ZMatrix representation of the molecule.

Definition at line 519 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.zmat.

◆ purgeListRotatableBonds()

void denoptim.molecularmodeling.ChemicalObjectModel.purgeListRotatableBonds ( ) throws DENOPTIMException

Remove the cyclic bonds from the list of rotatable bonds.

Exceptions
DENOPTIMException

Definition at line 738 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.fmol, denoptim.molecularmodeling.ChemicalObjectModel.logger, and denoptim.molecularmodeling.ChemicalObjectModel.rotatableBnds.

◆ updateXYZ()

void denoptim.molecularmodeling.ChemicalObjectModel.updateXYZ ( List< Point3d >  newCoords) throws DENOPTIMException

currently loaded internal coordinates into Cartesian overwriting the current XYZ.

Definition at line 301 of file ChemicalObjectModel.java.

References denoptim.molecularmodeling.ChemicalObjectModel.fmol.

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.updateXYZFromINT().

Here is the caller graph for this function:

◆ updateXYZFromINT()

void denoptim.molecularmodeling.ChemicalObjectModel.updateXYZFromINT ( ) throws DENOPTIMException

Converts currently loaded internal coordinates into Cartesian overwriting the current XYZ.

Definition at line 316 of file ChemicalObjectModel.java.

References denoptim.utils.MathUtils.distance(), denoptim.constants.DENOPTIMConstants.FLOATCOMPARISONTOLERANCE, denoptim.molecularmodeling.ChemicalObjectModel.fmol, denoptim.molecularmodeling.zmatrix.ZMatrix.getAngle2RefAtomIndex(), denoptim.molecularmodeling.zmatrix.ZMatrix.getAngle2Value(), denoptim.molecularmodeling.zmatrix.ZMatrix.getAngleRefAtomIndex(), denoptim.molecularmodeling.zmatrix.ZMatrix.getAngleValue(), denoptim.molecularmodeling.zmatrix.ZMatrix.getBondLength(), denoptim.molecularmodeling.zmatrix.ZMatrix.getBondRefAtomIndex(), denoptim.molecularmodeling.zmatrix.ZMatrix.getChiralFlag(), denoptim.molecularmodeling.ChemicalObjectModel.logger, denoptim.utils.MathUtils.normDist(), denoptim.molecularmodeling.ChemicalObjectModel.updateXYZ(), and denoptim.molecularmodeling.ChemicalObjectModel.zmat.

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.ChemicalObjectModel(), denoptim.molecularmodeling.ChemicalObjectModelTest.testUpdateXYZFromINT(), denoptim.molecularmodeling.ChemicalObjectModelTest.testUpdateXYZFromINT_ChiralityMinusOne(), denoptim.molecularmodeling.ChemicalObjectModelTest.testUpdateXYZFromINT_ChiralityOne(), denoptim.molecularmodeling.ChemicalObjectModelTest.testUpdateXYZFromINT_FirstAtomAtOrigin(), denoptim.molecularmodeling.ChemicalObjectModelTest.testUpdateXYZFromINT_FourthAtomWithDihedral(), denoptim.molecularmodeling.ChemicalObjectModelTest.testUpdateXYZFromINT_SecondAtomAlongZAxis(), and denoptim.molecularmodeling.ChemicalObjectModelTest.testUpdateXYZFromINT_ThirdAtomWithAngle().

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

Member Data Documentation

◆ allRCACombs

List<Set<ObjectPair> > denoptim.molecularmodeling.ChemicalObjectModel.allRCACombs
private

◆ atmOveralScore

double denoptim.molecularmodeling.ChemicalObjectModel.atmOveralScore = Double.NaN
private

Atom overlap score (for atoms not is 1-4 or lower relationship)

Definition at line 116 of file ChemicalObjectModel.java.

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.getAtomOverlapScore().

◆ attractors

◆ attToAtmID

Map<RingClosingAttractor,Integer> denoptim.molecularmodeling.ChemicalObjectModel.attToAtmID
private

◆ fmol

◆ logger

◆ molGraph

DGraph denoptim.molecularmodeling.ChemicalObjectModel.molGraph
private

◆ molName

String denoptim.molecularmodeling.ChemicalObjectModel.molName
private

◆ newRingClosures

List<RingClosure> denoptim.molecularmodeling.ChemicalObjectModel.newRingClosures
private

◆ newToOldOrder

◆ oldToNewOrder

◆ overalRCScore

double denoptim.molecularmodeling.ChemicalObjectModel.overalRCScore = Double.NaN
private

Quality score of the list of ring closures.

Definition at line 111 of file ChemicalObjectModel.java.

Referenced by denoptim.molecularmodeling.ChemicalObjectModel.getNewRingClosuresQuality().

◆ rotatableBnds

◆ zmat


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