如何在对 PDB.BIO python 中的蛋白质原子执行 Superimposer 后写回 PDB 文件
How to write back to a PDB file after doing Superimposer for atoms of a protein in PDB.BIO python
我从 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 文件。
正如我在 PDBIO
package documentation 文档 Biopython
中看到的示例:
p = PDBParser()
s = p.get_structure("1fat", "1fat.pdb")
io = PDBIO()
io.set_structure(s)
io.save("out.pdb")
似乎 PDBIO
模块需要 class Structure
的对象才能工作,这在原则上是我理解的 Superimposer
工作的对象。当你说它不接受列表时,你的意思是你有一个结构列表吗?在那种情况下,您可以简单地通过遍历结构来完成,如:
for s in my_results_list:
io.set_structure(s)
io.save("out.pdb")
如果你有一个原子列表,我想你可以用它创建一个 Structure
对象,然后将它传递给 PDBIO
.
但是,如果不了解您的问题,就很难说得更多。你可以把你的问题放在你遇到问题的代码行上。
编辑:现在我更明白你想做什么了。所以我在一个有趣的 Biopython Structural Bioinformatics FAQ 中看到了一些关于 Structure
class 的信息,这显然有点复杂。乍一看,我没有看到从头开始创建 Structure
对象的非常简单的方法,但您可以做的是修改从 PDBIO
获得的结构,用从中获得的结果替换原子列表Superimposer
然后使用相同的修改结构写入 .pdb
文件。因此,您可以尝试将 mutantAtoms
列表放入您已有的 mutantStructure
对象中。
我从 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 文件。
正如我在 PDBIO
package documentation 文档 Biopython
中看到的示例:
p = PDBParser()
s = p.get_structure("1fat", "1fat.pdb")
io = PDBIO()
io.set_structure(s)
io.save("out.pdb")
似乎 PDBIO
模块需要 class Structure
的对象才能工作,这在原则上是我理解的 Superimposer
工作的对象。当你说它不接受列表时,你的意思是你有一个结构列表吗?在那种情况下,您可以简单地通过遍历结构来完成,如:
for s in my_results_list:
io.set_structure(s)
io.save("out.pdb")
如果你有一个原子列表,我想你可以用它创建一个 Structure
对象,然后将它传递给 PDBIO
.
但是,如果不了解您的问题,就很难说得更多。你可以把你的问题放在你遇到问题的代码行上。
编辑:现在我更明白你想做什么了。所以我在一个有趣的 Biopython Structural Bioinformatics FAQ 中看到了一些关于 Structure
class 的信息,这显然有点复杂。乍一看,我没有看到从头开始创建 Structure
对象的非常简单的方法,但您可以做的是修改从 PDBIO
获得的结构,用从中获得的结果替换原子列表Superimposer
然后使用相同的修改结构写入 .pdb
文件。因此,您可以尝试将 mutantAtoms
列表放入您已有的 mutantStructure
对象中。