Package schrodinger :: Package application :: Package matsci :: Module builderwidgets :: Class TMLigandRowMixin
[hide private]
[frames] | no frames]

Class TMLigandRowMixin

object --+
         |
        TMLigandRowMixin


A mixin class that takes care of minimizing bidentate transition metal
complex ligand structures so that they remain planar through the R1-...-R2
bond path.

Should be used with ItemRow classes. Example use:
    class LigandRow(TMLigandRowMixin, ItemRow):
        ...

Instance Methods [hide private]
 
findAttachmentMarkers(self, set_dentation=True)
Find the atoms that mark attachment points and determine the mono/bi-dentation of the ligand.
 
prepareStructureForMinimization(self)
Prepare the structure for minimization.
 
addHydrogens(self)
Add hydrogens to the structure, properly accounting for phantom Rx bonds and incorrect formal charges caused by those bonds.
 
modifyMinimizer(self, mizer)
Add torsion constraints to the minimizer to keep the coordination sphere planar and with torsions of 0.
 
postTreatMinimizedStructure(self)
Undo the modifications to the structure that we made before minimization.
 
relocateEtaMarkers(self)
Move each eta marker to the centroid of the atoms it marks

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

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

findAttachmentMarkers(self, set_dentation=True)

 

Find the atoms that mark attachment points and determine the mono/bi-dentation of the ligand. The index of each marker atom is stored in self.markers.

Parameters:
  • set_dentation (bool) - Whether to set the dentation_type property based on the current number of marker atoms of the structure

prepareStructureForMinimization(self)

 

Prepare the structure for minimization.

We change any eta-coordination marker to a dummy atom because that
marker is not an actual atomic position - we don't want it influencing
the location of other atoms.

For monodentate ligands:
    If not eta-coordination, the location of the first marker is
    important because that determines the ligand-metal bond vector. We
    minimize this position by placing an "H" at that location.

For bidentate ligands:
    If neither marker is eta, we change the second marker to a dummy
    atom in order to avoid both marker atoms clashing sterically - in
    the complex there will be only the metal atom there so setting the
    second marker to a dummy ensures that the metal is in a good
    bidentate binding pocket.

    If one or both markers are eta, we leave any remaining non-eta
    marker as an H atom to optimize its position.

The location of any eta-marker is updated afterwards based on the
position of the minimized eta-coordinating atoms.

modifyMinimizer(self, mizer)

 

Add torsion constraints to the minimizer to keep the coordination sphere planar and with torsions of 0.

Parameters:
  • mizer (schrodinger.structutils.minimizer.Minimizer) - The Minimizer object that will minimize the structure.

postTreatMinimizedStructure(self)

 

Undo the modifications to the structure that we made before minimization. This means we add back the second marker and point it at the first marker. The location of the second marker actually doesn't really matter, but pointed at the first marker is as good a place as any.