隐马尔可夫模型
隐马尔可夫模型是一种概率数据生成机制用于一个序列或一组序列。它由以下网络描述状态每个从有限字母表根据一组发射概率,其值为特定于每个州。这些状态通过互连进行遍历一套,共套转移概率,包括概率保持任何给定状态,并转换为其他连接状态。
Durbin等人(1998)第3.2章。一个虚构的赌场有两个骰子,一个公平,一个加权。公平的骰子从具有相等概率的字母{1,2,3,4,5,6}(每个为1/6残留物)。用加载骰子掷“6”的概率为0.5,其余五个残基的平均值为0.1。如果经销商已经公平的骰子,他可能会秘密切换到加载的骰子每次掷骰后的概率为0.05,留下95%的机会保留公平的骰子。或者,如果他有加载的骰子,他会以0.1或更大的概率切换回公平骰子,以0.9的概率保留加载的骰子。
这个例子可以用一个简单的两状态隐马尔可夫表示模型。以下代码手动构建并绘制“HMM”对象。
图书馆(“蚜虫”)
状态<- c(c)(“开始”,“公平”,“已加载”)
残留物<- 粘贴(1:6)
###定义转移概率矩阵A
一<- 矩阵(c(c)(0,0,0,0.99,0.95,0.1,0.01,0.05,0.9),nrow公司= 三)
数据名(A)<- 列表(来自=州,至=状态)
###定义排放概率矩阵E
E类<- 矩阵(c(c)(代表(1/6,6),代表(1/10,5),1/2),nrow公司= 2,旁观者= 真的)
数据名(E)<- 列表(状态=状态[-1],残留物=残留物)
###创建HMM对象
x个<- 结构(列表(A类=A、,E类=E) ,类= “HMM”)
###绘制模型
情节(x,文本导出= 1.5)
###可选地将转换概率添加为文本
文本(x个= 0.02,年= 0.5,标签= "0.95")
文本(x个= 0.51,年= 0.5,标签= "0.90")
文本(x个= 0.5,年= 0.9,标签= "0.05")
文本(x个= 0.5,年= 0.1,标签= "0.10")
图1:不诚实赌场的简单隐马尔可夫模型例子。情节。HMM方法描述了过渡概率作为加权线,排放概率作为水平灰色条。本例中没有建模开始/结束状态;然而,这可以通过在转换矩阵的第一行和第一列,并传递“begin=TRUE”到绘图。隐马尔可夫模型
.
对于一系列观察到的滚动,我们可以确定最可能的隐藏状态的序列(包括骰子最可能切换的时间发生)。在Durbin et给出的示例中铝(1998)第3.2章,观察到的300卷的顺序为:
## 31511624644664424531132163116415213362514454363165 ## 66265666666511664531326512456366646316366631623264 ## 55236266666625151631222555441666566563564324364131 ## 51346514635341112641462625335636616366646623253441 ## 36616611632525624622552652522664353533362331216253 ## 64414432335163243633665562566662632666612355245242
一些6的可观察簇表明,加载的骰子出现在某个阶段,但骰子开关是什么时候发生的?在下面的代码使用维特比算法查找最可能的隐藏状态序列给出了模型。
数据(赌场)
###实际路径存储在序列的names属性中
实际的<- c(c)(“F”,“我”)[比赛(姓名(赌场),c(c)(“公平”,“已加载”))]
###查找预测路径
维生素1<- 维特比(x,赌场)
预测<- c(c)(“F”,“L”)[维生素1$路径+ 1]
###注意,输出Viterbi对象的path元素是一个整数向量
###将1添加到路径将从C/C++转换为R的索引样式
将预测的路径与实际的隐藏序列进行比较维特比算法就在眼前:
##实际的FFFFFFFFffFFFFFF##预测的FFFFFFFF## ##实际LLLLLLLLLL##预测LLLLLLLLLL## ##实际LLLLLLLLL FFFFFFFF FFFFF LLLLLLLL FFFFFFF##预测的LLLLLLLLLL FFFFFFFFffFFFFFF## ##实际的FFFFFFFFffFFFFFFFSFFFFFF LLLLLLLLLL FFFFFFff##预测的FFFFFFFF## ##实际FFFFFFFF##预测的FFFFFFFF## ##实际FFFFFFFFffFFFFFFF LLLLLLLLLL LLLLLL FFFFFF##预测的FFFFFFFFffFFFFFF LLLLLLLLLL FFFFFFF
我们还可以计算使用向前地
和/或向后的
算法:
赌场立柱<- 后面的(x,赌场)
情节(1:300,序列(0,1,输出长度= 300),类型= “n”,xlab公司= “卷号”,
伊拉布= “骰子公平的后验概率”)
开始<- 哪一个(c(c)(“L”,实际)== “F” & c(c)(实际,“F”)== “L”)
末端<- 哪一个(c(c)(“F”,实际)== “L” & c(c)(实际,“L”)== “F”)- 1
对于(i)在里面 1:6)矩形(开始[i],0,结束[i],1,科尔= “灰色”,边界= 纳)
线(1:300,赌场.邮政[1, ])
图2:300骰子的后验状态概率卷。线表示骰子的后验概率每次滚动时都很公平,而灰色矩形表示实际周期加载的骰子正在被使用。参见Durbin等人(1998)第3.2章了解更多详细信息。
从序列数据导出HMM
这个蚜虫包的功能衍生HMM
用于通过一系列训练构建HMM序列。下面的代码从我们的单个骰子序列以其已知状态路径滚动(存储为“名称”序列的属性)。
年<- 衍生HMM(列表(赌场),日志空间= 错误的)
情节(年),文本导出= 1.5)
###可选地将转换概率添加为文本
文本(x个= 0.02,年= 0.5,标签= 圆(年)$A类[“公平”,“公平”],2))
文本(x个= 0.51,年= 0.5,标签= 圆(年)$A类[“已加载”,“已加载”],2))
文本(x个= 0.5,年= 0.9,标签= 圆(年)$A类[“公平”,“已加载”],2))
文本(x个= 0.5,年= 0.1,标签= 圆(年)$A类[“已加载”,“公平”],2))
![](data:image/png;base64,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)
图3:从300个骰子序列派生出的简单HMM卷。如图1所示,转移概率如下所示加权线和发射概率为水平灰条。
尽管事实如此,这似乎与实际模型相当接近训练数据只包含一个序列。有人会通常从许多这样的序列列表中导出HMM(因此输入参数是一个列表而不是向量),但这个示例是简化以清晰明了。
轮廓隐马尔可夫模型
剖面隐马尔可夫模型是标准HMM的扩展,其中发射和跃迁概率为位置具体的也就是说,它们可以沿顺序。这些模型的参数通常比简单的HMM对等项,但对于序列来说可能非常强大分析。剖面HMM的前体通常是多序列对齐。路线中的每一列通常(但不总是)由模型中的一个内部位置或“模块”表示,每个由三种状态组成的模块:
- 沉默删除不排放残留物的状态。
- 一个插入发射概率反映整个路线的平均背景残留频率。
- 一比赛发射概率反映对齐列中的剩余频率。
图4显示了上面列出的三种状态类型,即圆形菱形和矩形。这些州通过过渡联系在一起概率在图中显示为加权线。
考虑以下氨基酸序列的小部分比对Durbin等人(1998)第5.3章:
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]##HBA_HUMAN“V”“G”“A”“-”“H”“A“G””“E”“Y”##HBB_HUMAN“V”“-”“-“”-“”N“”V“”D“”E“”V##MYG_PHYCA“V”、“E”、“A”、“-”“D”、“V”“A”“G”“H”##GLB3_CHITP“V”“K”“G”“-”“-”“-”“-”“-”“-”“D”##GLB5_PETMA“V”“Y”“S”-“”-“T”“Y“”E“”T“”S“”##LGB2_LUPLU“F”“N”“A”“-”“-“N””“I”“P”“K”“H”##GLB1_GLYDI“I”“A”“G”“A“D”“N”“G“A”、G“V”
特定位置的模式包括观察到位置1为“V”,位置3为“A”或“G”。制表时频率——增加伪计数也是谨慎的,因为没有特定过渡或发射类型不排除它发生在另一个(未观察到的)序列中的可能性。伪计数可以是拉普拉斯数(每个发射和跃迁加一个类型)、背景(调整拉普拉斯伪计数以反映从整个路线获得的背景频率),或用户定义的,它可以包括更复杂的伪计数方案,例如Dirichlet混合物(Durbin等人。1998).
derivePHMM函数的默认选项是“background”。
下面的代码从珠蛋白数据导出一个轮廓HMM打印模型:
珠蛋白。PHMM公司<- 衍生产品HMM(珠蛋白,残留物= “阿米诺”,假计数= “拉普拉斯”)
##应用统一序列权重
![](data:image/png;base64,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)
图4:来自部分珠蛋白序列的HMM剖面对齐。匹配状态显示为矩形、插入状态作为菱形,删除作为圆的状态。灰色水平条表示字母表中每个残留物的发射概率(在本例中为氨基酸字母表)在模型中的每个位置。删除状态中的数字只是模型模块编号,而处于插入状态的是下一个发射周期的当前插入状态。行是加权的在必要时指示,以反映状态。大的“B”和“E”标签代表的是无声的开始和最终状态。
注意,只有8个内部模块(不包括begin和结束状态),而路线有10列。这个衍生产品HMM
功能已确定(使用最大值一后部算法)没有足够的残差信息在路线的第4列和第5列中,以保证将其分配给内部模型中的模块。相反,对齐中的最后一个序列(GLB1_GLYDI)被认为已在位置处进入插入状态3保持两个排放循环(排放“A”和“D”)在模块4中转换到匹配状态之前。我们可以通过以下方式展示再次通过模型计算该序列的最佳路径使用维特比算法:
路径<- 维特比(珠蛋白.PHMM,珠蛋白[“GLB1_GLYDI”, ])$路径
路径
## [1] 1 1 1 2 2 1 1 1 1 1
Viterbi对象的“path”元素是一个整数向量元素的值为0(“delete”)、1(“match”)或2(“insert”)。这个路径可以更直观地表示为字符而不是索引如下:
##[1]“M”“M”
注意,向每个路径元素添加1只是为了转换从C/C++索引样式(从0开始)到R的样式。
序列无需对齐即可生成配置文件HMM功能衍生产品HMM
可以选择获取未对齐的列表序列,在这种情况下,最长的序列被用作创建一个初步的概要HMM,并对模型进行迭代训练使用Baum Welch或Viterbi训练的序列表算法(参见下面的模型训练部分)。
文件I/O
配置文件HMM可以导出为HMMER v3格式的文本文件(http://www.hmmer.org/)使用函数写入HMM
例如,小珠蛋白可以通过运行以下命令导出概要文件HMM写PHMM(globins.PHMM)
类似地,HMMER v3文本文件可以作为类“PHMM”的对象用函数解析为R读取PHMM
.
序列模拟
为了模拟具有随机变化的数据蚜虫包的功能生成
使用方法HMM和PHMM对象。序列使用递归生成模型内的转移和排放概率。那里是两个强制参数,一个模型(对象类“HMM”或“PHMM”)和“size”参数,指定序列的最大长度(这可以防止在insert-insert时发生溢出情况转移概率相对较高)。例如下面的代码模拟了小珠蛋白轮廓HMM:
模拟<- 列表(长度= 10)
禁止显示警告(RNG版本("3.5.0"))
设置种子(9999)
对于(i)在里面 1:10)模拟[[i]]<- 生成(珠蛋白.PHMM,尺寸= 20)
模拟
##$长度##I I I M I M M M D M M I M##“Y”“A”“I”“S”“K”“V”“R”“Y”## ## [[2]]##M月M月M日D月M日##H“E”“H”“A”“I”“-”“S”“E”## ## [[3]]##M M I M M D M##“Y”、“K”、“F”、“G”、“V”、“I”、“-”、“Y”## ## [[4]]##M M I I M M M M M M M M##C、M、E、D、S、A、S、G、M、G、K## ## [[5]]##年月日年月日##“V”“-”“-”“-”“-”“-”“-”“S”## ## [[6]]##M M I M D D D D##“F”“N”“I”“M”“-”“-## ## [[7]]##我我我我我##“G”“M”“N”“C”“G”## ## [[8]]##我我我我##“V”“H”“N”“A”“K”## ## [[9]]##年月日年月日##“Y”“-”“-“-”## ## [[10]]##M M M D D M M M M##“D”“L”“G”“-”“I”“C”“H”
请注意,名称属性指定每个残留物的状态从发出,间隙符号从删除状态发出。如果这些不需要间隙,可以按如下方式消除:
模拟<- 重叠地(模拟,功能(s) 秒[姓名(s)!= “D”])
模特培训
这个蚜虫软件包提供功能火车
使用Baum优化模型参数韦尔奇或维特比训练算法。两者都是迭代细化算法;前者不依赖于多序列比对但通常比后者慢得多。维特比训练通过为指定“cores”参数,可以进一步加快操作速度并行处理。训练算法的最佳选择将通常取决于问题的性质和计算可用资源。有关更多信息,请参见Durbin等人(1998)标准HMM的第3.3章和6.5适用于型材HMM。
以下代码使用使用Baum Welch在前一步中模拟的序列算法。
球蛋白2.PHMM<- 火车(球蛋白.PHMM,sim,方法= “鲍姆韦尔奇”,
增量= 0.01,序列权重= 无效的)
##迭代1对数似然=-244.2442##迭代2对数似然=-226.6468##迭代3对数似然=-220.4567##迭代4对数似然=-216.7471##迭代5对数似然=-214.2664##迭代6对数似然=-212.5519##迭代7对数似然=-211.3709##迭代8对数似然=-210.5676##迭代9对数似然=-210.0423##迭代10对数似然=-209.7105##迭代11对数似然=-209.4912##迭代12对数似然=-209.3357##迭代13对数似然=-209.2219##迭代14对数似然=-209.1379##迭代15对数似然=-209.0752##迭代16对数似然=-209.0272##迭代17对数似然性=-208.9891##迭代18对数似然=-208.9575##迭代19对数似然=-208.9305##迭代20对数似然=-208.9068##迭代21对数似然=-208.8859##迭代22对数似然=-208.8672##迭代23对数似然=-208.8506##迭代24对数似然性=-208.836##迭代25对数似然=-208.8231##迭代26对数似然=-208.8118##迭代27对数似然=-208.8021##27次EM迭代后达到收敛阈值
如反馈所示(可通过设置“安静”关闭反馈=TRUE“),此操作需要7次期望最大化迭代收敛到指定的delta对数似然阈值0.01。