我正在尝试将结构 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
这里需要一个完整的结构,但在前面的循环中我只转换了段残基。如何将它们保存到磁盘?
最佳答案
PDBIO
确实需要一个完整的结构。仅保存该结构的子集的技巧是使用 Select
类(class)。如果您覆盖任何默认方法(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())
关于python - 仅对齐并保存结构段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197862/