molsysmt.build.make_bioassembly#
- molsysmt.build.make_bioassembly(molecular_system, bioassembly=None, structure_indices=0, to_form=None, skip_digestion=False)[source]#
Construct the biological assembly of a molecular system from its asymmetric unit.
Many structures deposited in the PDB represent only the asymmetric unit, while the biologically relevant form (the bioassembly) is obtained by applying a set of rotation and translation operations to replicate the chains. This function reads the bioassembly transformation matrices stored in the molecular system, applies them, and returns the fully assembled system.
- Parameters:
molecular_system (molecular system) – Molecular system in any supported MolSysMT format.
bioassembly (object, default=None) – Argument bioassembly.
structure_indices (int, list, tuple, or numpy.ndarray, default=0) – Structure indices (0-based) to include or process.
to_form (object, default=None) – Argument to_form.
skip_digestion (bool, default=False) – Whether to skip MolSysMT’s internal argument digestion mechanism.
- Returns:
The biological assembly as a merged molecular system in the form specified by
to_form(or in the same form as the input ifto_formis None).- Return type:
molecular system
- Raises:
NotImplementedError – Raised when the bioassembly specifies different chain sets for different transformation operators (heterogeneous assemblies), which is not yet supported.
Notes
Each transformation in the bioassembly consists of a rotation matrix and a translation vector. The function extracts the relevant chains, applies each rotation and translation in sequence, and merges all transformed copies into a single molecular system.
Source
chain_idvalues are preserved for their first occurrence. Generated copies that would repeat an identifier receive the next unused uppercase identifier (AthroughZ, thenAA,AB, and so on). Author-providedchain_namevalues are preserved and may repeat across copies.Examples
>>> import molsysmt as msm >>> path = msm.systems['Barnase-Barstar']['1brs.bcif.gz'] >>> molsys = msm.convert(path) >>> assembled_molsys = make_bioassembly(molsys, bioassembly='1') >>> chain_ids = msm.get(assembled_molsys, element='chain', chain_id=True) >>> len(chain_ids) == len(set(chain_ids)) True
Tutorial with more examples
See Make bioassembly.
Added in version 1.0.0.