对齐和仅保存结构段

时间:2013-08-12 22:42:42

标签: python biopython

我试图将结构A中的短段与短结构B对齐。 我尝试了"Protein Superposition using 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这里需要一个完整的结构,但在之前的循环中我只转换了段残基。如何将它们保存到磁盘?

1 个答案:

答案 0 :(得分: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())