biotite.structure.find_rotatable_bonds

biotite.structure.find_rotatable_bonds(bonds)[source]

Find all rotatable bonds in a given BondList.

The following conditions must be true for a bond to be counted as rotatable:

  1. The bond must be a single bond (BondType.SINGLE)

  2. The connected atoms must not be within the same cycle/ring

  3. Both connected atoms must not be terminal, e.g. not a C-H bond, as rotation about such bonds would not change any coordinates

Parameters
bondsBondList

The bonds to find the rotatable bonds in.

Returns
rotatable_bondsBondList

The subset of the input bonds that contains only rotatable bonds.

Examples

>>> molecule = residue("TYR")
>>> for i, j, _ in find_rotatable_bonds(molecule.bonds).as_array():
...     print(molecule.atom_name[i], molecule.atom_name[j])
N CA
CA C
CA CB
C OXT
CB CG
CZ OH