python - 仅对齐并保存结构段

标签 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 这里需要一个完整的结构,但在前面的循环中我只转换了段残基。如何将它们保存到磁盘?

最佳答案

PDBIO 确实需要一个完整的结构。仅保存该结构的子集的技巧是使用 Select类(class)。如果您覆盖任何默认方法(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())

关于python - 仅对齐并保存结构段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197862/

相关文章:

python - 在 django admin 中验证依赖内联

python - 根据单独文件中的条目从 FASTA 文件中提取序列

python - 如何在 Cygwin 上设置 PYTHONPATH?

python - BCBio 的 GFF 解析器解析不正确

python - 从fasta文件中有选择地选择核苷酸序列?

在字典中设置值的pythonic方式

python - 渲染 Flask HTML 表单结果为 "UnboundLocalError"

python - Pandas - 按单元格中的项目数拆分列

python - (BAD_COLUMN_NAME) : Glyph refers to nonexistent column name, Bokeh

python - 第三方对象在内存中的大小