skysun的个人博客分享 http://blog.sciencenet.cn/u/skysun

博文

【转载】分子进化树构建及数据分析的简介+oldfish的批评意见

已有 8811 次阅读 2007-10-7 13:38 |个人分类:生命科学—系统发育和进化

分子进化树构建及数据分析的简介

mediocrebeing, rodger, lylover[1], klaus, oldfish, yzwpf

 

一、引言

 

开始动笔写这篇短文之前,我问自己,为什么要写这样的文章?写这样的文章有实际的意义吗?我希望能够解决什么样的问题?带着这样的疑惑,我随手在丁香园(DXY)上以关键字进化 分析 求助进行了搜索,居然有289篇相关的帖子(2006912日)。而以关键字进化 分析进化为关键字搜索,分别找到2,7337,724篇相关的帖子。考虑到有些帖子的内容与分子进化无关,这里我保守的估计,大约有3,000~4,000篇帖子的内容,是关于分子进化的。粗略地归纳一下,我大致将提出的问题分为下述的几类:

1.涉及基本概念。例如,分子进化与生物进化是不是一个概念关于微卫星进化模型有没有什么新的进展以及关于Kruglyak的模型有没有改进的出现,等等。

2.关于构建进化树的方法的选择。例如,boostrap NJ得到XX图,请问该怎样理解?能否应用于文章?用boostrap test中的ME法得到的是XXX树,请问与上个树比,哪个更好,等等。

3.关于软件的选择。例如,想做一个进化树,不知道什么软件能更好的使用且可以说明问题,并且有没有说明如何做拿到了16sr RNA数据,打算做一个系统进化树分析,可是原来没有做过这方面的工作啊,都要什么软件请问各位高手用clustalx做出来的进化树与phylip做的有什么区别请问有做过进化树分析的朋友,能不能提供一下,做树的时候参数的设置,以及代表的意思。还有各个分支等数值的意思,说明的问题等,等等。

4.蛋白家族的分类问题。例如,搜集所有的关于一个特定domain的序列,共141条,做的进化树不知具体怎么分析,等等。

5.新基因功能的推断。例如,根据一个新基因A氨基酸序列构建的系统发生树,这个进化树能否说明这个新基因AB同源,属于同一基因家族,等等。

6.计算基因分化的年代。例如,想在基因组水平比较两个或三个比较接近物种之间的进化年代的远近,具体推算出他们之间的分歧时间如何估计病毒进化中变异所需时间,等等。

7.进化树的编辑。例如生成的进化树图片,如何进行后续的编辑,比如希望在图片上标注某些特定的内容,等等。

由于相关的帖子太多,作者在这里对无法阅读全部的相关内容而致以歉意。同时,作者归纳的这七个问题也并不完全代表所有的提问。对于问题1所涉及到的基本的概念,作者推荐读者可参考由Masatoshi NeiSudhir Kumar所撰写的《分子进化与系统发育》(Molecular Evolution and Phylogenetics)一书,以及相关的分子进化方面的最新文献。对于问题7,作者之一lylover一般使用Powerpoint进行编辑,而PhotoshopIllustratorWindows自带的画图工具等都可以使用。

这里,作者在这里对问题2-6进行简要地解释和讨论,并希望能够初步地解答初学者的一些疑问。

 

二、方法的选择

 

First of all, I have no intention to be offensive, please take my apology if you feel like that. I am not sure about the purpose of this draft, is it only for watering in dxy.cn or  something else? Simply ignore my suggestions when you think it's reasonable.

首先是方法的选择。基于距离的方法有UPGMAMEMinimum Evolution,最小进化法)和NJNeighbor-Joining,邻接法)等。其他的几种方法包括MPMaximum parsimony,最大简约法)、MLMaximum likelihood,最大似然法)以及贝叶斯(Bayesian)推断等方法。其中UPGMA法已经较少使用。

一般来讲,如果模型合适,ML的效果较好。对近缘序列,有人喜欢MP,因为用的假设最少。MP一般不用在远缘序列上,这时一般用NJML。对相似度很低的序列,NJ往往出现Long-branch attractionLBA,长枝吸引现象),有时严重干扰进化树的构建。(All tree-reconstruction methods suffer from long branch attraction including ML, the situation is the worst for MP. Better mention it is not only for NJ.)贝叶斯的方法则太慢。(MP can also be extremely slow if we have a large number of sequences because of all the possible “equally parsimonious trees”)对于各种方法构建分子进化树的准确性,一篇综述(Hall BG. Mol Biol Evol 2005, 22(3):792-802)认为贝叶斯的方法最好,其次是ML,然后是MP。其实如果序列的相似性较高,各种方法都会得到不错的结果,模型间的差别也不大。(Maybe it is worthwhile to list another two review papers, Trends in Genetics 17:262–272 (2001), Nature Rev. Genet. 4:275–284(2003). They were not branch newly published in 2005 or 2006, but they comprehensive and actually the basic ideas never changed.)

对于NJML,是需要选择模型的。(For distance methods like NJ, the single most important thing is the distance matrix while we do not have to obtain this matrix under a specific substitution model. )对于各种模型之间的理论上的区别,这里不作深入的探讨,可以参看Nei的书。对于蛋白质序列以及DNA序列,两者模型的选择是不同的。以作者的经验来说,对于蛋白质的序列,一般选择Poisson Correction(泊松修正)这一模型。而对于核酸序列,一般选择Kimura 2-parameterKimura-2参数)模型。(I am really confused by these recommendations because there are tons of works to show reasonably more complicated models perform much better than these simple models. Poisson-Correction model can be thought as the protein version of Jukes-Cantor model, which is the simplest probabilistic model for nucleotide substitutions. It's also quite unrealistic to assume the equal nucleotide frequencies by using K2P.)如果对各种模型的理解并不深入,作者并不推荐初学者使用其他复杂的模型。(I do think it is worthwhile to know something about the models instead of using default settings only, maybe you can introduce David Posada's ModelTest software here.)

Bootstrap几乎是一个必须的选项。一般Bootstrap的值>70,则认为构建的进化树较为可靠。如果Bootstrap的值太低,则有可能进化树的拓扑结构有错误,进化树是不可靠的。(Is it reasonable to say “the tree topology is wrong” when we don't even know the correct answer? Maybe just mention the tree is unreliable is enough.)

对于进化树的构建,如果对理论的了解并不深入,作者推荐使用缺省的参数。需要选择模型的时候(例如用NJ或者ML建树),对于蛋白序列使用Poisson Correction模型,对于核酸序列使用Kimura-2参数模型。(Again, I do not like these recommendations.)另外需要做Bootstrap检验,当Bootstrap值过低时,所构建的进化树其拓扑结构可能存在问题。并且,一般推荐用两种不同的方法构建进化树,如果所得到的进化树类似,则结果较为可靠。

 

三、软件的选择

 

1中列出了一些与构建分子进化树相关的软件。

构建NJ树,可以用PHYLIP(写得有点问题,例如比较慢,并且Bootstrap检验不方便)或者MEGAMEGANei开发的方法并设计的图形化的软件,使用非常方便。作者推荐MEGA软件为初学者的首选。虽然多雪列比对工具ClustalW/X自带了一个NJ的建树程序,但是该程序只有p-distance模型,而且构建的树不够准确,一般不用来构建进化树。(The guide tree in ClustalX takes the distance matrix based on the scoring matrix, this kind of measure for evolutionary distance is sloppy, I guess that's why it is called “guide tree”.)

构建MP树,最好的工具是PAUP,但该程序属于商业软件,并不对学术免费。因此,作者并不建议使用PAUP。而MEGAPHYLIP也可以用来构建进化树。这里,作者推荐使用MEGA来构建MP树。理由是,MEGA是图形化的软件,使用方便,而PHYLIP则是命令行格式的软件,使用较为繁琐。对于近缘序列的进化树构建,MP方法几乎是最好的。

构建ML树可以使用PHYML,速度最快。或者使用Tree-puzzle,速度也较快,并且该程序做蛋白质序列的进化树效果比较好。而PAML则并不适合构建进化树。ML的模型选择是看构出的树的likelihood值,从参数少,简单的模型试起,到likelihood值最大为止。ML也可以使用PAUP或者PHYLIP来构建。这里作者推荐的工具是BioEditBioEdit集成了一些PHYLIP的程序,用来构建进化树。Tree-puzzle是另外一个不错的选择,不过该程序是命令行格式的,需要学习DOS命令。PHYML的不足之处是没有win32的版本,只有适用于64位的版本,因此不推荐使用。(It is not true, PhyML has compiled executables for standard PC running windows.)值得注意的是,构建ML树,不需要事先的多序列比对,而直接使用FASTA格式的序列即可。(This is not true. As I know, all the evolutionary models incorporating indels are not practical at this stage and they are not widely implemented at all.)

贝叶斯的算法以MrBayes为代表,不过速度较慢。(It is not true. ML can be even slower when the surface of likelihood is very flat, the optimization procedure will almost never get to that peak. Th power of taking into account the uncertainty in tree reconstruction Bayesian framework should anyway be mentioned somewhere due to popularity of Bayesian methods.)一般的进化树分析中较少应用。(No, I don't agree)由于该方法需要很多背景的知识,这里不作介绍。

   

1 构建分子进化树相关的软件

 

软件

网址

说明

ClustalX

http://bips.u-strasbg.fr/fr/Documentation/ClustalX/

图形化的多序列比对工具

ClustalW

http://www.cf.ac.uk/biosi/research/biosoft/Downloads/clustalw.html

命令行格式的多序列比对工具

GeneDoc

http://www.psc.edu/biomed/genedoc/

多序列比对结果的美化工具

BioEdit

http://www.mbio.ncsu.edu/BioEdit/bioedit.html

序列分析的综合工具

MEGA

http://www.megasoftware.net/

图形化、集成的进化分析工具,不包括ML

PAUP

http://paup.csit.fsu.edu/

商业软件,集成的进化分析工具

PHYLIP

http://evolution.genetics.washington.edu/phylip.html

免费的、集成的进化分析工具

PHYML

http://atgc.lirmm.fr/phyml/

最快的ML建树工具

PAML

http://abacus.gene.ucl.ac.uk/software/paml.html

ML建树工具

Tree-puzzle

http://www.tree-puzzle.de/

较快的ML建树工具

MrBayes

http://mrbayes.csit.fsu.edu/

基于贝叶斯方法的建树工具

MAC5

http://www.agapow.net/software/mac5/

基于贝叶斯方法的建树工具

TreeView

http://taxonomy.zoology.gla.ac.uk/rod/treeview.html

进化树显示工具

 

需要注意的几个问题是,其一,如果对核酸序列进行分析,并且是CDS编码区的核酸序列,一般需要将核酸序列分别先翻译成氨基酸序列,进行比对,然后再对应到核酸序列上。这一流程可以通过MEGA 3.0以后的版本实现。MEGA3现在允许两条核苷酸,先翻成蛋白序列比对之后再倒回去,做后续计算。其二,无论是核酸序列还是蛋白序列,一般应当先做成FASTA格式。FASTA格式的序列,第一行由符号“>”开头,后面跟着序列的名称,可以自定义,例如user1protein1等等。将所有的FASTA格式的序列存放在同一个文件中。文件的编辑可用Windows自带的记事本工具,或者EditPlusgoogle搜索可得)来操作。文件格式如图1所示:

1 FASTA格式的序列

另外,构建NJ或者MP树需要先将序列做多序列比对的处理。作者推荐使用ClustalX进行多序列比对的分析。多序列比对的结果有时需要后续处理并应用于文章中,这里作者推荐使用GeneDoc工具。而构建ML树则不需要预先的多序列比对。(Again, I do not think this statement is correct)

因此,作者推荐的软件组合为:MEGA 3.1 + ClustalX + GeneDoc + BioEdit

 

四、数据分析及结果推断

 

一般碰到的几类问题是,(1)推断基因/蛋白的功能;(2)基因/蛋白家族分类;(3)计算基因分化的年代。关于这方面的文献非常多,这里作者仅做简要的介绍。

推断基因/蛋白的功能,一般先用BLAST工具搜索同一物种中与不同物种的同源序列,这包括直向同源物(ortholog)和旁系同源物(paralog)。如何界定这两种同源物,网上有很多详细的介绍,这里不作讨论。然后得到这些同源物的序列,做成FASTA格式的文件。一般通过NJ构建进化树,并且进行Bootstrap分析所得到的结果已足够。如果序列近缘,可以再使用MP构建进化树,进行比较。如果序列较远源,则可以做ML树比较。使用两种方法得到的树,如果差别不大,并且Bootstrap总体较高,则得到的进化树较为可靠。

基因/蛋白家族分类。这方面可以细分为两个问题。一是对一个大的家族进行分类,另一个就是将特定的一个或多个基因/蛋白定位到已知的大的家族上,看看属于哪个亚家族。例如,对驱动蛋白(kinesin)超家族进行分类,属于第一个问题。而假如得到一个新的驱动蛋白的序列,想分析该序列究竟属于驱动蛋白超家族的14个亚家族中的哪一个,则属于后一个问题。这里,一般不推荐使用MP的方法。大多数的基因/蛋白家族起源较早,序列分化程度较大,相互之间较为远源。这里一般使用NJME或者ML的方法。

计算基因分化的年代。这个一般需要知道物种的核苷酸替代率。常见物种的核苷酸替代率需要查找相关的文献。这里不作过多的介绍。一般对于这样的问题,序列多数是近缘的,选择NJ或者MP即可。

如果使用MEGA进行分析,选项中有一项是“Gaps/Missing Data”,一般选择“Pairwise Deletion”。其他多数的选项保持缺省的参数。

 

五、总结

 

在实用中,只要方法、模型合理,建出的树都有意义,可以任意选择自己认为好一个。最重要的问题是:你需要解决什么样的问题?如果分析的结果能够解决你现有的问题,那么,这样的分析足够了。因此,在做进化分析前,可能需要很好的考虑一下自己的问题所在,这样所作的分析才有针对性。

 

六、致谢

   本文由mediocrebeing200598日所发起的讨论《关于建树的经验》扩充、修改而来。文章的作者按原贴ID出现先后排名,由lylover执笔。作者同时感谢所有参与讨论的战友。作者lylover感谢中国科大细胞动力学实验室的金长江博士所给的一些有益的建议。

 



[1]        lylover. Email: lylover_2005@tom.com

 

yzwpf的补充

NJ,ML,Bayes均需要选择模型,对PAUP和MrBayes而言,ModelTest有专门的版本可自动选择模型,意味着它会输出两者专用的设置模型的命令,用户需要的只是将该命令简单的复制粘贴。
MrBayes和MAC5均可利用gap信息构建进化树。
ml法无需比对应该是错误的。至少在paup中未比对会出错。
计算基因分化的年代,这个更一般的是知道进化树中某两个或更多物种的分歧时间,然后可以使用r8s软件分析进化树中其他序列的分歧时间。在mega中打开树后也可进行极为简单的年代分析,但必须满足分子钟假设且无法根据多个分歧时间进行校正!
 
mediocrebeing的补充
想学建树的都要看看Nei那本绿皮书的相关章节。结合我个人的经验,补充几句。

先说方法的选择。有三种nj(距离法的代表), parsimony(最大简约), ml(极大似然)。一般来讲,如果模型合适,ml的效果最好。对近缘序列,有人喜欢parsimony,因为用的假设最少(的确很诱人)。其实其它方法都会很好,模型间的差别也不大。parsimony一般不用在远缘序列上,这时一般用nj或ml。对相似度很低的序列,nj往往出现long-branch attraction,有时严重干扰构树。ml据说影响最小(某篇review说的)。

nj和ml是需要选择模型的。先说nj。nj的模型是用来算距离矩阵的,主要分极大似然模型,和mismatch模型(或p-distance)。一般人们喜欢复杂的模型(HKY84 for nucleotide, and JTT, WAG, ... for amino acids),但p-distance对远缘序列往往有更好的效果。nei的书中有很好的评述,我的经验也是如此。还有一种叫kimura校正的,其实是p-distance在蛋白的推广。clustalw有这个选项,实际效果我认为反而不好。

ml用的都是极大似然模型。tree-puzzle的文档对各种模型的选择做了很好的评述。其实实用中差别可能并不大。没经验。

至于软件,ml树推荐用phyml,速度最快,或用paml,名气最大;parsimony推荐用老牌paup,但mega或phylip也能做,我不常做parsimony;nj的选择就太多了,出于名气考虑,可以用phylip(但写得有点问题,过慢,bootstrap不方便),clustalw(只有p-distance,模型太少,但用着很舒服),mega(没用过)。

tree-puzzle是个好软件,用的是所谓的四级ml近似,效果不如ml,但一般比nj好一点。建议用tree-puzzle代替phylip算距离矩阵,快的多。tree-puzzle还有许多实用功能。mega应该是个好软件,功能很多,很强。但只有windows版。我不用。这些都是有名气的,其实有许多更优秀的软件仅仅由于名气原因不为人所知。闲人们可以去phylip的网站看看。我不在这里瞎介绍了。

另外,很近缘序列一般用nucleotide,有时蛋白根本没区别;远的一定要用amino acids。画nucleotide树,如果在cds上,一般先做amino acids alignment,再反过来对应到nucleotide,可以用Emboss的tranalign程序,不过还是很麻烦。由于进化压力问题,对近缘序列,dS树有时效果最好,但现在画这种树很麻烦,不知mega是否有这个功能。

PS:实用中,只要方法、模型合理,建出的树都有意义,可以随便选择自己认为好一个,或用tree fusion合并,不过这么做的人不多。如果写进化树的paper,各种方法和模型都要试试。

高手们可以来补充,我也学习一下。先谢谢了。

 



https://blog.sciencenet.cn/blog-4083-8475.html

上一篇:【转载】分子进化树构建及数据分析的简介
下一篇:【转载】Mega的功能-from yzwpf
收藏 IP: .*| 热度|

2 雷栗 傅蕴德

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-2 17:26

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部