【发布时间】:2014-10-04 12:55:10
【问题描述】:
我想绘制泛素蛋白的alpha-cabon 到nitrogen 键距离分布。所以我下载了1UBQ.pdb from RCSB website。现在使用biopython,我试图找到所有alpha-cabon(CA) 到nitrogen(N) 键之间的距离。
我尝试过如下代码:
import sys
#from Bio.PDB import *
from Bio.PDB.PDBParser import PDBParser
from numpy import loadtxt
pdb1 ='/home/devanandt/Documents/VMD/1UBQ.pdb'
sys.stdout = open('file_ubq', 'w')
parser=PDBParser(PERMISSIVE=1)
#file=open('1UBQ.pdb','r')
#header_dict=parse_pdb_header(file)
#file.close()
i=1
structure = parser.get_structure('1UBQ',pdb1)
for model in structure:
for chain in model:
for residue in chain:
for atom in residue:
model = structure[0]
chain = model['A']
residue_1 = chain[i]
atom_1 = residue_1['N']
atom_2 = residue_1['CA']
distance = atom_1-atom_2
#print atom.get_vector(),atom.name,distance
print distance
i=i+1
#lines = loadtxt("file_ubq")
我在文件 'file_ubq' 中得到了输出,如下所示:
1.47369
1.4966
1.47547
1.51187
1.44885
1.50423
1.47052
1.48006
1.50265
.
.
.
.
1.48417
1.47194
1.45661
1.47023
但除此之外,我也遇到如下错误:
return self.child_dict[id]
KeyError: (' ', 77, ' ')
----------------------------------------------
Program exited successfully with errcode (1)
Press the Enter key to close this terminal ...
EXECUTING:
/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py
----------------------------------------------
Traceback (most recent call last):
File "/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py", line 38, in <module>
residue_1 = chain[i]
File "/usr/lib/pymodules/python2.7/Bio/PDB/Chain.py", line 67, in __getitem__
return Entity.__getitem__(self, id)
File "/usr/lib/pymodules/python2.7/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: (' ', 77, ' ')
----------------------------------------------
Program exited successfully with errcode (1)
Press the Enter key to close this terminal ...
EXECUTING:
/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py
----------------------------------------------
Traceback (most recent call last):
File "/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py", line 38, in <module>
residue_1 = chain[i]
File "/usr/lib/pymodules/python2.7/Bio/PDB/Chain.py", line 67, in __getitem__
return Entity.__getitem__(self, id)
File "/usr/lib/pymodules/python2.7/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: (' ', 77, ' ')
----------------------------------------------
Program exited successfully with errcode (1)
Press the Enter key to close this terminal ...
^CEXECUTING:
/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py
----------------------------------------------
Traceback (most recent call last):
File "/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py", line 38, in <module>
residue_1 = chain[i]
File "/usr/lib/pymodules/python2.7/Bio/PDB/Chain.py", line 67, in __getitem__
return Entity.__getitem__(self, id)
File "/usr/lib/pymodules/python2.7/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: (' ', 77, ' ')
----------------------------------------------
Program exited successfully with errcode (1)
Press the Enter key to close this terminal ...
EXECUTING:
/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py
----------------------------------------------
Traceback (most recent call last):
File "/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py", line 38, in <module>
residue_1 = chain[i]
File "/usr/lib/pymodules/python2.7/Bio/PDB/Chain.py", line 67, in __getitem__
return Entity.__getitem__(self, id)
File "/usr/lib/pymodules/python2.7/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: (' ', 77, ' ')
----------------------------------------------
Program exited successfully with errcode (1)
Press the Enter key to close this terminal ...
EXECUTING:
/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py
----------------------------------------------
Traceback (most recent call last):
File "/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py", line 38, in <module>
residue_1 = chain[i]
File "/usr/lib/pymodules/python2.7/Bio/PDB/Chain.py", line 67, in __getitem__
return Entity.__getitem__(self, id)
File "/usr/lib/pymodules/python2.7/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: (' ', 77, ' ')
----------------------------------------------
Program exited successfully with errcode (1)
Press the Enter key to close this terminal ...
EXECUTING:
/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py
----------------------------------------------
Traceback (most recent call last):
File "/home/devanandt/Documents/PYTHON/ubq/src/ubq_dist_pdf.py", line 38, in <module>
residue_1 = chain[i]
File "/usr/lib/pymodules/python2.7/Bio/PDB/Chain.py", line 67, in __getitem__
return Entity.__getitem__(self, id)
File "/usr/lib/pymodules/python2.7/Bio/PDB/Entity.py", line 38, in __getitem__
return self.child_dict[id]
KeyError: (' ', 77, ' ')
----------------------------------------------
Program exited successfully with errcode (1)
Press the Enter key to close this terminal ...
谁能帮我理解和解决这个错误?
【问题讨论】:
-
但我必须正确增加循环,以获得 76 个残基键距离。我注意到错误从第 77 个即水分子点开始。
-
你问的是pdb文件还是程序。
-
我做了异常处理以避免错误
标签: python bioinformatics biopython protein-database