schrodinger.protein.biounit module

Expand structure into biological units

A structure generated from crystal data (typically .pdb or .cif) may represent/include multiple “Biological Units” (or biomolecules).

A biological unit is a (putatively) biologically active structure that is not explicitely encoded in the file. It may include fewer chains than the file, or it may include symmetry adjusted copies of one or more chains. Copies are given a new chain name.

Example usage:

st ='1wpl.pdb')
biomolecules = biounits_from_structure(st)
for biomolecule_transformation in biomolecules:
    biomolecule_st, _ = apply_biounit(st, biomolecule_transformation)
exception schrodinger.protein.biounit.BiounitOverrunError

Bases: Exception

__init__(*args, **kwargs)

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


Find the biomolecules (aka biounits) stored in the properties of a Structure

Each biomolecule is represented as a dictionary. The keys are groups of chains, and the values are the transformations to be applied to those chains.


st (schrodinger.structure.Structure) – Structure from which to glean biounits

Return type

list[dict(frozenset, list[_Transformation])]


Mapping between chain ID sets and a list of _Transformation containing the rotation and translation matrices for those chains

schrodinger.protein.biounit.apply_biounit(original_st, biounit)

Apply biounit transformations to the given structure.

If a chain is duplicated, the duplicate is given a new chain name in alphabetical order.

  • original_st (schrodinger.structure.Structure) – Structure to transform

  • biounit (dict(frozenset, list[_Transformation])) – Biounit data (produced by biounits_from_structure) mapping between chain ID sets and a list of _Transformation containing the rotation and translation matrices


A new Structure for the biounit applied to the original_st

Return type