figtree如何编辑进化树_进化树的注释:ggtree
前几天我们构建了进化树,下一步就是对进化树进行可视化或者编辑注释。对进化树进行可视化的工具有很多,比如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相关推荐
- figtree如何编辑进化树_iTOL快速绘制颜值最高的进化树
iTOL简介 大家在看高分文章时,总会惊叹于,为什么人家能做出那么好看而且高大上的系统发育树,而且好看的图也能直接提升文章的档次,冲击高分文章.人家的树不管是从配色还是各种注释信息都让人无可挑剔,而你 ...
- phylip软件_进化树专题(五)| 密码子分区软件介绍
核苷酸序列在不同位点有不同的突变速率.核苷酸序列又分为编码基因和非编码基因.编码基因中,密码子第一第二位往往较为稳定,第三位往往变异速率较高.非编码基因因为受到的选择压力一般较小,所以往往可保留更多突 ...
- suprahex画进化树_安装使用pyclone进行克隆演化推断
pyclone介绍 可以根据多个样品突变的allele frequency 和 copy number,推断出有该突变的细胞克隆所占的比例(cellular prevalence)在不同样品间的变化. ...
- python 进化树_【ROSALIND】【练Python,学生信】48 Newick格式与进化树
题目: Newick格式与进化树结点间的距离(Distances in Trees) Given: A collection of n trees (n≤40) in Newick format, w ...
- java计算器程序加编辑帮助_这里有个JAVA计算器的小程序,希望帮忙加下注释,少许修改...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 希望能帮忙注释,按钮的大小也不一样,排版很不整齐,小数点部分计算总是出错,我认为是输入数据为String型的原因,但不知道怎么修改..如能就这两点作出改动 ...
- excel自定义函数的注释_打印Excel注释的自定义列表
excel自定义函数的注释 If you've added comments to an Excel worksheet, you have a couple of built-in options ...
- sublimetext16 进制编辑模式_一个21岁在读本科生的开源编辑器火了!
点击蓝色字免费订阅,每天收到这样的好信息 前言:最近有不少粉丝关注本公众号.并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧.大家想买什 ...
- mysql搞笑代码_搞笑代码注释,佛祖保佑 永无BUG
佛祖保佑 永无BUG 上传图片即可生成字符画,效果还不错, 神注释大全 //_ooOoo_//o8888888o//88" . "88//(| -_- |)//O\ = /O//_ ...
- word文档基本编辑功能_【读者培训】Word在编辑长文档时的基本应用
周 五下 午 16:00 - 17:00 图 书 馆 305 报 告 厅 Word是目前应用广泛的文字处理软件,功能十分强大.其中一些用于编辑长文档的功能具有很高的实用价值.试想一下,在编辑一些长达几 ...
最新文章
- SQL性能优化没有那么神秘
- 2021夏季每日一题 【week6 完结】
- skimage直方图如何保存_LightGBM的参数详解以及如何调优
- 从职场新人到企业高管,她是怎么做到的?
- 无法启动mysqll1006_CentOS7下MySQL服务启动失败原因及解决方法
- csp认证多少分通过_一级结构工程师考试难不难?多少分通过?
- 非寻常实习记Ⅱ:改变中的快乐成长
- python变量和数据类型_Python变量和数据类型简介
- linux bootloader启动流程,技术|Linux 的启动流程详解
- iis 缓存 静态文件_强制更新IIS中的缓存JavaScript文件
- 查快递,如何按发货城市筛选快递单号
- 全国计算机等级考试ms office,全国计算机等级考试一级ms office
- 1134:猴子与香蕉 dp
- particle system 脚本修改粒子颜色
- 大学生实习就业调研报告:8个共性问题与企业CTO/CEO/HR管理者探讨
- 什么是天线的方向图?
- 如何解开和反编译思科cisco的交换机固件
- python批量提取汇总excel指定列数据(一列)
- linux arm 汇编学习,如何在LINUX平台上学习GNU ARM汇编
- 判断两个有符号数相乘是否会溢出
热门文章
- powerpc和arm_为什么我喜欢ARM和PowerPC
- 开源供应链金融_成为开源供应链
- boost采取什么驱动电路_当我们只是采取积极的意愿时会发生什么?
- symfony框架_为什么我们放弃传统的Symfony框架
- (34)Gulp 构建HTML页面文件
- 2万 | 北京做Java开发月薪 2 万,so easy!
- JSON语法之JSON字符串
- 二十.激光、视觉和惯导LVIO-SLAM框架学习之相机内参标定
- oracle copy database,oracle 11g duplicate from active database 复制数据库(二)
- auto.js停止所有线程_多线程快速入门(二)及面试题