2014-09-05 222 views
0

我關注此頁 How to extract chains from a PDB file?但我無法找到我想要的完整解決方案。這裏是我的問題:如何從PDB文件中提取所有鏈?

沒有給出特定的鏈id,我想提取pdb中的所有鏈id並在獨立的pdb文件中寫入這些鏈id。你能告訴我如何提取pdb中存在的所有鏈嗎?例如,如果pdb包含兩個鏈,我想單獨編寫所有兩個鏈。

6CHY - 它有兩個鏈A和B.我要分別在6CHY_A.pdb和B鏈中寫入6CHY_B中的A鏈。

回答

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") 
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?

相關問題