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

Class ComplexBuilder

object --+
         |
        ComplexBuilder

A class used to build an organometallic complex

Instance Methods [hide private]
 
__init__(self, metal='Ir', geometry='Octahedral', isomer='facial', homoleptic=True, dentation='Bidentate')
Create a ComplexBuilder instance
 
resetSlots(self, dentation='Bidentate')
Reset the slot order back to ideal slot order
 
setSlotOrder(self, slot_order)
Set the order that coordination sites should be used.
int
getNumUsedCoordSites(self)
Get the current number of coordination sites required for all copies of all ligands set so far.
 
addMonodentateLigand(self, struct, site, slot=None, copies=1)
Add a monodentate ligand for the complex.
 
addBidentateLigand(self, struct, sites, slots=None, copies=1)
Add a bidentate ligand for the complex.
 
_addLigand(self, struct, sites, slots=None, copies=1)
Add a ligand to the complex.
 
clearLigands(self)
Remove all added ligands
 
createComplex(self, force=False)
Create the complex based on the defined ligands
tuple
_getNextSlot(self)
Return the next slot for a coordinating atom
 
_attachLigand(self, complex_st, ligand)
Attach a ligand to the central atom.

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, metal='Ir', geometry='Octahedral', isomer='facial', homoleptic=True, dentation='Bidentate')
(Constructor)

 

Create a ComplexBuilder instance

Parameters:
  • metal (str) - The atomic symbol of the central atom
  • geometry (str) - VESPR geometry of the complex. Should be a module constant: OCTAHEDRAL, TETRAHEDRAL, SQUARE_PLANAR
  • isomer (str or None) - For octahedral complexes, can be module constants FACIAL, MERIDIONAL, or NO_ISOMER. For square planar complexes, can be module constants CIS, TRANS or NO_ISOMER. It is ignored for tetrahedral. None may be used instead of NO_ISOMER.
  • homoleptic (bool) - If True, the complex is homoleptic and only one ligand should be supplied. If False, the complex is heteroleptic and every ligand must be supplied. Homoleptic = all ligands are identical, heteroleptic = ligands may or may not be identical.
  • dentation (int) - Module-level constant describing the dentation type of the ligand - either MONODENTATE or BIDENTATE. Only used to determine the coordination slot order (the order coordination sites are filled) for isomers.
Overrides: object.__init__

resetSlots(self, dentation='Bidentate')

 

Reset the slot order back to ideal slot order

Parameters:
  • dentation (int) - Module-level constant describing the dentation type of the ligand - either MONODENTATE or BIDENTATE

setSlotOrder(self, slot_order)

 

Set the order that coordination sites should be used. This should be a list of indexes into the slot_order property. Ligands will be attached at these coordination sites in the order they are added.

Parameters:
  • slot_order (list of int) - List of indexes that specifies the order of coordination sites to use.
Raises:
  • IndexError - If the list is not the correct length (6 for octahedral, 4 for tetrahedral/square_planar). An example for square_planar might be [0, 2, 1, 3].
  • ValueError - If the list contains duplicated indexes or indexes outside the allow range of 0 to len(list)-1

getNumUsedCoordSites(self)

 

Get the current number of coordination sites required for all copies of all ligands set so far.

Returns: int
The total number of sites required for all currently set ligands. Accounts for the number of copies requested and mono/bi-dentation of each ligand.

addMonodentateLigand(self, struct, site, slot=None, copies=1)

 

Add a monodentate ligand for the complex.

Parameters:
  • struct (schrodinger.structure.Structure) - The structure of the ligand
  • site (tuple) - An (X, Y) tuple. X is the index of the atom that will attach to the central metal atom in the complex, and Y is the index of the atom that should be removed to make the attachment. The X-Metal bond will be made along the X-Y bond vector. If Y is 0, the bond will be assumed to be a dative bond, and the X-Metal bond will be formed along an angle that is chosen to minimize sterics. If X is negative, the site is an eta-coordination site.
  • slot (int) - The coordination slot this ligand will occupy. The coordination slot is the index into the GEOMETRY_LOCATIONS array that specifies the xyz coordinates for this ligand coordination.
  • copies (int) - The number of copies of this ligand. It is a ValueError to specify slot & copies > 1.

addBidentateLigand(self, struct, sites, slots=None, copies=1)

 

Add a bidentate ligand for the complex.

Parameters:
  • struct (schrodinger.structure.Structure) - The structure of the ligand
  • sites (list of tuple) - Each item of the list is a (X, Y) tuple. X is the index of the atom that will attach to the central metal atom in the complex, and Y is the index of the atom that should be removed to make the attachment. The X-Metal bond will be made along the X-Y bond vector. If Y is 0, the bond will be assumed to be a dative bond, and the X-Metal bond will be formed along an angle that is chosen to minimize sterics. If X is negative, the site is an eta-coordination site.
  • slots (list of int) - The coordination slots this ligand will occupy. The coordination slot is the index into the GEOMETRY_LOCATIONS array that specifies the xyz coordinates for this ligand coordination.
  • copies (int) - The number of copies of this ligand. It is a ValueError to specify slot & copies > 1.

_addLigand(self, struct, sites, slots=None, copies=1)

 

Add a ligand to the complex.

Parameters:
  • struct (schrodinger.structure.Structure) - The structure of the ligand
  • sites (list of tuple) - Each item of the list is a (X, Y) tuple. X is the index of the atom that will attach to the central metal atom in the complex, and Y is the index of the atom that should be removed to make the attachment. The X-Metal bond will be made along the X-Y bond vector. If Y is 0, the bond will be assumed to be a dative bond, and the X-Metal bond will be formed along an angle that is chosen to minimize sterics. If X is negative, the site is an eta-coordination site.
  • slots (list of int) - The coordination slots this ligand will occupy
  • copies (int) - The number of copies of this ligand. It is a ValueError to specify slot & copies > 1.

createComplex(self, force=False)

 

Create the complex based on the defined ligands

Parameters:
  • force (bool) - If true, create a complex even if all slots are not filled. If False (default), raise IndexError if all slots are not filled.
Raises:
  • IndexError - If not all sites are filled and force is not True
  • IndexError - Too many ligands specified for available sites

_getNextSlot(self)

 

Return the next slot for a coordinating atom

Returns: tuple
The XYZ coordinates for the next coordinating atom

_attachLigand(self, complex_st, ligand)

 

Attach a ligand to the central atom. The ligand will be translated/rotated to occupy the chosen coordination sites.

Parameters: