SMILES Angles#

class autode.smiles.angles.SAngle(idxs, rot_idxs=None, phi0=None)#

Angle used in 3D construction from SMILES

__init__(idxs, rot_idxs=None, phi0=None)#

Angle between a set of atoms. In order

find_rot_idxs(graph, atoms)#

Find the atom indexes to rotate by splitting rhe graph across the edge that appears first in the angle, e.g.:

           Z
          /
    X  - Y
      ^
split across this bond
inverse_rot_idxs(atoms)#

Return the inverse of a set of rotation indexes for e.g. rotating the atoms on the other side of the angle. Skip any atoms that have not been moved

property phi0#

A non-None ideal angle, default to 100 degrees

value(atoms) float#
Returns:

Angle in radians

Return type:

(float)

class autode.smiles.angles.SAngles(iterable=(), /)#
property axes#
dvalues(atoms)#

Difference between the current and ideal angles

property ideal_angles#

Ideal angle vector (float | None)

property origins#

Origins for the rotation, as the central atom of the trio

property rot_idxs#

Matrix of atom indexes to rotate

values(atoms)#

Current angle vector in radians

class autode.smiles.angles.SDihedral(idxs, rot_idxs=None, phi0=None, mid_dist=2.0)#

A dihedral defined by 4 atom indexes used in building a 3D strucutre from a SMILES string e.g.:

X       W
|      /
Y---- Z
__init__(idxs, rot_idxs=None, phi0=None, mid_dist=2.0)#

A dihedral constructed from atom indexes and possibly indexes that should be rotated, if this dihedral is altered:

W
 \
  X --- Y
        \
         Z
Keyword Arguments:
  • rot_idxs (list(int) | None) – Indexes to rotate, 1 if the atoms should be rotated else 0

  • phi0 (float | None) – Ideal angle for this dihedral (radians)

  • mid_dist (float) – Optimum distance between X-Y

dphi(atoms)#

∆φ = φ_curr - φ_ideal

property end_idxs#

Atoms defining the end of the dihedral

find_rot_idxs(graph, atoms)#

Find the atom indexes that should be rotated for this dihedral

Parameters:

atoms (list(autode.atoms.Atom))

needs_forcing(atoms)#

Does this dihedral angle need to be forced? i.e. has defined stereochemistry that is not respected

property phi0#

A non-None ideal angle for this dihedral

value(atoms)#

Calculate the value of a dihedral defined by some atoms with non-zero positions

Returns:

The dihedral angle in radians

Return type:

(float)

Raises:

(SMILESBuildFailed)

class autode.smiles.angles.SDihedrals(iterable=(), /)#
property axes#
property origins#

Origins for the rotation, as the central atom of the trio