我从PDB文件中读取并提取原子信息,然后执行Superimposer()
将突变与野生型对齐。如何将原子的对齐值写回PDB文件?我尝试使用PDBIO()
库但它不起作用,因为它不接受列表作为输入。任何人都知道如何做到这一点?
mutantAtoms = []
mutantStructure = PDBParser().get_structure("name",pdbFile)
mutantChain = mutStructure[0]["B"]
# Extract information of atoms
for residues in mutantChain:
mutantAtoms.append(residues)
# Do alignment
si =Superimposer()
si.set_atoms(wildtypeAtoms, mutantAtoms)
si.apply(mutantAtoms)
现在mutantAtoms
是野生型原子的对齐原子。我需要将此信息写入PDB文件。我的问题是如何从对齐原子列表转换为结构,并使用PDBIO()
或其他一些方法写入PDB文件。
答案 0 :(得分:1)
正如我在PDBIO
文档中的Biopython
package documentation中的示例中看到的那样:
p = PDBParser()
s = p.get_structure("1fat", "1fat.pdb")
io = PDBIO()
io.set_structure(s)
io.save("out.pdb")
似乎PDBIO
模块需要类Structure
的对象才能工作,原则上我理解Superimposer
的工作原理。如果你说它不接受列表你的意思是你有一个结构列表?在这种情况下,您可以通过迭代结构来完成它,如下所示:
for s in my_results_list:
io.set_structure(s)
io.save("out.pdb")
如果您拥有的是原子列表,我猜您可以使用该对象创建一个Structure
对象,然后将其传递给PDBIO
。
但是,如果不了解更多有关您的问题的话,很难说清楚。您可以在问题上提出您遇到问题的代码行。
修改:现在我已经更好地理解了您想要做的事情。所以我在一个有趣的Biopython Structural Bioinformatics FAQ中看到了一些关于Structure
类的信息,这显然有些复杂。乍一看,我没有看到从头开始创建Structure
个对象的非常简单的方法,但你可以做的是修改你从PDBIO
取代原子列表得到的结果。 Superimposer
然后使用相同的修改结构编写.pdb
文件。因此,您可以尝试将mutantAtoms
列表放入已有的mutantStructure
对象中。