set_structure#

biotite.structure.io.pdbx.set_structure(pdbx_file, array, data_block=None, include_bonds=False, extra_fields=[])[source]#

Set the atom_site category with atom information from an AtomArray or AtomArrayStack.

This will save the coordinates, the mandatory annotation categories and the optional annotation categories atom_id, b_factor, occupancy and charge. If the atom array (stack) contains the annotation 'atom_id', these values will be used for atom numbering instead of continuous numbering. Furthermore, inter-residue bonds will be written into the struct_conn category.

Parameters:
pdbx_fileCIFFile or CIFBlock or BinaryCIFFile or BinaryCIFBlock

The file object.

arrayAtomArray or AtomArrayStack

The structure to be written. If a stack is given, each array in the stack will be in a separate model.

data_blockstr, optional

The name of the data block. Default is the first (and most times only) data block of the file. If the data block object is passed directly to pdbx_file, this parameter is ignored. If the file is empty, a new data block will be created.

include_bondsbool, optional

If set to true and array has associated bonds , the intra-residue bonds will be written into the chem_comp_bond category. Inter-residue bonds will be written into the struct_conn independent of this parameter.

extra_fieldslist of str, optional

List of additional fields from the atom_site category that should be written into the file. Default is an empty list.

Notes

In some cases, the written inter-residue bonds cannot be read again due to ambiguity to which atoms the bond refers. This is the case, when two equal residues in the same chain have the same (or a masked) res_id.

Examples

>>> import os.path
>>> file = CIFFile()
>>> set_structure(file, atom_array)
>>> file.write(os.path.join(path_to_directory, "structure.cif"))