在blast中E值(E value)是什么?

来源:互联网 发布:淘宝账号被限制登录 编辑:程序博客网 时间:2024/05/01 21:42

一般的,当我们使用BLAST(是一种用于在数据库当寻找任何蛋白质或者基因序列与你的目标序列一致的程序)时,我们会注意到这里有一个E值。那么这个E value是什么呢?怎么来理解这个值呢?

下面是一个平常的blast结果,

Sequences producing significant alignments:Score (S)Egi|83574104|Moth_2374|sporulation – prote…2022e-53gi|83573446|Moth_1696|Sporulation – prote…1121e-26gi|83571874|Moth_0087|sporulation – prote…953e-21gi|83573435|Moth_1685|Substrate-binding -…271.0

后面有两个值,一个是S值,一个E值。可以发现,结果是依据S值的高低来显示的。

S值表示两序列的同源性,分值越高表明它们之间相似的程度越大。
E值就是S值可靠性的评价。它表明在随机的情况下,其它序列与目标序列相似度要大于这条显示的序列的可能性。所以它的分值越低越好。
E值的计算:
E=Kmn(e-lambda*S)
其中,K和lambda与数据库和算法有关,是个常量;m代表目标序列的长度,n代表数据库的大小,S就是前面提到的S值。
通常来讲,我们认为E值小于10-5就是比较可性的S值结果。我们可以想象,相同的数据库,E=0.001时如果有1000条都有机会S值比现在这个要高的话,那么不E设置为10-6时可能就会只得到一条结果,就是S值最可靠的那个。

但是E值也不是万能的。它在以下几个情况下有局限性:

1. 当目标序列过小时,E值会偏大,因为无法得到较高的S值。
2. 当两序列同源性虽然高,但有较大的gap(空隙)时,S值会下降。这个时候gap scores就非常有用。
3. 有些序列的非功能区有较低的随机性时,可能会造成两序列较高的同源性。

BLAST试图去避免这些问题,但是还是应该自己有个清晰的概念。

E值总结:

E值适合于有一定长度,而且复杂度不能太低的序列。
当E值小于10-5时,表明两序列有较高的同源性,而不是因为计算错误。
当E值小于10-6时,表时两序列的同源性非常高,几乎没有必要再做确认。