This reads in a PDB or mmCIF file specified by filename, and fills in any missing atoms using internal coordinates. If you want to read in a PDB or mmCIF file from PDB or generated from an experiment or some other program, you should use this routine in preference to model.read(), which does not handle missing atoms.
If special_patches is not None, it should be a Python function which takes a single argument (the model). It is called prior to filling in missing coordinates. This can be used to adjust the topology, e.g. by adding disulfide bridges. If you wish to patch terminal residues, you should also set patch_default to False to turn off the default patching.
If transfer_res_num is True, the residue numbering from the original PDB or mmCIF is retained (by default, residues are renumbered from 1, and chains are labeled from A).
If model_segment is set, it is used to read a subset of the residues from the file, just as in model.read().
In order for this routine to work correctly, you should first have read in topology and parameter libraries. The new model object is returned on success.
Example: See selection.energy(), conjugate_gradients() command.