一、取樣:以Wang et.al,2015中L148_r樹的taxa爲基礎,去除重複的taxa,最終得到122個taxa。DNA序列數據L122.nex, 起始樹爲ML法推斷出的besttree。
二、生成XML文件
A. 打開BEAUti,將DNA序列數據和起始樹導入程序,按以下步驟生成跑BEAST所需的xml文件。。
(1)定義tMRCA,共4個。
Outgroup(2taxa,2種派模蛛,非強制單系)
Linyphiidae(120taxa,所有傳統分類中定義的皿蛛科物種,非強制單系)。
Linyphiidae(117taxa,except stemonyphantes亞科的3個taxa, 強制單系,用於設定化石矯正點)
Orsonwelles(2taxa, include Orsonwelles屬兩種,強制單系,用於設定地質矯正點?)
(2)核苷酸分子替換模型。Site Model:GTR。事先使用jModelTest等軟件對該最適模型及其參數進行判定。此部分請參考高芳鑾的博文 http://blog.sciencenet.cn/blog-460481-791370.html
(3) 分子鐘模型Clock Models。 將Molecular Clock Model選爲“Relaxed Clock:Uncorrelated Lognormal”, estimate不選擇。
(4)設置Priors。選擇Tree Prior爲Speciation:Birth-Death Model。
(5) 設置Prior。
在tmrca(Linyphiinae)中選擇Lognormal,參數爲0,2,125(參考Dimitrov,2012)。
在tmrca(Osonwelles)中選擇Lognormal,參數爲0,0.001,2.7。
(6)設置起始樹。
在Beast2中,無法從BEAUti的GUI界面設置起始樹。唯一的做法是生成XML文件後,手工修改代碼,將默認使用隨機樹做起始樹的代碼改爲如下格式
<init id="StartingTree.t:FPV" initial="@Tree.t:FPV" spec="beast.util.TreeParser" IsLabelledNewick="true">
<input name="newick">yournewick; </input>
</init>
需要注意的是,Beast2官方教程在這一部分的代碼是錯的,我試了無數次都不行。只有這樣寫才能運行正常。在引入自定義的Starting tree後,tMRCA的設定便有了限制,tMRCA的taxa分組不能和Starting tree拓撲結構衝突,否則在BEAST的時候會報錯。
(7)Operators。如果你僅僅希望用Beast2推算分化時間,樹拓撲要保持與ML分析的最優樹完全一致,在這部分你要將XML文件代碼中<OPERATORS>部分Subtree slide,Narrow exchange,Wide exchange, Wilson Balding四行代碼全部刪掉,以保證在整個mcmc過程中樹拓撲保持一致,只是支長有變化。
(8)設置MCMC。鏈長設爲40000000,Echo設爲1000,Log_every設爲1000(一般來講,tracer中顯示所有參數的ESS值均大於200表示BEAST分析結果可信,需要根據此參數確定最適合鏈長)。
(6)生成XML文檔。
B.運行BEAST。在BEAST中打開xml文件,運行後生成後綴爲trees和log的文件。
4. 在/beast/bin目錄下找到beast程序,運行BEAST。彈出的對話框打開編輯好的xml文件,就會自動運行beast,結果trees和log文件存儲在bin目錄下。需要說明一點,如果在windowsPC下編輯生成的xml文件,在CentOS平臺下不能直接使用,由於EOF在UNIX和DOS/WINDOWS下編碼不同,直接使用會報錯。解決方法是在NOTEPAD++的EDIT菜單下將文件的EOF模式設置爲UNIX格式,保存後將其上傳至服務器,再用BEAST打開就OK了。
C. 運行Tracer分析結果。用Tracer打開log文件分析。這個過程可以看出跑樹結果的好壞。
(1)Tracer顯示了BEAST後得到的各種參數,包括likelihood,meanRate(平均進化速率),coefficientOfVariation(每一分支分子進化的變異係數,表示分子變化的速率在不同分支上是否等速),root和每一個tMRCA分化時間的估計值等等。同時選中root.height和tMRCA,可以通過箱線圖和邊界密度圖顯示預設的化石校正點估計值是否一致。
D. 運行TreeAnnotator得到合議樹。用TreeAnnotator打開trees文件,設定參數得到合議樹。特別要指出的是,TreeAnnotator中Output File文件默認是讓選擇,其實直接取一個輸出的文件名點ok即可。需要注意的是,由於jvm有內存限制,對於超過10000棵樹需要和議時,不能直接運行treeannotator,而是進入beast的lib目錄,運行以下代碼啓動treeannotator。
java -Xmx2048m -Xms2048m -classpath beast.jar dr.app.tools.TreeAnnotator
代碼中的2048爲jvm可調用內存的限值,運算量越大,這個值應調的越高。
合議樹第一個參數設爲4000(40000000代,每1000代生成1棵樹,共40000棵。取10%爲4000).第二個參數改爲0