chemaxon.marvin.alignment
Class AtropIsomerDetector

java.lang.Object
  extended by chemaxon.marvin.alignment.AtropIsomerDetector
All Implemented Interfaces:
chemaxon.license.Licensable

public class AtropIsomerDetector
extends java.lang.Object
implements chemaxon.license.Licensable

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.
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();
 

Author:
Adrian
See Also:
Atropisomer on wiki

Nested Class Summary
static class AtropIsomerDetector.Accuracy
           
 
Constructor Summary
AtropIsomerDetector()
           
 
Method Summary
 void calculate(Molecule m)
          Run the atropisomer calculation.
 int[] getAtropBonds()
          After the calculate method finished.
 int getPossibleRotatableBondCount()
          Rotatable bond count before the atrop isomer calculation.
 int getRealRotatableBondCount()
          Rotatable bond count (atrop bonds excluded)
 Molecule getResultMolecule()
          The result molecule will be 3D and aromatized version of the input molecules.
 boolean isLicensed()
           
 void setBarrierLimit(double barrierLimit)
          Set the energy barrier limit.
 void setFlexibleRingRotatableBondCount(int i)
           
 void setFlexibleRingSize(int size)
           
 void setLicenseEnvironment(java.lang.String env)
           
 void setMethylsRotatable(boolean methylsRotatable)
          This is a speedup heuristics.
 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.
 void setSamplingAccuracy(AtropIsomerDetector.Accuracy a)
           
 void setSamplingAccuracy(int accuracy)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AtropIsomerDetector

public AtropIsomerDetector()
                    throws chemaxon.marvin.alignment.AlignmentException
Throws:
chemaxon.marvin.alignment.AlignmentException
Method Detail

isLicensed

public boolean isLicensed()
Specified by:
isLicensed in interface chemaxon.license.Licensable

setLicenseEnvironment

public void setLicenseEnvironment(java.lang.String env)
Specified by:
setLicenseEnvironment in interface chemaxon.license.Licensable

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)

setSamplingAccuracy

public void setSamplingAccuracy(AtropIsomerDetector.Accuracy a)

setFlexibleRingRotatableBondCount

public void setFlexibleRingRotatableBondCount(int i)

setFlexibleRingSize

public void setFlexibleRingSize(int size)

calculate

public void calculate(Molecule m)
               throws chemaxon.marvin.alignment.AlignmentException
Run the atropisomer calculation.

Parameters:
m - input molecule
Throws:
AlignmentException

getAtropBonds

public int[] getAtropBonds()
After the calculate method finished.

Returns:
the indices of the atrop bonds.

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

public Molecule getResultMolecule()
The result molecule will be 3D and aromatized version of the input molecules. Hydrogens are also added.

Returns:
the result molecule.