diff --git a/prody/atomic/atomic.py b/prody/atomic/atomic.py index 6ab107173..d8bc7aa5c 100644 --- a/prody/atomic/atomic.py +++ b/prody/atomic/atomic.py @@ -291,6 +291,8 @@ def toBioPythonStructure(self, header=None, **kwargs): :arg csets: coordinate set indices, default is all coordinate sets + :arg infer_bonds: whether to infer new bonds + :type infer_bonds: bool """ try: from Bio.PDB.Structure import Structure @@ -308,6 +310,10 @@ def toBioPythonStructure(self, header=None, **kwargs): if csets is None: csets = range(self.numCoordsets()) + infer_bonds = kwargs.get('infer_bonds', False) + if infer_bonds: + self.inferBonds() + structure_builder = StructureBuilder() structure_builder.init_structure(self.getTitle()) if header is not None: diff --git a/prody/proteins/mmtffile.py b/prody/proteins/mmtffile.py index 5c2b62004..c250ac20c 100644 --- a/prody/proteins/mmtffile.py +++ b/prody/proteins/mmtffile.py @@ -387,12 +387,14 @@ def writeMMTF(filename, atoms, csets=None, autoext=True, **kwargs): 'to solve the problem.') header = kwargs.get('header', None) + infer_bonds = kwargs.get('infer_bonds', False) if autoext and not filename.lower().endswith('.mmtf'): filename += '.mmtf' - structure = atoms.toBioPythonStructure(header=header, csets=csets) + structure = atoms.toBioPythonStructure(header=header, csets=csets, + infer_bonds=infer_bonds) io=MMTFIO() io.set_structure(structure) - io.save(filename) + io.save(filename, num_bonds=atoms.numBonds()) return filename