主讲人:孙 啸 制作人:刘志华
Post on 07-Jan-2016
117 Views
Preview:
DESCRIPTION
Transcript
主讲人:孙 啸
制作人:刘志华
东南大学 吴健雄实验室
第五章 第五章 DNADNA 序列分析序列分析
第五章 第五章 DNADNA 序列分析序列分析 DNA 序列分析
—— 基因序列—— 基因表达调控信息
寻找基因牵涉到两个方面的工作 :
– 识别与基因相关的特殊序列信号– 预测基因的编码区域– 结合两个方面的结果确定基因的位置和结构
基因表达调控信息隐藏在基因的上游区域,在组成上具有一定的特征,可以通过序列分析识别这些特征。
第一节 第一节 DNADNA 序列分析步骤和分析结果评序列分析步骤和分析结果评价价
• 在 DNA 序列中,除了基因之外,还包含许多其它信息,这些信息大部分与核酸的结构特征相关联,通常决定了 DNA 与蛋白质或者 DNA 与 RNA 的相互作用。
• 存放这些信息的 DNA 片段称为功能位点– 如启动子( Promoter )、基因终止序列( Terminator
sequence )、剪切位点( Splice site )等。
发现重复元素
数据库搜索
分析功能位点
序列组成统计分析
综合分析
一个基本的 DNA 序列分析方案
• 功能序列分析的准确性来自于对“功能序列”和“非功能序列”的辨别能力。
• 两个集合: 训练集( training set )
• 用于建立完成识别任务的数学模型。
测试集或控制集( control set )• 用于检验所建模型的正确性。
• 用训练集中实例对预测模型进行训练,使之通过学习后具有正确处理和辨别能力。然后,用模型对测试集中的实例进行“功能”与“非功能”的判断,根据判断结果计算模识别的准确性。
收集已知的功能序列和非功能序列实例(这些序列之间是非相关的 )
训练集( training set )
测试集或控制集( control set )
建立完成识别任务的模型 检验所建模型的正确性
对预测模型进行训练,使之通过学习后具有
正确处理和辨别能力。
进行“功能”与“非功能”的判断,根据判断结果计算
模识别的准确性。
识别“功能序列”和“非功能序列”的过程
• Sn —— 敏感性• Sp—— 特异性
• Tp 是正确识别的功能序列数,• Tn 为正确识别的非功能序列数,• Fn 是被错误识别为非功能序列的功能序列数,• Fp 是被错误识别为功能序列的非功能序列数。
pn
np
np
pn
FT
TS
FT
TS
敏感性和特异性的权衡• 对于一个实用程序,既要求有较高的敏感
性,也要求有较高的特异性。• 如果敏感性很高,但特异性比较低,则在
实际应用中会产生高比率的假阳性;• 相反,如果特异性很高,而敏感性比较低,
则会产生高比率的假阴性。• 对于敏感性和特异性需要进行权衡,给出
综合评价指标。
• 对于一个识别程序准确性可按下式进行综合评价:
• 另一个综合评介指标为相关系数,其计算计算公式为:
2pn SS
AC
)()()()( nnpppnnp
pnnp
FTFTFTFT
FFTTCC
• 选择训练集和测试集– 在检测算法的可行性时,需要从已知的数据中
按照不同的方式选择训练集和测试集 • 测试集的构成非常关键
– 在不同的测试集上进行测试可能会得到不同的准确性结果,甚至准确性相差很大。
• 建立标准的功能序列测试集合。– 如基因转录剪切位点的测试集合、编码区域的
测试集合等。
第二节 核苷酸关联分析• 对于一个给定的基因组,最简单的计算就
是统计 DNA 序列中各类核苷酸出现的频率。• 对于随机分布的 DNA 序列,每种核苷酸的
出现是均匀分布的– 出现频率各为 0.25 。
• 而真实基因组的核苷酸分布则是非均匀的
核苷酸 频率
A 0.3248693727808
C 0.1751306272192
G 0.1751306272192
T 0.3248693727808
酵母基因组核苷酸出现频率
• 在统计过程中,如果同时计算 DNA 的正反两条链,则根据碱基配对原则, A 和 T 、C 和 G 的出现频率相同。
• 如果仅统计一条链,则虽然 A 和 T 、 C 和G 的出现频率不同,但是非常接近。
核苷酸 频率 A 0.344
C 0.155
G 0.157
T 0.343
单链核苷酸出现频率
基因和其它功能区域在正反两条链上出现的
可能性通常一样
核苷酸出现频率也不应该有偏差
正反两条链在信息的组织结构方面不应该有差别
单链上 A 和 T 、 C 和 G 的出现频率相近。
正反两条链碱基互补的原则
单链上 A和 T、 C和 G的出现频率相近的解释
两联核苷酸频率
• 不同基因组中两个连续核苷酸出现的频率也是不相同的
• 4 种核苷酸可以组合成 16 种两联核苷酸
酵母基因组两联核苷酸频率表
对酵母基因组两联核苷酸的统计结果
其中核苷酸对出现频率最高的达到 0.119
而出现频率最低的只有 0.028
令 :
Pij —— 代表两联核苷酸( i , j )的出现频率 Pi —— 代表核苷酸 i 的出现频率 则 : Pij’= Pij/(PiPj) 的值反应核苷酸 i 和 j 的关联关系
如果 Pij’=1 ,则在两个连续的位置上,核苷酸i 和 j 的出现是相对独立的。
关联性分析
• 对于酵母基因组 PA=0.3248
PAA=0.1193
PAA’ =0.1193/ ( 0.3248*0.3248 ) =1.131 > 1
表明在两个连续位置上“ A” 的出现不是独立的,而是相关的。
关联性分析
• 同样,对于相隔一定距离 k ( k代表核苷酸个数)的两个核苷酸,也可能具有一定的相关性。
• 假设 Pij(k)代表核苷酸 j 出现在核苷酸 i 之后第 k个位置的频率,则可定义一个反应统计相关性的互信息 I(k)
• I(k)值得大小实际上反应了距离为 k 的两个核苷酸之间的相关性的程度
4
1,2
)(log)()(
ji ji
ijij pp
kpkpkI
三联核苷酸——基因密码子 • 在进行编码区域识别时,常常需要对三联
核苷酸进行统计分析,这实际上是分析密码子的使用偏性。–由于密码子的简并性( degeneracy ),每个氨基酸至少对应 1 种密码子,最多有 6 种对应的密码子。
– 在基因中,同义密码子的使用并不是完全一致的。
– 不同物种、不同生物体的基因密码子使用存在着很大的差异
• 基因密码子的使用与基因编码的蛋白的结构和功能有关,与基因表达的生理功能有着密切的联系
• 蛋白的三级结构与密码子使用概率有密切的关系– 通过对密码子的聚类分析,可以很清晰地将具有不同三级结构蛋白质的编码基因分成不同的类,而具有相似三级结构蛋白的编码基因则大致聚在同一类中,从而证明基因密码子的使用偏性与蛋白质三级结构具有密切的相关性。
• 在不同物种中,类型相同的基因具有相近的同义密码子使用偏性– 对于同一类型的基因由物种引起的同义密码子使用偏
性的差异较小
针对酵母第一染色体的分析结果
第三节 功能位点分析• 功能位点( functional site )
– 与特定功能相关的位点,是生物分子序列上的一个功能单元,或者是生物分子序列上一个较短的片段。
• 功能位点又称为功能序列( functional sequence )、序列模式( motif )、信号( signal )等。
• 核酸序列中的功能位点包括转录因子结合位点、转录剪切位点、翻译起始位点等。
• 在蛋白质序列分析中,常使用序列模式这个名词,蛋白质的序列模式往往与蛋白质结构域或者作用部位有关。
功能位点示意
• 基因组序列中若干个相邻的功能位点组合形成功能区域( functional region )。
• 功能位点分析的任务– 发现功能位点特征– 识别功能位点
1 、利用共有序列搜索功能位点• 共有序列( consensus )又称一致性片段
–共有序列是关于功能位点特征的描述,它描述了功能位点每个位置上核苷酸进化的保守性
例如 : NTATN
• 利用共有序列进行功能位点分析牵涉到两个方面的问题,– 如何构造共有序列– 如何利用共有序列在给定的核酸序列上搜索寻找功能位点,并计算所找到的功能位点的可靠性
• 共有序列具有以下几个方面的特征:
( 1 )共有序列中既有保守的位置,也有可变的位置;
( 2 )任何位置上的核苷酸可以用 15种类型之一来表示:
核苷酸表示符号
符号 含义 说 明G G 腺嘌呤A A 鸟嘌呤T T 胸腺嘧啶C C 胞嘧啶R G or A 嘌呤Y T or C 嘧啶M A or C 氨基K G or T 羧基S G or C 强氢键 (3个氢键 )
W A or T 弱氢键 (2个氢键 )
H A or C or T 非 G
B G or T or C 非 A
V G or C or A 非 T(非 U)
D G or A or T 非 C
N G or A or T or C 任意碱基
• 共有序列构造过程 : (1)初始化共有序列为一系列可变位置,以“ N”代表;(2) 在可变位置寻找出现次数最多的核苷酸,并将该
位置转化为保守位置;(3) 对当前所得到的共有序列进行特异性检查,若通
过检查,转( 5 ),否则转( 4 );(4)形成与当前共有序列一致的位点子集,转( 2 );(5) 从原位点集合中删除与当前共有序列一致的位点,若还有剩余位点,则转( 1 ),构造另外的共有序列。
TTATG
ATATA
TACGC
TTGTC
TCCAC
TTATG
ATATA
TACGC
TTGTC
TCCAC
TNNNN tTATG
tACGC
tTGTC
tCCAC
tTATG
tACGC
tTGTC
tCCAC
TNNNC
[1] [2] [3] [4] [2] [3]
NNN NN TNN NN
非特异
TNNNC
非特异
tACGc
tTGTc
tCCAc
[4] [2]
tACGc
tTGTc
tCCAc
[3]
TNSNC
特异
[5]
Consensus1 :
TNSNC
剩余位点: TTATG ATATA
[5]
Consensus2 :
NTATN
TN N
S
C
• 在给定的序列中搜索与共有序列一致的序列片段
• 数据库搜索
• 共有序列表示方法的缺点:– 是关于序列特征的一种定性描述,对于 DNA 序
列,它能够说明序列每个位置可能出现的碱基类型,但是不能准确地说明各位置上不同类型碱基出现的可能性大小。
2、用感知矩阵分析功能位点• 用权系数描述功能位点各位置上每种核苷酸
的相对重要性
• 感知矩阵(或加权矩阵)– 根据一系列功能位点的多重对比排列结果而建立
的– 其大小为 4n
4代表碱基的种类数目, n代表功能位点的长度
• 矩阵的每一个元素 M(a,j) 的值代表第 a 种核苷酸在功能位点第 j 个位置上出现的得分 ,a {A,T,G,C} 。
1 2 3 4 5 6
A 1 8 22 7 -3 19
T 2 6 14 2 -1 0
G 3 11 0 -5 0 -19
C 5 -9 16 8 8 0
感知矩阵示例
• 对于一个序列 s=a1a2…an ,根据对应位置上核苷酸的类型,取感知矩阵中对应的权值,加和以后得到该序列的得分
• 设 S=ATTGCA ,则 Ws = 1+6+14-5+8+19=43
• T—— 功能位点阈值• T‘—— 非功能位点阈值
– 如果 Ws T ,则 S 是功能位点;– 如果 WsT' ,则 S 是非功能位点。
n
jjs jaMW
1
),(
感知矩阵 M 的构造算法令 A+代表功能位点集合 A-代表非功能位点集合
• 过程如下: ( 1 )初始化M 为零矩阵; ( 2 )执行过程( 3 ) - ( 6 )的循环; ( 3 )逐步取训练集合中的每个实例 Si ,如果 Si A+ ,
转 过程( 4 );如果 Si A- ,转过程( 5 ); ( 4 )如果 W ( Si ) T , M 不变,否则根据 Si 的核苷
酸分布 将M 中所有对应元素的值加 1 ;转( 6 ); ( 5 )如果 W ( Si ) T‘ , M 不变,否则根据 Si 的核
苷酸分 布将M 中所有对应元素的值减 1 ;转( 6 );
( 6 )若训练集合中的所有实例都处理过,则循环结束,转( 7 ),否则继续执行循环体,直到处理完所有
实 例; ( 7 )如果 M稳定,则结束;否则转( 2 )。
• 上述算法反复调整感知矩阵M 的元素值,直到 M矩阵能够正确识别训练集中的所有功能位点和非功能位点。
• 对于最终得到的感知矩阵,要求其具有敏感性和特异性,每一列上的元素值应该尽可能地有明显的差别,以便反应功能位点各个位置上的特点。
• 与感知矩阵类似,如果令矩阵每一个元素 M(a,j)的值代表第 a 种核苷酸在功能位点第 j 个位置上出现的概率,则 M 是一个概率矩阵。
• 假设各个位置上出现的碱基是相互独立的,即任何两个位置上的碱基是不相关的,那么对于给定一个序列 s=a1a2…an ,可以计算出功能位点序列为 s 的概率:
n
jjn jaMsaaasP
121 ),()|...( 是功能位点
• 如果分别统计功能位点和非功能位点,通过计算可以形成两个矩阵M 和 M’ ,进一步计算可以判断一个给定的序列究竟属于功能位点,还是属于非功能位点。给定一个序列 s=a1a2…an ,定义似然比 LR(M,M’,s) :
• 在进行功能位点检测时,计算 LR(M,M’,s) ,并与给定的阈值 L 比较,如果 LR(M,M’,s)>L ,则序列 s 可能是一个功能位点。
n
j j
j
n
j j
n
j j
n
n
jaM
jaM
jaM
jaM
saaasP
saaasPsMMLR
11
1
21
21
),('
),(
),('
),(
)|...(
)|...(),',(
是非功能位点是功能位点
• 概率矩阵M 和 M’ 的每个元素是一个 0 和 1 之间的正数。
• 如果令一个 4n新矩阵 U 的元素 (a,j) 的值为• log2(M(a,j)/M’(a,j))
• 则矩阵 U 的每个元素值可能是正值,也可能是负值。
实际上,矩阵 U 就是感知矩阵。
第四节 隐马尔柯夫模型1 、马尔柯夫链( Markov chain ) • 考虑一个具有多个状态的系统 S , S={s1,s2,…,s|
s|},令 S0 、 S1 、…、 St 为一系列在各个时刻系统状态的变量,即状态链。
• 对于每个 1 到 |S| 的整数,它们分别与状态链中的一个状态相联系,并且在任何时刻,这条链都处于一个特殊的状态。当且仅当对于任何 t 有
则 St形成一条马尔柯夫链。
)|(),...,,|( 1101 tttt SSPSSSSP
• 简单地说,就是系统未来的状态仅依赖于当前状态。 St 称为在时刻 t 系统链的状态。一条马尔柯夫链完全决定于初始分布 P(S0)和转换概率 Pt=P(St+1|St) 。
• 令状态转换矩阵为F =(fij)
fij代表从状态 si移动到状态 sj 的概率。
• 生物序列可以被描述为一个随机过程的输出,其中对于一个给定的核酸在位置 p 出现的概率依赖于已占据前面 k 个位置的核酸,这样一种表示称为 k阶马尔柯夫模型。
ATCGTAGCAT…….
• 一个序列具有不同的统计性质(如二目频率或三目周期性)
• 不同的功能区域(如编码区域、非编码区域)对应于不同的马尔柯夫模型。
马尔柯夫链在识别 CpG岛中的应用
• CpG岛是一类长度在几百 bp 的特殊 DNA序列,其中 CG 核苷酸对出现的频率非常高。
ACGCGCGTACGCGAAT
• CpG岛在基因组中有重要的生物学意义,而识别 CpG岛有助于在基因组序列中确定我们感兴趣的区域。
• CpG岛的识别问题表述为:给定一段 DNA 序列 X =(x1 , x2 ,… ,xL) ,确定 X 是否是一个 CpG岛。• 设字母表 A={a,t,c,g} ,对于字母表中的任何两个字符 s 、 t ,定义转换概率为 fst=p(xi=t|xi-1=s) ,即字符 s 后面出现字符 t 的概率。
• 假设 {xi} 是一个随机过程,随机变量 xi 的取值仅依赖于 xi-1 ,即对于所有 x1,x2,…,xiA ,
ii ss
iiii
iiii
f
sxsxp
sxsxsxsxp
,
11
112211
1
)|(
),...,,|(
• 整个序列 X 的发生概率为
• 为了处理方便,添加两个特殊的字符‘ B’ ( begin )和‘ E’ ( end ),使得 x0=‘B’, xL+1=‘E’ ,则上述公式简化为:
L
ixx ii
fxpXP2
,1 1)()(
L
ixx ii
fXP1
,1)(
• 令 fst+ 为 CpG 岛内的字符转换概率
fst- 为 CpG 岛外的字符转换概率
则 X 的对数似然得分为
• 上述计算值越大,则 X越可能是 CpG岛。
L
i xx
xx
ii
ii
f
f
islandCpGnonXP
islandCpGXpXScore
1 ,
,
1
1log)__|(
)_|(log)(
CpG 岛内部和外部的转换概率
• 另外一个待解决的问题是: 给定 DNA 序列,确定 CpG岛的位置。直接的方法:
对窗口内的子序列计算得分 Score(Xk) ,
具有正值的 Xk 就是可能的 CpG岛
子序列起始位置为 k+1 ,长度为 l
• 问题:事先不知道 CpG岛的长度但是假设 CpG岛的长度为 l
• 如果 l 比较大,而真实的 CpG岛又比较小,则上述概率计算值不足以证实 CpG岛;
• 如果 l取值比较小,则难以找出整个 CpG岛。这是该算法的最大不足之处,需要考虑其他的算法。
HMM
2 、隐马尔柯夫模型( HMM )• 功能位点的正则表达式来表示
– 相当于一致性序列
• 这里的正则表达式描述了一个功能位点的构成规律,或者说描述了功能位点各个位置上核苷酸的组成。
TGCC—AGG ???
ACAC—ATC
问题:对于每个位置,仅仅说明可能的取值,而没有说明各种取值出现的可能性大小
• 例如,用这样的方法无法区分下面两条序列究竟哪一个更可能属于功能位点:
TGCC--AGGACAC—ATC
• 第一个序列中,假设所有位置上都是取已知出现次数最少的字符
• 而对于第二个序列,所有位置上都是取已知出现次数最多的字符。
• 显然,第一个序列几乎肯定不是功能位点,而第二个序列几乎可以肯定是功能位点,但是用正则表达式表达却无法将两种极端的情况分开。
• 隐马尔柯夫模型可以用于生物序列分析,该模型在生物信息分析方面有重要的应用。
• 一阶隐马尔柯夫模型包括有限数目的系统状态、离散的字母表、状态转换矩阵和字符释放概率。
一个 HMM 模型是一个三元组 M = ( A , S ,Θ )
• A 是字母表• S 是有限状态集合,每个状态可以释放字母表中
的字符。• Θ 为概率集合,包括两个部分:
–状态转换概率 fkl
k,lS ,表示从状态 k 转换到状态 l 的概率;–字符释放概率,记为 ek(b)
kS,bA 表示在状态 k 下释放出字符 b 的概率。
令路径 = ( 1,2,…,L )是一个相继状态序列 X =(x1,x2,…,xL) 是一个字符序列按下述方式定义状态转换概率和字符释放概率:
)|()(
)|( 1
kbxpbe
klpf
iik
iikl
• 对于给定的路径,可以按下面的公式计算出产生序列 X 的概率:
这里,令 0 为起始状态, L+1 为终止状态。
110 ,1
, )()|(
iiifxefXP i
L
i
例如,对于前面给出的两个序列 ACACATC 和 TGCTAGG ,它们的得分分别为:P ( ACACATC ) = 0.81.00.81.00.80.60.
4 0.61.01.00.81.00.8
= 4.710-2
P(TGCTAGG) = 0.21.00.21.00.20.60.2 0.61.01.00.21.00.2
= 0.002310-2
从上述计算结果可以看出,两个序列差别非常大
• 一个功能位点的 HMM 模型是通过对一系列的功能位点实例进行机器学习而形成的
• 用这样的模型可以定量的计算一个序列片段是功能位点的可能性
• 计算方法是从模型的第一个状态出发,根据序列的核苷酸组成,将相应的状态值与状态转换值连乘,结束于最后一个状态
一个检测 CpG岛的 HMM 模型 有 8 个状态,状态名称和释放的字符为: 状态: A+ C+ G+ T+ A- C- G- T-
释放字符: A C G T A C G T 其中,带有“ +” 号的状态表示在 CpG岛内部,
用“ -” 号标记的状态代表 CpG岛外部。
• 假设字符处于 CpG岛内的概率是 p 处于 CpG岛外的概率是 q
可以得到状态转换概率
CpG 岛 HMM 模型中的状态转换概率
解码问题:给定一个隐马尔柯夫模型 M = ( A , S , Θ )和一个字符序列 X ,在 M 中为 X寻找一条最优路径 * ,在路径中的每一个状态都选择释放一个字符,要求使得 P(X|*) 最大,记为:
• 在处理 CpG岛问题中,最优路径可以帮助我们寻找 CpG岛所在的位置。如果找到最优路径 * ,则这条路径穿过的“ +”状态将对应于 CpG岛。
)|(maxarg*
XP
3 、 Viterbi 算法• 求解 HMM 模型的最优路径
• 基本思想:动态规划算法
• 给定一个字符序列 X=(x1,x2,…,xL) ,以 vk(i)代表序列前缀( x1,x2,…,xi )终止于状态 k ( kS,1≤i≤L )的最可能路径的概率。求解过程如下:
( 1 )初始化
( 2 )对于每个 i=0,…,L-1及每个 lS ,按下式进行递归计算:
( 3 )最后,计算序列 X 终止于状态“ end” 最可能的路径概率,即 P(X|*) 的值
0)0(
1)0(
kbegink
begin
v
v
})({)()1( max1 klkSk
ill fivxeiv
})({)|( ,* max endkk
Sk
fLvXP
• 在正向的递归计算过程中,保持向前推进的反向指针,这样,在正向计算完成后,根据反向指针重构最优路径 * 。
• 算法的时间复杂度为 O(L|S|2),空间复杂度为 O(L|S|) 。
• 在概率的计算过程中,需要使用大量的乘法运算,在有限计算精度的情况下,会产生误差。如果使用对数值,可以解决这个问题。
• 因此,以 vk(i)代表序列前缀( x1,x2,…,xi )终止于状态 k ( kS,1≤i≤L )的最可能路径的对数得分值,则初值按如下方式设置
• 递归计算及最终得分计算改为
)0(
0)0(
kbegink
begin
v
v
)}log()({)(log)1( max1 klkSk
ill fivxeiv
)}log()({)|( ,* max endkk
Sk
fLvXScore
( 5-26 )
4 、前向概率和反向概率• 给定一个隐马尔可夫模型 M = ( A , S , Θ )
一个字符序列 X=(x1,x2,…,xL)要求计算模型 M 产生 X 的概率 P(X|M)
• 与最优路径问题不一样前面的问题是在可以产生序列 X 的各种路径中,选择一条最优路径 * ,使得 P(X|*) 最大。
而现在的问题是:既然有多条路径可以产生序列 X ,那么模型 M 产生序列 X总的可能性有多大?
• 如果有一条从状态“ begin” 出发,终止于状态“ end” 的路径 = ( 0,1,2,…,L,L+1 ),其中 0=“begin” , L=1=“end”,该路径中各状态所释放的字符组成的序列与 X 相同,则
• 模型 M 产生 X 的概率为
• 这里代表所有那些从状态“ begin” 出发、终止于状态“ end” 的路径。
1,01
)()|,(
iii
fxeMXPL
li
L
l
)|,()|( MXPMXP
( 5-27 )
( 5-28 )
• 由于一个 HMM 模型中可能的路径非常多,穷举每条路径显然是不合适的。
• 下面介绍解决该问题的前向算法( forward algorithm )与反向算法 (backward algorithm) 。
• 算法的根本任务是对于每个 1≤i≤L及 kS,计算概率 P(i=k|X , M ) 。
• 定一个序列 X = (x1,x2,…,xL) ,令 k(i) 为释放前缀( x1,x2,…,xi )后到达状态 i=k 的概率。前向算法初始值的设置与 Viterbi 算法一样:
• 递归计算过程和最终计算如下:
0)0(
1)0(
kbegink
begin
Sk
klkill fixei )()()1( 1
( 5-29 )
( 5-30 )
( 5-31 )
Sk
endkk fLMXP ,)()|(
• 与前向算法相对应,给定一个序列 X = (x1,x2,…,x
L) ,令 k(i) 为在给定状态 i=k 下后缀( xi+1,xi+2,…,xL )的概率。反向算法初始化如下:
• 递归计算和终止计算如下:
1)1( Lend
endkkSk fL ,)(
Sl
kilklk ixefi )1()()( 1
Sl
lllbegin xefMXP )1()()|( 1,
( 5-32 )
( 5-33 )
( 5-35 )
( 5-34 )
• 利用正向和反向概率,可以计算出 P(i=k|X) 。由于 HMM 的阶数为 1 ,当前的状态仅依赖于前一个状态,则
• 根据条件概率的定义,我们得到解
)()(
)|,...,(),,...,(
),,...,|,...,(),,...,(),(
11
111
ii
kxxPkxxP
kxxxxPkxxPkXP
kk
iLiii
iiLiiii
)|(
)()(
)|(
),(),|(
MXP
ii
MXP
kXPMXkP
kk
ii
( 5-36 )
( 5-37 )
5 、 HMM 模型的参数估计• 应用中假设有一个 HMM 模型,其中的状态
转换概率和字符释放概率都是已知的。• 然而在实际中,情况并非如此。我们所知道的仅仅是一些实例
• 问题是要根据给定的 n 个字符串重构 M ,使得 M 产生这 n 个字符串具有最大的概率。
• 由于各个字符串是独立产生的,则
• 若使用对数表示,则目标就是寻找一个 * ,使得
• 其中
• 这里的 n 个字符串 X(1), X(2),…, X(n) 通常被称为“训练序列”。
)|()|,...,,(1
)()()2()1(
n
i
in XPXXXP
)}|,...,,({maxarg )()2()1(*
nXXXScore
))|(log()|,...,,(1
)()()2()1(
n
i
in XPXXXScore
( 5-38 )
( 5-39 )
( 5-40 )
• 特殊情况:假设已知与字符串序列 X(1), X(2),…,X(n) 相对应的状态序列 (1),(2),…,(n) ,可以计算从状态 k 到状态 l 的转换数 Fkl 和在状态 k 下释放字符 b的次数 Ek(b) 。则关于最大似然估计值为:
• 为了避免零概率,当处理数量较少的样本时,需要对 Fkl 和 Ek(b) 进行修正:
Ac k
kk
Ss ks
klkl
cE
bEbe
F
Ff
)(
)()(
)()()('
'
brbEbE
rFF
kkk
klklkl
• rkl 、 rk(b) 为拉普拉斯修正项,通常情况下为 1 ,可以解释为预先假设的均匀分布。
• 但是在某些情况下,这些修正项可能取其他的值,例如已知状态转换或字符释放的信息,或已有的先验知识。
• 在一般情况,不知道状态序列 (1),(2),…,(n) ,这时,寻找最优参数集在数学上是一个 NP- 完全问题,可以用 Baum-Welch 算法或期望最大( EM )算法解决这个问题。具体的求解算法如下:
( 1 )初始化,给中的参数赋予初值; ( 2 )计算从状态 k 到状态 l 转换的期望次数,
使用与计算 P(X,i=k) 时相同的参数(见公式 5-36 ),则
)(
)1()()(),|,( 1
1 XP
ixefiXlkP lilklk
ii
( 5-45 )
• 这样,对所有训练序列 X(j) ( j=1,…,n )的所有位置 i ( i=1,…,L(j) , L(j) 为序列 X(j) 的长度)进行求和运算,按下式计算期望值 Fkl :
• 其中 k(j)(i) 是针对序列 X(j) 的正向计算结果, k
(j) (i+1) 是反向计算结果。接下来计算在状态 k释放字符 b 的期望次数:
)1()()()(
1 )()(1
1 1
)(
)(
)(
ixefi
XPF j
lj
ilkl
n
j
L
i
jkjkl
j
}|{
)()(
1)(
)(
)()()(
1)(
bxi
jk
jk
n
jjk
ji
iiXP
bE ( 5-47 )
( 5-46 )
( 3 )重新计算的参数值 Fkl 和 Ek(b) ,正如在第一种情况所做的一样(参见公式( 5-41 )和公式( 5-42 ));
( 4 )反复执行步骤( 2 )、( 3 ),直到 Score(X(1), X(2),…, X(n)|) 的增量小于给定的一个值很小的参数为止。
• EM 算法保证目标函数 Score(X(1), X(2),…, X(n)|) 单调增加,并且概率的对数值接近于 0 ,保证算法收敛。
• 需要注意,收敛的是目标函数,并非是的参数。当目标函数变化趋缓时,的参数值可能波动较大,这意味着算法所得到的结果不稳定。
• Baum 算法的主要问题是目标函数存在若干局部极大,算法不能保证找到全局最大点,算法收敛的点可能是局部极大点。
• 克服局部极大缺陷的一种方法是执行算法若干遍,每次给取不同的初始值。如果算法多次计算结果到达同一个极大点,则可以认为该点是全局最大点。
6 、基于 HMM 模型的序列比对• 可以利用 HMM将一个序列与一个序列统计特征
( profile )进行比对,从而解决多重比对问题。
• 定义一个长度为 L 的序列统计特征 P 是一系列的概率集合 ei(b) , ei(b) 表示在第 i ( 1≤i≤L )个位置上出现字母表中字符 b 的概率。这样,在给定条件 P 下序列 X =(x1,x2,…,xL) 发生的概率为:
L
iii xePXP
1
)()|(
• 如果不考虑“空位”,则 X 与 P 的比对得分为:
• 这里, p(b) 是字符 b 的背景出现频率。
L
i i
ii
xp
xePXScore
1 )(
)(log)|( ( 5-49 )
• 定义一个基本 HMM 模型,有 L 个“匹配”状态M1, M2,…, ML ,它们对应与统计特征的匹配。所有这些状态顺序连接起来,即状态Mj连接到后继Mj+1 ,如图 5.5 所示。其中从状态Mj释放字符 b的概率为 ej(b) 。为了在比对中允许插入“空位”的操作,在上述基本模型中加入“插入”状态 I1,I
2,…,IL ,并假设
• 每个插入状态 Ij, 有一个来自相应匹配状态Mj 的连接,有一个到匹配状态Mj+1 的连接,还有一个自循环连接。根据“空位”的惩罚原则,给这些状态转换赋予适当的概率。
)()( bpbejIAb ( 5-50 )
• 同样,为了允许“删除”操作,可以进一步假如“删除”状态 D1,D2,…,DL ,这些状态不能释放任何字符。删除状态依然顺序连接,同时增加从 Dj 到 Ij 的连接及从 Ij 到 Dj
+1 的连接。完整的 HMM 模型如图 5.5 所示:D1 D2 D3
I2
I3
I4
Begin EndM1 M2M3
I1
图 5.5 用于序列多重比对的 HMM 模型
• 下面介绍一种 Viterbi 类似算法,将 X =(x1,x2,…,xm) 与长度等于 L 的统计特征 P 进行比对。
• 对于每一个 1≤j≤L 和 1≤i≤m ,定义: ( 1 ) vj
M(i)代表子序列 (x1,x2,…,xi) 与 HMM 模型P 的匹配对数得分值,该匹配以状态Mj释放字符 xi 作为最后操作 ;
( 2 ) vjI(i)代表子序列 (x1,x2,…,xi) 与 HMM 模型
P 的匹配对数得分值,该匹配以状态 Ij释放字符xi 作为最后操作 ;
( 3 ) vjD(i)代表子序列 (x1,x2,…,xi) 与 HMM 模型
P 的匹配对数得分值,该匹配以状态 Dj 结束(不释放任何字符)。
• 模型 P 中特殊状态“ begin” 的初始值为:
• 为了计算 vjM(i) 、 vj
I(i) 和 vjD(i) 的值,使用
Viterbi 算法中的相同技术,但现在的模型有两个特点:
( 1 )模型中的每一个状态最多只有 3 个引入连接,如上图所示;
( 2 )“删除”状态不释放任何字符。
0)0( beginv ( 5-51 )
• “匹配”状态Mj 的三个前驱同属于上一层 ,即 j-1层,有
• “插入”状态 Ij 的三个前驱属于同一层 ,即 j层,于是有
)log()1(
)log()1(
)log()1(
max)(
)(log)(
,1
,1
,1
1
1
1
jj
jj
jj
j
MDDj
MIIj
MMMj
i
iMMj
fiv
fiv
fiv
xp
xeiv
)log()1(
)log()1(
)log()1(
max)(
)(log)(
,
,
,
jj
jj
jj
j
IDDj
IIIj
IMMj
i
iIIj
fiv
fiv
fiv
xp
xeiv
( 5-52 )
( 5-53 )
• “删除”状态 Dj 的三个前驱同属于上一层 ,即 j-1层,并且由于 Dj 不释放任何字符,所以有
• 最优得分计算公式如下:
)log()(
)log()(
)log()(
max)(
,1
,1
,1
1
1
1
jj
jj
jj
DDDj
DIIj
DMMj
Dj
fiv
fiv
fiv
iv
)log()(
)log()(
)log()(
max)|(
,
,
,*
endDDL
endIIL
endMML
L
L
L
fmv
fmv
fmv
XScore
( 5-54 )
( 5-55 )
• 前面我们介绍了如何将一个序列与一个以 HMM模型代表的统计特征进行比对,那么怎样建立代表统计特征的 HMM 模型呢?即如何确定模型中的各个状态、各状态的转换概率、各状态的字符释放概率?
• 给定序列 X =(x1,x2,…,xm) ,定义前向概率为:
• 反向概率为:
),...,,()(
),...,,()(
),...,,()(
21
21
21
jiDj
jiIj
jiMj
DxxxPi
IxxxPi
MxxxPi
结束于
结束于
结束于
),...,,()(
),...,,()(
),...,,()(
21
21
21
jmiiDj
jmiiIj
jmiiMj
DxxxPi
IxxxPi
MxxxPi
起始于
起始于
起始于
• 前向概率的计算过程如下: ( 1 )初始化
( 2 )递归计算
1)0( begin
])()()([)(
])1()1()1([)()(
])1()1()1([)()(
,1,1,1
,,,
,1,1,1
111
111
jjjjjj
jjjjjjj
jjjjjjj
DDDjDI
IjDM
Mj
Dj
IDDjII
IjIM
MjiI
Ij
MDDjMI
IjMM
MjiM
Mj
fififii
fififixei
fififixei
( 5-56 )
( 5-57 )
• 反向概率的计算过程如下: ( 1 )初始化
( 2 )递归计算
endDDL
endIIL
endMML
L
L
L
fm
fm
fm
,
,
,
)(
)(
)(
111
111
111
,11,1,1
,11,1,1
,11,1,1
)()()1()()1()(
)()()1()()1()(
)()()1()()1()(
jjjjjjjj
jjjjjjjj
jjjjjjjj
DDDjiIID
IjiMMD
Mj
Dj
DIDjiIII
IjiMMI
Mj
Ij
DMDjiIIM
IjiMMM
Mj
Mj
fixefixefii
fixefixefii
fixefixefii
( 5-58 )
( 5-59 )
• 利用 HMM 模型可以得到关于多重比对的近似结果。假设有 n 个序列 S(1), S(2),…, S(n), 如果代表统计特征的 HMM 模型 Ω 已知,则将 S(i) 与 Ω 比对,并将所得到的比对融入多重比对。如果还不知道代表统计特征的 HMM 模型 Ω ,则按下述方法根据给定的序列构造 Ω :
• 为 Ω 选择合适的长度 L ,初始化 Ω 的状态转换概率和各个状态的字符释放概率,利用 Baum 算法训练模型 Ω ,然后按照前面的方法根据 Ω 进行多重序列的比对。
• 可以进一步拓展上述多重序列比对的方法,形成在给定的多个序列中识别相似序列模式( pattern )的算法。
7 、 Gibbs采样 • 假设有 n 个序列 S(1), S(2),…, S(n)及整数 w ,要求寻找这些序列的共同模式,即对于每一个序列 S(i) ,找出一个最大长度等于 w 的子序列,使得这n 个子序列的相似度最大。
• 令 a(1), a(2),…,a(n) 分别为各子序列的起始下标,并令 cij 为字母表中第 j 个字符在这 n 个子序列第i 位出现的次数, qij代表第 j 个字符在序列模式第 i 位出现的频率, pj代表第 j 个字符在所有序列中出现的频率。我们的目的是使得下面的得分最大:
w
i Aj j
ijij p
qcScore
1
log ( 5-60 )
• 具体的计算过程如下: ( 1 )初始化:随机选择 a(1), a(2),…,a(n) ; ( 2 )随机选择 1≤z≤n ,对于除 S(z) 之外的序列
计算 cij 、 qij 和 pj;
( 3 )在序列 S(z) 中寻找最佳的子序列,并更新a(z), 这里需要将 S(z) 与当前的模式统计特征进行局部比对;
( 4 )重复执行第( 2 )步和第( 3 )步,直到得分值的变化小于预先设定的值为
• 应用 Gibbs采样算法在许多情况下可以得到较好的效果。但是该算法也存在一些问题,如,算法可能会陷入局部极小,不能保证收敛到最佳的模式。又如,选择不同的长度值 w ,所得到的结果可能相差非常大。
8 、其他方法• 功能位点的其他分析方法有神经网络方法及相邻
核苷酸分析方法等。• 有一点需要说明,前面我们介绍的是单个功能位
点的识别分析,其识别结果往往不太好。实际上在核酸序列中,各种功能位点共存,协同作用,形成功能域。因此,在进行功能位点识别时,最好同时考虑多个位点,考虑各种位点之间的关联,对它们进行同时识别,可能会得到更好的识别结果。这就是所谓功能域的识别。
top related