320 likes | 479 Views
计算机科学与生命科学( 9 ) 生物信息学基础 2013 年秋季学期通选课程 上课时间:周一 18:30 点 上课地点:软件园 4 区 502d 主讲人:魏天迪 讲义网址: http://www.mbtech.sdu.edu.cn/biocomp/. 分子进化. 美国人 Linus Pauling 于 1964 年提出了分子进化的理论。 在分子水平上( DNA 、 RNA 或蛋白质序列)而不是物种的外在特征,来研究进化过程。 基于某一个特定的分子在不同物种中的序列差异来构建进化树。
E N D
计算机科学与生命科学(9) 生物信息学基础 2013年秋季学期通选课程 上课时间:周一 18:30点 上课地点:软件园4区502d 主讲人:魏天迪 讲义网址:http://www.mbtech.sdu.edu.cn/biocomp/
分子进化 • 美国人Linus Pauling于1964年提出了分子进化的理论。 • 在分子水平上(DNA、RNA或蛋白质序列)而不是物种的外在特征,来研究进化过程。 • 基于某一个特定的分子在不同物种中的序列差异来构建进化树。 • 基本假设:(1) DNA、RNA或蛋白质序列包含了物种的所有进化史的信息;(2)分子钟理论:一个特定蛋白质的进化变异(不同碱基或氨基酸的个数)的速度在不同物种中是基本恒定的。即两个蛋白质的序列越相近,他们距离共同祖先就越近。
DNA序列 >name CTCCTGACCTCAGGCGATTCGCCCGCCTCGGCCTCCCAAAGTGCTAGGATTACAGGCGTG AGCCACCACGCCCGGCCACACTAACTTTTTAAGAGCCAAGAGTTCGATCGGTAGCGGGAG CGGAGAGCGGACCCCAGAGAGCCCTGAGCAGCCCCACCACCACCGCTGGCCTAGCTACCA TCACACCCCGGGAGGAGCCGCAGCTGCCGCAGCCGGCCCCAGTCACCATCACCACAACCT TGAGCAGCGAGGCCGAGACCCAGCAGCCGCCCGCCGCTTGCCGCTCGCCGCCCCCCGCCC TCAGCGCCGGTGACACCACGCCCGGCACTACGGGCAGCGGCACAGGAAACGGTGGCCCGG GAGGCTTCACATCAGCAGCACCTGCCGGCGGGGACAAGAAGGTCATCGCAACGAAGGT 由4个不同的字母(碱基)排列组合而成。 FASTA格式: 第一行:大于号加名称或其它注释;第二行以后:每行60个字母。
蛋白质序列 >name MHHHHHHSSGRENLYFQGKLPEPQFYAEPHTYEEPGRAGRSFTREIEASRIHIEKIIGSG DSGEVCYGRLRVPGQRDVPVAIKALKAGYTERQRRDFLSEASIMGQFDHPNIIRLEGVVT RGRLAMIVTEYMENGSLDTFLRTHDGQFTIMQLVGMLRGVGAGMRYLSDLGYVHRDLAAR NVLVDSNLVCKVSDFGLSRVLEDDPDAAXTTTGGKIPIRWTAPEAIAFRTFSSASDVWSF GVVMWEVLAYGERPYWNMTNRDVISSVEEGYRLPAPMGCPHALHQLMLDCWHKDRAQRPR FSQIVSVLDALIRSPESLRATATVS 由20个不同的字母(氨基酸)排列组合而成。 FASTA格式: 第一行:大于号加名称或其它注释;第二行以后:每行60个字母。
创建进化树 http://www.ebi.ac.uk/Tools/phylogeny/clustalw2_phylogeny/ 输入文件:sequences.txt 输出树:
基本序列算法 • 1. 精确子字符串搜索 • 如:在一个DNA序列中搜索起始子ATG。 • 在文本文件或WORD文件中直接用搜索功能。 • 使用简单的计算机语言编程,如:PERL • open (FH,"<dna.txt"); • @get=<FH>; • close FH; • $content=join("", @get); • $n=0; • $find=index($content, "ATG", $n); • while($find!=-1) • { • print "$find\n"; • $n=$find+1; • $find=index($content, "ATG", $n); • }
基本序列算法 2. 模式匹配搜索(正则表达式) 如:在一个蛋白质序列中搜索LxxLxLxxNxL其中L代表L, I , F或V,x代表任意氨基酸。 使用简单的计算机语言编程,如:PERL open (FH,"<protein.txt"); @get=<FH>; close FH; $content=join("", @get); while($content=~/[LIFV]\w{2}[LIFV]\w{1}[LIFV]\w{2}N\w{1}[LIFV]/g) { print "$&\n"; } 模式匹配搜索也可以实现上一张幻灯片里的精确子字符串搜索: while($content=~/ATG/g) { print "$&\n"; }
基本序列算法 3. 后缀树 序列:SDSDFSDFG 1: SDSDFSDFG$ 2: DSDFSDFG$ 3: SDFSDFG$ 4: DFSDFG$ 5: FSDFG$ 6: SDFG$ 7: DFG$ 8: FG$ 9: G$
基本序列算法 3. 后缀树 SDSDFSDFG 功能:1. 查找字符串s是否在字符串S中: 从树根开始,与s的字符逐一比对。s1: DFSD(在); s2: SDFD (不在)
基本序列算法 3. 后缀树 SDSDFSDFG 功能:2. 指定字符串s在字符串S中的重复次数:从树根开始,按照功能1的办法找到s,然后看s之后有几片树叶。s1: SD(3次); s2: DF(2次)
基本序列算法 3. 后缀树 SDSDFSDFG 功能:3. 字符串S中的最长重复子串:找到从树根到所有节点(非叶片)的子字符串,从中找到最长的。SDF
基本序列算法 3. 后缀树 $的作用:如果某一个后缀是另一个后缀的前缀,那么需要用$标识出一个独立的叶片。
基本序列算法 3. 后缀树 $的作用:如果某一个后缀是另一个后缀的前缀,那么需要用$标识出一个独立的叶片。假如第n个后缀是SDSD: n $
基本序列算法 程序自动创建sufixtree: http://www.allisons.org/ll/AlgDS/Tree/Suffix/
基本序列算法 4. 最高分子序列问题 Input: 一个序列(a1,…,an)∈Rn Output: 一个子序列(ai,…,aj),使得函数f(i, j)最大, f(i, j) = ∑ ah j h=i 最短原则:在几个子序列同时拥有最高分时,如果某一个完全包含在另一之内,则只返回被包含的那一个。
基本序列算法 4. 最高分子序列问题 生物学应用:(1)蛋白质序列跨膜区域的预测。疏水氨基酸[0, 3],亲水氨基酸[-5,0]。
基本序列算法 4. 最高分子序列问题 生物学应用:(2)DNA序列中富含GC区域的预测。G, C给正分;A,T给负分。
基本序列算法 4. 最高分子序列问题 Input: 一个序列(a1,…,an)∈Rn Output: 一个子序列(ai,…,aj),使得函数f(i, j)最大, f(i, j) = ∑ ah j h=i Naïve算法:对于所有i<=j ∈ [1, n],计算f(i, j) ,在找出最大值对应的(i, j)。 所有可能的(i, j)组合的数量,即计算f(i, j)的次数: (n-1)+(n-2)+…+1 = n*(n-1)/2 = O(n2) 计算一次f(i, j)所需的步骤:O(n) => Naïve算法的总运算步骤为O(n3) 一个算法的运算步骤:k -> log(n) -> n -> n*log(n) -> n2
基本序列算法 4. 最高分子序列问题 Input: 一个序列(a1,…,an)∈Rn Output: 一个子序列(ai,…,aj),使得函数f(i, j)最大, f(i, j) = ∑ ah j h=i 动态算法:O(n2) 分而治之算法:O(n*log(n)) 聪明算法:O(n)
基本序列算法 4. 最高分子序列问题 聪明算法:O(n)
序列相似性 数据库中的序列相似性搜索 在麻将连连看中,你需要用眼睛从一推麻将牌中找出一对相同的麻将牌。
序列相似性 数据库中的序列相似性搜索 对于一个蛋白质或DNA序列,你需要从序列数据库中找到与它相同或相似的序列。不可能再用眼睛去比较每一对序列,因为数据库中有太多序列,甚至用眼睛比较一对序列都是不可能做到的。 BLAST …… > 100,000
序列相似性 序列相似性的重要性 相似的序列往往起源于一个共同的祖先序列。它们很可能有相似的空间结构和生物学功能 ,因此对于一个已知序列但未知结构和功能的蛋白质,如果与它序列相似的某些蛋白质的结构和功能已知,则可以推测这个未知结构和功能的蛋白质的结构和功能。 相似的结构 相似的功能 相似的序列
序列相似性 序列相似性的重要性 相似的序列往往起源于一个共同的祖先序列。它们很可能有相似的空间结构和生物学功能 ,因此对于一个已知序列但未知结构和功能的蛋白质,如果与它序列相似的某些蛋白质的结构和功能已知,则可以推测这个未知结构和功能的蛋白质的结构和功能。 结构相似?功能相似?
序列相似性 序列相似性的重要性 相似的序列往往起源于一个共同的祖先序列。它们很可能有相似的空间结构和生物学功能 ,因此对于一个已知序列但未知结构和功能的蛋白质,如果与它序列相似的某些蛋白质的结构和功能已知,则可以推测这个未知结构和功能的蛋白质的结构和功能。 结构相似?功能相似?
序列相似性 一致度与相似度 一致度:如果两个序列(蛋白质或DNA)长度相同,那么它们的一致度定义为他们对应位置上相同的残基(一个字母,氨基酸或碱基)的数目占总长度的百分数。 相似度:如果两个序列(蛋白质或DNA)长度相同,那么它们的相似度定义为他们对应位置上相似的 残基(一个字母,氨基酸 或碱基)的数目占总长度 的百分数。问题:哪个残 基与哪个残基算作相似? 答:残基两两相似的量化 关系被一个称为BLOSUM 的矩阵所定义。
序列相似性 一致度与相似度 一致度:如果两个序列(蛋白质或DNA)长度相同,那么它们的一致度定义为他们对应位置上相同的残基(一个字母,氨基酸或碱基)的数目占总长度的百分数。 相似度:如果两个序列(蛋白质或DNA)长度相同,那么它们的一致度定义为他们对应位置上相似的 残基(一个字母,氨基酸 或碱基)的数目占总长度 的百分数。问题:哪个残 基与哪个残基算作相似? 答:残基两两相似的量化 关系被一个称为BLOSUM 的矩阵所定义。 序列 1 : CLHK 序列 2 : CIHL 一致度 = 2/4 = 50% 相似度 = 3/4 = 75%
序列相似性 一致度与相似度 一致度:如果两个序列(蛋白质或DNA)长度相同,那么它们的一致度定义为他们对应位置上相同的残基(一个字母,氨基酸或碱基)的数目占总长度的百分数。 相似度:如果两个序列(蛋白质或DNA)长度相同,那么它们的一致度定义为他们对应位置上相似的 残基(一个字母,氨基酸 或碱基)的数目占总长度 的百分数。问题:哪个残 基与哪个残基算作相似? 答:残基两两相似的量化 关系被一个称为BLOSUM 的矩阵所定义。 如果像个序列的长度不同怎么计算一致度与相似度? seq 1 : CLHKA seq 2 : CIHL
序列两两比较 比较两个长度不同的序列的方法:打点法、序列比对法 打点法:最简单的比较两个序列的方法,理论上可以用纸和笔来完成。 Seq 1 T H E F A S T C A T T x x x H x E x F x A x x T x x x C x A x x T x x x Seq1: THEFASTCAT Seq2: THEFATCAT Seq 2 length(seq1) = 10 length(seq2) = 9 10 x 9 = 90 次比较
序列两两比较 打点法:对角线及对角线的平行线代表两条序列中相同的区域。 1. THEFA 2. TCAT 3. AT Seq 1 T H E F A S T C A T Tx x x Hx Ex Fx Axx T x xx Cx A x x T x x x Seq1: THEFASTCAT Seq2: THEFATCAT Seq 2
序列两两比较 打点法:可以用一条序列自己对自己做打点,从而可以发现序列中重复的片段。这样的点矩阵必然是对称的,并且有一条主对角线。在横向或纵向上,与主对角线重叠的小对角线所对应的序列片段就是重复的部分。 T H E F A S T H E Tx x Hx x Ex x F x A x S x Tx x Hx x Ex x Seq1: THEFASTHE