Package schrodinger :: Package application :: Package matsci :: Module buildcomplex
[hide private]
[frames] | no frames]

Module buildcomplex

This module assists in building organometallic complexes. Given one or more ligands, these ligands will be arranged around a central atom.

Copyright Schrodinger, LLC. All rights reserved.

Classes [hide private]
  Ligand
Stores information about a ligand structure
  ComplexBuilder
A class used to build an organometallic complex
Functions [hide private]
 
minimize_complex(struct, forcefield=14, **kwargs)
Minimize the given structure using the new MMFFLD method of determining parameters for metal complexes.
 
fix_metal_bond_orders(struct, index)
Fix all the bonds to atom index to be either single or dative depending on whether the other atom has a full valence without this bond or not.
 
transmute_atom(atom, element, color=None)
Transmute atom from its current element to a new element.
list
find_atoms_to_remove(struct, keep_atom, root_atom)
Return a list of atoms bound to root atom (and recursively all atoms bound to those atoms, ad infinitum).
Variables [hide private]
  __doc__ = ...
  MONODENTATE = 'Monodentate'
Name for ligands that have a single coordination site
  BIDENTATE = 'Bidentate'
Name for ligands that have two coordination sites
  OCTAHEDRAL = 'Octahedral'
VESPR geometry with 6 coordination sites around a central atom
  TRIGONAL_BIPYRAMIDAL = 'Trigonal bipyramidal'
VESPR geometry with 5 coordination sites around a central atom
  TETRAHEDRAL = 'Tetrahedral'
VESPR geometry with 4 coordination sites around a central atom
  SQUARE_PLANAR = 'Square planar'
VESPR geometry with 4 coordination sites around a central atom
  TRIGONAL_PLANAR = 'Trigonal planar'
VESPR geometry with 3 coordination sites around a central atom
  LINEAR = 'Linear'
VESPR geometry with 2 coordination sites around a central atom
  SUPPORTED_GEOMETRIES = ['Octahedral', 'Trigonal bipyramidal', ...
VESPR geometries that can be build by this module
  FACIAL = 'facial'
Octahedral complex with identical atoms on the face of the octahedron
  MERIDIONAL = 'meridional'
Octahedral complex with identical atoms on the meridion of the octahedron
  NO_ISOMER = 'none'
No specific isomer
  CIS = 'cis'
Square planar complex with identical atoms in adjacent sites
  TRANS = 'trans'
Square planar complex with identical atoms in opposite sites
  OCTAHEDRAL_LOCATIONS = [(2.0, 0.0, 0.0), (0.0, 2.0, 0.0), (0.0...
XYZ coordinates of the octahedral coordination sites
  TRIGONAL_BIPYRAMIDAL_LOCATIONS = [(0.0, 2.0, 0.0), (0.0, -2.0,...
XYZ coordinates of the trigonal pyramid coordination sites
  SQUARE_PLANAR_LOCATIONS = [(2.0, 0.0, 0.0), (0.0, 2.0, 0.0), (...
XYZ coordinates of the square planar coordination sites
  TETRAHEDRAL_LOCATIONS = [(0.0, 2.0, 0.0), (1.88562, -0.66667, ...
XYZ coordinates of the tetrahedral coordination sites
  TRIGONAL_PLANAR_LOCATIONS = [(2.0, 0.0, 0.0), (-1.0, 1.73205, ...
XYZ coordinates of the trigonal planar coordination sites
  LINEAR_LOCATIONS = [(2.0, 0.0, 0.0), (-2.0, 0.0, 0.0)]
XYZ coordinates of the linear coordination sites
  AXES = {0: [1.0, 0.0, 0.0], 1: [0.0, 1.0, 0.0], 2: [0.0, 0.0, ...
  ATTACHMENT_PROPERTY = 'i_matsci_cbuilder_attacher'
  ALLOWED_ISOMERS = {'Linear': ['none'], 'Octahedral': ['facial'...
  IDEAL_SLOTS = {'Linear': [(2.0, 0.0, 0.0), (-2.0, 0.0, 0.0)], ...
  DENTATES = ['Monodentate', 'Bidentate']
  SLOT_ORDER = {'Linear': {'none': {'Bidentate': [0, 1], 'Monode...
  __package__ = 'schrodinger.application.matsci'
  dentate = 'Bidentate'
  geom = 'Linear'
  isomer = 'none'
Function Details [hide private]

minimize_complex(struct, forcefield=14, **kwargs)

 

Minimize the given structure using the new MMFFLD method of determining parameters for metal complexes.

Additional keyword arguments are passed to the Minimizer class constructor

Parameters:
  • struct (schrodinger.structure.Structure) - The structure to minimize
  • ffld_version (integer) - The force field to use. Should be a module constant from the minimize module.
Raises:
  • ValueError - Typically means atom typing error or valence violations
  • mm.MmException - Due to overlapping atoms

fix_metal_bond_orders(struct, index)

 

Fix all the bonds to atom index to be either single or dative depending on whether the other atom has a full valence without this bond or not. Full valence without this bond = dative bond, otherwise bond order = number of open valences. Formal charges are also set to 0 for the metal atom and bonded neighbors.

Note - no bonds are added or removed by this function, only bond orders are changed.

Parameters:
  • struct (schrodinger.structure.Structure) - The structure to operate on - bonds are modified on this structure directly, not a copy
  • index (int) - The atom index of the metal atom with bonds to adjust

transmute_atom(atom, element, color=None)

 

Transmute atom from its current element to a new element. The new name will be element + index (ex. H17), and the new color if not supplied will be the Maestro default (or purple if no Maestro default).

Parameters:
  • atom (schrodinger.structure._StructureAtom) - The atom object to transmute to a new element
  • element (str) - The atomic symbol of the new element
  • color (str) - The new color of the atom in a format accepted by the _StructAtom.color property. The default is to use Maestro's default color for the new element, or purple if the default color is not defined.
Raises:
  • ValueError - if element is not a recognized atomic symbol

find_atoms_to_remove(struct, keep_atom, root_atom)

 

Return a list of atoms bound to root atom (and recursively all atoms bound to those atoms, ad infinitum). keep_atom and all atoms recursively bound to it will not be added to the list.

If keep_atom and root_atom are part of the same ring system, root_atom will be the only atom returned in the list.

For structure A-B-C-D-E, if keep_atom=B and root_atom=C, the returned list will be [C, D, E].

Parameters:
  • struct (schrodinger.structure.Structure) - The structure to use
  • keep_atom (int) - The index of the atom to keep
  • root_atom (int) - The index of the first atom to remove. All neighbors of this atom that are not keep_atom will be added to the list.
Returns: list
A list of all atoms recursively bound to root atom. keep_atom and all atoms bound to it are excluded from the list.

Variables Details [hide private]

__doc__

Value:
"""
This module assists in building organometallic complexes.  Given one o\
r more
ligands, these ligands will be arranged around a central atom.

Copyright Schrodinger, LLC. All rights reserved.
"""

SUPPORTED_GEOMETRIES

VESPR geometries that can be build by this module

Value:
['Octahedral',
 'Trigonal bipyramidal',
 'Tetrahedral',
 'Square planar',
 'Trigonal planar',
 'Linear']

OCTAHEDRAL_LOCATIONS

XYZ coordinates of the octahedral coordination sites

Value:
[(2.0, 0.0, 0.0),
 (0.0, 2.0, 0.0),
 (0.0, 0.0, 2.0),
 (0.0, -2.0, 0.0),
 (-2.0, 0.0, 0.0),
 (0.0, 0.0, -2.0)]

TRIGONAL_BIPYRAMIDAL_LOCATIONS

XYZ coordinates of the trigonal pyramid coordination sites

Value:
[(0.0, 2.0, 0.0),
 (0.0, -2.0, 0.0),
 (2.0, 0.0, 0.0),
 (-1.0, 0.0, 1.73205),
 (-1.0, 0.0, -1.73205)]

SQUARE_PLANAR_LOCATIONS

XYZ coordinates of the square planar coordination sites

Value:
[(2.0, 0.0, 0.0), (0.0, 2.0, 0.0), (0.0, -2.0, 0.0), (-2.0, 0.0, 0.0)]

TETRAHEDRAL_LOCATIONS

XYZ coordinates of the tetrahedral coordination sites

Value:
[(0.0, 2.0, 0.0),
 (1.88562, -0.66667, 0.0),
 (-0.94281, -0.66667, -1.63299),
 (-0.94281, -0.66667, 1.63299)]

TRIGONAL_PLANAR_LOCATIONS

XYZ coordinates of the trigonal planar coordination sites

Value:
[(2.0, 0.0, 0.0), (-1.0, 1.73205, 0.0), (-1.0, -1.73205, 0.0)]

AXES

Value:
{0: [1.0, 0.0, 0.0], 1: [0.0, 1.0, 0.0], 2: [0.0, 0.0, 1.0]}

ALLOWED_ISOMERS

Value:
{'Linear': ['none'],
 'Octahedral': ['facial', 'meridional', 'none'],
 'Square planar': ['cis', 'trans', 'none'],
 'Tetrahedral': ['none'],
 'Trigonal bipyramidal': ['none'],
 'Trigonal planar': ['none']}

IDEAL_SLOTS

Value:
{'Linear': [(2.0, 0.0, 0.0), (-2.0, 0.0, 0.0)],
 'Octahedral': [(2.0, 0.0, 0.0),
                (0.0, 2.0, 0.0),
                (0.0, 0.0, 2.0),
                (0.0, -2.0, 0.0),
                (-2.0, 0.0, 0.0),
                (0.0, 0.0, -2.0)],
 'Square planar': [(2.0, 0.0, 0.0), (0.0, 2.0, 0.0), (0.0, -2.0, 0.0),\
...

SLOT_ORDER

Value:
{'Linear': {'none': {'Bidentate': [0, 1], 'Monodentate': [0, 1]}},
 'Octahedral': {'facial': {'Bidentate': [0, 5, 1, 4, 2, 3],
                           'Monodentate': [0, 5, 1, 4, 2, 3]},
                'meridional': {'Bidentate': [0, 1, 2, 3, 4, 5],
                               'Monodentate': [0, 1, 3, 2, 4, 5]},
                'none': {'Bidentate': [0, 1, 2, 3, 4, 5],
                         'Monodentate': [0, 1, 3, 2, 4, 5]}},
 'Square planar': {'cis': {'Bidentate': [0, 1, 2, 3], 'Monodentate': [\
...