SMILES Atom Types#

class autode.smiles.atom_types.AtomType(site_coords, is_chiral=False)#
__init__(site_coords, is_chiral=False)#

Base atom type class

atoms can be added

Keyword Arguments:

is_chiral (bool) – Is this atom type chiral e.g. a tetrahedral atom with four different substituents

empty_site()#

Iterator for the coordinate of the next free site

empty_site_mr(point, other_coords)#

Return the site on this atom that is furthest from all other coordinates using a simple 1/r potential where r is the distance from the site to the other coordinates

Parameters:

other_coords (np.ndarray) – Other coordinates, shape = (N, 3)

Returns:

Coordinate of the site centered at the origin

Return type:

(np.ndarray)

property n_empty_sites#

Number of empty sites on this template

reset_onto(points, coord)#

Reset the site coordinates given a set of points. Ignore any points located exactly at the origin and, once fitted, remove the sites that are coincident with the points

Parameters:

coord (np.ndarray) – Coordinate of this atom

rotate_empty_onto(point, coord)#

Rotate the site coordinates such that an empty site is coincident with the vector from a coordinate to a point, and remove the site from the list of available sites

rotate_onto(point, coord, site)#

Rotate this atom type so a site is coincident with a point if this atom is at a coord i.e.:

                   site
                   /
                  /         -->
point--------coord                 point--site--coord
Parameters:
  • coord (np.ndarray) – shape = (3,)

  • site (np.ndarray) – shapte = (3,)

rotate_randomly()#

Rotate the sites randomly to prevent zero cross products

class autode.smiles.atom_types.BentAtom#
__init__()#

Bent atom with sites generated by optimisation of H2O:

  Atom
/     \
class autode.smiles.atom_types.LinearAtom#
__init__()#

Linear atom with sites pointing along the x-axis:

---Atom---
WARNING: Completely linear cause failures for internal coordinate

optimisation algorithms and have undefined cross products. Site coordinates are therefore not precisely linear

class autode.smiles.atom_types.OctahedralAtom#
__init__()#

Octahedral atom with sites generated by optimisation of [Co(Cl)6]3-:

      |
      | /
--- Atom --
  /  |
     |
class autode.smiles.atom_types.PentagonalBipyramidalAtom#
__init__()#

Approximate trigonal pentagonal geometry by optimisation of IF7

class autode.smiles.atom_types.SquareAntiprismAtom#
__init__()#

Approximate square antiprism geometry by optimisation of [XeF8]2-

class autode.smiles.atom_types.SquarePlanarAtom#
__init__()#

Square planar atom with sites generated by optimisation of XeF4:

    |
-- Atom --
    |
class autode.smiles.atom_types.TerminalAtom#
__init__()#

Terminal atom with a site pointing along the x-axis:

Atom---
class autode.smiles.atom_types.TetrahedralAtom#
__init__()#

Tetrahedral atom with sites generated by optimisation of methane (then normalising CH distances to 1 Å):

   |  /
  Atom
/     \
class autode.smiles.atom_types.TetrahedralIAtom#

An ‘inverted’ order chiral tetrahedral atom

__init__()#

Tetrahedral atom with sites generated by optimisation of methane (then normalising CH distances to 1 Å):

   |  /
  Atom
/     \
empty_site()#

Swap the first two yielded site coordinates, effectively swapping the chirality this atom’s neighbours are added

class autode.smiles.atom_types.TetrahedralNAtom#

A ‘normal’ order chiral tetrahedral atom

__init__()#

Tetrahedral atom with sites generated by optimisation of methane (then normalising CH distances to 1 Å):

   |  /
  Atom
/     \
class autode.smiles.atom_types.TrigonalAtom#
__init__()#

Trigonal atom e.g. [CR3]+ , obtained from optimisation of BH3 (then normalising NH distances to 1 Å):

        /
--- Atom
       \
class autode.smiles.atom_types.TrigonalBipyramidalAtom#
__init__()#

Trigonal bipyramidal atom with sites generated by optimisation of [Cn(Cl)5]-:

      |
      |
--- Atom --
  /  |
     |
class autode.smiles.atom_types.TrigonalPyramidalAtom#
__init__()#

Trigonal pyramidal atom e.g. P in PH3, obtained from optimisation of ammonia (then normalising NH distances to 1 Å):

  Atom
/  |  \