1

我正在尝试将结构 A 中的一个短段与一个短结构 B 对齐。我尝试遵循“使用 Biopython 进行蛋白质叠加”

但是因为我只想从 A 中提取一小段并保存这个,所以我在保存结果时遇到了问题。

调用对齐工作正常:

super_imposer.set_atoms(residuesBCA,residuesACA)

并且对对齐位置的连续变换贯穿

for residue in residuesACA:
    residue.transform(super_imposer.rotran[0],super_imposer.rotran[1])

但我无法检查结果,因为我无法保存残留物

io = PDBIO()  
io.set_structure(residuesACA)
io.save('./' + pdbFile)

io这里需要一个完整的结构,但在前一个循环中,我只转换了片段残基。如何将它们保存到磁盘?

4

1 回答 1

2

PDBIO确实需要一个完整的结构。只保存该结构的一个子集的技巧是使用一个Select类。如果您覆盖任何默认方法(accept_chainaccept_residue等),您可以覆盖 SMCRA 层次结构的哪些方面被保存。

from Bio import PDB

class OnlyACAResideus(PDB.Select):
    def accept_residue(self, res):
        return res in residuesACA

io = PDBIO()

# Presumably, you still have the structure, but you can unfold it like so:
struct = PDB.Selection.unfold_entities(residuesACA, 'S')[0]
io.set_structure(struct)
io.save("struct.pdb", select=OnlyACAResidues())
于 2013-08-12T23:30:21.757 回答