资源描述
分子进化分析与相关进化模式例子,分子进化分析介绍
系统发育树重建方法
相关进化模式例子,从物种的一些分子特性出发,从而了解物种之间的生物系统发生的关系。
蛋白和核酸序列
通过序列同源性的比较进而了解基因的进化以及生物系统发生的内在规律。,分子进化研究的目的,,系统发育树是什么?,对一组实际对象的世系关系的描述(如基因,物种等)。,一个系统发育树,,,,,,,末端,物种,顶端,,,,,中间节点,中间枝条,,,,,根,,,末端分支,叶子,节点,,,,,,,,,A,B,C,D,E†,F,G,,,树只代表分支的拓扑结构,,,,,,,,F,G,C,D,E†,A,B,,分子进化研究的基础(假设),核苷酸和氨基酸序列中含有生物进化历史的全部信息。,在各种不同的发育谱系及足够大的进化时间尺度中,许多序列的进化速率几乎是恒定不变的。(分子钟理论, 1965 ),分子进化研究的基础(理论),虽然很多时候仍然存在争议,但是分子进化确实能阐述一些生物系统发生的内在规律。,分子进化研究的基础(实际),,从一个分歧数据可以推测其他,,,序 列 分 歧 度,分歧时间,,x,,,分子钟理论,直系同源(orthologs): 同源的基因是由于共同的祖先基因进化而产生的.
旁系同源(paralogs): 同源的基因是由于基因复制产生的.
(以上定义源自Fitch, W.M. (1970) Distinguishing homologous from analogous proteins. Syst. Zool. 19, 99–113),直系同源与旁系同源,,,,paralogs,,,orthologs,,paralogs,,,,orthologs,Erik L.L. Sonnhammer Orthology,paralogy and proposed classification for paralog subtypes
TRENDS in Genetics Vol.18 No.12 December 2002
http://tig.trends.com 0168-9525/02/$ – see front matter © 2002 Elsevier Science Ltd. All rights reserved.,以上两个概念代表了两个不同的进化事件
用于分子进化分析中的序列必须是直系同源的,才能真实反映进化过程。,,趋同进化的基因
(genes have converged function by separate evolutionary paths),,异源基因或水平转移基因
(xenologous or horizontally transferred genes),,,,,,,Bacterium 1,Bacterium 3,Bacterium 2,Eukaryote 1,Eukaryote 4,Eukaryote 3,Eukaryote 2,,,,,,,Bacterium 1,Bacterium 3,Bacterium 2,Eukaryote 1,Eukaryote 4,Eukaryote 3,Eukaryote 2,Phylograms show branch order and branch lengths
进化树,有分支和支长信息,2.进化分支图,进化树,Cladograms show branching order - branch lengths are meaningless
进化分支图,只用分支信息,无支长信息。,Rooted
by outgroup,archaea,archaea,archaea,bacteria outgroup,,root,,eukaryote,eukaryote,eukaryote,eukaryote,无根树,archaea,archaea,archaea,Monophyletic group(单源群),Monophyletic
group,,,3.有根树,无根树,外围群,有根树,外围群,4.基因树,物种树,We often assume that gene trees give us species trees,a,b,c,A,B,D,Gene tree,Species tree,系统发育树重建分析步骤,多序列比对(自动比对,手工比对),建立取代模型(建树方法),建立进化树,进化树评估,系统发育树重建的基本方法,最大简约法(maximum parsimony,MP)
距离法(distance)
最大似然法(maximum likelihood,ML)
Bayes法,最大简约法(MP),最大简约法(maximum parsimony,MP)最早源于形态性状研究,现在已经推广到分子序列的进化分析中。最大简约法的理论基础是奥卡姆(Ockham)哲学原则,这个原则认为:解释一个过程的最好理论是所需假设数目最少的那一个。对所有可能的拓扑结构进行计算,并计算出所需替代数最小的那个拓扑结构,作为最优树。,序列个数与树的个数的关系,优点:
最大简约法不需要在处理核苷酸或者氨基酸替代的时候引入假设(替代模型)。
此外,最大简约法对于分析某些特殊的分子数据如插入、缺失等序列有用。,最大简约法(MP),缺点:
在分析的序列位点上没有回复突变或平行突变,且被检验的序列位点数很大的时候,最大简约法能够推导获得一个很好的进化树。
然而在分析序列上存在较多的回复突变或平行突变,而被检验的序列位点数又比较少的时候,最大简约法可能会给出一个不合理的或者错误的进化树推导结果。,最大简约法(MP),距离法,距离法又称距离矩阵法,首先通过各个物种之间的比较,根据一定的假设(进化距离模型)推导得出分类群之间的进化距离,构建一个进化距离矩阵。进化树的构建则是基于这个矩阵中的进化距离关系 。,计算序列的距离,建立距离矩阵,,通过距离矩阵建进化树,一种简单的距离矩阵,由进化距离构建进化树的方法有很多,常见有:
1.Fitch-Margoliash Method(FM法)
2. Neighbor-Joining Method (NJ法/邻接法)
3. Neighbors Relaton Method(邻居关系法)
4.Unweighted Pair Group Method (UPGMA法),通过矩阵建树的方法,最大似然法(ML),最大似然法(maximum likelihood,ML)最早应用于系统发育分析是在对基因频率数据的分析上,后来基于分子序列的分析中也已经引入了最大似然法的分析方法。,最大似然法分析中,选取一个特定的替代模型来分析给定的一组序列数据,使得获得的每一个拓扑结构的似然率都为最大值,然后再挑出其中似然率最大的拓扑结构作为最优树。在最大似然法的分析中,所考虑的参数并不是拓扑结构而是每个拓扑结构的枝长,并对似然率球最大值来估计枝长 。,最大似然法(ML),最大似然法的建树过程是个很费时的过程,因为在分析过程中有很大的计算量,每个步骤都要考虑内部节点的所有可能性。
最大似然法是一个比较成熟的参数估计的统计学方法,具有很好的统计学理论基础,在当样本量很大的时候,似然法可以获得参数统计的最小方差。只要使用了一个合理的、正确的替代模型,最大似然法可以推导出一个很好的进化树结果。,最大似然法(ML),碱基变化的通用模型,由于最大似然法的分析过程需要耗费较多的时间,针对这种情况,发展出了许多优化的可以加快最大似然法寻找最优树的搜索方法,如启发式搜索,分枝交换搜索等。最大似然法具有坚实的统计学理论基础,充分的使用了分析序列中的信息资源,只要采用了合理的替代模型,可以得出很好的进化树分析结果。,最大似然法(ML),选择外类群(Outgroup),选择一个或多个已知与分析序列关系较远的序列作为外类群
外类群可以辅助定位树根
外类群序列必须与剩余序列关系较近,但外类群序列与其他序列间的差异必须比其他序列之间的差异更显著。,bacteria outgroup,eukaryote,eukaryote,eukaryote,eukaryote,archaea,archaea,archaea,外围群,,进化树的可靠性分析,自展法(Bootstrap Method),从排列的多序列中随机有放回的抽取某一列,构成相同长度的新的排列序列
重复上面的过程,得到多组新的序列
对这些新的序列进行建树,再观察这些树与原始树是否有差异,以此评价建树的可靠性,原始排列
Alpha AACAAC
Beta AACCCC
Gamma ACCAAC
Delta CCACCA
Epsilon CCAAAC,Bootstrap1
Alpha ACAAAC
Beta ACCCCC
Gamma ACAAAC
Delta CACCCA
Epsilon CAAAAC
Bootstrap2
Alpha AAAACC
Beta AACCCC
Gamma CCAACC
Delta CCCCAA
Epsilon CCAACC
Bootstrap3
Alpha ACAAAC
Beta ACCCCC
Gamma CCAAAC
Delta CACCCA
Epsilon CAAAAC,,,分子进化模式,1、专性胞内菌Rickettsia核心基因进化机制
2、蓝藻二元信号转导中的环化酶进化机制
3、蓝藻限制性修复系统进化机制
4、苏云金芽孢杆菌杀虫蛋白进化机制
5、SARS进化机制,1、专性胞内菌Rickettsia核心基因进化机制,,,,,2、蓝藻二元信号转导中的环化酶进化机制,,,,,,,,,,,,3、蓝藻限制性修复系统进化机制,,,,,,,,4、苏云金芽孢杆菌杀虫蛋白进化机制,,,,,,5、SARS进化机制,,,,,,,,,,此部分供同学们自学,常见的分子进化分析程序,1.Phylip
由华盛顿大学遗传学系开发,是一个免费的系统发育分析软件包,可以通过以下地址下载。
http://evolution.genetics.washington.edu/phylip.html
2. PAUP*
最早是在苹果机上开发的具有菜单界面的进化分析软件,早先版本只有MP法,后续版本已经包括距离法和ML法,现今有mac,win,linux等多种版本,该软件不是免费软件,使用者需要向开发者购买。,Phylip软件包介绍,Phylip是一个免费的系统发生(phylogenetics)分析软件包。以下链接可以下载:
http://evolution.genetics,washington.edu/phylip.html
由华盛顿大学遗传学系开发,1980年首次公布,目前的版本是3.6(2000年6月)。,Phylip软件包介绍,Phylip包含了35个独立的程序,这些独立的程序都实现特定的功能,这些程序基本上包括了系统发生分析的所有方面。
Phylip有多种不同平台的版本(包括windows,Macintosh,DOS,Linux,Unix和OpenVMX)。,Phylip是目前最广泛使用的系统发生分析程序,主要包括一下几个程序组:分子序列组,距离矩阵组,基因频率组,离散字符组,进化树绘制组。,Phylip软件包介绍,分子序列组:
1.蛋白质序列:protpars,proml,promlk,
protdist
2.核酸序列:dnapenny,dnapars,
dnamove,dnaml,dnamlk,
dnainvar,dnadist,dnacomp,Phylip软件包分组介绍,距离矩阵组:
Fitch,kitsch,neighbor
基因频率组:
Gendist,contml
离散字符组
Pars,mix,move,penny,dollop,dolmove,dolpenny,clique,factor,Phylip软件包分组介绍,进化树绘制组:drawtree,drawgram
其他:restdist,restml,seqboot,contrast
treedist,consense,retree,Phylip软件包分组介绍,Phylip软件包的文档是非常详细的,对于每个独立的程序,都有一个独立的文档,详细的介绍了该程序的使用及其说明。
此外,Phylip软件包还包括程序的源代码(c语言)。,Phylip软件包的文档,Phylip软件包的应用,1,根据你的分析数据,选择适当的程序
如,你分析的是DNA数据,就在核酸序列分析类中选择程序(dnapenny,dnapars, dnamove,dnaml,dnamlk, dnainvar,dnadist,dnacomp )如果分析的是离散数据,如突变位点数据,就在离散字符组里面选择程序。,2.选择适当的分析方法
如你分析的是DNA数据,可以选择简约法(DNAPARS),似然法(DNAML, DNAMLK),距离法等(DNADIST)。。。,Phylip软件包的应用,3.进行分析
选择好程序后,执行,读入分析数据,选择适当的参数,进行分析,结果自动保存为outfile,outtree。,Phylip软件包的应用,Outfile是一个记录文件,记录了分析的过程和结果,可以直接用文本编辑器(如写字板)打开。
outtree是分析结果的树文件,可以用phylip提供的绘树程序打开查看,也可以用其他的程序来打开,如treeview,Phylip软件包的应用,出发数据-已经排列好的蛋白序列。
重构算法-距离法(protdist.exe)
最大简约法(protpars.exe)
最大似然法(proml.exe)
统计分析-拨靴法(bootstrap),实际应用(从蛋白序列推导进化树),实际操作,Phylip软件包中的每个分析程序都是一个独立的应用程序。我们选择好了分析算法后,按一定的顺序组合使用选择的程序,就可以获得按选择的算法分析的结果(进化树)。
例子:从我们刚刚通过clustal比对获得的蛋白序 列推测进化树。
选择方法:距离法(protdist.exe),,第一步:双击执行protdist.exe,根据提示输入分析的
文件名(程序默认是infile)。,第二步:设定各个参数,执行程序,获得距
离矩阵数据输出文件outfile。
第三步:选择通过距离矩阵推测进化树的算法(fitch.exe,kotsch.exe,neighbor.exe)。
第四步:将刚获得的输出文件改名为infile,执行选择的推测算法(neighbor.exe)。设置好参数后执行程序,获得outfile和outtree两个结果输出。,获得的结果文件中,outtree文件是一个树文件,可以用treeview等软件打开。outfile是一个分析结果的输出报告,包括了树和其他一些分析报告,可以用记事本直接打开。,outfile,outtree,加入统计分析(bootstrap),我们刚刚获得的进化树是纯粹的根据先前获得的排列数据所推导出来的。有很多可能使得这个树并不一定可靠。
1.测序的出错。
2.多序列比对算法本身的问题。
3.其他的问题。
我们可以引进一些统计分析来寻找更优的进化树
最常见的就是bootstrap分析。,Bootstrap分析,Phylip软件包中有两个用于执行bootstrap分析的程序。(seqboot.exe,consence.exe)。
分析过程:
1.Seqboot产生大量的数据组
2.应用选择的算法对产生的数据组进行分析。
3.由consence获得最优树。,PAUP*的使用,PAUP*的数据格式(Nexus),#NEXUS
begin taxa;
dimensions ntax=12;
taxlabels
Lemur_catta
…
Tarsius_syrichta;
end;
begin characters;
dimensions nchar=898;
format missing=? gap=- matchchar=. interleave datatype=dna;
options gapmode=missing;
matrix
Lemur_catta AAGCTTCATAGGAGCAACCATTCTAATAATCGCACATGGCCTTACATCATCCATATTATT
Homo_sapiens AAGCTTCACCGGCGCAGTCATTCTCATAATCGCCCACGGGCTTACATCCTCATTACTATT
Pan AAGCTTCACCGGCGCAATTATCCTCATAATCGCCCACGGACTTACATCCTCATTATTATT
Gorilla AAGCTTCACCGGCGCAGTTGTTCTTATAATTGCCCACGGACTTACATCATCATTATTATT
Pongo AAGCTTCACCGGCGCAACCACCCTCATGATTGCCCATGGACTCACATCCTCCCTACTGTT
Hylobates AAGCTTTACAGGTGCAACCGTCCTCATAATCGCCCACGGACTAACCTCTTCCCTGCTATT,begin assumptions;
charset coding = 2-457 660-896;
charset noncoding = 1 458-659 897-898;
charset 1stpos = 2-457\3 660-896\3;
charset 2ndpos = 3-457\3 661-896\3;
charset 3rdpos = 4-457\3 662-.\3;
exset coding = noncoding;
exset noncoding = coding;
usertype 2_1 = 4 [weights transversions 2 times transitions]
a c g t
[a] . 2 1 2
[c] 2 . 2 1
[g] 1 2 . 2
[t] 2 1 2 .
;
usertype 3_1 = 4 [weights transversions 3 times transitions]
a c g t
[a] . 3 1 3
[c] 3 . 3 1
[g] 1 3 . 3
[t] 3 1 3 .
;
taxset hominoids = Homo_sapiens Pan Gorilla Pongo Hylobates;
end;
begin paup;
constraints ch = ((Homo_sapiens,Pan));
constraints chg = ((Homo_sapiens,Pan,Gorilla));
end;,PAUP*的数据格式(Nexus)
主要包括taxa,characters,assumptions,sets,trees,codons,distances,paup八个数据块。
对于一个常规的分析,taxa,characters块是必须的。而分析的命令可以通过菜单操作(mac),或者键盘命令(win,linux),也可以在nexus文件中加入paup命令块,1.TAXA块
主要是定义所分析的数据(如分子序列)个数,以及这些数据的名称(如物种名称)。
2. CHARACTERS 块
主要是定义数据矩阵(如多序列比对结果)和其他一些相关的信息(如序列特征值,序列有效区域等),PAUP*的Nexus的文件块,3. ASSUMPTIONS块
定义了对数据的一些设定,如那些特征值是不需考虑的,怎么处理gap这个特征值等,用户自定义的一些数据也放在这块,如自定义的打分矩阵。
4. SETS块
定义了一系列的数据组,如特征值组,物种组等,这些设置都是为了方便后续的分析。,5. TREES 块
定义了用户自己设定的树。用于后续的分析,如作为限制树等。
6. CODONS 块
定义了遗传密码子的一些信息。如编码的位置(哪些是编码的,密码子的位点等)。
7. DISTANCES 块
定义了一些距离矩阵。,8. PAUP 块
是软件的核心块,所有的分析命令和一些参数设置(90多个命令)都放在这一块。
这一块并不是分析输入数据所必须的,这些命令可以写在这一块(文件中),这时载入文件时就开始根据该块的命令进行分析(有点类似dos的批处理过程)。当然也可以通过键盘命令逐一敲入 ,交互进行分析。
批处理的方式在分析过程比较长,耗时比较久的时候是比较有用的。当然在进行处理之前一定要先保证该批处理过程没有问题。,一个PAUP*的基本分析实例,1.通过clustalw/clustalx获取一个多序列比对结果(可能要经过人工调整,推荐用bioedit做辅助编辑器)。保存成nexus格式的文件,或者用其他格式转换软件转换成nexus格式。paup*中也有一个tonexus命令可以将其他格式(包括phylip,GCG等格式)的文件转换为nexus格式的文件。,2.在PAUP*程序中读入数据(Nexus格式),输入命令的地方,打开文件的窗口,程序自带的测试数据,执行该文件还是编辑该文件?
执行文件时将文件数据读入程序,编辑文件则调用一个文本编辑器。如果不是nexus格式,执行时候会出错,然后调用文本编辑器打开。,3.数据输入完成,开始分析…
两个很有用的命令
?:显示所有的命令
命令 ?:显示命令的所有参数,分析…(开始一),1.开始之前
打开记录文件?(跟踪整个分析过程)
命令:log start file =your_log_file_name;
停止:log stop;,2.设置数据
哪些用于分析?
如:include coding/only;
exclude coding/only;
哪些物种要分析(删除不要的)?
如: delete 1; 或者 delete taxa_name…
undelete 1;
……,分析…(开始二),3.确定建树方法
最大简约法?最大似然法? 距离法?
命令:Set criterion=parsimony|likelihood|distance;,分析…(建树一),4.确定其他参数
Set ?查看其他参数的设置,改为自己所需要的设置。
如:set maxtree=10000 increase=no autoclose=yes;,分析… (建树二),5.确定搜索方法(对于距离法不适用)
穷尽法:alltrees
分支跳跃查找:bandb
启发式搜索:hsearch
其他:puzzle(只在likelihood时有效)…,分析… (建树三),6.开始搜索树之前(设置各个建树方法的参数)
距离法:dset
如:dset distance=tamnei negbrlen=allow
最大简约法:pset
如 pset collapse=no gapmode=newstate
最大似然法:lset
如:lset nst=6 clock=yes,分析… (建树四),7.再次确认参数
是否要设置外围群(outgroup)?
如 outgroup 1,2 ;或者 outgroup taxa_set;
其他参数?,分析… (建树五),7.开始搜索树
距离法:NJ,UPGMA
最大简约法,最大似然法
Hsearch ?参数是否要更改?
如:hsearch andseq=random swap=spr,分析… (建树六),8.进化树的评估
选择评估方法?
Bootstrap(自展法)
用的最多,是对进化树重新取样的评估方法,可以对距离法,简约法,似然法以及衍生出的任何其他方法构建的进化树进行评估。其分析结果是一组数字,这个数字描述了进化树进化分支的支持比例,也就是进化树分支的稳健性。,分析…(树评估一),分析… (树评估二),未经过bootstrap的树,Bootstrap后的树,BOOTSTRAP [options][/heuristic-search-options|branch-and-bound-search-options];
使用分支限制或者是启发式搜索的方法进行bootstrap分析。
参数:
• BSEED = integer-value 随机数种子。
• NREPS = integer-value bootstrap重复的次数,默认值为100。
• SEARCH = HEURISTIC|BANDB|FASTSTEP|NJ|UPGMA 搜索方式
• CONLEVEL = integer-value bootstrap重复次数的最低比率,默认为50。
• KEEPALL = YES|NO
• WTS = IGNORE|SIMPLE|REPEATCNT|PROPORTIONAL
• NCHAR = CURRENT|number-of-characters 每次重复采样的数目。
• GRPFREQ = YES|NO 显示bootstrap分割频率
• TREEFILE = bootstrap-tree-file-name 树的文件
• FORMAT= NEXUS|ALTNEXUS|FREQPARS|PHYLIP|HENNIG
• BRLENS = YES|NO 分支的长度
• *REPLACE = YES|NO
• CUTOFFPCT = integer-value 定义显示的最低bootstrap分割频率。
Example
bootstrap nreps=200 treefile=boot.tre search=heuristic/addseq=random;,分析… (树评估三),PAUP*中的bootstrap命令,对折分析(jackknife)
跟bootstrap类似,只是在对原始数据取样的时候不会取重复的数据位点。因为它重复取样的时候是在原始数据中除去一个或者多个比对位点。
对折分析得出的结果和bootstrap是一样的。
命令和参数都类似,用的比bootstrap少很多。,分析… (树评估四),JACKKNIFE [options][/heuristic-search-options|branchand-bound-search-options]; 对折分析
• PCTDELETE = real-value 每个对折分析循环中删除的data set百分数
• JSEED = integer-value 随机数种子
• NREPS = integer-value 对折循环次数
• SEARCH = HEURISTIC|BANDB|FASTSTEP|NJ|UPGMA 树的搜索方法(NJ和UPGMA仅在最优规
则为distance时才可用)
• RESAMPLE = NORMAL|JAC
• CONLEVEL = integer-value boostrap中出现的最小比例(最为保留group),默认为50,即50%
• KEEPALL = YES|NO 低于conlevel的树,若与一致树兼容,也保留
• WTS = IGNORE|SIMPLE|REPEATCNT|PROPORTIONAL
• GRPFREQ = YES|NO 显示对折分区频率
• TREEFILE = tree-file-name
• FORMAT = NEXUS|ALTNEXUS|FREQPARS|PHYLIP|HENNIG
• *REPLACE = YES|NO
• CUTOFFPCT = integer-value 对折频率表中显示的最小频率。
Example
JACKKNIFE nreps=200 treefile=tree.tre search=heuristic/addseq=random,分析… (树评估五),PAUP*中的jackknife命令,KHtest和SHtest
用来测试一个特定的次优化的ml或者mp拓扑结构同最优化的拓扑结构相比是否显著不同(通常用来做Hypothesis test)。
PAUP*中这两个测试是作为pscores和lscores的一个参数,默认关闭,需要进行这两个测试的时候,要打开该参数。
Pscore中有KHtest,不支持SHtest
Lscore中有KHtest和SHtest,分析… (树评估六),如:
Pscores all/khtest=normal;
Lscores all/khtest= normal shtest=rell;
测试得出的结果是返回一个显著性差异系数(P值)。,分析… (树评估七),其他测试
随机测试:permute
不一致的长度差异测试: hompart
…,分析… (树评估八),分析结束之前,1.保存分析结果
Savetrees
根据要求将内存中的树保存到文件
如:savetrees file=tree.tre brlens=yes savebootp=both from=1 to=2;
2.停止记录文件
Log stop;,退出,3.如果要进行下一项分析,想让原来改过的参数全部变回默认设置
命令:factory 所有参数恢复默认设置
4.确定要退出后
命令 :quit,一些有用的命令,1.Treeinfo
查看内存中树的情况(多少个?有根还是无根?…)。
2.clear
清除内存中所有的树。
3.showtree
查看内存中的树(默认显示第一个树,可以加入参数)
如:showtree all;showtree 2,3;
4.gettrees
从树文件中读取树到内存中,5.dscores,pscores,lscores
计算树的距离,简约性,相似性分值。
6.ingroup/outgroup
取消和设定外围群
7.Contree
根据一定的规则求解一致树
8.Deroottrees
将有根树转换为无根树
9.Roottrees
根据当前设定的outgroup将无根树转换为有根树,10.Filter
根据设定的规则筛选树。
11.详细的命令请参考paup*软件的command reference。,Paup块的一个例子,begin paup;
Log star file=log.txt;
set criterion=likelihood autoclose=yes maxtrees=10000 increase=no;
lset nst=6 rmatrix=estimate basefreq=estimate pinv=estimate rates=gamma shape=estimate;
hsearch addseq=random nreps=100;
bootstrap nreps=1000 search=heuristic brlens=yes;
savetrees file=tree.tre savebootp=both from=1 to=1;
log stop;
quit;
end;,
展开阅读全文
相关搜索