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指的是要指定的物种在序列文件中的位置)。
欢迎关注