使用RAxML做Maximum likelihood 进化树

没有授权禁止转载

话说ML进化树如果要进行高bootstrap值的验证的话对于计算能力要求是很高的。不并行做基本不可能。

所以下了一个RAxML,在linux下有好几种编译方式,看了一下手上的机器支持AVX指令集,所以选择AVX-MPI方式吧。

先安装openmpi,照网上教程编译就行,就是略慢。

但是安装完mpicc之后,再去编译RAxML时发现gcc版本不够高,无法支持AVX,虽然不知道AVX能带来多大的速度提升,但是出于学习考虑还是尝试升级一下gcc吧

下了一个gcc4.8.1,注意在编译之前要下载一下依赖库./contrib/download_prerequisites,然后编译安装即可。

 

mpi的运行方式就是 mpirun -np N program

N是同时开的进程数,program是软件加参数(和单进程跑一模一样就行)

 

序列处理之前用TrimAI截短一下,我的序列差异很大,所以手工截太麻烦了。

RAxML对序列的要求比较变态。。phy格式序列中的'.'表示和第一条序列相同的表示法不被识别。所以自己写了个脚本把格式转回来了。

注意跑的时候要把 -k选项打开才会有branch length,不然会branch都等长,略丑。

raxmlHPC-MPI-AVX -x 12345 -p 12345 -# 1000 -m PROTGAMMAWAGF -s ../LysM_t -f d -k -n Tf4

 

跑完会出来一个RAxml_bootstrap.Tf4的tree list,这个是重复1000次的进化树。需要在phylip下的consensus工具转为单个树。

consensus下选择Majority Rule (extended)模型了,产生outtree和outfile,outtree可改为.nwk文件直接MEGA编辑。

 

posted on 2016-01-03 19:32  cenkai  阅读(6433)  评论(0编辑  收藏  举报