我试图将结构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
这里需要一个完整的结构,但在之前的循环中我只转换了段残基。如何将它们保存到磁盘?
答案 0 :(得分:2)
PDBIO
确实期待一个完整的结构。仅保存该结构的子集的技巧是使用Select
类。如果覆盖任何默认方法(accept_chain
,accept_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())