前几天我们构建了进化树,下一步就是对进化树进行可视化或者编辑注释。对进化树进行可视化的工具有很多,比如iTOL, Evolview等在线工具。但是不得不说,ggtree是一个非常强大的R包,完美继承了ggplot的图层加注释的模式。


基本可视化的内容就不做详细介绍了,可以看文末推荐的博客。主要介绍一下常用的注释语法。

  • 如何绘制带有支持率的进化树

##tree view#############################安装###if (!requireNamespace("BiocManager", quietly = TRUE))#install.packages("BiocManager")#BiocManager::install("ggtree")library(ggplot2)library(ggtree) library(treeio)##读取newick格式树文件tree1 "RAxML_bipartitions.result",node.label = ##基础绘图,默认布局是rectangular,即常见的phylogram树状图ggtree(tree, size=1.0) +      xlim(0,0.45) +                         ##x轴的范围  geom_text2(aes(label=support,hjust=-0.1),size=3)+   ##添加注释信息--支持率  geom_treescale() + theme_tree2()+                       theme(legend.position = "right")

  • 如果不需要展示枝长/绘制其他类型的树/绘制节点的大小,颜色等

##不展示枝长ggtree(tree, layout="rectangular",branch.length = "none") +#geom_tiplab(size=3, hjust=-0.1) +        ##设置末端tip标签,hjust调整左右距离geom_tippoint(size=1, color="firebrick") +   ##设置末端tip点的大小及颜色geom_nodepoint(color="orange", alpha=1/4, size=2) +   ##设置中间节点node的大小及颜色geom_text2(aes(label=support,hjust=-0.1),size=3)+   theme(legend.position = "right")

##绘制圈图ggtree(tree, layout="fan",branch.length = "none") +#geom_tiplab2(size=3, hjust=-0.2) +        ##设置末端tip标签,hjust调整距离  geom_tippoint(size=1, color="firebrick") +   ##设置末端tip点的大小及颜色  geom_nodepoint(color="orange", alpha=1/4, size=2) +   ##设置中间节点node的大小及颜色  geom_text2(aes(label=support,hjust=-0.1),size=3)+     theme(legend.position = "right")##layout其他选项ggtree(tree, layout="slanted") ggtree(tree, layout="circular") ggtree(tree, layout="circular",branch.length = "none") ggtree(tree, layout="fan", open.angle=160) ggtree(tree, layout="equal_angle") ggtree(tree, layout="daylight") ggtree(tree, layout="daylight",branch.length = "none")

  • 很多情况下,我们会想要修改末端分类单元的信息,比如说,可能想要加上物种名,或者采样地点,此时可以借助软件包,这个真的好用!

需要准备好样本注释文本sample.info.txt

##修改末端标签,即样本名称tr "RAxML_bipartitions.result",node.label = map "sample.info.txt", header = T)> head(map)   samples      rename       species   places1 010502-1  Detian02_1  B.hekouensis   Detian2 010502-3  Detian02_3  B.hekouensis   Detian3  0923-S1 Jianfeng_S1 B.hainanensis Jianfeng4  0923-S2 Jianfeng_S2 B.hainanensis Jianfeng5  0923-S3 Jianfeng_S3 B.hainanensis Jianfeng6  0923-S4 Jianfeng_S4  B.subcordata Jianfeng#创建一个tip lable的数据框,列名为samplesdf tr@phylo$tip.label)    d map, by =dtree1 tr) %  xlim(NA, 0.45) +  geom_tiplab(aes(label=paste0('italic(', rename, ')~bolditalic(', species, ')')), size=3, parse=T)+  geom_text2(aes(label=support,hjust=-0.1),size=3)+  geom_treescale() + theme_tree2()+  theme(legend.position = "right")tree1

(我就不放图了)

  • 突出某一节点或者分支

#1 添加bootstrap值区间和节点标签p1 0.  geom_point2(aes(subset=!isTip),fill="red",shape=21,size=1.5) +  scale_color_gradient(high='red', low='darkgreen') + theme(legend.position='right')p1#2: 给指定节点的clade添加标签p1 + geom_cladelabel(node=74,label="A",barsize = 1,color="blue")+ geom_cladelabel(node=97,label="B",barsize = 1,color="orange")+ geom_cladelabel(node=93,label="C",barsize = 1,color="green")#3:高亮指定节点所对应的区域p1 + geom_hilight(node=74,fill = "blue",alpha = 0.6)+ geom_hilight(node=97,fill = "orange",alpha = 0.6) + geom_hilight(node=93,fill = "green",alpha = 0.6)#4:在两个节点之间添加线段和标记p1 + geom_strip(100,93,barsize = 2,color="red",label="B+C")

  • 折叠某一分支

#5:节点折叠node 105collapse(p1, node, 'max') %>% expand(node)collapse(p1, node, 'min') %>% expand(node)collapse(p1, node, 'mixed') %>% expand(node)#多个节点一起collapse(p1, 105, 'max', fill='steelblue', alpha=.4) %>%   collapse(75, 'max', fill='firebrick', color='blue')scaleClade(p1, 105, .2) %>% collapse(75, 'max', fill="darkgreen")

因为中间节点加了形状和颜色,整体有点杂乱,也就不修改了。

  • 最后一个比较花的,根据分组信息来添加颜色

##添加物种分组信息tree "RAxML_bipartitions.result",node.label = map "sample.info.txt", header = T, row.names = groupInfo split(row.names(tree2 ggtree(tree2, layout="fan",branch.length="none", aes(color=group)) +   #geom_tiplab(size=3, hjust=-0.05) +   geom_text2(aes(label=support,hjust=-0.5),size=2.5)  theme(legend.position = "right")dev.off()

我比较常用的差不多就这些了,因为实验原因,省略了tip名称和图例。

更多详细请查看:

作者余光创博士的博客

https://cosx.org/2015/11/to-achieve-the-visualization-and-annotation-of-evolutionary-tree-using-ggtree

https://guangchuangyu.github.io/2018/04/rename-phylogeny-tip-labels-in-treeio/

其他博主的介绍

https://www.dazhuanlan.com/2020/04/30/5eaa3f6c22804/

http://blog.sciencenet.cn/home.php?mod=space&uid=255662&do=blog&id=969228

https://www.codenong.com/js9fda2b82cedb/

figtree如何编辑进化树_进化树的注释:ggtree相关推荐

  1. figtree如何编辑进化树_iTOL快速绘制颜值最高的进化树

    iTOL简介 大家在看高分文章时,总会惊叹于,为什么人家能做出那么好看而且高大上的系统发育树,而且好看的图也能直接提升文章的档次,冲击高分文章.人家的树不管是从配色还是各种注释信息都让人无可挑剔,而你 ...

  2. phylip软件_进化树专题(五)| 密码子分区软件介绍

    核苷酸序列在不同位点有不同的突变速率.核苷酸序列又分为编码基因和非编码基因.编码基因中,密码子第一第二位往往较为稳定,第三位往往变异速率较高.非编码基因因为受到的选择压力一般较小,所以往往可保留更多突 ...

  3. suprahex画进化树_安装使用pyclone进行克隆演化推断

    pyclone介绍 可以根据多个样品突变的allele frequency 和 copy number,推断出有该突变的细胞克隆所占的比例(cellular prevalence)在不同样品间的变化. ...

  4. python 进化树_【ROSALIND】【练Python,学生信】48 Newick格式与进化树

    题目: Newick格式与进化树结点间的距离(Distances in Trees) Given: A collection of n trees (n≤40) in Newick format, w ...

  5. java计算器程序加编辑帮助_这里有个JAVA计算器的小程序,希望帮忙加下注释,少许修改...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 希望能帮忙注释,按钮的大小也不一样,排版很不整齐,小数点部分计算总是出错,我认为是输入数据为String型的原因,但不知道怎么修改..如能就这两点作出改动 ...

  6. excel自定义函数的注释_打印Excel注释的自定义列表

    excel自定义函数的注释 If you've added comments to an Excel worksheet, you have a couple of built-in options ...

  7. sublimetext16 进制编辑模式_一个21岁在读本科生的开源编辑器火了!

    点击蓝色字免费订阅,每天收到这样的好信息 前言:最近有不少粉丝关注本公众号.并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧.大家想买什 ...

  8. mysql搞笑代码_搞笑代码注释,佛祖保佑 永无BUG

    佛祖保佑 永无BUG 上传图片即可生成字符画,效果还不错, 神注释大全 //_ooOoo_//o8888888o//88" . "88//(| -_- |)//O\ = /O//_ ...

  9. word文档基本编辑功能_【读者培训】Word在编辑长文档时的基本应用

    周 五下 午 16:00 - 17:00 图 书 馆 305 报 告 厅 Word是目前应用广泛的文字处理软件,功能十分强大.其中一些用于编辑长文档的功能具有很高的实用价值.试想一下,在编辑一些长达几 ...

最新文章

  1. SQL性能优化没有那么神秘
  2. 2021夏季每日一题 【week6 完结】
  3. skimage直方图如何保存_LightGBM的参数详解以及如何调优
  4. 从职场新人到企业高管,她是怎么做到的?
  5. 无法启动mysqll1006_CentOS7下MySQL服务启动失败原因及解决方法
  6. csp认证多少分通过_一级结构工程师考试难不难?多少分通过?
  7. 非寻常实习记Ⅱ:改变中的快乐成长
  8. python变量和数据类型_Python变量和数据类型简介
  9. linux bootloader启动流程,技术|Linux 的启动流程详解
  10. iis 缓存 静态文件_强制更新IIS中的缓存JavaScript文件
  11. 查快递,如何按发货城市筛选快递单号
  12. 全国计算机等级考试ms office,全国计算机等级考试一级ms office
  13. 1134:猴子与香蕉 dp
  14. particle system 脚本修改粒子颜色
  15. 大学生实习就业调研报告:8个共性问题与企业CTO/CEO/HR管理者探讨
  16. 什么是天线的方向图?
  17. 如何解开和反编译思科cisco的交换机固件
  18. python批量提取汇总excel指定列数据(一列)
  19. linux arm 汇编学习,如何在LINUX平台上学习GNU ARM汇编
  20. 判断两个有符号数相乘是否会溢出

热门文章

  1. powerpc和arm_为什么我喜欢ARM和PowerPC
  2. 开源供应链金融_成为开源供应链
  3. boost采取什么驱动电路_当我们只是采取积极的意愿时会发生什么?
  4. symfony框架_为什么我们放弃传统的Symfony框架
  5. (34)Gulp 构建HTML页面文件
  6. 2万 | 北京做Java开发月薪 2 万,so easy!
  7. JSON语法之JSON字符串
  8. 二十.激光、视觉和惯导LVIO-SLAM框架学习之相机内参标定
  9. oracle copy database,oracle 11g duplicate from active database 复制数据库(二)
  10. auto.js停止所有线程_多线程快速入门(二)及面试题