Overview
PSSM
算法是生物信息学领域中的一个常用算法,全名“位置特异性打分矩阵(position-specific scoring matrix
)”,又称作"位置比重矩阵(position weight matrix
)".有关该方法更多的细节,详见维基百科Position weight matrix.本文仅阐述其设计思想,实际项目的例子将在另一篇文章中进行介绍.
1.建模思想
一个PWM
包含N
行(列),当模型为DNA
时,N=4
;当模型为蛋白质时,N=20
。维基百科给出的是DNA
的核苷酸序列的例子,对于我们的项目来说,不同的也仅仅是矩阵行列数而已:组成DNA
的基本核苷酸有A,C,G,T
四种,故行列式有四行(列);组成蛋白质的基本氨基酸有二十种,故行列式有二十行(列)。同时PWM
对于每个不同位置都对应一列(行)数据。而选择基本核苷酸(氨基酸)作为行或列,需要针对各自的需要进行调整。
1.1 构建位置频度矩阵(PFM
)
位置频度矩阵(position frequency matrix
)的构建的思路还是比较简单的,这里仍然以维基百科的例子介绍。DNA
序列如下表所示:
GAGGTAAAC |
共有10
行9
列,则相应的PFM
为
这个矩阵的列数也是9
,而每一列的数各自加起来正好是10
,也就是DNA
序列的行数。这样,构建矩阵的原理就很清晰了:计算每一列中的各核苷酸的数量,然后存入矩阵的相应位置。
1.2 构建位置概率矩阵(PPM
)
通过PFM
求PPM
,只需要下面的公式:
其中,i
为行号,j
为列号,即:
且I
是指示函数,即:
则1.1中的PFM
相应的PPM
为:
在这里有一点需要特别注意:
对于每一个匹配成功的核苷酸,我们计分为1,未匹配则记为0,这只是一个简单的思想。而在实际情况下,我们用BLAST或者PSI-BLAST等程序求序列的PSSM时,相应的打分规则就要复杂许多。这时候就需要根据自身的需要选择相应的各种参数,如:gap,λ。
关于上面一段话中提及的程序,更多的细节请点击:
https://en.wikipedia.org/wiki/BLAST
http://blast.ncbi.nlm.nih.gov/Blast.cgi
http://www.ebi.ac.uk/Tools/sss/psiblast/
http://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE=Proteins&PROGRAM=blastp&RUN_PSIBLAST=on
我们假定这些矩阵在行列式的每个位置上都是统计独立的。非统计独立模型请参考Chris
的一篇文章http://www.nohup.cc/article/111/,这里就不赘述了。那么对于DNA
序列S=GAGGTAAAC
来说,它出现的概率就是
1.3 构建位置比重矩阵(PWM
)
这里引入一个参数b
,b=1/k
,其中,当序列为蛋白质序列时,k=20
;序列为DNA
时,k=4
.那么对于相同的位置上的PWM
和PPM
的矩阵元素,其关系为:
那么1.2中的PPM
相对应的PWM
为:
至此,我们已经介绍完构建PSSM
的基本思想。
Check beneath, are some completely unrelated web sites to ours, however, they are most trustwor[...]
[...]1.构建PSSM的步骤[...]