没有授权禁止转载
话说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编辑。