HMM在生物序列分析中最重要的用途是搜索和比对。下面介绍HMM的一些基本理论。
早期HMM的论文是研究语音识别的。在介绍HMM用于生物序列分析之前,先简要介绍一下是如何用于语音识别的。录音后,语音信号被分成10-20ms的片段(帧),经过一些预处理后,通过
矢量化
将每一帧分配到大量预定义类别中的一个。通常会有256个这样的类别。然后语音信号被表示为一长串类别标签,语音识别器从中找出语音的音素
序列。问题在于实际发出的声音存在差异,并且说出单词的各个部分花费的时间也存在差异。生物序列分析中的许多问题具有相同的结构:基于某个字母表中的符号序列,找出该序列代表什么。例如,对于蛋白质,序列由20个氨基酸字母表中的符号组成,我们通常想知道给定序列属于哪个蛋白质家族。在这里,氨基酸的一级序列就类似于语音信号,蛋白质家族类似于它所代表的口语。语音信号的时间变化对应于蛋白质序列的插入和缺失。
下面以CpG岛为例,介绍一个非隐藏类型的马尔可夫模型。
在人类基因组中,无论二核苷酸CG(写成CpG)出现在哪里,C通常会通过甲基化进行化学修饰。这种甲基化的C突变成T的概率相对较高。因此,我们观察到的CpG比C和G独立概率所预期的要少。出于生物学上的重要原因,甲基化过程是在基因组的短片段中受到抑制,例如在许多基因的启动子附近。在这些区域,由于甲基化被抑制了,所以看到的CpG比其他位置多,这些区域被称为
CpG islands
.通常有几百到几千个碱基。要考虑两个问题:
- 给定一小段基因组序列,如何确定它是否来自CpG岛?
- 给定一段很长的序列,如何找到它的CpG岛?
Markov chains
我们想要一个模型,它能够生成一个序列,在这个序列中每一个符号的生成概率仅取决于前一个符号。最简单的这类模型是经典的
马尔可夫链
。DNA的马尔可夫链可以绘制成这样:DNA字母表中的四个字母
A,T,C,G
都有一个状态。概率参数与图中的每个箭头相关联,它确定某个状态跟随另一个状态的概率,这些概率参数称为转移概率
,写为a_{st}$$a_{st}=P(x_i=t|x_{i-1}=s)$$
对于一个序列,我们可以把生成它的概率写为:
$$P(x)=P(x_L,x_{L-1},...,x_1)=P(x_L|x_{L-1},...,x_1)P(x_{L-1}|x_{L-1},...,x_1)...P(x_1)$$
马尔可夫链的关键特性是每个符号x_i的概率仅取决于前一个符号,而不是整个序列。因此,我们可以把上面的等式变为:
$$P(x)=P(x_L|x_{L-1})P(x_{L-1}|x_{L-2})...P(x_2|x_1)P(x_1)$$
这就是来自任何马尔可夫链的特定序列的概率的一般方程。