建树经验

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

mediocrebeing, rodger, lylover, klaus, oldfish, yzwpf

一、引言

开始动笔写这篇短文之前,我问自己,为什么要写这样的文章?写这样的文章有实际的意义吗?我希望能够解决什么样的问题?带着这样的疑惑,我随手在丁香园(DXY)上以关键字“进化 分析 求助”进行了搜索,居然有289篇相关的帖子(2006年9月12日)。而以关键字“进化 分析”和“进化”为关键字搜索,分别找到2,733和7,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氨基酸序列构建的系统发生树,这个进化树能否说明这个新基因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的值>

Linux多线程贝叶斯建树教程,建树经验.doc相关推荐

  1. Linux多线程贝叶斯建树教程,构建系统发育树:贝叶斯法建树

    写在前面:我对建树也是一知半解,这里只是想记录一下自己跟别人学习的建树方法,可能不具有普适性.但毕竟写在公众平台,大家自主参考. 用phylosuite进行.nex文件的准备,用在线建树网站CIPRE ...

  2. 贝叶斯推断方法 —— 从经验知识到推断未知

    贝叶斯推断方法 -- 从经验知识到推断未知 机器学习基础算法python代码实现可参考:zlxy9892/ml_code 1 什么是贝叶斯 ​ 在机器学习领域,通常将监督学习 (supervised ...

  3. R语言的贝叶斯网络模型教程

    在现代的生态.环境以及地学研究中,变量和变量间的因果关系推断占据了非常重要的地位.在实践中,变量间的因果关系研究往往求助于昂贵的实验,但所得结果又经常与天然环境中的实际因果联系相差甚远.统计学方法是研 ...

  4. Netica用于构建贝叶斯网络教程

    最近在尝试构建贝叶斯网络,找了很多方式,发现用Netica工具是最容易上手的.构建成的贝叶斯网络节点的变量是离散型(连续型在构建的过程中Netica会用区间的形式化为离散) 以下是找到的参考资料: 1 ...

  5. linux是基于什么的软件模式进行发布的,《Linux操作系统与应用项目教程》习题.doc...

    <Linux操作系统与应用项目教程>习题 1.8 练习题 一.填空题 1.GUN的含义是 . 2.Linux一般有3个主要部分: . . . 3.目前被称为纯种的Unix指的就是 以及 这 ...

  6. 机器学习之用Python从零实现贝叶斯分类器

    机器学习之用Python从零实现贝叶斯分类器 2015/02/06 · 系列教程 · 13 评论 · 机器学习 分享到:27 本文由 伯乐在线 - Halal 翻译,toolate 校稿.未经许可,禁 ...

  7. 基于PyMC的贝叶斯建模实战

    即使对于一个非数据科学家来说,贝叶斯统计这个术语也已经很流行了.你可能在大学期间把它作为必修课之一来学习,而没有意识到贝叶斯统计有多么重要.事实上,贝叶斯统计不仅仅是一种特定的方法,甚至是一类方法:它 ...

  8. 基于python的贝叶斯分类算法_Python实现贝叶斯分类器

    患者的年纪,怀孕和血液检查的次数.所有患者都是 21 岁以上(含 21 岁)的女性,所有属 性都是数值型,而且属性的单位各不相同. 每一个记录归属于一个类, 这个类指明以测量时间为止, 患者是否是在 ...

  9. 从头开始实现朴素贝叶斯算法

    一文学会朴素贝叶斯并且从头开始用 Python 实现朴素贝叶斯算法 朴素贝叶斯算法是简单并且有效的算法,而且应该是你尝试解决分类问题的第一个方法. 在这个教程中,你将会学习朴素贝叶斯算法,包括它如何工 ...

最新文章

  1. 从程序员到架构师的最佳技术成长之路
  2. 【cocos2d-x】瓷砖地图(TileMap)基础知识
  3. Jquery 温习,温故而知新,可以为师矣
  4. vue --- cdn导入,一些基本操作
  5. [css] 你有使用过css的writing-mode属性吗?说说它有哪些应用场景?
  6. 三角函数公式【转载】
  7. 卷积神经网络之AlexNet
  8. Jedis 1.0.0 版 源码分析系列3:JedisPool.java
  9. json学习之三:JSONArray的应用
  10. .net上传大文件不成功
  11. qqwry.dat java 乱码_UTF-8使用纯真IP数据库乱码问题
  12. 袋鼠云数智之旅·上海站|探索“十四五”智慧校园新图景
  13. Python 文本转语音
  14. 蓝牙技术|伦茨科技带你了解蓝牙音频
  15. Android系统启动过程-uBoot+Kernel+Android
  16. 计算机硬盘加密的几种方法,对于移动硬盘加密方法 你了解多少种呢?
  17. 2021安防视频监控运维市场回顾和展望
  18. anaconda中的包如何传到pycharm中使用?
  19. 一些实用的产品经理工具网站,助力提升你的专业技能!
  20. SQL Server中事务日志已满的原因以及解决办法

热门文章

  1. 人工智能AI实战100讲(二)-自动驾驶传感器之激光雷达(三)主流车厂激光雷达的选择及布局
  2. 产品认知:你的产品适不适合快速去迭代?
  3. java开发一款坦克大战游戏
  4. 利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单
  5. React之函数中的this指向
  6. 关于换行这个动作,win 和 mac 的实现
  7. 信息的Raid存储方式,更安全的保障,更花钱的保障!
  8. Java属性中指定Json的属性名称(序列化和反序列化)
  9. 左侧固定,右侧自适应的布局方式(新增评论区大佬教的方法)
  10. JavaScript总结(3)