私は3次元タンパク質構造中の接触しているアミノ酸残基を同定しようとしています。私はBioPythonに新しいですが、彼らのリードに続き、この便利サイトhttp://www2.warwick.ac.uk/fac/sci/moac/people/students/peter_cock/python/protein_contact_map/biopythonを用いた分子内タンパク質残基接触マップ、KeyError: 'CA'
た(私は完成のためにここに再現します。私は別のタンパク質を使用していていること、しかし、注意してください):
import Bio.PDB
import numpy as np
pdb_code = "1QHW"
pdb_filename = "1qhw.pdb"
def calc_residue_dist(residue_one, residue_two) :
"""Returns the C-alpha distance between two residues"""
diff_vector = residue_one["CA"].coord - residue_two["CA"].coord
return np.sqrt(np.sum(diff_vector * diff_vector))
def calc_dist_matrix(chain_one, chain_two) :
"""Returns a matrix of C-alpha distances between two chains"""
answer = np.zeros((len(chain_one), len(chain_two)), np.float)
for row, residue_one in enumerate(chain_one) :
for col, residue_two in enumerate(chain_two) :
answer[row, col] = calc_residue_dist(residue_one, residue_two)
return answer
structure = Bio.PDB.PDBParser().get_structure(pdb_code, pdb_filename)
model = structure[0]
dist_matrix = calc_dist_matrix(model["A"], model["A"])
しかし、ときに私を上記のコードを実行すると、次のエラーメッセージが表示されます。
Traceback (most recent call last):
File "<ipython-input-26-7239fb7ebe14>", line 4, in <module>
dist_matrix = calc_dist_matrix(model["A"], model["A"])
File "<ipython-input-3-730a11883f27>", line 15, in calc_dist_matrix
answer[row, col] = calc_residue_dist(residue_one, residue_two)
File "<ipython-input-3-730a11883f27>", line 6, in calc_residue_dist
diff_vector = residue_one["CA"].coord - residue_two["CA"].coord
File "/Users/anaconda/lib/python3.6/site-packages/Bio/PDB/Entity.py", line 39, in __getitem__
return self.child_dict[id]
KeyError: 'CA'
この問題を解決する方法の提案はありますか?
エラーメッセージを見ると、「CA」という名前のキーはありません。入力ファイルが何であるかを知らなくても、それ以上の手助けは難しいです。ロードされているdictが期待どおりであることを確認することができます。 –
入力ファイルはhttp://www.rcsb.org/pdb/explore/explore.do?structureId=1qhwにあります。右上 - > "ファイルをダウンロードする" - > "PDB形式" – Hia3