1. 程式人生 > >系統進化樹構建及資料分析的簡介

系統進化樹構建及資料分析的簡介

1.涉及基本概念

例如,“分子進化與生物進化是不是一個概念”,“關於微衛星進化模型有沒有什麼新的進展”以及“關於Kruglyak的模型有沒有改進的出現”,等等。

2.關於構建進化樹的方法的選擇

例如,“用boostrap NJ得到XX圖,請問該怎樣理解?能否應用於文章?用boostrap test中的ME法得到的是XXX樹,請問與上個樹比,哪個更好”,等等。

3.關於軟體的選擇

例如,“想做一個進化樹,不知道什麼軟體能更好的使用且可以說明問題,並且有沒有說明如何做”,“拿到了16sr RNA資料,打算做一個系統進化樹分析,可是原來沒有做過這方面的工作啊,都要什麼軟體”,“請問各位高手用做出來的進化樹與 phylip做的有什麼區別”,“請問有做過進化樹分析的朋友,能不能提供一下,做樹的時候引數的設定,以及代表的意思。還有各個分支等數值的意思,說明的問題等”,等等。

4.蛋白家族的分類問題

例如,“蒐集所有的關於一個特定domain的序列,共141條,做的進化樹不知具體怎麼分析”,等等。

5.新基因功能的推斷

例如,“根據一個新基因A氨基酸序列構建的系統發生樹,這個進化樹能否說明這個新基因A和B同源,屬於同一基因家族”,等等。

6.計算基因分化的年代

例如,“想在基因組水平比較兩個或三個比較接近物種之間的進化年代的遠近,具體推算出他們之間的分歧時間”,“如何估計病毒進化中變異所需時間”,等等。

7.進化樹的編輯

例如生成的進化樹圖片,如何進行後續的編輯,比如希望在圖片上標註某些特定的內容,等等。

由於相關的帖子太多,作者在這裡對無法閱讀全部的相關內容而致以歉意。同時,作者歸納的這七個問題也並不完全代表所有的提問。對於問題1所涉及到的 基本的概念,作者推薦讀者可參考由Masatoshi Nei與Sudhir Kumar所撰寫的《分子進化與系統發育》(Molecular Evolution and Phylogenetics)一書,以及相關的分子進化方面的最新文獻。對於問題7,作者之一lylover一般使用Powerpoint進行編輯,而 Photoshop、Illustrator及Windows自帶的畫圖工具等都可以使用。

這裡,作者在這裡對問題2-6進行簡要地解釋和討論,並希望能夠初步地解答初學者的一些疑問。

二、方法的選擇

首先是方法的選擇。基於距離的方法有UPGMA、ME(Minimum Evolution,最小進化法)和NJ(Neighbor-Joining,鄰接法)等。其他的幾種方法包括MP(Maximum parsimony,最大簡約法)、ML(Maximum likelihood,最大似然法)以及貝葉斯(Bayesian)推斷等方法。其中UPGMA法已經較少使用。

一般來講,如果模型合適,ML的效果較好。對近緣序列,有人喜歡MP,因為用的假設最少。MP一般不用在遠緣序列上,這時一般用NJ或ML。對相似 度很低的序列,NJ往往出現Long-branch attraction(LBA,長枝吸引現象),有時嚴重干擾進化樹的構建。貝葉斯的方法則太慢。對於各種方法構建

分子進化樹的準確性,一篇綜述(Hall BG. Mol Biol Evol 2005, 22(3):792-802)認為貝葉斯的方法最好,其次是ML,然後是MP。其實如果序列的相似性較高,各種方法都會得到不錯的結果,模型間的差別也不大。

對於NJ和ML,是需要選擇模型的。對於各種模型之間的理論上的區別,這裡不作深入的探討,可以參看Nei的書。對於蛋白質序列以及DNA序列,兩 者模型的選擇是不同的。以作者的經驗來說,對於蛋白質的序列,一般選擇Poisson Correction(泊松修正)這一模型。而對於核酸序列,一般選擇Kimura 2-parameter(Kimura-2引數)模型。如果對各種模型的理解並不深入,作者並不推薦初學者使用其他複雜的模型。

Bootstrap幾乎是一個必須的選項。一般Bootstrap的值>70,則認為構建的進化樹較為可靠。如果Bootstrap的值太低,則有可能進化樹的拓撲結構有錯誤,進化樹是不可靠的。

對於進化樹的構建,如果對理論的瞭解並不深入,作者推薦使用預設的引數。需要選擇模型的時候(例如用NJ或者ML建樹),對於蛋白序列使用 Poisson Correction模型,對於核酸序列使用Kimura-2引數模型。另外需要做Bootstrap檢驗,當Bootstrap值過低時,所構建的進化 樹其拓撲結構可能存在問題。並且,一般推薦用兩種不同的方法構建進化樹,如果所得到的進化樹類似,則結果較為可靠。

三、軟體的選擇

表1中列出了一些與構建分子進化樹相關的軟體。

構建NJ樹,可以用PHYLIP(寫得有點問題,例如比較慢,並且Bootstrap檢驗不方便)或者MEGA。MEGA是Nei開發的方法並設計的圖形化的軟體,使用非常方便。作者推薦MEGA軟體為初學者的首選。雖然多雪列比對工具/X自帶了一個NJ的建樹程式,但是該程式只有p- distance模型,而且構建的樹不夠準確,一般不用來構建進化樹。

構建MP樹,最好的工具是PAUP,但該程式屬於商業軟體,並不對學術免費。因此,作者並不建議使用PAUP。而MEGA和PHYLIP也可以用來 構建進化樹。這裡,作者推薦使用MEGA來構建MP樹。理由是,MEGA是圖形化的軟體,使用方便,而PHYLIP則是命令列格式的軟體,使用較為繁瑣。 對於近緣序列的進化樹構建,MP方法幾乎是最好的。

構建ML樹可以使用PHYML,速度最快。或者使用Tree-puzzle,速度也較快,並且該程式做蛋白質序列的進化樹效果比較好。而PAML則 並不適合構建進化樹。ML的模型選擇是看構出的樹的likelihood值,從引數少,簡單的模型試起,到likelihood值最大為止。ML也可以使 用 PAUP或者PHYLIP來構建。這裡作者推薦的工具是BioEdit。BioEdit集成了一些PHYLIP的程式,用來構建進化樹。Tree- puzzle是另外一個不錯的選擇,不過該程式是命令列格式的,需要學習DOS命令。PHYML的不足之處是沒有win32的版本,只有適用於64位的版 本,因此不推薦使用。值得注意的是,構建ML樹,不需要事先的多序列比對,而直接使用FASTA格式的序列即可。

貝葉斯的演算法以MrBayes為代表,不過速度較慢。一般的進化樹分析中較少應用。由於該方法需要很多背景的知識,這裡不作介紹。

需要注意的幾個問題是,其一,如果對核酸序列進行分析,並且是CDS編碼區的核酸序列,一般需要將核酸序列分別先翻譯成氨基酸序列,進行比對,然後 再對應到核酸序列上。這一流程可以通過MEGA 3.0以後的版本實現。MEGA3現在允許兩條核苷酸,先翻成蛋白序列比對之後再倒回去,做後續計算。

其二,無論是核酸序列還是蛋白序列,一般應當先做成 FASTA格式。FASTA格式的序列,第一行由符號“>”開頭,後面跟著序列的名稱,可以自定義,例如user1,protein1等等。將所有 的FASTA格式的序列存放在同一個檔案中。檔案的編輯可用Windows自帶的記事本工具,或者EditPlus(google搜尋可得)來操作。

另外,構建NJ或者MP樹需要先將序列做多序列比對的處理。作者推薦使用ClustalX進行多序列比對的分析。多序列比對的結果有時需要後續處理並應用於文章中,這裡作者推薦使用GeneDoc工具。而構建ML樹則不需要預先的多序列比對。
因此,作者推薦的軟體組合為:MEGA + ClustalX + GeneDoc + BioEdit。

四、資料分析及結果推斷

一般碰到的幾類問題是,(1)推斷基因/蛋白的功能;(2)基因/蛋白家族分類;(3)計算基因分化的年代。關於這方面的文獻非常多,這裡作者僅做簡要的介紹。

推斷基因/蛋白的功能,一般先用Blast工 具搜尋同一物種中與不同物種的同源序列,這包括直向同源物(ortholog)和旁系同源物(paralog)。如何界定這兩種同源物,網上有很多詳細的 介紹,這裡不作討論。然後得到這些同源物的序列,做成FASTA格式的檔案。一般通過NJ構建進化樹,並且進行Bootstrap分析所得到的結果已足 夠。如果序列近緣,可以再使用MP構建進化樹,進行比較。如果序列較遠源,則可以做ML樹比較。使用兩種方法得到的樹,如果差別不大,並且 Bootstrap總體較高,則得到的進化樹較為可靠。

基因/蛋白家族分類。這方面可以細分為兩個問題。一是對一個大的家族進行分類,另一個就是將特定的一個或多個基因/蛋白定位到已知的大的家族上,看 看屬於哪個亞家族。例如,對驅動蛋白(kinesin)超家族進行分類,屬於第一個問題。而假如得到一個新的驅動蛋白的序列,想分析該序列究竟屬於驅動蛋 白超家族的14個亞家族中的哪一個,則屬於後一個問題。這裡,一般不推薦使用MP的方法。大多數的基因/蛋白家族起源較早,序列分化程度較大,相互之間較 為遠源。這裡一般使用NJ、ME或者ML的方法。

計算基因分化的年代。這個一般需要知道物種的核苷酸替代率。常見物種的核苷酸替代率需要查詢相關的文獻。這裡不作過多的介紹。一般對於這樣的問題,序列多數是近緣的,選擇NJ或者MP即可。
如果使用MEGA進行分析,選項中有一項是“Gaps/Missing Data”,一般選擇“Pairwise Deletion”。其他多數的選項保持預設的引數。

五、總結

在實用中,只要方法、模型合理,建出的樹都有意義,可以任意選擇自己認為好一個。最重要的問題是:你需要解決什麼樣的問題?如果分析的結果能夠解決 你現有的問題,那麼,這樣的分析足夠了。因此,在做進化分析前,可能需要很好的考慮一下自己的問題所在,這樣所作的分析才有針對性。

六、致謝

本文由mediocrebeing在2005年9月8日所發起的討論《關於建樹的經驗》擴充、修改而來。文章的作者按原貼ID出現先後排名,由 lylover執筆。作者同時感謝所有參與討論的戰友。作者lylover感謝中國科大細胞動力學實驗室的金長江博士所給的一些有益的建議。