在应用中,有时需要使用最大似然法(Maximum Likelihood)构建系统树,这样可获得树节点的 bootstrap 值。由 Alexandros Stamatakis (Exelixis Lab) 开发的 RAxML 即是一款能使用多线程或并行化使用最大似然法构建进化树的软件。

下载

RAxML github 中下载软件的最新源代码。源代码包中既包含可直接用于 Windows 系统中的 .exe 文件,还有适用于 Linux 和 Mac 的 Unix 可执行文件。用户使用时可自行选择。

操作指南文件

安装和运行(Mac 系统)

  1. 将下载的 github 源代码文件包 standard-RAxML-master 复制到根目录。

  2. 生成 Unix 可执行文件:按照 RAxML v.8.0.0 说明书 中的第五节 V. Compiling RAxML ,在终端 Shell 中执行命令:

cd standard-RAxML-master
ls                                   ## list 源代码包中的文件
ls Makefile.*                        ## list 源代码包中的 Makefile 文件
make -f Makefile.AVX.gcc             ## 解析生成 Unix 可执行文件 raxmlHPC-AVX
rm *.o                               ## 接下来解析 PThreass 版本
make -f Makefile.AVX.PTHREADS.gcc    ## 解析生成 Unix 可执行文件 raxmlHPC-PTHREADS-AVX
  1. 执行 Unix 可执行文件:
./raxmlHPC-AVX -h    ## 查看帮助文件,获得各参数设置方法
# 或
./raxmlHPC-PTHREADS-AVX -h

选择何种版本来运行,需由数据集的大小来定。一般情况下,PThreads 版本适用于非常长的序列数据,但是受制于硬盘的独立性; MPI 版本适用于较大的 bootstrap(100 或 1000)运行,对于更大数据集可并行运行找到最大似然树,只有用户在命令行中定义了 -#-N 时 MPI 版本才能正确运行。

输入序列文件格式

输入文件是对齐后的 Phylip 序列Fasta 序列。通常多为 Phylip 序列文件。需仔细核对序列的个体名是否唯一,个体名长度需小于 256 字节。

如果序列数据是由多个基因(或多种类型序列)组成,每个分区基因可能应用不同的替代模型,则需单独制一个分区文件如 part.txt ,分区文件格式请参考 -q 命令。如序列数据集由4个基因 16S, 28S, COI, H3 组成:

DNA, 16S = 1-573
DNA, 28S = 574-967
DNA, COI = 968-1690
DNA, H3 = 1691-2067

示例运行

./raxmlHPC-AVX -s sequences.phy -f a -x 1234 -p 1234 -# 1000 -m GTRGAMMA -q part.txt -n .OUT

img

运行参数说明(可参考 RAxML v.8.0.0 说明书,或 ./raxmlHPC-AVX -h):

-s      ## 输入Phylip 序列文件
-f      ## 选择运行的算法
-f a    ## 快速 Bootstrap 算法获取最佳得分的 ML 树
-x      ## 指定一个随机数,作为快速 Bootstrap 算法中的种子
-p      ## 指定一个随机数,作为 parsimony 简约算法中的种子
-#      ## bootstrap 次数
-m      ## 选择替换模型 substitution Model
-q      ## 设置序列的分区
-n      ## 输出文件格式

结果文件

若无指定路径,输出文件则存储于源代码包中,文件后缀为设置的 .OUT

RAxML_bootstrap.OUT                ## bootstrapped trees
RAxML_bestTree.OUT                 ## 最佳得分 ML 树
RAxML_bipartitions.OUT             ## 有 bootstrap 分值支持的最佳得分树,分值在 node 上。
RAxML_bipartionsBranchLabels.OUT   ## 有 bootstrap 分值支持的最佳得分树, 分值在 branch 上。FigTree不能识别此文件。

其他

一般来说,上述示例作为一种快速和简便的运行,能够应用于大多数较大数据集。如果需要程序参数更好地适应你的对齐序列数据,可以参照 RAxML v.8.0.0 说明书 中的 The Hard & Slow Way 。更多问题,可参考说明书最后的 Q&A。

comments powered by Disqus