如何在pdb中添加链id
How to add chain id in pdb
通过使用 biopython 库,我想在我的 pdb 文件中添加链 ID。
我正在使用
p = PDBParser()
structure=p.get_structure('mypdb',mypdb.pdb)
model=structure[0]
model.child_list=["A","B"]
但是我得到了这个错误:
Traceback (most recent call last):
File "../../principal_axis_v3.py", line 319, in <module>
main()
File "../../principal_axis_v3.py", line 310, in main
protA=read_PDB(struct,ch1,s1,e1)
File "../../principal_axis_v3.py", line 104, in read_PDB
chain=model[ch]
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: 'A'
我试图更改 child.dict 中的键,但我遇到了另一个错误:
Traceback (most recent call last):
File "../../principal_axis_v3.py", line 319, in <module>
main()
File "../../principal_axis_v3.py", line 310, in main
protA=read_PDB(struct,ch1,s1,e1)
File "../../principal_axis_v3.py", line 102, in read_PDB
model.child_dict.keys=["A","B"]
AttributeError: 'dict' object attribute 'keys' is read-only
如何添加链 ID?
您的错误是 child_list
不是包含链 ID 的列表,而是包含 Chain
个对象 (Bio.PDB.Chain.Chain
) 的列表。您必须创建 Chain
个对象,然后将它们添加到结构中。一个蹩脚的例子:
from Bio.PDB.Chain import Chain
my_chain = Chain("C")
model.add(my_chain)
现在您可以访问模型 child_dict
:
>>> model.child_dict
{'A': <Chain id=A>, 'C': <Chain id=C>}
>>> model.child_dict["C"]
<Chain id=C>
通过使用 biopython 库,我想在我的 pdb 文件中添加链 ID。 我正在使用
p = PDBParser()
structure=p.get_structure('mypdb',mypdb.pdb)
model=structure[0]
model.child_list=["A","B"]
但是我得到了这个错误:
Traceback (most recent call last):
File "../../principal_axis_v3.py", line 319, in <module>
main()
File "../../principal_axis_v3.py", line 310, in main
protA=read_PDB(struct,ch1,s1,e1)
File "../../principal_axis_v3.py", line 104, in read_PDB
chain=model[ch]
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: 'A'
我试图更改 child.dict 中的键,但我遇到了另一个错误:
Traceback (most recent call last):
File "../../principal_axis_v3.py", line 319, in <module>
main()
File "../../principal_axis_v3.py", line 310, in main
protA=read_PDB(struct,ch1,s1,e1)
File "../../principal_axis_v3.py", line 102, in read_PDB
model.child_dict.keys=["A","B"]
AttributeError: 'dict' object attribute 'keys' is read-only
如何添加链 ID?
您的错误是 child_list
不是包含链 ID 的列表,而是包含 Chain
个对象 (Bio.PDB.Chain.Chain
) 的列表。您必须创建 Chain
个对象,然后将它们添加到结构中。一个蹩脚的例子:
from Bio.PDB.Chain import Chain
my_chain = Chain("C")
model.add(my_chain)
现在您可以访问模型 child_dict
:
>>> model.child_dict
{'A': <Chain id=A>, 'C': <Chain id=C>}
>>> model.child_dict["C"]
<Chain id=C>