PAML: 最大似然法分析系统发育
Phylogenetic Analysis by Maximum Likelyhood
版本:4.3(2009年9月)
Ziheng Yang
马向辉翻译
1、概述
PAML (for Phylogenetic Analysis by Maximum Likelihood) 是一个用最大似然法分析蛋白质或DNA序列系统发育的一个程序包。
1.1 PAML 文件:
除了这个手册以外,以下资源也需要注意:网站程序下载
PAML网站:ucl.ac.uk/software/PAML.html。在这个网站上有PAML的下
载以及编译程序;
PAML FAQ页面:ucl.ac.uk/software/pamlFAQs.pdf;
PAML讨论:/phpBB2/,在这里你可以提出你的问题,或者提出你发现的漏洞。
1.2 PAML 可以做些什么?
PAML 的最新版本包含一下几个程序模块:baseml, basemlg, codeml, evolver, pamp, yn00, mcmctree, 以及 chi2。其中最常用的模块的介绍可以参考杨子恒教授2007年发表的文章。模块运行中用到的计算、统计方法在杨子恒教授的书中有详细的介绍。模块的主要作用包括:计算以及检测系统发育树(baseml 和 codeml); 计算复杂的碱基替代或者氨基酸替代模型中的参数,如不同位点间不同速率的模型或多个基因或者位点的综合分析模型(baseml和codeml); 用似然比例检测比较几个模型(baseml,codeml以及chi2); 用全局分子钟或者局部分子钟估算分歧时间(baseml和codeml); 用最大似然法重建祖先氨基酸、核苷酸序列以及密码子模型(baseml和codeml); 用蒙特卡洛模拟生成氨基酸、密码
子或者核酸序列(evolver); 估算同义替代、非同义替代的速率,检测DNA的蛋白编码区的正选择(yn00和codeml); 综合贝叶斯法以及化石校正估算物种分歧时间(mcmctree)。
PAML的优势在于它整合了各种复杂的替代模型。在baseml和codeml中建树的算法相对简单,所以较少的物种(如<10个)可以用这两个软件分析,对于大量物种的建树分析,最好还是用其他的程序去分析树结构,例如phylip、paup或者myBayes。当然,你可以用其他的软件构树,然后作为用户树用baseml或codeml验证。
baseml 和 codeml:baseml程序用于最大似然法分析核苷酸序列; codeml程序则是由两个旧程序组合而成:codonml和aaml。其中前者是基于Goldman和Yang在1994年提出的编码蛋白质的核酸序列的密码子替代模型,而后者主要用于氨基酸序列的替代模型。现在,这两种序列可以在l中通过seqtype定义,其中1表示密码子序列,2表示氨基酸序列。在这个手册里面,我将使用codonml和aaml来分别表示codeml中的seqtype=1和seqtype=2。这三个程序(baseml,codonml和aaml用相同的最大似然算法对于模型进行拟合,而三者之间主要的不同点在于,三个程序中对于序列进化的马尔科夫模型中“位点”的
定义:在baseml中一个位点表示一个核苷酸,在codonml中一个位点表示一个密码子,aaml中一个位点表示一个氨基酸。马尔科夫过程模型常常用于描述核苷酸、氨基酸序列之间或者密码子之间的替代。对于不同的位点,这种替代既可以是恒定的,也可以是可变的。
evolver:这个程序可以在特定的核苷酸、氨基酸、密码子替代模型下模拟序列的产生。它还可以用于其他的一些操作,如产生随机树、计算树间的距离。
basemlg:这个程序主要用于执行Yang 在1993年提出的gamma模型的运算。在计算6或7个物种以上的数据时,这段程序运算非常的慢,而且较难执行。而baseml程序中的不连续的gamma模型则可以弥补这一不足。
mcmctree:这个程序用于计算物种的分歧时间,使用的模型是Yang 和 Rannala在2006和2007年提出的。
pamp:这个程序用于执行Yang和Kumar在1996年提出的简约分析。
yn00:这段程序用于计算蛋白质编码的DNA的同义突变和非同义突变的速率,运算主要基
于2000年Yang和Nielsen提出的方法。
chi2:用于似然比例运算。它可以计算chi平方的临界值,这个值可以用于比较统计值和真实值之间的差异,据此可以检测在显著性水平为5%或者1%时的差异是否显著。运行这个程序可以直接输入“chi2”并回车。另外,这个程序还可以计算p值。这时候需要输入“chi2 p”并回车。
1.3 PAML 不能做什么?
你可能希望一个系统发育软件可以做很多事情,但是其中有许多是PAML不能完成的。下面是一个不完全的列举,希望你不要因此而浪费时间。
1)序列排列:你可以用一些程序自动的排列核苷酸或氨基酸序列(如Clustal或TreeAlign),也可以在其他一些软件(如BioEdit和GeneDoc)的帮助下手动排列序列。自动排列序列还远没有达到成熟的地步,所以手动调整是必须的。如果你要进行数千个基因组水平的排列,你必须进行排列质量的控制,例如计算序列间的距离,并一次作为序列排列是否可靠的标准。对于编码序列,可以首先对蛋白序列进行排列,然后根据蛋白序列排
列核苷酸序列。需要注意的是,在baseml和codeml中序列排列时产生的gap会被识别为缺省数据(如果cleandata=1)。如果cleandata设置为1,那么所有的不明确的数据以及gap数据都会被删除。
2)基因预测:程序codonml只能用于编码序列的分析,所以codonml在运行事是假设序列是预先排列好的外显子,并且序列长度为3的倍数,序列中的第一个核苷酸会被识别为密码子位置1。内含子、居间序列以及其他非编码区域必须事先删除,编码序列也必须事先排列完毕。程序也不能处理那些直接从GeneBank里面下载的数据,就算CDS信息已经确定也不行。这段程序不能用于编码区的预测。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论