RaxML使用

一、下載

https://github.com/stamatak/standard-RAxMLhtml

二、How many Threads shall I use?

重要的是要知道,RAxML PThreads版本的並行效率取決於比對長度。一般,隨着使用的內核/處理器數量的增長,您會但願並行程序變得更快。然而,一般狀況下並不是如此,由於使用的處理器越多,它們等待輸入解析和彼此通訊的時間就越多。在計算機科學中,這種現象被稱爲Amdahl法則(http://en.wikipedia.org/wiki/Amdahl's_law,https://www.cnblogs.com/battlecry/p/4696405.html.)。所以,若是您使用32而不是1個線程運行RAxML,這並不意味着它會自動變得快32倍,甚至可能變得更慢。正如我已經提到的,並行效率,即,在使用多少線程/內核的狀況下,您仍然能夠有效地並行執行它,取決於比對長度,或者更精確地說,取決於比對中不一樣模式的數量。這個數字由RAxML打印到終端並輸入RAxML_info.runID文件,以下所示:ios

Alignment has 70 distinct alignment patterns

根據經驗,我將使用一個核心/線程每500個DNA位點模式,即,若是你有更少的,那麼最好使用 sequential 版本。約有1000個位點的單基因DNA比對,能夠用2個或最多4個線程進行分析。所以,比對的模式越多,則能夠有效地使用更多的線程/內核。還要注意,效率取決於數據的類型,或者更準確地說,取決於數據中的狀態數(例如,DNA中的4個狀態,蛋白質中的20個狀態)。狀態越多,每一個線程/核心須要的站點模式(site patterns)就越少,這樣RAxML才能高效地並行執行。這是由於隨着狀態數的增長,每一個站點模式須要進行更多的計算工做(更多的數學操做)。所以,使用蛋白質數據,每一個線程須要更少的站點纔能有效地運行RAxML。所以,當使用16個核時,具備1000個蛋白位點模式的MSA仍然能夠有效地運行。最後,並行效率還取決於速率異質性模型。與γ模型(GAMMA)須要更多的計算,所以一般使用更多的線程,GAT模型執行 大概是γ模型須要大約¼的計算。注意,這些只是很是粗略的經驗規則,您須要測試您的數據集的最佳設置是什麼!git

三、 RAxML Likelihood Values & Idiosyncrasies

須要注意的是,RAxML生成的似然值不能直接與其餘ML程序的似然值進行直接比較。以上固然指的是對相同樹的可能性進行評估,就樹搜索而言,程序將生成不一樣的樹拓撲結構,所以在大多數狀況下也會產生不一樣的似然值。注意,PHYML/RAxML和GARLI似然值之間的誤差有時可能更大,由於GARLI使用稍微不一樣的過程來計算鹼基頻率(Derrick Zwickl, personal communication,許多年前),而RAxML中的方法與在PHYML中實現的方法徹底相同。在多序列比對中,RAxML/PHYML和GARLI之間的誤差彷佛更大。還要注意,由不一樣的RAxML版本產生的似然值,尤爲是不該該直接相互比較。這是因爲在似然函數實現和模型參數優化過程當中頻繁改變代碼和數據結構形成的!所以,若是但願比較不一樣ML程序得到的拓撲結構與它們的可能性,請確保使用同一個程序優化最終拓撲的分支長度和模型參數。github

四、Differences in Likelihood scores

理論上,全部ML程序實現相同的數學函數,所以對於固定的模型和給定的樹拓撲結構,應該產生相同的似然值。然而,若是咱們試圖在有限的機器上實現一個數值函數,咱們將不可避免地得到舍入偏差。即便咱們改變序列(或若是它是由編譯器改變,一般是這樣)的一些操做,在咱們的計算機應用浮點數或雙精度算術,咱們可能會獲得不一樣的結果。我我的的觀點是,爲得到好的最終ML樹,拓撲搜索(分析拓撲的數量)比精確的似然值得分更重要。特別是在有超過1000個序列的大型樹中,拓撲引發的似然值的差別一般很是大,以至於使用1 log似然單元的epsilon (RAxML -e選項)進行很是粗略的參數優化。若是兩個連續的模型參數優化迭代之間的差小於1.0,已經清楚地顯示出差別,咱們中止優化。注意,若是執行bootstrap分析,則不須要過多擔憂似然值,由於一般只對引導拓撲感興趣。bootstrap

五、Alignment input File Formats

RAxML的輸入 alignment格式是relaxed interleaved或順序排列的FASTA。放鬆意味着序列名稱的長度能夠在1到256個字符之間變化。若是須要更長的分類單元名稱,能夠在源文件axml.h中適當地使用常量#define nmlngth 256。此外,RAxML對交錯的PHYLIP文件的PHYLIP格式(製表符、insets等)不太敏感。輸入樹格式是Newick(http://evolution.genetics.washington.edu/phylip/newicktree.html)。數據結構

Alignment Error Checking(RAxML自動分析對齊,並檢查如下錯誤):

1. 在比對中屢次出現相同的序列名,當您從某個工具導出一個標準的PHYLIP文件時,很容易發生這種狀況,該文件將序列名截斷爲8或10個字符。函數

2. 具備不一樣名稱但徹底相同的序列。這種狀況一般發生在將某些難以比對的對齊區域排除在對齊以外,而且使用時沒有意義。工具

三、只包含模糊字符的待定列將被視爲丟失的數據,即對於AA數據,徹底由X、?、*、-組成的列,以及N、O、X、?、-用於DNA數據(相似於其餘數據類型)測試

四、只包含模糊字符(見上文)的待定序列將被視爲丟失的數據。優化

分類單元名稱中的禁止字符是包含任何形式的空格字符的名稱,如空格、製表符和回車符,以及下列禁止字符之一::或()或[]

若是RAxML檢測到相同的序列和/或未肯定的列並執行,例如,使用-n alignmentName,經過刪除相同的序列和/或未肯定的列,它將自動生成一個名爲alignmentName.reduced的比對文件。若是在分區模型分析中檢測到這一點,則對應的模型文件modelFileName.reduced也會被寫下來。若是RAxML遇到相同的序列名稱、未肯定的序列或分類單元名稱中的非法字符,它將帶着一個錯誤退出,您必須修正比對。

The RAxML options

到目前爲止,最重要的命令是顯示全部選項的RAxML幫助選項。我也常用它,由於我不能記住全部的。

相關文章
相關標籤/搜索