如何从PDB文件中提取所有链?

时间:2014-09-05 00:57:49

标签: biopython chain protein-database

我按照这个页面 How to extract chains from a PDB file?但我无法找到我想要的完整解决方案。这是我的问题:

没有给出特定的链ID,我想提取pdb中的所有链id并在单独的pdb文件中写入这些链id。你能告诉我如何提取pdb中存在的所有链吗?例如,如果pdb包含两个链,我想单独编写所有两个链。

6CHY - 它有两个链A和B.我想分别在6CHY_A.pdb中编写A链,在6CHY_B中编写B链。

2 个答案:

答案 0 :(得分:2)

可以使用get_chains检索pdb中的所有链。

pdb = PDBParser().get_structure("6CHY", "6CHY.pdb")

for chain in pdb.get_chains():
    # Chain business goes here

假设您需要将每个链写入单独的文件。这样做:

from Bio.PDB import PDBParser, PDBIO

io = PDBIO()
pdb = PDBParser().get_structure("6CHY", "6CHY.pdb")

for chain in pdb.get_chains():
    io.set_structure(chain)
    io.save(pdb.get_id() + "_" + chain.get_id() + ".pdb")

答案 1 :(得分:0)

我解决了这个问题。也许可能不是聪明的方式。随时欢迎简单的答案或解决方案。要为给定的链编写PDB,请遵循这个完美写好的主题 - How to extract chains from a PDB file?

此外,使用这段代码获取所有链

chain_ids = []
struct = self.parser.get_structure("6CHY", "./6CHY.pdb")
chains = struct[0] # I need only X-RAY structures 
for chain in chains:
    chain_ids.append(chain.get_id())

请在How to extract chains from a PDB file?

中附加这些代码行