schrodinger.application.matsci.etarotamers module

Utilities for creating rotamers of eta-complexes.

Copyright Schrodinger, LLC. All rights reserved.

exception schrodinger.application.matsci.etarotamers.EtaRotamersException

Bases: Exception

__init__

Initialize self. See help(type(self)) for accurate signature.

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

schrodinger.application.matsci.etarotamers.find_metal(struct)

Find the metal atom in the structure and ensure there is exactly one

Parameters:struct (schrodinger.structure.Structure) – The structure containing all the atoms
Raises:EtaRotamersException – if there is an issue
Return type:int
Returns:The index of the single metal atom
class schrodinger.application.matsci.etarotamers.HapticLigand(struct, num)

Bases: object

Manages manipulation of a haptic ligand

__init__(struct, num)

Create a HapticLigand object

Parameters:
  • struct (schrodinger.structure.Structure) – The structure containing the ligand
  • num (int) – The value of the LIGNUM_PROP property for atoms in this ligand
addRotationAtoms()
We add two atoms that help define the torsion for rotation.
1) The centroid of the ring. We’ll rotate the ring about the centroid-metal axis 2) A fake atom as the same location as one of the ring atoms. We’ll rotate the ring a number of degrees relative to this atom
defineTorsionIndexes()
Define the torsion as the four atoms in the following order:
  1. An arbitrary haptic atom in this ligand
  2. The centroid of this ligand
  3. The metal atom
  4. An arbitrary haptic atom in the other ligand
createRotatedStructures(base_title)

Create all the rotated ligand structures by rotating the ring. The number of rotations is equal to N_ROTAMERS_F * num_ring_atoms and each rotation is 360 / (N_ROTAMERS_F * num_ring_atoms) degrees.

Parameters:base_title (str) – The base title for the structures
Return type:list
Returns:Each item of the list is a rotated structure
getRotamers(base_title)

Return the rotamers.

Parameters:base_title (str) – The base title for the structures
Return type:list
Returns:Each item of the list is a rotated structure
schrodinger.application.matsci.etarotamers.create_rotated_complexes(struct, lignums, base_title, rotate_both_ligands=True)

Create a series of complexes by rotating one haptic ligand around its centroid-metal axis

Parameters:
  • struct (schrodinger.structure.Structure) – The complex
  • lignums (list) – The LIGNUM_PROP vals for atoms in haptic ligands
  • base_title (str) – The base title for the structures
  • rotate_both_ligands (bool) – whether to rotate both ligands
Return type:

list

Returns:

Each item of the list is a rotated structure

schrodinger.application.matsci.etarotamers.get_rotatable_haptic_ligands(st, only_rings=True)

Return rotatable haptic ligand molecules in the given structure.

Parameters:
  • st (schrodinger.structure.Structure) – the structure
  • only_rings (bool) – if True then only allow rotation of eta-bound rings, if False then also allow rotation of ligands where the eta-bound motif is acyclic, for example ethene, etc.
Return type:

list

Returns:

contains schrodinger.structure._Molecule

schrodinger.application.matsci.etarotamers.get_rotamers(struct, only_rings=True)

Return the rotamers for the given eta-complex.

Parameters:
  • struct (schrodinger.structure.Structure) – the structure
  • only_rings (bool) – if True then only allow rotation of eta-bound rings, if False then also allow rotation of ligands where the eta-bound motif is acyclic, for example ethene, etc.
Raises:

EtaRotamersException – if there is an issue

Return type:

list

Returns:

contains schrodinger.structure.Structure of rotamers