浅谈HMM在DNA序列分析中的运用

HMM简介

HMM是一种概率图模型


image.png

即有马尔可夫链这个随机过程,在马尔科夫链对应状态点上,又有相应的观测点,状态点之间转移满足马尔可夫链的转移矩阵,状态点与观测点之间的传递通过发射矩阵

例子

假设说我有多条序列:


image.png

对于每一个postion来说,可能出现的的情况如下:


image.png

这个是什么意思呢?
例如[AT],表示第一个位置可能为A碱基也可能为T碱基

特别的,第4个位置:


第4个位置

熟悉动态规划NW算法的同学都知道,这个是gap penalty导致的加"-"
所有第4个位置有4个碱基选择:
image.png

分别是A,T,C,G

引入HMM可以看到:


image.png

解释下这幅图:
箭头表示转移方向,上面的数字表示走这条路径的概率,框里的柱形图表示先验的碱基出现的个数

这个随机过程可以理解为:第一个位置往第二个位置转移(计算碱基出现的频率)

以第三个位置为例:
A : 0.8, C : 0.2
那么第四个位置: 从第三个位置向上转移的概率为0.6;向右侧转移的概率为0.4

假设我要计算ACACATC这条序列出现的概率:


image.png

其中(0.8;0.8;0.8;0.4;1;0.8;0.8为碱基出现概率)
其中(1;1;0.6;0.6;1;1为转移概率)

当然也有另一个算法:


image.png

P(S)是碱基发生概率,L是sequence长度


image.png
image.png

例子

当然呢,我也有看到大佬这么写的,利用HMM预测非编码序列


image.png

两个颜色不同的骰子,一个是橘色(Coding,C)的另一个是蓝色(Noncoding,N)的
黑色部分即是马尔可夫链隐含部分---隐含层,蓝色部分是可见部分(即你看到的部分)---状态层

事实上对于编码序列和非编码序列,我们选择概率为1/2,然后ATCG四个序列每个碱基选择概率为1/4

那么我们分开两层:隐含层用于表示是编码还是非编码序列,C C N N N N N N N C C C(C为coding ,N 为nocoding)
状态层用于表示是何种类型碱基,CGAAAAAATCG

利用马尔可夫模型预测基因

我们来做一个最简单的基因预测。给定一段基因组DNA序列,我们来预测其中的编码区。
按照我们之前说的,隐含层用于判断是否为编码/非编码;状态层用于表示观察到底是什么序列


image.png

根据之前分析的,我们在隐含层的转移用转移矩阵(图1),从隐含层到对应状态层的转移用发射矩阵(图2)


图1

图2

根据一些先验信息和统计数据来制定相应的概率值


image.png

为简化计算机计算,取log,转化为加法运算
image.png

假设我有一段基因组序列: CGAAAAAATCG
非编码状态N的分布设为0.8,编码状态C的分布设为0.2,经过log10转换后,分别为-0.097和-0.699


image.png

我们先假设一种情形:
我们说过HMM模型最关键的两个矩阵,一个叫状态转移矩阵,另一个叫发射矩阵
那么我们将编码区和非编码区看成两个状态,状态的转换通过状态转移矩阵实现;每个状态到观察到的序列通过发射矩阵连接

我们先看状态转移矩阵:


这个矩阵表示对于非编码区,当前非编码状态向下一个非编码状态转移的概率为-0.097,当前非编码状态向下一个编码状态转移的概率为-0.699,当前编码状态向下一个非编码状态转移的概率为-0.398,当前编码状态向下一个编码状态转移的概率为-0.222

对于发射矩阵:



发射矩阵分两种情况:1.若当前状态为非编码状态时,观察到A的概率为-0.699;观察到C的概率为-0.523;观察到G的概率为-0.523;观察到T的概率为-0.699
2.若当前状态为编码状态时,观察到A的概率为-0.398;观察到C的概率为-0.699;观察到G的概率为-0.699;观察到T的概率为-0.699。

假如只考虑状态转移矩阵:
假设说第一个位置C,来自的是非编码序列,那么该事件发生概率是-0.523,那么它向下一个状态:

  1. 非编码区域 : -0.523 + (-0.097) = -0.62

2.编码区: -0.523+(-0.699)= -1.222
显然我们选择最大值,-0.62,即下一个任然是非编码区,且出现G的概率为-0.523

如果既考虑状态转移矩阵,又考虑发射矩阵:
1.第一个序列为非编码取的C碱基,第二个位置为非编码的G碱基的总概率和为: -0.523 + (-0.097) + (-0.523) = -1.143

2.第一个序列为非编码取的C碱基,第二个位置为编码的G碱基的总概率和为: -0.523 + (-0.699) + (-0.699) = -1.921
显然选择第一种可能(值最大),接下来的序列就根据这个原理往下推

那么假设第二种情形也是一样的:
假设说第一个位置C,来自的是编码序列,那么该事件发生概率是 -0.699,仿照第一种情形往下推,选取概率最大值
原理:


原理

然后回溯回去,找每个状态的概率最大值回溯


image.png

然后就可以寻找到最终的结果了:


image.png

参考:
<Hidden Markov Models for Biological Sequences>
https://www.jianshu.com/p/3b367bc14147

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 四月份的春天,柳树生出嫩芽,阳光没有那么毒辣,空气不那么冰冷,漫步海边,微风中混合着小草的清香以及海水的咸味。游乐...
    夕阳依然那么美阅读 254评论 0 0
  • 如题。
    颉之颃之阅读 277评论 0 0
  • 千与千寻终于在中国上映啦!今晚走起去看电影~ 《千与千寻》是宫崎骏执导、编剧,柊瑠美、入野自由、中村彰男、夏木真理...
    国民师姐生活馆阅读 1,146评论 0 0
  • 今天小孩发烧了,最高39.8,刚吃了泰诺,出了汗睡了,不知晚上还会否反复?小孩从小身体不是很好,以后还是要加强锻炼...
    恒胜阅读 243评论 0 1
  • 背单词,背课文,刷哈佛英语阅读理解和完形填空基础不好还是先课内吧,新一新二,53万唯,看中考英语百题大过关的语法哈...
    25b7da2cec42阅读 156评论 0 0

友情链接更多精彩内容