2. 使用DAMBE软件进行转换成PML格式。 打开要换换的文件,然后“file” “save and convert sequence format”,在保存类型中选择“Yang’s PAML”。那么此时的序列名为“cox1.PML”, 这样就可以得到文件“*.PML”,然后就直接把后缀改成“*.nuc”。那么此时的序列名为“cox1.nuc” 这样就完成了文件格式的转换。
Runmode = 1 or 2 表明通过星状-分解算法来进行启发式搜索树。Runmode = 2 这种算法是从星状树开始搜索,而runmode =1 则表明软件读取多歧树是从树的结构文件中,并且同过比较去估计最佳二歧树。 runmode = 3 表明是逐步增加的。runmode = 4 通过简约法来搜索具有NNI perturbation的起始树。runmode = 5 表明从树的结构文件中来读取NNI perturbation with 起始树。
clock 用于指定谱系之间速率恒定或变化的模型。Clock = 0,意味着整棵树中,不同分支之间不存在clock现象;Clock = 1,意味着global clock,所有的分支具有相同的进化速率;clock = 2 意味着local clock,所有分支之间的进化速率被分成几个部分;clock = 3意味着多个基因或多重分隔数据,允许分支的进化速率以不同的方式变化。;;
CodonFreq 用于平衡密码子替换模型中的密码子使用频率。Codonfreq = 0 说明每种密码子的使用频率是相同的;codonfreq = 1 说明是从平均核苷酸频率中计算出来的;codonfreq = 2说明是从三个密码子位置的平均核苷酸频率得来的;codonfreq = 3则使用了三个参数。Codonfreq = 0,1,2和3 所代表的模型中使用的参数的数目分别为:0,3,9,60。
NSsites 主要是用于指定模型允许dn/ds(w)在不同的位点之间变化。NSsites = m 表明对应于 model = m。变化的 ncatG被用来指定在一些特定的模型下的w分布的类型的数目。NcatG的值被用于执行一下分析:paper are 3 for M3 (discrete), 5 for M4 (freq), 10 for the continuous distributions (M5 gamma, M6: 2gamma, M7: beta, M8:beta&w, M9:beta&gamma, M10: beta&gamma+1, M11:beta&normal>1, and M12:0&2normal>1, M13:3normal>0). This means M8 will have 11 site classes (10 from the beta distribution plus 1 additional class) 。通过NSsites可以同时执行多个模型,例如:NSsites = 0 1 2 3 7 8,的意思就是同时执行M0,M1,M2a,M3,M7,和M8。作者建议:使用M1a和M2a来重建LRT,使用M7和M8来重建LRT,使用M2a和 M8来鉴别受到正选择的位点。
RateAncestor = 1 表明你想重建原始序列,如果 RateAncestor = 0 说明你将避免这个计算。不过使用效果并不明显,还需要进一步研究如何使用。 PAML使用中最重要的就是模型的选择: PAML中所有的模型都在baseml和codeml这两个程序中使用。这两个程序是最大似然程序,它们使用数值优化算法来最大化对数似然值。这些模型最 大的用途就是适用likelihood ratio test(似然比率检验)来检测有趣的生物学假设。这些模型是在Baseml中使用的,软件中常用的数学模型有:JC69(Jukes and Cantor 1969),K80(Kimura 1980),F81(Felsenstein 1981),F84(Felsenstein 1984),HKY85(Hasegawa 1984,1985),Tamura(1992),Tamura and Nei(1993),and REV,also know as GTR for general-time-reversible(Yang 1994)。 模型的一般遵循以下假设: 1. 在不同的谱系中替换是独立发生的。 2. 在不同的位点中替换也是独立发生的。 3. 替换的过程我们通过时间均匀马尔科夫过程(time-homogeneous Markov process)。
1. Maximum likelihood estimates(MLEs):观测到的数据X的概率(probability),当做为一个未知参数θ的函数的时候,就叫做似然函数 (likelihood function):L (θ:∣X) = f(θ∣X)。根据似然规则(likelihood principle),似然函数包括数据中关于参数θ所有的信息。参数θ的最佳点估计(optimal point estimate)可以通过最大化似然L的θ值或l(θ;X)的似然对数进行估计。并且,似然曲线可以为未确定的点估计提供信息。
2. Likelihood ratio tests (LRTs):假设一个简单模型或无效模型(simpler or null model)有一个参数 p0,更通用的模型或可选择的模型(general or alternative model)有一个参数p1,两个模型的最佳似然值分别为l0和l1。那么对数似然值差异(log likelihood difference)的两倍是:2△l = 2(l1 - l0),如果无效模型(null model)成立的话,那么对数似然值差异的二倍将与自由度是d.f. = p1- p0的卡方分布具有渐进关系(asymptotically)。因此,对数似然值差异的二倍的检验统计可以通过比较卡方分布来检验无效模型(null model)是否拒绝备择模型(alternative model)。 所谓Likelihood ratio test(似然比率检测)是用来检验两个模型的。
2. 作者认为M3对于正选择的LRT检测并不是十分适合,并不推荐适用M3模型。 使用似然比率检测可以验证正选择(Testing positive selection using the likelihood ratio test)。作者推荐使用二到三种LRT来验证正选择。第一个检测是比较M1a和M2a,
PAML的一个重要功能就是检测基因是否受到正选择, 即适应性选择。但是现在用于估计适应性选择的方法,忽略了氨基酸的化学性质,这样得出的结果是不准确的,作者表示,直接通过dn和ds的比较来确定受到什 么样的选择压力,是不准确的。 PAML中的无效模型(null model)是指不允许任何位点的ω值大于1,如果null model成立,则w小于1,基因受到负选择;如果null model不成立,则w大于1,基因受到正选择。研究表明,通过比较两个点模型,而得到的结果尤其可靠。 Ancestral reconstruction 为探索数据提供了一个直观的方法,他被用于大量的数据分析,例如,评估不同谱系中的选择压力。但是由于这种方法的简单和直观,会产生很多错误。大多数重建 原始序列的工作都忽略了这样一个事实,即使用假数据(pseudo-data)代替真实观察到的数据(real observed data),并且仅仅使用处于最佳状态(optimal character states)的一些特征,而忽略未处于最佳状态(suboptimal states)的一些特征,从而产生一些系统上的偏差(systematic biases)。如果数据中的ds区域饱和的话,那么会导致我们低估ds,从而使dn/ds的值偏高,即 ω的值偏高。进化距离估计中有关序列间隔的处理进化距离估计中,排列时的间隔导致了某些复杂的问题。同时,由于实验上的原因,也可能出现丧失信息的位点。 在距离估计中,一般忽略这些位点,可用两种不同的方法来进行处理。一种方法是从数据分析中删除这些位点,称为完全删除(complete deletion)。一般来说,这种方法较好,因为DNA或氨基酸序列的不同区段往往具有不同的演变规律。然而在所研究的序列中,间隔不大或者是随机分布 的,则可计算每个配对序列间的距离,并只忽略两个配对序列间的那些间隔。这种方法称为成对删除(pairwise deletion)。这个过程在PAML中可以通过cleandata = 0 或1。使用PAML进行数据分析的时候,所选用的序列越多,则得到的结果越可靠。一般应该大于17条序列,此外影响LRT检验结果好坏的因素还有:序列长 度(sequence length)、序列分异度(sequence divergence)和正选择的强度(the strength of positive selection )(Anisimova, Bielawski et al. 2001; Opazo, Palma et al. 2005)。 还有使用PAML进行序列分析的时候必须检验序列是否发生过重排,可以使用的软件由PLATO 2.0,HYPHY等软件(Pond, Frost et al. 2005; Kosakovsky Pond, Posada et al. 2006; Petersen, Bollback et al. 2007)。如果是检测序列受到的选择压力的话,那么序列大于50codons即可,但是这些序列对于系统进化分析可能得到的结果不可靠(Pie 2006)。 物种的基因只有在受到正选择作用才能不断的适应环境的变化,所以正选择在物种进化中起到了非常重要的作用(Vallender and Lahn 2004)。
PAML软件中的序列处理: 1. 如果序列之间的分异度比较明显的话,那么需要4-5条序列;如果有10条序列的话,效果会比较好;如果序列数大于20,那么得到的结果就会比较可靠。当然 这也和序列之间的分异度有比较密切的联系。 2. 最佳序列分异取决于序列的数目,如果树比较大的话,则可以容忍更多的变异。一般情况下,如果总共的ds的距离大于0.5,那么就认为这种方法是合理的。 3. 一般情况下,软件可以鉴别出一到两个位点受到较强的选择压力,但是有可能一些位点受到了选择压力,但比较弱,这是LRT方法会告诉你,这个位点存在选择压 力,但是对于鉴别出,比较麻烦。 4. 一般情况下,使用简单模型和复杂模型得出的结果应该是一致的。所以,M0作为比较简单的模型,使用它得出的枝长、K以及w值应该和其他复杂模型得出的结果 是一致的。 5. 如果比对的序列是高度相似或高度分异的话,我们应该执行程序两遍。 6. 如果使用NSsites执行多个模型,ncatG的参数也需要重新设置。 7. 在计算过程中,序列的饱和性并不是一个主要的问题,一般较高的序列分异会带来更多的问题,不同的序列之中会具有不同的密码子使用偏好性和核苷酸组成。 8. 计算出来的w值是不能为负值的。 9. 现在已经找到,lnL的值在rst文件中,但是每个位点的w值,在什么地方呢?即使找到了相关的参数,那么接下来再如何分析呢? 10. 在进行序列分析的时候,要把编码序列末端的终止密码子去掉,以防止出现误差。
PAML中用到的进化树的格式: A tree structure file is used when runmode = 0 or 1. The file name is specified in the appropriate control file. The tree topology is typically specified using the parenthesis notation (括号标序法), although it is possible to use a branch representation, as described below. Parenthesis notation. The first is the familiar parenthesis representation, used in most phylogenetic software. The species can be represented using either their names or their indexes corresponding to the order of their occurrences in the sequence data file. If species names are used, they have to match exactly those in the sequence data file (including spaces or strange characters). Branch lengths are allowed. The following is a possible tree structure file for a data set of four species (human, chimpanzee, gorilla, and orangutan, occurring in this order in data file). The first tree is a star tree, while the next four trees are the same. If the tree has branch lengths, baseml and codeml allow you to use the branch lengths in the tree as starting values for maximum likelihood iteration. Whether you should use rooted or unrooted trees depends on the model, for example, on whether a molecular clock is assumed. Without the clock (clock = 0), unrooted trees should be used, such as ((1,2),3,4) or (1,2,(3,4)). With the clock or local-clock models, the trees should be rooted and these two trees are different and both are different from (((1,2),3),4). In PAML, a rooted tree has a bifurcation at the root, while an unrooted tree has a trifurcation or multifurcation at the root. Tree files produced by PAUP and MacClade. PAML programs have only limited compatibility with the tree file generated by PAUP or MacClade. First the “[& U]” notation for specifying an unrooted tree is ignored. For the tree to be accepted as an unrooted tree by PAML, you have to manually modify the tree file so that there is a trifurcation at the root, for example, by changing “(((1,2),3),4)” into ”((1,2),3,4)”. Second, the “Translate” keyword is ignored by PAML as well, and it is assumed that the ordering of the sequences in the tree file is exactly the same as the ordering of the sequences in the sequence data file. Branch or node labels. Some models implemented in baseml and codeml allow several groups of branched on the tree, which are assigned different parameters of interest. For example, in the local clock models (clock = 2 or 3) in baseml or codeml, you can have, say, 3 branch rate groups, with low, medium, and high rates respectively. Also the branch-specific codon models (model = 2 or 3 for codonml) allow different branch groups to have different ωs, leading to so called “two-ratios” and “three-ratios” models. All those models require branches or nodes in the tree to be labeled. Branch labels are specified in the same way as branch lengths except that the symbol “#” is used rather than “:”. The branch labels are consecutive integers starting from 0, which is the default and does not have to be specified.
评论