执行BLOSUM62 matix时出错

时间:2016-10-28 08:26:06

标签: python matrix biopython

我正在尝试从blosum62矩阵

中提取数据

我已完成以下代码:

from Bio.SubsMat import MatrixInfo    
blosum = MatrixInfo.blosum62    
blosum['N','D'] 

et得到以下错误:

  

追踪(最近的呼叫最后):
  文件“< stdin>”,第1行,在< module>中   KeyError :('N','D')

但在blosum62矩阵中,值为('N','D') = 1

为什么要提供KeyError?

2 个答案:

答案 0 :(得分:0)

我认为Blosum62是一个较低的三角形矩阵,所以如果(' N' D' D')不起作用,那就去(' D',&# 39; N&#39)

解决方案是

pair = ('N','D')
if pair not in blosum62_matrix:
      value = blosum62_matrix[(tuple(reversed(pair)))]
else:
      value = blosum62_matrix[pair]

我认为它会奏效。

答案 1 :(得分:-1)

加入http://biopython.org/DIST/docs/api/Bio.SubsMat.MatrixInfo-module.html#blosum62 blosom62会返回字典。所以试试blosum[('N','D')]