This package provides a mechanism to describe an integrative modeling application with a set of Python objects. This includes

  • the data used for the modeling, such as previous computional models from comparative or integrative modeling, and experimental datasets from X-ray crystallography, mass spectrometry, electron microscopy;

  • the protocol used to generate models, such as molecular dynamics, clustering, and rescoring;

  • the actual coordinates of output models, which may be multi-scale (including both atomic coordinates and more coarse-grained representations), multi-state (multiple conformations and/or compositions of the system needed to explain the input data), or ordered (such as different points in a chemical reaction);

  • grouping of multiple models into ensembles or clusters;

  • validation of models, for example by scoring against data not used in the modeling itself.

Once created, this set of Python objects can be written to an mmCIF file that is compliant with the IHMCIF extension to the PDBx/mmCIF dictionary, suitable for deposition in the PDB-Dev repository. The files are best viewed in a viewer that supports IHMCIF, such as UCSF ChimeraX, although they may be partially viewable in regular PDBx mmCIF viewers (likely only the atomic coordinates will be visible).

The Python package can be used standalone, but is primarily intended for use within modeling software such as IMP, or HADDOCK. For example, IMP provides a class which uses this library to convert an IMP::pmi modeling protocol into an mmCIF file.