$darkmode
DENOPTIM
|
Utilities for molecule conversion. More...
Static Public Member Functions | |
static double | getMolecularWeight (IAtomContainer mol) throws DENOPTIMException |
static boolean | isDummy (IAtom atm) |
Checks if the given atom is a dummy atom based on the elemental symbol and the string used for dummy atom as a convention in DENOPTIM (uses DENOPTIMConstants#DUMMYATMSYMBOL . More... | |
static boolean | isElement (IAtom atom) |
Check element symbol corresponds to real element of Periodic Table. More... | |
static boolean | isElement (String symbol) |
Check element symbol corresponds to real element of Periodic Table. More... | |
static void | removeRCA (IAtomContainer mol) |
Replace any PseudoAtom s representing ring closing attractors with H. More... | |
static void | removeUsedRCA (IAtomContainer mol, DGraph graph, Logger logger) throws DENOPTIMException |
Replace used RCAs (i.e., those involved in Ring s) while adding the ring closing bonds. More... | |
static String | getSMILESForMolecule (IAtomContainer mol, Logger logger) throws DENOPTIMException |
Returns the SMILES representation of the molecule. More... | |
static IAtomContainer | generate2DCoordinates (IAtomContainer ac, Logger logger) throws DENOPTIMException |
Generates 2D coordinates for the molecule. More... | |
static String | getInChIKeyForMolecule (IAtomContainer mol, Logger logger) throws DENOPTIMException |
Generates the InChI key for the given atom container. More... | |
static String | getInChIKeyForMolecule (IAtomContainer mol, InchiOptions options, Logger logger) throws DENOPTIMException |
Generates the INCHI key for the molecule. More... | |
static int | getNumberOfRotatableBonds (IAtomContainer mol) throws DENOPTIMException |
Count number of rotatable bonds. More... | |
static int | getHeavyAtomCount (IAtomContainer mol) |
The heavy atom count. More... | |
static int | countAtomsOfElement (IAtomContainer mol, String symbol) |
Count atoms with the given elemental symbol. More... | |
static Map< Vertex, ArrayList< Integer > > | getVertexToAtomIdMap (ArrayList< Vertex > vertLst, IAtomContainer mol) |
Method to generate the map making in relation DENOPTIMVertex ID and atom index in the IAtomContainer representation of the chemical entity. More... | |
static void | moleculeToPNG (IAtomContainer mol, String filename, Logger logger) throws DENOPTIMException |
Generate a PNG image from molecule mol More... | |
static Point3d | getPoint3d (IAtom atm) |
Return the 3D coordinates, if present. More... | |
static void | setZeroImplicitHydrogensToAllAtoms (IAtomContainer iac) |
Sets zero implicit hydrogen count to all atoms. More... | |
static void | explicitHydrogens (IAtomContainer mol) |
Converts all the implicit hydrogens to explicit. More... | |
static void | ensureNoUnsetBondOrdersSilent (IAtomContainer iac) |
Sets bond order = single to all otherwise unset bonds. More... | |
static void | ensureNoUnsetBondOrders (IAtomContainer iac) throws CDKException |
Sets bond order = single to all otherwise unset bonds. More... | |
static String | missmatchingAromaticity (IAtomContainer mol) |
Looks for carbon atoms that are flagged as aromatic, but do not have any double bond and are, therefore, not properly Kekularized. More... | |
static int | numOfBondsWithBO (IAtom atm, IAtomContainer mol, IBond.Order order) |
Returns the number of bonds, with a certain bond order, surrounding the given atom. More... | |
static IAtomContainer | makeSameAs (IAtomContainer mol) throws DENOPTIMException |
Constructs a copy of an atom container, i.e., a molecule that reflects the one given in the input argument in terms of atom count, type, and geometric properties, and bond count and type. More... | |
static IAtom | makeSameAtomAs (IAtom oAtm) |
Method that constructs an atom that reflect the same atom given as parameter in terms of element symbol (or label, for pseudoatoms), and Cartesian coordinates, and most of the other attributes. More... | |
static IAtom | makeSameAtomAs (IAtom oAtm, boolean ignoreValence, boolean ignoreImplicitH) |
Method that constructs an atom that reflect the same atom given as parameter in terms of element symbol (or label, for pseudoatoms), and Cartesian coordinates, and most of the other attributes unless otherwise specified by the flags. More... | |
static String | getSymbolOrLabel (IAtom atm) |
Gets either the elemental symbol (for standard atoms) of the label (for pseudo-atoms). More... | |
static String | getAtomRef (IAtom atm, IAtomContainer mol) |
static Point3d | calculateCentroid (IAtomContainer mol) |
Calculated the centroid of the given molecule. More... | |
static IAtomContainer | extractIACForSubgraph (IAtomContainer wholeIAC, DGraph subGraph, DGraph wholeGraph, Logger logger, Randomizer randomizer) throws DENOPTIMException |
Selects only the atoms that originate from a subgraph of a whole graph that originated the whole molecule given as parameter. More... | |
static int | getDimensions (IAtomContainer mol) |
Determines the dimensionality of the given chemical object. More... | |
Static Private Attributes | |
static final StructureDiagramGenerator | SDG |
static final SmilesGenerator | SMGEN |
static final IChemObjectBuilder | builder |
Utilities for molecule conversion.
Definition at line 93 of file MoleculeUtils.java.
|
static |
Calculated the centroid of the given molecule.
mol |
Definition at line 1026 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.getPoint3d().
Referenced by denoptim.molecularmodeling.ThreeDimTreeBuilder.getRandomPoint(), and denoptim.utils.MoleculeUtilsTest.testCalculateCentroid().
|
static |
Count atoms with the given elemental symbol.
mol | Molecule to count atoms in. |
symbol | the elemental symbol to look for. |
Definition at line 571 of file MoleculeUtils.java.
Referenced by denoptim.graph.TemplateTest.testGetIAtomContainer(), and denoptim.graph.TemplateTest.testGetIAtomContainer_DeepVertex().
|
static |
Sets bond order = single to all otherwise unset bonds.
In case of failed kekulization this method reports a warning but does not throw an exception.
iac | the container to process |
CDKException |
Definition at line 753 of file MoleculeUtils.java.
Referenced by denoptim.utils.MoleculeUtils.ensureNoUnsetBondOrdersSilent(), and denoptim.fragmenter.FragmenterTools.prepareMolToFragmentation().
|
static |
Sets bond order = single to all otherwise unset bonds.
In case of failed kekulization this method reports a warning but does not throw an exception.
iac | the container to process |
Definition at line 725 of file MoleculeUtils.java.
References denoptim.logging.StaticLogger.appLogger, and denoptim.utils.MoleculeUtils.ensureNoUnsetBondOrders().
Referenced by denoptim.molecularmodeling.ThreeDimTreeBuilder.convertGraphTo3DAtomContainer(), denoptim.utils.MoleculeUtils.getSMILESForMolecule(), and denoptim.utils.ManySMARTSQuery.ManySMARTSQuery().
|
static |
Converts all the implicit hydrogens to explicit.
Definition at line 710 of file MoleculeUtils.java.
Referenced by denoptim.fragmenter.FragmenterTools.prepareMolToFragmentation().
|
static |
Selects only the atoms that originate from a subgraph of a whole graph that originated the whole molecule given as parameter.
wholeIAC | the molecular representation of the whole graph. The atoms contained here are expected to be have the property DENOPTIMConstants#ATMPROPVERTEXID , which is used to identify which atoms originated from which vertex of the whole graph. |
subGraph | the portion of the whole graph for which we want the corresponding atoms. The vertexes are expected to have the DENOPTIMConstants#STOREDVID property that defines their original vertex ID in the whole graph. These labels are expected to be consistent with those in the property DENOPTIMConstants#ATMPROPVERTEXID of the wholeIAC parameter. Note that the current vertexID of each vertex can be different from the ID of the original vertex had in the while graph. |
DENOPTIMException |
Definition at line 1060 of file MoleculeUtils.java.
References denoptim.graph.Fragment.addAPOnAtom(), denoptim.constants.DENOPTIMConstants.ATMPROPVERTEXID, denoptim.graph.Fragment.bonds(), denoptim.graph.Vertex.BBType.FRAGMENT, denoptim.graph.AttachmentPoint.getAPClass(), denoptim.graph.Fragment.getAtom(), denoptim.graph.Fragment.getIAtomContainer(), denoptim.graph.AttachmentPoint.getIndexInOwner(), denoptim.utils.MoleculeUtils.getPoint3d(), denoptim.constants.DENOPTIMConstants.LINKAPS, denoptim.utils.MoleculeUtils.makeSameAs(), denoptim.graph.Fragment.removeAtom(), denoptim.graph.Fragment.removeBond(), denoptim.graph.AttachmentPoint.setProperty(), denoptim.constants.DENOPTIMConstants.STOREDVID, denoptim.graph.Fragment.updateAPs(), and denoptim.io.DenoptimIO.writeGraphToSDF().
Referenced by denoptim.fragspace.FragmentSpace.addFusedRingsToFragmentLibrary().
|
static |
Generates 2D coordinates for the molecule.
ac | the molecule to layout. |
logger | program-specific logger. |
denoptim.exception.DENOPTIMException |
Definition at line 384 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.builder, denoptim.constants.DENOPTIMConstants.DUMMYATMSYMBOL, denoptim.utils.DummyAtomHandler.removeDummyInHapto(), denoptim.utils.MoleculeUtils.removeRCA(), and denoptim.utils.MoleculeUtils.SDG.
Referenced by denoptim.utils.MoleculeUtils.moleculeToPNG().
|
static |
Definition at line 1014 of file MoleculeUtils.java.
Referenced by denoptim.utils.MoleculeUtils.missmatchingAromaticity().
|
static |
Determines the dimensionality of the given chemical object.
mol | the given chemical object |
Definition at line 1219 of file MoleculeUtils.java.
Referenced by denoptim.fragmenter.FragmenterTools.manageFragmentCollection().
|
static |
The heavy atom count.
mol | Molecule to count heavy atoms in |
Definition at line 550 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.getSymbolOrLabel(), and denoptim.utils.MoleculeUtils.isElement().
Referenced by denoptim.graph.DGraph.checkConsistency(), and denoptim.graph.Fragment.getHeavyAtomsCount().
|
static |
Generates the INCHI key for the molecule.
mol | the molecule |
logger | program-specific logger. |
null
if error denoptim.exception.DENOPTIMException |
Definition at line 467 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.builder, denoptim.constants.DENOPTIMConstants.DUMMYATMSYMBOL, denoptim.utils.DummyAtomHandler.removeDummyInHapto(), and denoptim.utils.MoleculeUtils.removeRCA().
|
static |
Generates the InChI key for the given atom container.
By default we produce a non-standard InChI using the flags InchiFlag#AuxNone
, InchiFlag#RecMet
, and InchiFlag#SUU
.
mol | the molecule |
logger | program-specific logger. |
null
if error denoptim.exception.DENOPTIMException |
Definition at line 447 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.getInChIKeyForMolecule().
Referenced by denoptim.combinatorial.GraphBuildingTask.call(), denoptim.graph.DGraph.checkConsistency(), denoptim.utils.MoleculeUtils.getInChIKeyForMolecule(), and denoptim.ga.EAUtils.setupRings().
|
static |
Definition at line 104 of file MoleculeUtils.java.
Referenced by denoptim.graph.DGraph.checkConsistency().
|
static |
Count number of rotatable bonds.
mol | molecule to count rotatable bonds in |
DENOPTIMException |
Definition at line 524 of file MoleculeUtils.java.
Referenced by denoptim.graph.DGraph.checkConsistency().
|
static |
Return the 3D coordinates, if present.
If only 2D coords exist, then it returns the 2D projected in 3D space. If neither 3D nor 2D are present returns [0, 0, 0].
atm | the atom to analyze. |
Definition at line 673 of file MoleculeUtils.java.
Referenced by denoptim.utils.DummyAtomHandler.addDummiesOnLinearities(), denoptim.molecularmodeling.ThreeDimTreeBuilder.append3DFragmentsViaEdges(), denoptim.utils.MoleculeUtils.calculateCentroid(), denoptim.gui.GUIVertexInspector.convertAtomToAP(), denoptim.molecularmodeling.ThreeDimTreeBuilder.convertGraphTo3DAtomContainer(), denoptim.utils.MoleculeUtils.extractIACForSubgraph(), denoptim.fragmenter.FragmenterTools.filterFragment(), denoptim.fragmenter.FragmenterTools.fragmentation(), denoptim.utils.DummyAtomHandler.getDummyInSafeDirection(), denoptim.gui.FragmentViewPanel.getLoadedStructure(), denoptim.graph.FragIsomorphNode.getPoint3d(), denoptim.fragmenter.FragmenterTools.getRCPForAP(), denoptim.json.IAtomContainerSerializer.serialize(), denoptim.json.DENOPTIMgsonTest.testIAtomContainerToJSONAndBack(), denoptim.json.DENOPTIMgsonTest.testMolecularFragmentSerialization(), denoptim.json.DENOPTIMgsonTest.testTemplateSerialization(), and denoptim.gui.FragmentViewPanel.updateAPsInJmolViewer().
|
static |
Returns the SMILES representation of the molecule.
All atoms are expected to be explicit, as we set the count of implicit H to zero for all atoms.
mol | the molecule |
logger | program.specific logger. |
DENOPTIMException |
Definition at line 330 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.builder, denoptim.constants.DENOPTIMConstants.DUMMYATMSYMBOL, denoptim.utils.MoleculeUtils.ensureNoUnsetBondOrdersSilent(), denoptim.utils.DummyAtomHandler.removeDummy(), denoptim.utils.DummyAtomHandler.removeDummyInHapto(), denoptim.utils.MoleculeUtils.removeRCA(), denoptim.utils.MoleculeUtils.setZeroImplicitHydrogensToAllAtoms(), denoptim.utils.MoleculeUtils.SMGEN, and denoptim.io.DenoptimIO.writeSDFFile().
Referenced by denoptim.combinatorial.GraphBuildingTask.call(), denoptim.graph.DGraph.checkConsistency(), denoptim.gui.FragmentViewPanel.getLoadedStructure(), and denoptim.ga.EAUtils.setupRings().
|
static |
Gets either the elemental symbol (for standard atoms) of the label (for pseudo-atoms).
Other classes implementing IAtom are not considered. This method is a response to the change from CDK-1.* to CDK-2.*. In the old CDK-1.* the getSymbol() method of IAtom would return the label for a PseudoAtom, but this behavior is not retained in newer versions.
atm |
Definition at line 979 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.isElement().
Referenced by denoptim.graph.DGraph.checkConsistency(), denoptim.graph.rings.PathClosabilityTools.evaluateConstitutionalClosability(), denoptim.fragmenter.FragmenterTools.filterFragment(), denoptim.graph.FragIsomorphNode.FragIsomorphNode(), denoptim.fragmenter.FragmenterTools.fragmentation(), denoptim.utils.MoleculeUtils.getHeavyAtomCount(), denoptim.integration.tinker.TinkerUtils.getICFromIAC(), denoptim.graph.Fragment.getJGraphFragIsomorphism(), denoptim.integration.tinker.TinkerUtils.getThirdRefAtomId(), denoptim.utils.MoleculeUtils.isDummy(), denoptim.ga.EAUtils.makeGraphFromFragmentationOfMol(), denoptim.utils.MoleculeUtils.makeSameAtomAs(), denoptim.utils.DummyAtomHandler.removeDummy(), denoptim.utils.DummyAtomHandler.removeDummyInHapto(), denoptim.utils.MoleculeUtils.removeRCA(), denoptim.graph.rings.RingClosingAttractor.RingClosingAttractor(), denoptim.json.IAtomContainerSerializer.serialize(), denoptim.json.DENOPTIMgsonTest.testIAtomContainerToJSONAndBack(), denoptim.ga.EAUtilsTest.testMakeGraphFromFragmentationOfMol_linearities(), denoptim.json.DENOPTIMgsonTest.testMolecularFragmentSerialization(), denoptim.json.DENOPTIMgsonTest.testTemplateSerialization(), denoptim.fragspace.FragmentSpaceTest.testUseWholeMolGeometryForExtractedTemplates(), and denoptim.graph.rings.RingClosingAttractor.toString().
|
static |
Method to generate the map making in relation DENOPTIMVertex
ID and atom index in the IAtomContainer
representation of the chemical entity.
Note that the IAtomContainer
must have been generated from the DENOPTIMGraph
that contains the required DENOPTIMVertex
s.
vertLst | the list of DENOPTIMVertex to find |
mol | the molecular representation |
DENOPTIMVertex
ID Definition at line 595 of file MoleculeUtils.java.
References denoptim.constants.DENOPTIMConstants.ATMPROPVERTEXID.
Referenced by denoptim.graph.rings.PathClosabilityTools.evaluateConstitutionalClosability(), denoptim.graph.rings.RingSizeManager.initialize(), and denoptim.utils.MoleculeUtils.removeUsedRCA().
|
static |
Checks if the given atom is a dummy atom based on the elemental symbol and the string used for dummy atom as a convention in DENOPTIM (uses DENOPTIMConstants#DUMMYATMSYMBOL
.
For detecting dummy atoms beyond DENOPTIM's convention, use DummyAtomHandler
.
atm |
true
if the symbol of the atom indicates this is a dummy atom according to DENOPTIM's convention. Definition at line 134 of file MoleculeUtils.java.
References denoptim.constants.DENOPTIMConstants.DUMMYATMSYMBOL, and denoptim.utils.MoleculeUtils.getSymbolOrLabel().
Referenced by denoptim.utils.DummyAtomHandler.addDummiesOnLinearities().
|
static |
Check element symbol corresponds to real element of Periodic Table.
atom | to check. |
true
if the element symbol correspond to an atom in the periodic table. Definition at line 149 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.isElement().
Referenced by denoptim.fragmenter.FragmenterTools.filterFragment(), denoptim.utils.MoleculeUtils.getHeavyAtomCount(), denoptim.utils.MoleculeUtils.getSymbolOrLabel(), denoptim.utils.MoleculeUtils.isElement(), denoptim.utils.MoleculeUtils.makeSameAtomAs(), denoptim.programs.fragmenter.CuttingRule.satisfiesOptions(), and denoptim.json.LWAtom.toIAtom().
|
static |
Check element symbol corresponds to real element of Periodic Table.
symbol | of the element to check |
true
if the element symbol correspond to an atom in the periodic table. Definition at line 164 of file MoleculeUtils.java.
|
static |
Constructs a copy of an atom container, i.e., a molecule that reflects the one given in the input argument in terms of atom count, type, and geometric properties, and bond count and type.
Other properties are not copied.
mol | the container to copy. |
DENOPTIMException | if there are bonds involving more than two atoms. |
Definition at line 860 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.builder, and denoptim.utils.MoleculeUtils.makeSameAtomAs().
Referenced by denoptim.graph.Candidate.Candidate(), denoptim.graph.Candidate.clone(), denoptim.graph.Fragment.clone(), denoptim.graph.Template.clone(), denoptim.utils.MoleculeUtils.extractIACForSubgraph(), denoptim.graph.Fragment.Fragment(), denoptim.graph.Candidate.fromAtomContainerNoGraph(), and denoptim.gui.VertexAsTwoDimStructureViewPanel.TwoDimStructurePanel.TwoDimStructurePanel().
|
static |
Method that constructs an atom that reflect the same atom given as parameter in terms of element symbol (or label, for pseudoatoms), and Cartesian coordinates, and most of the other attributes.
This method copies valence and implicit H count, in addition to most of the fields accessible via IAtom. Use makeSameAtomAs(IAtom, boolean, boolean)
to have the option to exclude valence and implicit H count. This is basically a cloning method that ignores some fields.
oAtm | the original |
Definition at line 899 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.makeSameAtomAs().
Referenced by denoptim.utils.AtomOrganizer.makeReorderedCopy(), denoptim.utils.MoleculeUtils.makeSameAs(), and denoptim.utils.MoleculeUtils.makeSameAtomAs().
|
static |
Method that constructs an atom that reflect the same atom given as parameter in terms of element symbol (or label, for pseudoatoms), and Cartesian coordinates, and most of the other attributes unless otherwise specified by the flags.
This is basically a cloning method that ignores some fields.
oAtm | the original |
ignoreValence | if true the returned atom will have null valence |
ignoreImplicitH | if true the returned atom will have null implicit hydrogen count. |
Definition at line 919 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.getSymbolOrLabel(), and denoptim.utils.MoleculeUtils.isElement().
|
static |
Looks for carbon atoms that are flagged as aromatic, but do not have any double bond and are, therefore, not properly Kekularized.
mol | the molecule to analyze. |
Definition at line 775 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.getAtomRef(), and denoptim.utils.MoleculeUtils.numOfBondsWithBO().
|
static |
Generate a PNG image from molecule mol
mol | generate molecule PNG from |
filename | name of file to store generated PNG as |
logger | program-specific logger. |
DENOPTIMException |
Definition at line 639 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.generate2DCoordinates().
Referenced by denoptim.task.FitnessTask.runFitnessProvider().
|
static |
Returns the number of bonds, with a certain bond order, surrounding the given atom.
atm | the atom to look at |
mol | its container |
order | the bond order to count. |
Definition at line 837 of file MoleculeUtils.java.
Referenced by denoptim.utils.MoleculeUtils.missmatchingAromaticity().
|
static |
Replace any PseudoAtom
s representing ring closing attractors with H.
No change in coordinates, but any reference to the original atom, beyond those managed internally to the CDK library, will be broken.
mol | Molecule to replace PseudoAtom s of. |
Definition at line 190 of file MoleculeUtils.java.
References denoptim.utils.MoleculeUtils.getSymbolOrLabel(), and denoptim.graph.rings.RingClosingAttractor.RCATYPEMAP.
Referenced by denoptim.utils.RotationalSpaceUtils.defineRotatableBonds(), denoptim.graph.rings.PathClosabilityTools.evaluateConstitutionalClosability(), denoptim.utils.MoleculeUtils.generate2DCoordinates(), denoptim.utils.MoleculeUtils.getInChIKeyForMolecule(), and denoptim.utils.MoleculeUtils.getSMILESForMolecule().
|
static |
Replace used RCAs (i.e., those involved in Ring
s) while adding the ring closing bonds.
Does not alter the graph.
mol | the molecular representation to be updated |
graph | the corresponding graph representation |
DENOPTIMException |
Definition at line 224 of file MoleculeUtils.java.
References denoptim.graph.Edge.BondType.getCDKOrder(), denoptim.utils.MoleculeUtils.getVertexToAtomIdMap(), and denoptim.graph.Edge.BondType.hasCDKAnalogue().
Referenced by denoptim.molecularmodeling.ThreeDimTreeBuilder.convertGraphTo3DAtomContainer(), and denoptim.gui.GraphVertexMolViewerPanel.updateMolevularViewer().
|
static |
Sets zero implicit hydrogen count to all atoms.
iac | the container to process |
Definition at line 698 of file MoleculeUtils.java.
Referenced by denoptim.molecularmodeling.ThreeDimTreeBuilder.convertGraphTo3DAtomContainer(), denoptim.graph.Fragment.Fragment(), denoptim.utils.MoleculeUtils.getSMILESForMolecule(), denoptim.utils.ManySMARTSQuery.ManySMARTSQuery(), and denoptim.fragmenter.FragmenterTools.prepareMolToFragmentation().
|
staticprivate |
Definition at line 99 of file MoleculeUtils.java.
Referenced by denoptim.utils.MoleculeUtils.generate2DCoordinates(), denoptim.utils.MoleculeUtils.getInChIKeyForMolecule(), denoptim.utils.MoleculeUtils.getSMILESForMolecule(), and denoptim.utils.MoleculeUtils.makeSameAs().
|
staticprivate |
Definition at line 95 of file MoleculeUtils.java.
Referenced by denoptim.utils.MoleculeUtils.generate2DCoordinates().
|
staticprivate |
Definition at line 97 of file MoleculeUtils.java.
Referenced by denoptim.utils.MoleculeUtils.getSMILESForMolecule().