比较基因组学专题 - 2 :采用 MPI-RAxML 快速重构进化树
进化树构建是比较基因组学中最常见的计算需求。其目的是通过核酸或蛋白序列,反应基因或物种的进化关系。进化树的构建方法有很多种,其中最大似然法,是目前使用较为广泛的方法之一。但最大似然法涉及的计算量较为巨大,尤其对于大型数据集而言,计算boostrap值在一般计算环境下,几乎是不可能的任务。
RAxML 与 bootstrap
对于最大似然法构建的进化树,需要一定标准的评价方式,目前对于最大似然估计树的公认评价方式,为bootstrap 值,此概念由 Joseph Felsenstein 提出,目前已成为最为公认的评价标准。bootstrap 值反应了进化树上每个分支的可信程度。但其计算需要反复抽样和计算,因此当数据集较大的情况下,进行1000次的bootstrap计算(常规操作),动辄耗费数月时间!
MPI版本的RAxML
用户可以通过极道官方镜像仓库,获取MPI版的RAxML 资源。
使用MPI 版本 RAxML
{
"Procs": 3,
"Cpu": 2,
"Mem": 2000,
"WorkDir": "/autofs/vol6/Bioinformatics-pipeline/mpi/",
"Volmap" : {"/autofs/vol6/" : "/autofs/vol6/"},
"Cmd": "/bio/standard-RAxML-8.2.0/raxmlHPC-MPI -f a -m GTRCAT -s /autofs/vol6/Bioinformatics-pipeline/demo.phylip -# 1000 -x 12345 -p 67890 -n MultipleBootstrap_res_demo -o spec3",
"Image": "mpi-raxml:xtao"
}
[!NOTE|style:flat] -f 参数表示所选择的算法。其中“a”表示快速bootstrap算法+ML最大似然树构建整体进行,这也是目前相关文献中使用最多的算法。
-m 为碱基替代模型。用户可根据自身所使用的建树序列类型进行选择。
-s 表示建树所使用的多重比对结果
-# 表示bootstrap 迭代次数,一般选择1000次。需要注意的是使用MPI-RAxML 设置为1000 可以正常运行。用户如果使用单机版本RAxML ,通过长序列或多条序列作为输入,则会进入长时间计算,有时可能长达几周。
-p 用于简约推断的随机数
-x 用于bootstrap的随机数
-n 为输出结果后缀
-o 选择外群
上述文件可以通过partisaner
进行提交
[wd@Cc7Apc MPI-RAxML-demo]$ partisaner -c mpi-raxml-job.json -t mpich -i
mpiexec -n 3 -hosts Cc1Apc,Cc2Apc,Cc5Apc -launcher manual -wdir /autofs/vol6/Bioinformatics-pipeline/mpi/ /bio/standard-RAxML-8.2.0/raxmlHPC-MPI -f a -m GTRCAT -s /autofs/vol6/Bioinformatics-pipeline/demo.phylip -# 1000 -x 12345 -p 67890 -n MultipleBootstrap_res_demo -o spec3
This is RAxML MPI Process Number: 0
This is RAxML MPI Process Number: 1
...
[wd@Cc7Apc mpi]$ ll *MultipleBootstrap_res_demo
-rw-r--r-- 1 root root 223 Jun 30 16:59 RAxML_bestTree.MultipleBootstrap_res_demo
-rw-r--r-- 1 root root 231 Jun 30 16:59 RAxML_bipartitionsBranchLabels.MultipleBootstrap_res_demo
-rw-r--r-- 1 root root 227 Jun 30 16:59 RAxML_bipartitions.MultipleBootstrap_res_demo
-rw-r--r-- 1 root root 39078 Jun 30 16:59 RAxML_bootstrap.MultipleBootstrap_res_demo
-rw-r--r-- 1 root root 87312 Jun 30 16:59 RAxML_info.MultipleBootstrap_res_demo
其中 RAxML_bipartitionsBranchLabels.MultipleBootstrap_res_demo 中为计算出的最优树,
[wd@Cc7Apc mpi]$ cat RAxML_bipartitionsBranchLabels.MultipleBootstrap_res_demo
(((spec4:0.14052499682658844971,spec5:0.09304358528141366824):0.44441146665980024721[93],(spec1:0.28583883018425637612,spec2:0.04906318928565247400):0.16688665716868492095[77]):0.30543787531184307671,spec3:0.30543787531184307671);
结果中中括号标识的为分支的bootstrap值,结构可进一步用图形化展示