2024年4月30日发(作者:)

使用贝叶斯方法构建系统发育树—MrBayes

mrBayes需要的比对文件格式为:nex,可以在比对是选择输出此种文件格式mtBayes

可以在命令提示符里面运行在CMD里面输入mrBayes,出现如下界面

在界面内输入 exe file(或者execute file,其中file为序列文件名),得到如下界面

如果没有错误,则说明数据文件格式是正确的。设置替换模型参数

可以使用help lset查看lset设置的参数Nucmodel: 指的是核酸的类型。4by4指的

是不区分序列上的位点。而codon指的是使用密码子模型。这时序列上每个位点的替换速

率会根据密码子模型来推断。Doublet通常用于具有协同进化效应的序列。一般情况下可

以使用4by4,如果是编码序列的话,最好使用codon Nst:核酸替换模型。1 是JC69

模型,即单参数模型。2为F81模型。6为GTR模型。在mrBayes中,可以尝试分别使

用三个模型运行,以选择最优的结果。Code: 指的是密码子编码的规律。Universal指的

是通用密码子使用规律。如果是推测线粒体内的基因,需要使用Metmt,叶绿体则需要使

用Mycoplasma Ploidy: 物种是单倍体还是二倍体。Rates:指定序列上每个位点的替换

速率。Equal表示替换速率都是一致的。Gamma表示用gamma来确定序列上的替换速

率。Ngammacat:配合上面的参数,如果替换速率设置为Gamma、Invgamma、

Adgamma,则需要设置此选项。Nbetacat:同上。使用lset Nst=6 Rate=gamma类似

命令设置参数。

设置模型的相关先验信息使用help prset查看相关参数及其说明

一般情况下,需要关注的参数有:Tratiopr:指定转换和颠换的比例。可以使用fixed

指定,也可以使用beta分布来模拟产生。Revmatpr:指定GTR模型里面替换速率的先

验分布。Aamodelpr:指定氨基酸替换模型中参数的先验分布。Statefreqpr:指定GTR

模型中核苷酸平衡频率的先验概率。Shapepr:设置速率分布的尺度参数。设置抽样信息

使用help mcmc查看相关参数

需要关注的参数有Ngen:指的是总抽样次数。Nruns: 指定独立分析的次数。如果为

2,表明程序从两个独立的树形开始抽样,分析完成后综合两个分析结果。Nchain:设置

每次分析时运行的chain的数量。Samplefreq:指定从总的样本数中抽样的频率。这个一

般和Ngen配合使用,以保证最后用以分析的样本量足够。比如:Samplefreq设置为100,

000,Nruns设置为1000,这样100,000个随机样本中,每个1000个抽出一个样本,最

后一共可以得到1000个样本。Burninfrac:该参数控制用以分析的样本的数量。在MCMC

抽样初期的数据往往是不可靠的,需要去掉。Burninfrac控制去掉的比例。如为0.25,则

表示样本的前25%的数据被去掉。因此最后用来分析的总的样本数就是1000*(1-0.25)

=750 使用 MCMCp Ngen=10000,Samplefreq=10类似命令来设置相关参数。 设置

完成后输入MCMC并回车,程序开始运行。

最后一列的时间表示程序运行完成需要的时间。当程序运行结束时提示是否需要继续

分析。这指的是如果抽样没有达到平稳,我可以继续增加抽样的次数。判断是否达到平稳

的依据是

这一行提示的方差足够小。一般小于0.01就可以认为达到平衡了。

上图显示,方差变异<<0.01,可以认为分析达到平稳。因此不需要进行更多的抽

样分析,输入no,并回车。在屏幕输出结果中找到 chain swap information。

如果chain swap information显示的四条链之间的交换频率在0.1-0.8之间,可以认

为结果是合理的,可以进行下一步分析。否则需要重新设置参数:包括足够长的Ngen,

适当降低Temp等。如果结果合理,输入Sump burnin=250 (250是根据前面设置的

burnin=0.25,samplefreq=10,Ngen=10000算出来的)在屏幕的输出结果中主要关

如果1,2数字在屏幕中没有明显的上升趋势,说明数据分析合理。如果输出是这样

说明数据没有达到平稳。应该重新分析。需要增加Ngen。如果抽样达到平稳,我们

就可以用MCMC分析的结果。在屏幕输出中有下面的结果

这个是所使用的替换模型中各个参数的估计值。使用sumt burnin=250查看树形

节点上的数据表示树形的可靠性。越高越好。相关的树形文件和参数被保存在后缀名

为.con的文件中,可以通过treeview等软件查看。mrBayes的高级功能。 1)在序列文

件中设置相关参数 如果我们不想在屏幕中输入参数,而是输入序列文件后让程序自动运行

的话,可以把相关参数设置在序列文件中。格式如下:因为sump和sumt具有诊断的作

用,因此不建议把这两个命令写在文件里。2) 使用partition功能 如果分析的序列不

均一,比如与编码区和分编码区,或者想把编码区分为密码子第一、第二和第三位碱基单

独分析的话,需要使用partition功能。在序列文件中增加如下内容

其中 charset 用来设置变量并赋值。1-.3指的是从第一个位点开始,每个三个位点

取出一个值,并把这些值用变量pos1表示。这代表密码子的第一位。其他类推。Partition

和setpartiti两行用来提示程序,序列分为三部分。Prset 一行用来指定三个部分的参数

是独立估计的。如果序列分为编码区和非编码区,可以这样写3)指定外群 在一组序列中

可以指定外群,如果不指定,则以序列文件中的第一个物种作为外群。外群设置命令为:

Outgroup 7 或者outgroupmy_taxon (7指的是要指定的物种在序列文件中的位置)。