沒有授權禁止轉載
話說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編輯。