0

我关注此页面 如何从 PDB 文件中提取链?但我无法找到我想要的完整解决方案。这是我的问题:

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

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

4

2 回答 2

3

pdb 中的所有链都可以用get_chains.

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")
于 2014-09-05T09:57:49.710 回答
0

我解决了这个问题。也许可能不是聪明的方式。简单的答案或解决方案总是受欢迎的。要为给定的链编写 PDB,请遵循这个完美编写的线程 -如何从 PDB 文件中提取链?

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

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())

请在如何从 PDB 文件中提取链?

于 2014-09-05T02:37:41.127 回答