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

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, n_rotamers=None, restrain_idxs=None)

Create all the rotated ligand structures by rotating the ring.

Parameters
  • base_title (str) – The base title for the structures

  • n_rotamers (int or None) – the number of rotamers to return, if None then it is determined as twice the number of ring atoms

  • restrain_idxs (list or None) – if present contains indices of restrain atoms

Return type

list

Returns

Each item of the list is a rotated structure

getRotamers(base_title, n_rotamers=None, restrain_idxs=None)

Return the rotamers.

Parameters
  • base_title (str) – The base title for the structures

  • n_rotamers (int or None) – the number of rotamers to return, if None then it is determined as twice the number of ring atoms

  • restrain_idxs (list or None) – if present contains indices of restrain atoms

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, n_rotamers=None, restrain_idxs=None)

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

  • n_rotamers (int or None) – the number of rotamers per ligand, if None then it is determined as twice the number of ring atoms

  • restrain_idxs (list or None) – if present contains indices of restrain atoms

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, rotate_both_ligands=True, n_rotamers=None, metal_index=None, restrain_idxs=None)

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.

  • rotate_both_ligands (bool) – whether to rotate both ligands

  • n_rotamers (int or None) – the number of rotamers per ligand, if None then it is determined as twice the number of ring atoms

  • metal_index (int or None) – index of the metal atom around which to generate eta-rotamers, if None and the structure has a single metal atom then that index will automatically be used

  • restrain_idxs (list or None) – if present contains indices of restrain atoms

Raises

EtaRotamersException – if there is an issue

Return type

list

Returns

contains schrodinger.structure.Structure of rotamers