注意了!注意了!三分钟手把手教你用ape包画出漂亮美观的系统发育树!






注意了!注意了!三分钟手把手教你用ape包画出漂亮美观的系统发育树!

小果  生信果  2024-04-25 19:00:44


同学们一定都知道,系统发育树是生物学研究中非常重要的工具,在生物学研究中具有广泛的应用价值,它可以帮助我们研究物种的进化历程、推测共同祖先和演化路径。那我们怎样自己动手画出像上图一样美观的系统发育树呢?今天小果将向大家介绍一个功能强大的R包——ape包,它不仅为我们提供了非常多用于构建、比较和可视化系统发育树的函数和方法,同时还支持绘制不同类型的系统发育树,如进化树、无根树和圆形树等,以满足不同研究需求。小果将带领大家学习从ape包的安装到绘制不同类型系统发育树,再到自定义叶节点属性的全部过程,通过本篇对ape的学习,你就能像小果一样,动动手,三分钟画出漂亮美观的系统发育树。通过对ape包的学习,我们可以更好地理解和解释系统发育树的结果,进一步探索和应用系统发育树在生物学研究中的重要性和价值。接下来,就让小果带领大家正式开启对ape包的学习之旅吧!             

本次介绍的R包在服务器可以更加方便运行,如果没有自己的服务器欢迎联系我们使用服务器租赁~   



公众号后台回复“111”

领取本篇代码、基因集或示例数据等文件

文件编号:240423

需要租赁服务器的小伙伴可以扫码添加小果,此外小果还提供生信分析,思路设计,文献复现等,有需要的小伙伴欢迎来撩~

ape包介绍
ape包(Analysis of Phylogenetics and Evolution)是一个在R语言中用于系统发育分析的强大工具包。ape包提供了丰富的函数和方法,用于构建、操作和可视化系统发育树。ape包支持多种系统发育树的构建方法,包括最大似然法、贝叶斯方法和距离法等。同时,ape包还提供了丰富的绘图功能,用户可以根据需要绘制不同类型的系统发育树,如进化树、无根树和圆形树等。通过ape包,用户可以进行系统发育树的构建和分析,探索物种之间的演化历程,为生物学研究提供重要的信息和见解。
          
ape包安装
需要R语言版本为4.3,在控制台中输入以下命令:
if (!require("BiocManager", quietly = TRUE))    install.packages("ape")BiocManager::install("ape") # 在BiocManager环境下安装ape查看是否安装成功    packageVersion("ape") # 查看DNAcopy版本
显示为5.7.1版本,则表示安装成功。         
ape绘制系统发育树示例
绘制树形结构:
ape中的图形函数使用的是graphics程序包,ape遵守graphics的相关参数要求,所以熟悉R中图形的用户在用ape绘制系统发育树时应该相对容易掌握。简单起见,我们用灵长类动物的3个属建立一棵小树,我们将在本文的几个例子中使用:
library(ape) # 载入ape包mytr <- read.tree(text = "((Pan:5,Homo:5):2,Gorilla:7);") # 把示例文件转化为树类紧接着,我们需要建立一个函数,用来在树的周围显示坐标边框,并且把x和y轴都设置为绿色:foo <- function() {col <- "green"for (i in 1:2)axis(i, col = col, col.ticks = col, col.axis = col, las = 1)box(lty = "19")} # 创建函数用来绘制坐标框    接下来,我们以四种不同的方式对树进行绘图,并都调用foo函数,我们可以使用layout()函数来划定绘图区域,在一个大图上同时绘制四个系统发育树来更直观的展示ape包的功能。layout(matrix(1:4, 2, 2, byrow = TRUE)) # 划分绘图区域plot(mytr); foo() # 默认参数绘制系统发育树plot(mytr, "c", FALSE); foo() #绘制进化系统发育树plot(mytr, "u"); foo() # 绘制无根系统发育树par(xpd = TRUE) # 允许图形超过边框plot(mytr, "f"); foo() # 绘制圆形系统发育树box("outer") # 外部再绘制一个大边框
运行上述代码,显示结果如图:
   
不同类型的系统发育树各有不同的特点,同学们需要根据自己需要分析的数据特点选择合适类型的系统发育树来绘制。
自定义叶节点类型:
如下图中的文字标注部分,为一个系统发育树中的叶子节点(tip),接下来让我们介绍如何定义叶子节点的类型。
首先查看对象类型
class(mytr) # 查看“mytr”对象的类型。
可知,mytr是phylo类的对象,phylo类的绘图方法非常接近R标准的做法,它有比较多的参数,可以使用以下代码查看plot函数用来绘制phylo类的相关参数。
args(plot.phylo) # 查看plot.phylo相关参数
   
第一个参数( x )是强制的要求的,是要画的树,不需要赋值,其他参数不是强制要求,因此可以直接用命令plot ( tr )来绘制默认参数的系统发育树。type = “phylogram”,表示绘制系统发育树的类型,例如”f”(fan,圆形),“u”(unroot,无根),use.edge.length表示是根据节点关系远近来确定树边的长度,默认为TRUE。
参数可大致分为三类:
通常,一些数据与叶节点相关,例如地区,数量。font, tip.color, 和cex这三个参数可以分别改变字体、颜色或提示标签的大小,也可以把其中的两者组合来显示需要的信息。这3个参数定义方式为:给定任意长度的向量,如果长度小于叶节点树,那么这个向量就会用来循环赋值给叶节点,这使得只给定一个单一的值,就可以改变所有的叶节点。
geo <- factor(c("Africa", "World", "Africa")) # 把地理分布赋值到变量mycol <- c("blue", "red")[geo] # 根据geo变量添加颜色plot(mytr, tip.color = mycol) # 画出指定颜色的系统发育树
 
绘制结果如图:
其中Africa被指定为blue(蓝色),World被指定为red(红色)。
指定颜色的向量必须与叶节点的向量具有相同的出现顺序。对颜色的定义还可以与字体大小结合起来,如下:
par(xpd = TRUE) # 允许图形超过边框plot(mytr, tip.color = mycol, cex = c(1, 1, 1.5)) # 指定Gorilla为1.5倍大小
结果如下图:
对字体类型的定义,与颜色和字体大小定义类似,这里就不再赘述,通过对叶节点的性质修改,我们可以在系统发育树中展示更多的信息,让数据结果更加直观。    
以上就是对ape包的全部介绍了,我们学习了如何使用ape包在R语言根据不同的需求,通过设置参数来绘制不同类型的系统发育树,包括进化树、无根树和圆形树等。我们还学习了如何自定义叶节点的类型,通过改变字体、颜色和大小等属性,以便在系统发育树中展示更多的信息。如果同学们对系统发育树的绘制和分析感兴趣,不妨自己尝试使用ape包进行实际操作,通过实践和探索,你将更加熟悉ape包的功能和使用方法,相信同学们多加练习,一定可以自己动手画出漂亮直观的Nature级美图!!!
          
同学们如果觉得自己写代码麻烦,可以体验一下我们的云生信小工具,只需输入数据,即可轻松生成所需图表。立即访问云生信
http://www.biocloudservice.com/home.html),开启便捷的生信之旅!
 

小果还提供思路设计、定制生信分析、文献思路复现;有需要的小伙伴欢迎直接扫码咨询小果,竭诚为您的科研助力!


定制生信分析

服务器租赁

扫码咨询小果



往期回顾

01

1024G存储的生信服务器,两人成团,1人免单!

02

单个数据库用腻了?多数据库“组合拳”带你打开免疫浸润新思路!

03

孟德尔随机化的准备工作,GWAS数据的网站下载方法

04

跟着小果学复现-手把手带你拿下IF=46.9Nature 级别的主成分分析(PCA)图!!