如何更改 pdb 文件的链名称?
How do I change the chain name of a pdb file?
我想重命名 PDB 文件“6gch”的链 - https://www.rcsb.org/structure/6GCH。
我已经查看了 Biopython 手册,但似乎找不到任何内容。
任何输入都会有很大帮助!
您确实可以只更改链元素的 id
属性。之后就可以使用PDBIO来保存修改后的结构了。
但是请注意,此过程对 PDB 进行了大量修改。 PDBIO 不存储 REMARKs、SHEETs 和 SSBONDs 等条目。如果你知道你需要那些,你必须小心。
此过程还将 HETATM 移动到相应链的末尾,而原始 PDB 将它们放在文件的末尾。
由于 6GCH 有 3 个链,我使用字典 renames
来配置旧链名称到新链名称的映射。如果链名不包含在该字典中,则不会进行重命名。
from Bio.PDB import PDBList, PDBIO, PDBParser
pdbl = PDBList()
io = PDBIO()
parser = PDBParser()
pdbl.retrieve_pdb_file('6gch', pdir='.', file_format="pdb")
# pdb6gch.ent is the filename when retrieved by PDBList
structure = parser.get_structure('6gch', 'pdb6gch.ent')
renames = {
"E": "A",
"F": "B",
"G": "C"
}
for model in structure:
for chain in model:
old_name = chain.get_id()
new_name = renames.get(old_name)
if new_name:
print(f"renaming chain {old_name} to {new_name}")
chain.id = new_name
else:
print(f"keeping chain name {old_name}")
io.set_structure(structure)
io.save('6gch_renamed.pdb')
我想重命名 PDB 文件“6gch”的链 - https://www.rcsb.org/structure/6GCH。
我已经查看了 Biopython 手册,但似乎找不到任何内容。 任何输入都会有很大帮助!
您确实可以只更改链元素的 id
属性。之后就可以使用PDBIO来保存修改后的结构了。
但是请注意,此过程对 PDB 进行了大量修改。 PDBIO 不存储 REMARKs、SHEETs 和 SSBONDs 等条目。如果你知道你需要那些,你必须小心。 此过程还将 HETATM 移动到相应链的末尾,而原始 PDB 将它们放在文件的末尾。
由于 6GCH 有 3 个链,我使用字典 renames
来配置旧链名称到新链名称的映射。如果链名不包含在该字典中,则不会进行重命名。
from Bio.PDB import PDBList, PDBIO, PDBParser
pdbl = PDBList()
io = PDBIO()
parser = PDBParser()
pdbl.retrieve_pdb_file('6gch', pdir='.', file_format="pdb")
# pdb6gch.ent is the filename when retrieved by PDBList
structure = parser.get_structure('6gch', 'pdb6gch.ent')
renames = {
"E": "A",
"F": "B",
"G": "C"
}
for model in structure:
for chain in model:
old_name = chain.get_id()
new_name = renames.get(old_name)
if new_name:
print(f"renaming chain {old_name} to {new_name}")
chain.id = new_name
else:
print(f"keeping chain name {old_name}")
io.set_structure(structure)
io.save('6gch_renamed.pdb')