diff --git a/modules/io/doc/mmcif.rst b/modules/io/doc/mmcif.rst index a1e1be3e7dc844f2d078b2aa20250386e3b3e17f..82f870b27028b418eb100cfa11fe92ac28ca1850 100644 --- a/modules/io/doc/mmcif.rst +++ b/modules/io/doc/mmcif.rst @@ -1579,6 +1579,95 @@ The content of the written file: :type filename: :class:`str` +mmCIF Writer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The OpenStructure mmCIF writer considers the following data categories. The +listed attributes are written which fulfills all dependencies in an mmCIF +file according to `mmcif_pdbx_v50 <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Index/>`_. + +* `_atom_site <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/atom_site.html>`_ + + * group_PDB + * type_symbol + * label_atom_id + * label_asym_id + * label_entity_id + * label_seq_id + * label_alt_id + * Cartn_x + * Cartn_y + * Cartn_z + * occupancy + * B_iso_or_equiv + * auth_seq_id + * auth_asym_id + * id + * pdbx_PDB_ins_code + + +* `_entity <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/entity.html>`_ + + * id + * type + +* `_struct_asym <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/struct_asym.html>`_ + + * id + * entity_id + +* `_entity_poly <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/entity_poly.html>`_ + + * entity_id + * type + * pdbx_seq_one_letter_code + * pdbx_seq_one_letter_code_can + +* `_pdbx_poly_seq_scheme <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/pdbx_poly_seq_scheme.html>`_ + + * asym_id + * entity_id + * mon_id + * seq_id + * pdb_strand_id + * pdb_seq_num + * pdb_ins_code + + +* `_entity_poly_seq <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/pdbx_reference_entity_poly_seq.html>`_ + + * entity_id + * mon_id + * num + + +* `_chem_comp <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/chem_comp.html>`_ + + * id + * type + +* `_atom_type <https://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/atom_type.html>`_ + + * symbol + +The writer is designed to only require an OpenStructure +:class:`ost.mol.EntityHandle`/:class:`ost.mol.EntityView` as input but +optionally performs preprocessing in order to separate residues of chains into +valid mmCIF entities. This is controlled by the *mmcif_conform* flag which has +significant impact on how chains are assigned to mmCIF entities, chain names and +residue numbers. Ideally, the input is *mmcif_conform*. That means each chain +has a :class:`ost.mol.ChainType` attached and all of its residues are consistent +with that :class:`ost.mol.ChainType`. E.g. +:func:`ost.mol.ResidueHandle.GetChemClass` evaluates to +:class:`PEPTIDE_LINKING` or :class:`L_PEPTIDE_LINKING` for a +chain of type :class:`CHAINTYPE_POLY_PEPTIDE_L`. These requirements are +fulfilled for structures loaded from mmCIF files. +Structures loaded from PDB files may have peptide residues, water and +non-polymers in the same chain. They are not *mmcif_conform* and thus +require preprocessing. + +* Chains represent valid mmCIF entities, e.g. + Biounits --------------------------------------------------------------------------------