前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言进化树分析及可视化

R语言进化树分析及可视化

作者头像
一粒沙
发布2019-07-31 10:57:26
5.2K0
发布2019-07-31 10:57:26
举报
文章被收录于专栏:R语言交流中心R语言交流中心

生物进化树基本理论指出所有的生物都可以追溯到共同的祖先,生物的产生和分化就像树一样地生长、分叉,以树的形式来表示生物之间的进化关系是非常自然的事。可以用树中的各个分支点代表一类生物起源的相对时间,两个分支点靠得越近,则对应的两群生物进化关系越密切。其中分支又包括直系同源和旁系同源具体含义如下:

直系同源(orthologs): 同源的基因是由于共同的祖先基因进化而产生的;旁系同源(paralogs): 同源的基因是由于基因复制产生的。(源自Fitch, W.M.)

接下来我们看下进化树中的术语:

我看了一些对单系类群,并系类群以及多系(复系)类群的解释,都快看晕了。我还是用我的语言总结一下吧。比如我们人类只有一层后代那就是人,没有其他的物种这就是单系类群;那么如果人类同时分支出了人、智人、机器人等等但是有一个共同的祖先人类,那么这些就组成了并系类群;那如果猿类中的猩猩算为和人同源那么他们就组成了复系类群。还有其他的内类群、外类群、姐妹群,我们就不再去赘述了。

以上这些都可以反映在进化树中,进化树又分为无根树和有根树(外群可以用来确定树根)。其拓扑数目的计算如下:

图中的m指的类群的数目。

进化树的计算方法有很多包括了Fitch-Margoliash (FM)法、Neighbors-Joining (NJ/邻接)法、Neighbors Relation (邻居关系)法、Unweighted Pair Group (UPGMA)法。

我们今天利用R语言自带的聚类函数进行进化树的构建,同时利用R包ape实现进化树的可视化展示。

我们利用R自带的数据集mtcars构建树;

hc =hclust(dist(mtcars))#其中dist是密度处理函数,这个是需要的加进去的。

默认的树图绘制很简单直接plot(hc)如下图:

接下来我们介绍下ape这个包:

其主要的画图函数主要基于as.phylo类的plot函数。

绘图实例:

plot(as.phylo(hc), type = "cladogram", cex = 0.9,label.offset = 1)

plot(as.phylo(hc), type = "unrooted")

plot(as.phylo(hc), type = "fan")

plot(as.phylo(hc), type = "radial")

是不是觉得有点太素了,我们可以通过调整plot中的参数控制所有的线颜色以及文字颜色。

我们截取进化树的前五代进行一个彩色的实例演示如下:

clus5 = cutree(hc, 5)

mypal = c("#556270","#4ECDC4", "#1B676B", "#FF6B6B","#C44D58")

plot(as.phylo(hc), type = "fan",tip.color = mypal[clus5], label.offset = 1, cex = log(mtcars$mpg, 10), col ="red")

总结,如果大家想让自己的图更加炫酷,那么就需要动点脑子把参数改的完美点,当然你的图自然就完美了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档