Package chemaxon.alignment
Class AtropIsomerDetector
java.lang.Object
chemaxon.alignment.AtropIsomerDetector
- All Implemented Interfaces:
Licensable
Molecular mechanics based atropisomer detection.
If the full rotation around a rotatable bond is blocked a steric proximity usually two isomers occurs. The algorithm rotates all rotatable bonds stepwise and optimizes the conformation id the domain of the remaining dihedrals. The energy values are obtained from MMFF dihedral potential and MMFF long range. If the conformational energy barrier is higher than a user defined limit that bond defined as atrop bond by the current implementation.
Usage:
Molecule m = MolImporter
.importMol("CC(C)[C@@](C)(N(C(=O)C=C)C1=C(I)C=CC=C1)C(O)=O");
AtropIsomerDetector atp = new AtropIsomerDetector();
atp.calculate(m);
int[] found = atp.getAtropBonds();
Limitations:
- The presence of a single rotational barrier is recognized as an atrop bond. This can result false positives for simpler hindered rotatable bonds.
- Symmetries of the rotated parts are not examined. This can result in false positives for symmetric structures showing rotation barriers without differentiable conformers.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumSampling accuracy levels used in atrop bond detection, controlling the number of dihedral rotation steps. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault for parametersetSamplingAccuracy(int). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidRun the atropisomer calculation.int[]After the calculate method finished.Get results of executed dihedral scans.intRotatable bond count before the atrop isomer calculation.intRotatable bond count (atrop bonds excluded)The result molecule will be 3D and aromatized version of the input molecules.booleanChecks if the required license is available for using this class or product.voidsetBarrierLimit(double barrierLimit) Set the energy barrier limit.voidvoidsetFlexibleRingSize(int size) voidSets the current license environment identifier.voidsetMethylsRotatable(boolean methylsRotatable) This is a speedup heuristics.voidsetNumberOfAtomsAcceptToRotate(int numberOfAtomsAcceptToRotate) If only a given number of atoms (or less) can be found at one of the side of the dihedral skip this.voidsetSamplingAccuracy(int accuracy) Set sampling accuracy.voidSet sampling accuracy.voidsetTimeoutInSeconds(int timeoutInSeconds) Set time out.
-
Field Details
-
DEFAULT_SAMPLING_ACCURACY
public static final int DEFAULT_SAMPLING_ACCURACYDefault for parametersetSamplingAccuracy(int).
-
-
Constructor Details
-
AtropIsomerDetector
- Throws:
AlignmentException
-
-
Method Details
-
isLicensed
public boolean isLicensed()Description copied from interface:LicensableChecks if the required license is available for using this class or product.- Specified by:
isLicensedin interfaceLicensable- Returns:
- true if this software component is correctly licensed
-
setLicenseEnvironment
Description copied from interface:LicensableSets the current license environment identifier. For internal use only!- Specified by:
setLicenseEnvironmentin interfaceLicensable- Parameters:
env- license environment. It is string identifier of a certain integration environment.
-
setMethylsRotatable
public void setMethylsRotatable(boolean methylsRotatable) This is a speedup heuristics. Rotating the three hydrogens of a methyl group rarely results in atrop bonds.- Parameters:
methylsRotatable- if true rotate methyl groups too. Default is false.
-
setNumberOfAtomsAcceptToRotate
public void setNumberOfAtomsAcceptToRotate(int numberOfAtomsAcceptToRotate) If only a given number of atoms (or less) can be found at one of the side of the dihedral skip this.- Parameters:
numberOfAtomsAcceptToRotate- default is 1.
-
setBarrierLimit
public void setBarrierLimit(double barrierLimit) Set the energy barrier limit.- Parameters:
barrierLimit- New energy barrier limit in kcal/mol. default is 200
-
setSamplingAccuracy
public void setSamplingAccuracy(int accuracy) Set sampling accuracy.- Parameters:
accuracy- Sample count for a full rotation to use
-
setTimeoutInSeconds
public void setTimeoutInSeconds(int timeoutInSeconds) Set time out.- Parameters:
timeoutInSeconds- Timeout to use or0for no timeout.
-
setSamplingAccuracy
Set sampling accuracy.- Parameters:
accuracy- Preset value representing sample count for a full rotation to use
-
setFlexibleRingRotatableBondCount
public void setFlexibleRingRotatableBondCount(int i) -
setFlexibleRingSize
public void setFlexibleRingSize(int size) -
calculate
Run the atropisomer calculation.- Parameters:
input- the input molecule- Throws:
AlignmentException- Propagated
-
getAtropBonds
public int[] getAtropBonds()After the calculate method finished.- Returns:
- the indices of the detected atrop bonds.
-
getDihedralScanResults
Get results of executed dihedral scans.Please note that this method is marked with
Betaannotation, so it can be subject of incompatible changes or removal in any of the later releases.- Returns:
- Executed dihedral scan results
-
getRealRotatableBondCount
public int getRealRotatableBondCount()Rotatable bond count (atrop bonds excluded)- Returns:
- Rotatable bond count
-
getPossibleRotatableBondCount
public int getPossibleRotatableBondCount()Rotatable bond count before the atrop isomer calculation.- Returns:
- All rotatable bond count
-
getResultMolecule
The result molecule will be 3D and aromatized version of the input molecules. Hydrogens are also added.- Returns:
- the result molecule.
-