【R语言】R包-探索ggtree进化树美化

文章目录

    • R包-探索ggtree进化树美化
    • 分析流程
    • [1. 关于包的下载](#1. 关于包的下载)
    • [2. 绘制一个基本的进化树图](#2. 绘制一个基本的进化树图)
    • [3. 添加样本名称](#3. 添加样本名称)
    • [3. 添加节点+节点高亮](#3. 添加节点+节点高亮)
    • [4. 添加分组](#4. 添加分组)
    • 小结

R包-探索ggtree进化树美化

提示:基于nwk文件进行进化树美化,如更换进化树格式,添加分组、节点、遗传距离等

分析流程

1. 关于包的下载

官网ggtree.html

2. 绘制一个基本的进化树图

javascript 复制代码
#下载软件包
BiocManager::install("ggtree")
# 创建模拟数据
library(ggtree)
set.seed(2017-02-16)
tree <- rtree(50)
ggtree(tree)

3. 添加样本名称

javascript 复制代码
ggtree(tree, branch.length = "none", layout = "circular") +
  geom_tiplab()
#branch.length = "none",表示标签对齐;
#layout,设置树型;
#geom_tiplab() 显示分支名称样本名称

3. 添加节点+节点高亮

javascript 复制代码
library(ggtree)
set.seed(2017-02-16)
tree <- rtree(50)
ggtree(tree, branch.length = "none", layout = "circular") +
  geom_tiplab2(size = 5, color = "seagreen") +     # 样本名称字体大小、颜色
  geom_text2(aes(label=node), size = 3, color = "red") +   #加节点
  geom_hilight(node = 59, fill = "orange", alpha = 0.5)   #节点高亮

4. 添加分组

javascript 复制代码
#参数
library(ggtree)
set.seed(1234)
tr=rtree(50)
geom_strip = function(...) geom_cladelabel(label="", barsize=5, align=T, offset=.5, ...)
ggtree(tr) + geom_strip(58, color='red') + geom_strip(84, color='green') + geom_strip(52, color='blue')

#测试 
library(ggtree)
set.seed(2017-02-16)
tree <- rtree(50)

ggtree(tree, branch.length = "none", layout = "circular") +
  geom_tiplab2(size = 3, color = "seagreen") +     # 样本名称字体大小、颜色
  geom_text2(aes(label=node), size = 2, color = "red") +   #加节点
  geom_hilight(node = 59, fill = "orange", alpha = 0.5) +  #节点高亮 node = 59 节点名称
  geom_strip(59, color = "steelblue",
             hjust = "center", 
             angle = 30, 
             extend = 0.2)
 # 其中,geom_tiplab2设置分支名称的标签;
 # geom_text2显示节点名称;geom_hilight 节点高亮;
 # geom_strip对分组进行标注。

小结

基于该包,设置好参数,可以批量优化,比在线网站方便的多,但绘制无根树,一直报错,待探索完分享大家

参考来源
1. 详细说明及示例数据参考:4 Phylogenetic Tree Visualization
2. 参考使用Y叔神包ggtree进行基因家族基因进化树构建
3. 使用R包ggtree进行进化树的绘制与美化

相关推荐
长安第一美人11 小时前
C 语言可变参数(...)实战:从 logger_print 到通用日志函数
c语言·开发语言·嵌入式硬件·日志·工业应用开发
Larry_Yanan11 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
superman超哥11 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
不爱吃糖的程序媛11 小时前
Ascend C开发工具包(asc-devkit)技术解读
c语言·开发语言
bu_shuo11 小时前
MATLAB奔溃记录
开发语言·matlab
你的冰西瓜12 小时前
C++标准模板库(STL)全面解析
开发语言·c++·stl
徐先生 @_@|||12 小时前
(Wheel 格式) Python 的标准分发格式的生成规则规范
开发语言·python
利剑 -~12 小时前
jdk源码解析
java·开发语言
Predestination王瀞潞12 小时前
JDK安装及环境变量配置
java·linux·开发语言
lsx20240612 小时前
Python break 语句详解
开发语言