什么是隐马尔可夫模型?

文章目录

  • 一、说明
  • 二、玩具HMM:5′拼接位点识别
  • 三、那么,隐藏了什么?
  • 四、查找最佳状态路径
  • 五、超越最佳得分对齐
  • 六、制作更逼真的模型
  • 七、收获

关键词:hidden markov model

一、说明

被称为隐马尔可夫模型的统计模型是计算生物学中反复出现的主题。什么是隐马尔可夫模型,为什么它们对这么多不同的问题如此有用?

通常,生物序列分析只是在每个残留物上贴上正确的标签。在基因鉴定中,我们希望将核苷酸标记为外显子、内含子或基因间序列。在序列比对中,我们希望将查询序列中的残基与目标数据库序列中的同源残基相关联。我们总是可以为任何给定的问题编写一个临时程序,但同样令人沮丧的问题总是会反复出现。一是我们希望整合异构的信息来源。例如,基因发现者应该将剪接位点共识、密码子偏差、外显子/内含子长度偏好和开放阅读框分析结合到一个评分系统中。这些参数应该如何设置?应该如何对不同类型的信息进行加权?第二个问题是从概率上解释结果。找到最佳得分答案是一回事,但分数意味着什么,我们对最佳得分答案是否正确的信心有多大?第三个问题是可扩展性。当我们完善我们的临时基因发现器时,我们希望我们也模拟了翻译起始共识、选择性剪接和多聚腺苷酸化信号。很多时候,将更多的现实堆积在一个脆弱的临时程序上,会使它在自身的重量下崩溃。

隐马尔可夫模型 (HMM) 是建立线性序列“标记”问题的概率模型的形式基础1,2.它们提供了一个概念工具包,只需绘制直观的图片即可构建复杂的模型。它们是各种项目的核心,包括基因查找、图谱搜索、多序列比对和调控位点鉴定。HMM 是计算序列分析的乐高积木。

二、玩具HMM:5′拼接位点识别

举个简单的例子,想象一下下面一个 5’ 剪接位点识别问题的漫画。假设我们得到一个 DNA 序列,该序列从外显子exon开始,包含一个 5’ 剪接位点,以内含子intron结束。问题在于确定从外显子到内含子的转换发生在哪里——5′剪接位点(5′SS)在哪里。

为了让我们智能地猜测,外显子、剪接位点和内含子的序列必须具有不同的统计特性。让我们想象一些简单的差异:假设外显子平均具有均匀的碱基组成(每个碱基 25%),内含子富含 A/T(例如,A/T 各 40%,C/G 各 10%),5′SS 共有核苷酸几乎总是 G(例如,95% G 和 5% A)。

从这些信息开始,我们可以绘制一个 HMM(图 1)。HMM 调用三种状态,一种状态对应我们可能分配给核苷酸的三个标签:E(exon)、5(5′SS)和 I(intron)。每个状态都有自己的发射概率(如上所示),它模拟了 5′SS 处外显子、内含子和共识 G 的基本组成。每个状态也有转换概率(箭头),即从这个状态移动到新状态的概率。转移概率描述了我们期望状态发生的线性顺序:一个或多个 E、一个 5、一个或多个 I。

在这里插入图片描述

图 1:用于 5’ 剪接位点识别的玩具 HMM。

三、那么,隐藏了什么?

想象一个 HMM 生成一个序列是很有用的。当我们访问一个州时,我们会从该州的排放概率分布中排放出残留物。然后,我们根据该州的转移概率分布选择接下来要访问的州。因此,该模型生成了两串信息。一个是基础状态路径(标签),当我们从一个状态转换到另一个状态时。另一个是观察到的序列(DNA),每个残基都从状态路径中的一个状态发射出来。

状态路径是马尔可夫链,这意味着我们接下来要进入的状态仅取决于我们所处的状态。由于我们只得到了观察到的序列,所以这个底层状态路径是隐藏的——这些是我们想要推断的残基标签。状态路径是一条隐藏的马尔可夫链。

概率 P(S,π|HMM,θ),具有参数 θ 的 HMM 生成状态路径 π,观测到的序列 S 是所使用的所有发射概率和跃迁概率的乘积。例如,考虑图 1 中间的 26 个核苷酸序列和状态路径,其中有 27 个跃迁和 26 个发射需要处理。将所有 53 个概率相乘(并取对数,因为这些数字很小),您将计算对数 P(S,π|HMM,θ) = −41.22。

HMM 是一个完全概率模型——模型参数和整体序列“分数”都是概率。因此,我们可以使用贝叶斯概率论以标准、强大的方式操纵这些数字,包括优化参数和解释分数的重要性。

四、查找最佳状态路径

在分析问题中,我们得到了一个序列,我们想要推断隐藏的状态路径。可能有许多状态路径可以生成相同的序列。我们想找到概率最高的那个。

例如,如果我们在图 1 中给定 HMM 和 26 个核苷酸序列,则有 14 条可能的路径具有非零概率,因为 5′SS 必须落在 14 个内部 As 或 G 之一上。最好的一个的对数概率为 −41.22,这推断出最有可能的 5′SS 位置位于第五个 G。

对于大多数问题,有太多可能的状态序列,我们无法枚举它们。高效的 Viterbi 算法保证在给定序列和 HMM 的情况下找到最可能的状态路径。维特比算法是一种动态规划算法,与用于标准序列比对的算法非常相似。

五、超越最佳得分对齐

图 1 显示,一个替代状态路径与将 5′SS 置于第五个 G 的分数略有不同(对数概率为 -41.71 对 -41.22)。我们对第五个G是正确的选择有多大信心?

这是概率建模优势的一个例子:我们可以直接计算我们的置信度。状态 k 发出残基 i 的概率是使用状态 k 生成残基 i(即 π我 = k 在状态路径 π) 中,由所有可能的状态路径的总和归一化。在我们的玩具模型中,这只是分子中的一条状态路径和分母中 14 条状态路径的总和。我们得到得分最高的第五个 G 正确率为 46%,第六个 G 位置正确率为 28%(图 1,底部)。这称为后验解码。对于较大的问题,后验解码使用两种称为“前向”和“后向”的动态规划算法,它们本质上类似于 Viterbi,但它们对可能的路径求和,而不是选择最佳路径。

六、制作更逼真的模型

制作 HMM 意味着指定四件事:(i) 符号字母表,K 个不同的符号(例如,ACGT,K = 4); (ii)模型中的状态数,M;(iii) 排放概率 e我(x) 对于每个状态 i,该总和 1 超过 K 符号 x, Σxe我(x) = 1;(iv)转移概率t我(j) 对于每个状态 i 到任何其他状态 j(包括它自己),其总和为 1 超过 M 状态 j, Σjt我(j) = 1。任何具有这些属性的模型都是 HMM。

这意味着只需绘制与手头问题相对应的图片即可制作新的 HMM,如图 1 所示。这种图形的简单性使人们可以清楚地关注问题的生物学定义。

例如,在我们的玩具拼接站点模型中,也许我们对自己的辨别能力不满意;也许我们想在 5’ 剪接位点添加一个更现实的六核苷酸共识 GTRAGT。我们可以用一行六个 HMM 状态代替“5”状态,以模拟一个六碱基无固定的共识基序,参数化已知 5’ 剪接位点的发射概率。也许我们想模拟一个完整的内含子,包括一个 3’ 剪接位点;我们只需为 3′SS 共识添加一行状态,并添加一个 3′ 外显子状态,让观察到的序列以外显子而不是内含子结束。那么也许我们想建立一个完整的基因模型…无论我们添加什么,都只是画出我们想要的东西。

七、收获

HMM 不能很好地处理残基之间的相关性,因为它们假设每个残基仅取决于一种基础状态。HMM 通常不合适的一个例子是 RNA 二级结构分析。保守的RNA碱基对诱导长程成对相关性;一个位置可能是任何残基,但碱基配对的伴侣必须是互补的。HMM 状态路径无法“记住”遥远状态生成的内容。

有时,人们可以在不破坏算法的情况下弯曲 HMM 的规则。例如,在基因发现中,人们想要发射一个相关的三重密码子,而不是三个独立的残基;HMM 算法可以很容易地扩展到三重态发射态。但是,基本的 HMM 工具包只能延伸到此为止。除了HMM之外,还有更强大(尽管效率较低)的概率模型用于序列分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

libdrm 2.4.107 needed because amdgpu has the highest requirement

libdrm 2.4.107 needed because amdgpu has the highest requirement 1.问题分析解决 1.问题 Message: libdrm 2.4.107 needed because amdgpu has the highest requirement Run-time dependency libdrm_intel found: YES 2.4.107 Run-time dependency libdrm_amdgpu found: Y…

Day 25:1807. 替换字符串中的括号内容

Leetcode 1807. 替换字符串中的括号内容 给你一个字符串 s ,它包含一些括号对,每个括号中包含一个 非空 的键。 比方说,字符串 “(name)is(age)yearsold” 中,有 两个 括号对,分别包含键 “name” 和 “age” 。 你知道…

Ansible介绍

一、Ansible概述 Ansible是一款开源的自动化运维工具,基于Python开发,主要用于批量系统配置、批量程序部署、批量运行命令等功能。它集合了众多运维工具的优点,并通过其高度模块化的特性,实现了灵活、可扩展的自动化运维管理。 …

ARDUINO NRF24L01

连线 5v 3.3皆可 gnd Optimized high speed nRF24L01 driver class documentation: Optimized High Speed Driver for nRF24L01() 2.4GHz Wireless Transceiver 同时下载同一个程序 案例默认引脚ce ces ,7,8 可以 修改为 9,10 安装库 第一个示例 两…

Java基础学习-方法

目录 方法基础概念 方法的格式: 案例:最简单方法的定义 案例:带参数的方法调用 案例:求圆的面积 带有返回值的方法: 方法注意点 方法的重载: ​编辑 案例:数组的遍历: 案例…

C++新特性复习1 版本11

参照来自于: cppreference.com 老实说,我是毕业不久就开始用C,原因就是VC,当时用来做界面。还好吧,不是觉得太难,起码对数学底子没有要求,后面偶尔也用用,但是整体还是C居多。现在项…

基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 系统架构 4.2 GoogLeNet网络简介 4.3 手势检测 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 训练过程如下: 将摄像头对准手势,然后进行…

【Kubernetes】k8s--安全机制

机制说明 Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介, 也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的。 比如 kubectl 如果想向 …

Commons-Collections篇-CC2链分析

前言 3.1-3.2.1版本中TransformingComparator并没有去实现Serializable接口,是不可以被序列化的,所以我们重新搭建一个4.0的具有漏洞的CC环境 CC2链主要使用的和CC4一样,但是区别在于CC2避免了使用Transformer数组,没有使用Insta…

6.深度卷积神经网络

目录 1.深度卷积神经网络ALexNet 2012AlexNetAlexNet架构AlexNet与LeNet复杂度对比总结代码实现2.使用块的网络VGG 2014 image竞猜第二VGG架构进度总结代码实现3.网络中的网络NiN全连接层的问题NiN块NiN架构总结代码实现4.含并行连结的网络(GoogLeNet)2014 image竞猜第一最好…

总结CSS 实现新手引导效果的六种方式

前言 我们在平常做业务中,在功能变更,或者有大的改动时,经常会用到新手引导功能, 虽然有很多库可以使用, 但是有时候很简单的需求,没必要引入库, 本文用最简化代码,实现一下新手引导…

Java面试题之MySQL事务详解

事务是什么 MySQL中的事务(Transaction)是数据库管理系统执行的一个逻辑操作单元,它是由一系列数据库操作组成的逻辑工作单元。事务是并发控制的单位,也是用户定义的一个操作序列。事务的主要目的是确保数据的完整性和一致性&…

JAVA小知识23:set与HashSet

一、Set 1.1、Set的基本知识 set也是单列集合的一种,用于存储一组不重复的元素。它是一种集合数据类型,常用于需要确保元素唯一性和快速查找的场景。他有如下特点: 无序性:Set 中的元素是无序的,没有特定的顺序。唯…

代码签名证书申请指南

申请代码签名证书的具体流程可以归纳为以下几个步骤: 1、确定证书类型: 根据您的需求选择合适的代码签名证书类型。常见的有OV(Organization Validation,组织验证)代码签名证书和EV(Extended Validation&am…

【Java】已解决java.lang.IllegalAccessException异常

文章目录 一、问题分析背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.lang.IllegalAccessException异常 一、问题分析背景 在Java开发中,java.lang.IllegalAccessException是一个常见的运行时异常,它通常发生在尝试…

ARM32开发--FreeRTOS-事件组

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 目标 内容 概念 事件标志位 开发流程 功能介绍 创建事件组 触发事件 等待事件触发 同步 清理事件 案例 总结 前言 在嵌入式系统开发中,任务之间的同步和通信是至关重要的…

智慧矿山项目建设整体解决方案(938页 )

智慧矿山,究竟是什么? 在深入探讨之前,让我们先来提出一个深刻的问题:我们能否借助科技的力量,让矿山作业不仅安全、高效,还能做到环保可持续?答案是肯定的。智慧矿山,正是这一理念…

支撑每秒 600 万订单无压力,SpringBoot + Disruptor 太猛了!

一、背景 工作中遇到项目使用Disruptor做消息队列,对你没看错,不是Kafka,也不是rabbitmq;Disruptor有个最大的优点就是快,还有一点它是开源的哦,下面做个简单的记录. 二、Disruptor介绍 Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存…

【docker入门】

在软件开发过程中,环境配置是一个至关重要的步骤,它不仅影响开发效率,也直接关联到软件的最终质量。正确的环境配置可以极大地减少开发中的潜在问题,提升软件发布的流畅度和稳定性。以下是几个关键方面,以及如何优化环…

【机器学习】第6章 支持向量机(SVM)

一、概念 1.支持向量机(support vector machine,SVM): (1)基于统计学理论的监督学习方法,但不属于生成式模型,而是判别式模型。 (2)支持向量机在各个领域内的…