Bio.PDB.ic_rebuild module

Convert XYZ Structure to internal coordinates and back, test result.

Bio.PDB.ic_rebuild.structure_rebuild_test(entity, verbose: bool = False, quick: bool = False) dict

Test rebuild PDB structure from internal coordinates.

Generates internal coordinates for entity and writes to a .pic file in memory, then generates XYZ coordinates from the .pic file and compares the resulting entity against the original.

See IC_Residue.pic_accuracy to vary numeric accuracy of the intermediate .pic file if the only issue is small differences in coordinates.

Note that with default settings, deuterated initial structures will fail the comparison, as will structures loaded with alternate IC_Residue.accept_atoms settings. Use quick=True and/or variations on AtomKey.d2h and IC_Residue.accept_atoms settings.

Parameters:
  • entity (Entity) – Biopython Structure, Model or Chain. Structure to test

  • verbose (bool) – default False. print extra messages

  • quick (bool) – default False. only check the internal coords atomArrays are identical

Returns:

dict comparison dict from compare_residues()

Bio.PDB.ic_rebuild.report_IC(entity: Structure | Model | Chain | Residue, reportDict: dict[str, Any] | None = None, verbose: bool = False) dict[str, Any]

Generate dict with counts of ic data elements for each entity level.

reportDict entries are:
  • idcode : PDB ID

  • hdr : PDB header lines

  • mdl : models

  • chn : chains

  • res : residue objects

  • res_e : residues with dihedra and/or hedra

  • dih : dihedra

  • hed : hedra

Parameters:

entity (Entity) – Biopython PDB Entity object: S, M, C or R

Raises:
  • PDBException – if entity level not S, M, C, or R

  • Exception – if entity does not have .level attribute

Returns:

dict with counts of IC data elements

Bio.PDB.ic_rebuild.IC_duplicate(entity) Structure

Duplicate structure entity with IC data, no atom coordinates.

Employs write_PIC(), read_PIC() with StringIO buffer. Calls Chain.atom_to_internal_coordinates() if needed.

Parameters:

entity (Entity) – Biopython PDB Entity (will fail for Atom)

Returns:

Biopython PDBStructure, no Atom objects except initial coords

Bio.PDB.ic_rebuild.compare_residues(e0: Structure | Model | Chain, e1: Structure | Model | Chain, verbose: bool = False, quick: bool = False, rtol: float | None = None, atol: float | None = None) dict[str, Any]

Compare full IDs and atom coordinates for 2 Biopython PDB entities.

Skip DNA and HETATMs.

Parameters:
  • e0,e1 (Entity) – Biopython PDB Entity objects (S, M or C). Structures, Models or Chains to be compared

  • verbose (bool) – Whether to print mismatch info, default False

  • quick (bool) – default False. Only check atomArrays are identical, aCoordMatchCount=0 if different

  • atol (float rtol,) – default 1e-03, 1e-03 or round to 3 places. NumPy allclose parameters; default is to round atom coordinates to 3 places and test equal. For ‘quick’ will use defaults above for comparing atomArrays

Returns dict:

Result counts for Residues, Full ID match Residues, Atoms, Full ID match atoms, and Coordinate match atoms; report string; error status (bool)

Bio.PDB.ic_rebuild.write_PDB(entity: Structure, file: str, pdbid: str | None = None, chainid: str | None = None) None

Write PDB file with HEADER and TITLE if available.