1.52k likes | 1.69k Views
第三章 序 列 比 较. 序列比较的根本任务是: 发现序列之间的相似性 辨别序列之间的差异 目的: 相似序列 相似的 结构,相似的功能 判别序列之间的同源性 推测序列之间的进化关系. 第一节 序列的相似性. 同源( homology ) - 具有共同的祖先 直向同源( Orthologous ) 共生同源( paralogous ) 相似( similarity ) — 同源序列一般是相似的 — 相似序列不一定是同源的 — 进化趋同(同功能). 直向同源( a1 in species I, a1 in species II)
E N D
第三章 序 列 比 较 • 序列比较的根本任务是: • 发现序列之间的相似性 • 辨别序列之间的差异 • 目的: 相似序列 相似的结构,相似的功能 判别序列之间的同源性 推测序列之间的进化关系
第一节 序列的相似性 • 同源(homology)- 具有共同的祖先 • 直向同源(Orthologous ) • 共生同源(paralogous ) • 相似(similarity) —同源序列一般是相似的 — 相似序列不一定是同源的 — 进化趋同(同功能)
直向同源(a1 in species I, a1 in species II) 共生同源(a1 and a2 in species I) 基因复制 进化趋同 水平转移
序列的相似性描述 • 定性的描述:画图 • 定量的数值: • 相似度 • 距离
序列比较的基本操作是比对(Alignment) • 两个序列的比对是指这两个序列中各个字符的一种一一对应关系,或字符的对比排列 。 设有两个序列: GACGGATTAG,GATCGGAATAG • Alignment1: • GACGGATTAG • GATCGGAATAG • Alignment2: • GA CGGATTAG GATCGGAATAG
1、字母表和序列 • 字母表 • 4字符DNA字母表:{A, C, G, T} • 扩展的遗传学字母表或IUPAC编码 • 单字母氨基酸编码
1、字母表和序列 • 特定的符号 — 代表字母表 • A* — 代表由字母表A中字符所形成的一系列有限长度序列或字符串或序列的集合 a、b、c—代表单独的字符 s、t、u、v—代表A*中的序列 |s|—代表序列s的长度
为了说明序列s子序列和s中单个字符,在s中各字符之间用数字标明分割边界为了说明序列s子序列和s中单个字符,在s中各字符之间用数字标明分割边界 例如,设s=ACCACGTA,则s可表示为 0A1C2C3A4C5G6T7A8 i:s:j 指明第i位或第j位之间的子序列, 当然,0 i j |s|。 • 子序列0:s: i称为前缀,即prefix(s,i) • 子序 列i:s:|s|称为后缀,即suffix(s, |s|-i+1)
i:s: i — 为空序列 • j-1:s:j —表示s 中的第j 个字符,简记为sj 子序列与子串 子序列:选取s中的某些字符(或删除s中的某些字符)而形成s的子序列 例如: TTT 是 ATATAT的子序列。
s的子串: 是由s中相继的字符所组成。 例如: TAC是AGTACA的子串, 但不是TTGAC的子串(是子序列)。 • 子串是子序列 • 子序列不一定是子串
字符串操作 字符串连接操作: 两个序列s和t的连接: s + + t 例如: ACC++CTA = ACCCTA 字符串k操作— 删除字符串两端的字符 其定义如下: • prefix(s,l) = sk|s|-l • suffix(s,l) = k|s|-ls • i:s:j = ki-1sk|s|-j
序列比较可以分为四种基本情况:(1)两条长度相近的序列相似 找出序列的差别(2)判断一条序列的前缀与另一条序列的后缀相似(3)判断一条序列是否是另一条序列的子序列(4)判断两条序列中是否有非常相似的子序列
2、编辑距离(Edit Distance) GCATGACGAATCAG TATGACAAACAGC GCATGACGAATCAG TATGAC-AAACAGC 说明两条序列的相似程度 ——〉定量计算
两条序列的相似程度的定量计算 • 相似度,它是两个序列的函数,其值越大,表示两个序列越相似 • 两个序列之间的距离。距离越大,则两个序列的相似度就越小 直接距离计算不够好
字符编辑操作(Edit Operation) • 字符编辑操作可将一个序列转化为一个新序列 • Match(a,a) • Delete(a,-) • Replace(a,b) • Insert(-,b)
扩展的编辑操作 ACCGACAATATGCATA ACTGACAATATGGATA ACCGACAATATGCATA ATAGGTATAACAGTCA 第二条序列头尾颠倒 ? CTAGTCGAGGCAATCT GAACAGCTTCGTTAGT
反向互补序列 RNA发夹式二级结构
3、通过点矩阵进行序列比较“矩阵作图法” 或 “对角线作图”
→ 序列1 → 实 例 →序列2 →
→ 序列1 → 自我比较 →序列1 →
滑动窗口技术 • 两条序列中有很多匹配的字符对,因而在点矩阵中会形成很多点标记。
滑动窗口技术 • 使用滑动窗口代替一次一个位点的比较是解决这个问题的有效方法。 • 假设窗口大小为10,相似度阈值为8,则每次比较取10个连续的字符,如相同的字符超过8个,则标记 • 基于滑动窗口的点矩阵方法可以明显地降低点阵图的噪声,并且明确无误的指示出了两条序列间具有显著相似性的区域。
(a) (b) (a)对人类(Homo sapiens)与黑猩猩(Pongo pygmaeus)的β球蛋白基因序列进行比较的完整点阵图。(b)利用滑动窗口对以上的两种球蛋白基因序列进行比较的点阵图,其中窗口大小为10个核苷酸,相似度阈值为8。
4、 序列的两两比对 • 序列的两两比对 (Pairwise Sequence Alignment) 按字符位置重组两个序列,使得两个序列达到一样的长度
Alignment -1 Alignment -2 s: AGCACACA AGCACACA t: ACACACTA ACACACTA —————————————————————————— Match(A, A) Match(A, A) Delete(G, - ) Replace(G, C) Match(C, C) Insert( -, A) Match(A, A) Match(C, C) Match(C, C) Match(A, A) Match(A, A) Match(C, C) Match(C, C) Replace(A, T) Insert( -, T) Delete(C, -) Match(A, A) Match(A, A) 图3.6 序列AGCACACA和ACACACTA的两种比对结果
不同编辑操作的代价不同 为编辑操作定义函数w,它表示“代价(cost)”或“权重(weight)”。 对字母表中的任意字符a、b,定义 w (a, a) = 0 w (a, b) = 1 a b w (a, -) = w ( -, b) = 1
也可以使用得分(score)函数来评价编辑操作 p (a, a) = 1 p (a, b) = 0 a b p (a, -) = w ( -, b) = -1
概念: 两条序列s 和 t 的比对的得分(或代价)等于将s 转化为t 所用的所有编辑操作的得分(或代价)总和; s 和t 的最优比对是所有可能的比对中得分最高(或代价最小)的一个比对; s 和t 的真实距离应该是在得分函数p值(或代价函数w值)最优时的距离。
例如: s: AGCACACA t: ACACACTA cost=2 s: AGCACACA t: ACACACTA score (s,t)= 5 序列比对的目的是寻找一个得分最大(或代价最小)的比对。
5、打分矩阵(Weight Matrices) • (1)核酸打分矩阵设DNA序列所用的字母表为 = { A,C,G,T } a. 等价矩阵 b. BLAST矩阵 c. 转移矩阵(transition,transversion) (嘌呤:腺嘌呤A,鸟嘌呤G;嘧啶:胞嘧啶C,胸腺嘧啶T) 表3.1 等价矩阵表 表3.2 BLAST矩阵 表3.3 转移矩阵
(2)蛋白质打分矩阵 • (i)等价矩阵 • (ii) 氨基酸突变代价矩阵GCM • (iii)疏水矩阵 • (iv)PAM矩阵(Point Accepted Mutation) • (v) BLOSUM矩阵 (Blocks Amino Acid Substitution Matrices) 其中Rij代表打分矩阵元素 i、j分别代表字母表第i和第j个字符。
PAM矩阵(Point Accepted Mutation) • 基于进化的点突变模型 • 一个PAM就是一个进化的变异单位, 即1%的氨基酸改变 • 这类矩阵里列出同源蛋白质在进化过程中氨基酸变化的可能性。 • 这类矩阵式基于进化原理的 • 证据: • 编码相同蛋白质的基因随着进化发生分歧,相似度降低。 • 科学 • 用得多
矩阵集合----- PAM-N 如,PAM120矩阵用于比较相距120个PAM单位的序列。 一个PAM-N矩阵元素(i,j)的值: 反应两个相距N个PAM单位的序列中第i种氨基酸替换第j种氨基酸的频率。
针对不同的进化距离采用PAM 矩阵 序列相似度 = 40% 50% 60% | | | 打分矩阵 = PAM120 PAM80 PAM 60 PAM250 → 14% - 27%
归一化打分 实例
第二节 两两比对算法 1、序列两两比对基本算法 直接方法 — 生成两个序列所有可能的比对,分别计算代价函数,然后挑选一个代价最小的比对作为最终结果。 本质问题:优化(因为穷举法不现实) 动态规划寻优策略 动态规划算法(Dynamic Programming)
最短路径问题 C1 W1 终点 起点 W2 C2 路径1:C1 + w1 ? 路径2:C2 + w2 ? 取最小值! 算法求解: 从起点到终点逐层计算
利用动态规划方法求解序列的两两比对 ATTC………CGAAGA AGTC………GAAGGT 起点 终点 ATTC………CGAAG AGTC………GAAGG A T + (1) ATTC………CGAAGA AGTC………GAAGG - T + (2) ATTC………CGAAG AGTC………GAAGGT A - + (3)
求解过程 ATTC………CGAAGA AGTC………GAAGGT 起点 终点 • 从两个序列前端开始 • 逐步推进 • 直到两个序列的末端。
中间过程:比对0:S:i与 0:T:j 序列S: i-1 i i+1 序列t: j-1 j j+1 序列S: i-1 i i+1 Case1: 匹配(si,tj ) 序列t: j-1 j j+1
序列S: i-1 i i+1 序列t: j-1 j j+1 序列S: i-1 i i+1 Case2: 删除(si, -) 序列t: j-1 j j+1
序列S: i-1 i i+1 序列t: j-1 j j+1 序列S: i-1 i i+1 Case3: 插入(-,tj ) 序列t: j-1 j j+1
设序列s、t的长度分别为m和n。 考虑两个前缀 0:s:i0:t:j 假如已知序列0:s:i 和0:t:j 所有较短子列的最优比对,即已知: (1)0:s:(i-1)和 0:t:(j-1)的最优比对 (2) 0:s:(i-1)和 0:t:j的最优比对 (3) 0:s:i和 0:t:(j-1)的最优比对 则0:s:i和 0:t:j 的最优比对一定是上述三种情况之一的扩展 (1)替换(si,tj)或匹配(si,tj ) ,这取决于si是否等于tj; (2)删除(si, -); (3)插入( -,tj)。