【生物信息】用隐马尔可夫模型对生物序列进行建模

news2025/1/25 4:44:33

文章目录

  • Modeling biological sequences with HMMS
    • Parsing longer sequences.
  • 举例子
    • Our frst HMM: Detecting GC-rich regions
    • Running the model: Probability of a sequence
  • 维特比算法 Viterbi
    • 一个摸球例子
    • 回到课堂
  • 求解参数

来自Manolis Kellis教授的课

教了隐马尔可夫在基因组学中的一些应用

重点介绍了隐含状态序列解码问题

至于序列概率估计和求解参数问题没有细讲

本文浏览需要一定基础,需要的同学可以找b站看唐宇迪老师:隐马尔科夫
由于内容参考多个地方,其中符号表示存在差别,但是意义相同。比如Q、I都表示隐含序列

Modeling biological sequences with HMMS

这些术语涉及基因结构和基因表达:

  1. Intergenic: 这指的是染色体上基因之间的DNA区域。
  2. CpG Island: CpG岛是DNA区域,其中包含高密度的CpG位点(紧跟着胞嘧啶核苷酸的鸟嘌呤核苷酸区域)。这些区域通常位于基因启动子附近,并可以在基因调控中发挥作用。
  3. Promoter: 启动子是位于基因上游的DNA区域,用作RNA聚合酶的结合位点,RNA聚合酶是转录基因的酶。
  4. First Exon: 外显子是编码DNA区域,被转录成mRNA,并最终被翻译成蛋白质。基因中的外显子由内含子分隔开。第一个外显子是紧接着基因启动子区域之后的外显子。
  5. Other Exon: 任何位于基因中第一个外显子之后的外显子。
  6. Intron: 内含子是基因的非编码DNA区域,插入基因的编码序列(外显子)中。
  1. 能够发射特定类型的DNA序列: 指一个生物体或样本具有发射某种特定类型的DNA序列的能力。这些DNA序列可能与之前已知的基因不完全相同,但仍保留了该类型的某些特征或性质。
  2. 能够识别特定类型的DNA序列状态: 指在DNA序列中能够识别某种特定的状态,如一段序列是起始子、外显子、内含子等。通过机器学习算法,可以确定哪个隐藏的状态最有可能产生观察到的结果,并找到一组状态和转移关系,以生成较长的DNA序列。
  3. 能够学习每个状态的特征: 指通过机器学习算法训练生成模型,以学习每个状态所具有的特征,以便在给定DNA序列中识别这些状态。通过在大型DNA序列数据集上训练生成模型,可以学习区分每个状态的特征,并且可以利用这些特征来对未标记的DNA序列进行分类。

Parsing longer sequences.

dependencies between netighoring positions

根据前面学过的生成模型,告诉我们,不仅要考虑隐藏层和观察层,还要考虑隐含状态间的转移关系

  • 马尔科夫链和隐马尔科夫的概念

马尔科夫链其实很简单,网上视频很多

隐马尔科夫好的教程比较少,这是我认为不错的:隐马尔科夫

不懂的多网上搜搜就会了

这个图里,马尔科夫链的隐含态是天气,在隐马尔科夫中天气是观察态,季节是隐含态,注意区分

(符号表述有所不同)

三要素:上面这些都是隐马尔科夫模型的外在表征,而推动隐马尔科夫模型 λ \lambda λ 随着时间不断运行的内核是他的三要素:状态转移矩阵 A A A,观测概率矩阵(也叫输出概率矩阵) B B B,以及初始隐含状态概率向量 π \pi π,简写成三元组的形式就是: λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)

主要研究问题:

  1. 第一个研究的内容是观测序列概率估计: 当我们知道老千切换三个骰子的转移概率矩阵以及各个骰子输出各个点数的概率的基础上,我们可以计算出任意一个观测序列出现的概率,比如老千连续掷出诡异的8个6,我们可以看看这种情况发生的概率有多大。
    • 用隐马尔科夫模型的形式化语言概况就是:在给定隐马尔科夫模型三要素 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)的基础上,针对一个具体的观测序列 O = ( o 1 , o 2 , . . . , o T ) O = ( o 1 , o 2 , . . . , o T ) O=(o1,o2,...,oT),求他出现的概率。
  2. 第二个研究的内容是隐含状态序列解码: 当我们知道老千切换三个骰子的转移概率以及各个骰子输出各个点数的概率时,我们可以通过已知的观测序列,也就是骰子的点数序列,来解码出老千所使用的骰子的序列,也就是隐状态序列。换句话说,就是可以推测出每一个掷出的点数背后,老千到底用的是哪一个骰子,可以判断他什么时候出千。
    • 用隐马尔科夫模型的形式化语言概况就是:在给定隐马尔可夫模型三要素 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = ( o 1 , o 2 , . . . , o T ) O = ( o 1 , o 2 , . . . , o T ) O=(o1,o2,...,oT)的基础上,求最有可能对应的隐藏状态序列 I = ( i 1 , i 2 , . . . i T ) I=(i_1,i_2,...i_T) I=(i1,i2,...iT)

举例子

Our frst HMM: Detecting GC-rich regions

观察态:一般序列(background)里四种碱基出现概率一样,而启动子序列中GC出现的概率高一些

隐含态:前一个碱基是属于background的情况下,下一个碱基99%还是background,1%是启动子。而前一个碱基是属于启动子的情况下,其下一个碱基有95%是启动子,5%是background

Running the model: Probability of a sequence

其实就是我们前面所说的隐马尔科夫的第一个研究内容,求解观测序列概率估计

在给定隐马尔科夫模型三要素 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)的基础上,针对一个具体的观测序列 O = ( o 1 , o 2 , . . . , o T ) O = ( o 1 , o 2 , . . . , o T ) O=(o1,o2,...,oT),求他出现的概率。

这里是举了其中的两种情况,就是另外给出了隐含态序列(实际问题中是不知道的,这是假设),这样我们就可以计算出这个观察态出现的概率,就是初始*每一个转移概率*每一个发射概率

  • 进行对比
    • 首先给定该观察序列,然后比较隐含层序列全是background(一种假设)和隐含层序列全是启动子(另一种假设),该观察序列出现的概率前一个是比后一个高的

  • 实际上,这种假设是很多的,因为存在转移
    • 这个例子的概率小是因为,多乘上的这俩转移概率比较小(B->P和P->B)

  • 我们能够在指定 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π),针对一个具体的观测序列 O = ( o 1 , o 2 , . . . , o T ) O = ( o 1 , o 2 , . . . , o T ) O=(o1,o2,...,oT)和假设的隐含序列 Q = ( q 1 , q 2 , . . . , q T ) Q = ( q 1 , q2 , . . . , q T ) Q=(q1,q2,...,qT),求出概率。但是关键的是,要假设的隐含序列太多了,如果暴力枚举的话,开销太大,时间复杂度太高
    • 所以我们要引入动态规划,去找到这个最大联合概率的假设(隐含序列),那样我们就能求出观察序列出现的概率【这段是我的瞎扯,可能理解错了,不需要看,要求第一个研究内容的话应该是用前向算法,第二个内容用动态规划】

维特比算法 Viterbi

这是一种动态规划算法

十分抱歉,由于我的理解错误(my poor English)和被标题误导了,我才发现老师这块教的其实第二个研究内容(所以上一段纯属瞎扯),隐含状态解码,就是给定一个已知的观测序列,求他最有可能对应的状态序列(但是两个内容二者关联性很高,无伤大雅,如果你懂了HMM大概是个啥,就问题不大)

第一个研究内容时求 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大,第二个研究内容是求 P ( I ∣ O , λ ) P(I|O,\lambda) P(IO,λ)最大

用隐马尔科夫模型的形式化语言概况就是:在给定隐马尔可夫模型三要素 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = ( o 1 , o 2 , . . . , o T ) O = ( o 1 , o 2 , . . . , o T ) O=(o1,o2,...,oT)的基础上求使得条件概率 P ( I ∣ O ) P(I∣O) P(IO)最大(最有可能对应),求的隐藏状态序列 I = ( i 1 , i 2 , . . . i T ) I=(i_1,i_2,...i_T) I=(i1,i2,...iT)

一个摸球例子

  • 举一段中文的例子,助于理解,注意符号意义不同。理解了递推公式,事情就简单了
    • 隐状态集合 Q = 盒子 1 ,盒子 2 ,盒子 3 Q = { 盒 子 1 , 盒 子 2 , 盒 子 3 } Q=盒子1,盒子2,盒子3,每个盒子摸出红球和白球概率不同,给出了 π 、 A 、 B \pi、A、B πAB

  • t1时刻,因为观察序列里是红球 o 1 o1 o1,所以只要初始 π \pi π分别乘上对应盒子 o 1 o1 o1的概率

  • t2时刻,因为观察序列里是白球 o 2 o2 o2,所以在t2时刻三个盒子的概率可以计算
    • 以t2时刻1号盒子为例子,就是t1时刻的概率(三个盒子)分别乘上对应转移到1号盒子的概率,其中取最大值,然后再乘上1号盒子中抽到白球的概率(发射概率
    • 为什么说这个方法好呢,因为取了最大值,把另外两种可能性舍弃了,这样就不用考虑这两种的后续

  • 解释一下这个是啥,就是存储这三个里最大的状态,最后总结时会用

  • 然后我们就获得了t3时刻的结果,找最大的可能性

  • 我们从前往后先推了一遍,然后找到了最大概率,再倒推找到这条路过来的路径,over

回到课堂

其实就是反应了我们例子中的过程

求解参数

我们发现,以上的问题都给出了 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π),但是实际问题中这些参数从哪来

  • 可以从数据中简单的计算出来

  • 事实上,更常见的是啥也不知道,这就是有挑战的地方

  • 其实这是HMM的第三个研究内容,就是求解参数。数学推导比较复杂,其实是采用了EM算法(过程类似于Kmeans),就是不停的迭代,通过极大似然估计找到最佳

  • EM

  • HMM对于基因组学的意义(by me)

    • 比如根据DNA序列去判断其背后属于哪个state(比如启动子、外显子、内显子等等)
  • HMM对于基因组学的意义(by ChatGPT)

    • 基因识别:HMM可以用于基因识别,即从一段基因组序列中找出编码蛋白质的基因序列。在这个过程中,HMM可以使用已知的编码蛋白质的序列信息来训练模型,然后根据这些信息来识别潜在的编码蛋白质基因。
    • DNA序列比对:HMM可以用于比对DNA序列。比对是基因组学中的重要任务之一,它可以帮助研究人员找出不同物种或个体之间的DNA序列差异。HMM可以通过比较两个或多个序列的相似性来实现比对。
    • RNA序列结构预测:HMM可以用于预测RNA序列的结构。RNA序列是基因组学中的重要组成部分,因为它们在基因表达中发挥着重要作用。HMM可以使用RNA序列的已知结构信息来预测新序列的结构。
    • 基因家族分类:HMM可以用于基因家族分类,即将基因根据它们的功能和结构分为不同的家族。这对于理解基因的功能和进化历史至关重要。
  • 对应的观察状态和隐含状态(by ChatGPT)

    • 在隐马尔可夫模型中,有两种状态,分别是隐含状态(hidden state)和观察状态(observation state)。
    • 隐含状态表示的是在模型内部的状态,对于观察者来说是不可见的。在基因组学中,隐含状态可以被看作是基因组序列的潜在结构,例如DNA的开放阅读框(open reading frame, ORF)或者RNA的剪接位点。在基因识别和RNA结构预测中,HMM的隐含状态通常表示基因的位置和边界,以及RNA的不同结构状态,例如发夹式结构(hairpin loop)、四联体结构(quadruplex)、外显子和内含子等。
    • 观察状态则表示模型外部可见的状态,也就是我们可以直接观测到的状态。在基因组学中,观察状态通常是基因组序列上的一些特征,例如ATCG碱基序列、RNA序列的二级结构、氨基酸序列等。
    • 因此,在基因组学中,HMM的隐含状态通常表示基因组序列的潜在结构,而观察状态则是基因组序列上的特征。HMM的目标是通过观察状态来推断隐含状态,以便更好地理解基因组序列的功能和结构。

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

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

相关文章

FPGA开发之HDMI Transmitter接口设计

HDMI简介: High Definition Multimedia 高清多媒体接口,一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号 物理接口: 电气介绍: TMDS(Transition Minimized Differential Signaling&#x…

自定义类型——位段

什么是位段? 位段又叫做位域,具体是一种可以把数据以位的形式紧凑的存储,并允许程序员对此结构位进行操作的数据结构 当结构体的成员变量定义之后浪费了较大的空间 (比如int a 2,则浪费了30个比特位的空间&#xff0…

Mail 服务器

Mail 服务器 1. 概念及协议2. 工具2.1 Postfix2.2 dovecot2.3 bind 3. 搭建3.1 DNS服务设置3.2 安装配置 postfix3.3 安装配置 dovecot 4. foxmail验证 1. 概念及协议 邮件服务器也采用的是C/S工作模式,通过SMTP,POP,IMAP协议来是实现邮件的发送和接收的。 SMTP 的…

Java入坑之IO操作

目录 一、IO流的概念 二、字节流 2.1InputStream的方法 2.2Outputstream的方法 2.3资源对象的关闭: 2.4transferTo()方法 2.5readAllBytes() 方法 2.6BufferedReader 和 InputStreamReader 2.7BufferedWriter 和 OutputStreamWriter 三、路径:…

Qt5 编译QtXlsx并添加为模块[Windows]

00.QtXlsx是什么?能干什么? QtXlsx是一个可以读写Excel文件的库。它不需要Microsoft Excel,可以在Qt5支持的任何平台上使用。 可以创建、读取、编辑.xlsx文件。 01.如何编译? 1.1编译环境: Windows10平台;…

es6笔记-let、const、var的区别

let、const、var的区别 变量提升 var 声明的变量存在变量提升,在声明前可以调用,直为undefindconsole.log(a); var a 1;相当于:var a; console.log(a); a 1;let和const不存在变量提升,变量要在声明前调用,否则报错console.log(a…

DNS服务器配置

一,正向解析 1>安装软件bind 提供DNS服务的软件叫bind,服务名是named [rootserver ~]# yum install bind -y 2>对三个配置文件进行修改 - /etc/named.conf : 主配置文件,共59行,去除注释和空行之和有效行数仅30行左右&…

Golang程序报错:fatal error: all goroutines are asleep - deadlock

文章目录 1.原始代码2.错误原因分析3. 解决方案4. 经验总结5. 练习 完整的报错信息如下: fatal error: all goroutines are asleep - deadlock!goroutine 1 [chan receive]: main.(*WorkerManager).KeepAlive(0xc000088f60)/root/go_workspace/studygoup/05.go:66 0…

Doris(7):数据导入(Load)之Routine Load

例行导入功能为用户提供了义中自动从指定数据源进行数据导入的功能 1 适用场景 当前仅支持kafka系统进行例行导入。 2 使用限制 支持无认证的 Kafka 访问,以及通过 SSL 方式认证的 Kafka 集群。支持的消息格式为 csv 文本格式。每一个 message 为一行,…

【Cpp】手撕搜索二叉树(K模型)

文章目录 二叉搜索树概念详解二叉搜索树的概念二叉搜索树的操作(大致思路)二叉搜索树的查找二叉搜索树的插入二叉搜索树的删除(最重点) 手撕搜索二叉树代码结点定义(以key型为例,KV型将在下一篇博客中介绍)树结构定义深拷贝构造函数与构造函数赋值重载析构函数遍历(结果按从小到…

软件测试的当下分析

在没有清晰能见度的情况下驾驶汽车不仅非常危险,也十分鲁莽。这会让我们和我们周边的人随时面临着碰撞、受伤、甚至死亡的风险。如果不能看到前方的道路,我们就无法预测潜在的危险或障碍,从而无法做出明智的决定并采取适当的行动。 同样&…

什么是ddos攻击?ddos攻击有哪些危害?

一、什么是 DDoS 攻击? DDoS 是 Distributed Denial of Service 的缩写,翻译成中文就是 “分布式拒绝服务”。DDoS 攻击将处于不同位置的多个计算机联合起来作为攻击平台,对一个和多个目标发动 DDoS 攻击,从而成倍提高攻击威力。…

分布式系统概念和设计-进程通信中的(网络API设计)

分布式系统概念和设计 进程间通信 中间件层 请求-应答协议 编码和外部数据表示 因特网协议的API 进程间通信的特征 一对进程间进行消息传递需要两个消息通信操作的支持(send和receive),用于定义目的地和消息的定义。 为了能够使一个进程能…

煤化工废水除总氮除硬度,矿井水除砷除氟解决方案

随着环保标准的提升,大部分煤矿企业对矿井水要求执行地表三类水标准,氟化物要求小于1mg/l,这类项目存在体量大、氟含量低、水质偏差等特点。 RO工艺制备纯水是煤化工行业生产的一个辅助环节,会产生大量的浓盐水,由于浓…

十五分钟带你学会 Electron

文章目录 什么是 Electron为什么要选择 Electron安装 Electron桌面CSDN实战Electron 基础配置Electron 进程主进程渲染进程主进程与渲染进程的区别主进程与渲染进程的通信 Electron 跨平台问题Electron 部署打包应用程序发布应用程序 Electron 跨端原理总结 什么是 Electron E…

NE555 Motor LED Chaser

文章目录 1.前言2.资料下载 1.前言 这个是从YouTube上搬运来的,如图所示 2.资料下载 所需材料 #1# 10k resistor 1 #2# 10k variable resistor 1 #3# 10uf capacitor 1 #4# 3mm blue led 4 #5# 3mm yellow led 4 #6# 3mm red led 4 #7# 3mm green led 4 #8# 3mm…

【Linux网络】网络基础(TCP/IP协议栈、局域网通信原理、封装与解包、有效载荷分用)

文章目录 1、认识网络1.1 重新看待计算机结构1.2 网络的问题1.3 初识网络协议1.4 TCP/IP五层结构 2、网络与操作系统2.1 网络和OS的关系2.2 局域网(以太网)通信原理和MAC地址2.3 主机的跨网络2.4 有效载荷的分用 1、认识网络 在早年计算机之间是相互独立…

关于自身存在的严重问题总结_4/19

今早二次面试喜马拉雅,面试官给我的评价是: 1.经验不足; 2.实用方面生疏、理解不到位; 原因很正常,我项目自己亲手实操的太少了,一直在背,但是背 不是去读源码 去理解; 项目也大…

基于springboot的班级综合测评管理系统源码数据库论文

目录 1 绪论 1.1课题研究的背景 1.2 课题研究的内容 1.3 系统开发的意义 1.4初步设计方法与实施方案 1.5 本文研究内容 2相关技术介绍 2.1 Java技术 2.2B/S架构 2.3 MySQL介绍 2.4 Springboot框架 3系统需求分析 3.1 可行性分析 3.1.1 经济可行性分…

AI大模型在各行业肆虐,打工人该如何保住自己的饭碗?

开篇我先下个结论,那就是:人类在科技领域的高效率竞争,正在把我们生活的这个商业世界一步步地数字化。而数字化,不单单是AI智能的发展成果,更会成为它所热衷的生长温床,为后续人工智能的一路狂飙奠定了绝佳…