欢迎光临散文网 会员登陆 & 注册

跟着Nature学画图~R语言ggtree展示进化树并添加图片注释~欢迎关注公众

2023-01-12 11:23 作者:薛采爱吃鱼香肉丝  | 我要投稿

1.首先得有一个生成好的进化树文件-nwk格式

up根据图片自己模拟了树文件(强啊!!!)

从树文件——nwk文件反推,各数字代表含义

2. ggtree可视化进化树

2.1 安装ggtree包

借助于BiocManager::install("ggtree")
llibrary(ggtree)
tree<-read.tree("nature/nature_tree_1.nwk")#读取进化树

2.2 绘制简单的树

  • ggtree(tree)+geom_tiplab()

2.3 图形超出边界的情况xlim()

theme_tree2() 显示横轴的范围

  • ggtree(tree)+geom_tiplab()+xlim()

#改横轴的值范围(NA,4.5 ) 宽阔不少

2.4 改变树形的线条粗细tree后面

  • ggtree(tree,size=2)+geom_tiplab()+xlim()

直接在ggtree(tree,size=2)

2.5 修改标签label到树的距离

参数:offset=

  • ggtree(tree,size=2)+geom_tiplab(offset=1)+xlim(NA,4.5)

up尝试了很多次才选择了0.05这个数值比较完美,自己做的话也需要多次尝试找到适合自己的树的距离

  • ggtree(tree,size=2)+geom_tiplab(offset=0.05)+xlim(NA,4.5)

2.6 调整标签——物种名的字体斜体和去掉下划线_

参数:font=

  • ggtree(tree,size=2)+geom_tiplab(offset=0.05,font=“italic”)+xlim(NA,4.5)

思路:替换,将下划线替换成空格

使用stringr包,str_place()里面的参数分别是:替换前内容A,需要替换的细节b,替换的那个东西c(将A中的b替换成c)===将标签中的下划线替换成空格

  • library(stringr)
  • str_place("a_b","_"," ")
  • aes(label=str_place(label,"_"," "))
  • ggtree(tree)+geom_tiplab(offset = 3,font="italic",aes(label=str_replace(label,"_"," ")))+ xlim(NA,400)

2.7 在末端添加图片

注意:

图片需放在进化树目录下

图片名需和label的名字一样

函数:image参数

还是一个映射aes的思想:将目录里的图片一一粘贴paste到树上标签旁边(给标签加图片,所以处理还是在geom_tiplab()),

还需要调整图片距离末端的远近:使用offset()或者使用PS/PDF编辑器直接挪动修改距离

  • +geom_tiplab(aes(image=paste0("nature/",label,"png")),geom="image",offset=1.25,size=0.2)


  • PDF编辑器修改距离和大小



与论文里的图一模一样了~优秀的小明老师







跟着Nature学画图~R语言ggtree展示进化树并添加图片注释~欢迎关注公众的评论 (共 条)

分享到微博请遵守国家法律