首页

你的位置:爽?好舒服?好紧H视频 > 首页 >

ggtree:tree之神器

发布日期:2025-12-24 10:49    点击次数:181

如若生物信息只学习一个R包,那一定是ggplot2。

如若ggplot2里只可选定一种,那一定是ggtree。

在生物信息学限制,进化树是推敲物种之间干系的进攻器具,是咱们分析使命中一定不行枯竭的一环,而ggtree即是一款绘图tree的大大大神器。

这款由可视化大神余晖创诠释研发的R神器,可谓是生物信息研发东谈主员东谈主手一份。

可是可惜的是,ggtree当今是全代码操作,关于敕令行操作不熟练的诠释使用起来较为贫瘠。为了便捷全国的使用,特将笔者我方梳理的ggtree的使用纪录共享下~

一、ggtree的装置(仅需一次)

装置 ggtree前先确保您仍是装置了 R 讲话和 RStudio。接下来在 R 竣事台中输入以下代码以装置 `ggtree` 偏捏不息依赖包:

install.packages("BiocManager")BiocManager::install("ggtree")# install.packages("treeio")

二、读入文献

 library("ggtree") library("treeio") library("dplyr")# 读入tree文献 tree<-read.newick(nwkfile,node.label="label") # 读入列表文献(可用于后续分组、标志热沈等) meta<-read.delim(info,header=TRUE)

这里再啰嗦两句,阐明一下这里读入的nwk文献是啥?nwk也即是Newick时期,是一种最常用于暗示进化树(系统发育树)的文献时期。同期亦然mega、fasttree等多种构树软件的输出文献时期。

nwk文献示例:

((A:0.1, B:0.2):0.3, C:0.4);

这即是一个简便的Newick时期的树,暗示有一个四个节点的树,其中A和B是子节点,C是另一个子节点,且各个分支具有特定的长度。

三、绘图tree(最关键的来了)

最简便,最平直,但是不好意思瞻念的tree

ggtree(tree)

图片

为了好意思化,咱们不错把柄需要将其他不息数据(如物种分组信息)脱色到树数据框中。

# 读入列表文献(可用于后续分组、标志热沈等)meta<-read.delim(info,header=TRUE)tree_df <- fortify(tree)  # 脱色tree和分组信息  tree_df <- tree_df %>%    left_join(meta, by = c("label" = "ID"))  # 绘图tree,并添加分组热沈p1 <- ggtree(tree_df,layout="roundrect",branch.length="none") +      geom_tippoint(aes(label = label, color = Group), size = 3) +      theme(legend.position = "right") p1 

图片

这么看,是不是自得了许多?分组更为显著明了一些啦。

具体解释下ggtree示例中几个小参数的具体含义:

geom_tippoint:用于在叶子节点(tip)上添加点,频繁用于标示具体的样本或物种。不错通过size,color的具体成立来作念节点的调遣。

scale_color_manual: 用于自界说热沈的映射。当你念念要为不同的组或分类指定特定的热沈时很有用。

theme:用于自界说图形的举座主题和形势,比如字体、布景、网格线等。不错调遣图形的好意思不雅性和可读性。

annotate:用于在图形上添加沉稳,如文本、箭头或标志。这不错匡助解释图上的某些特征或数据。

layout 指定树神情的布局政策,比如树的分支见地、叶节点的位置等。

除示例中的roundrect外,常用的另外两种布局类型:

"rectangular": 直角布局,默许的基本布局,树呈现为高下或傍边结构。

"circular": 圆形布局,与径向布局近似,但叶节点沿圆的周围均匀区别。

四、遵循保存

这里同ggplot的其他包,齐是用ggsave敕令完奏遵循的保存。一般提议保存为pdf时期,便捷后续修改。

ggsave("tree_plot.pdf", plot = p1, width = 10, height = 6)

五、批量初始

说真话如若是单个tree的绘图和好意思化,我并不提议用ggtree,网页版的iTol是更好的选定(步步图解iTol-给进化树作念个好意思颜)

ggtree的优点是更适于批量化土产货初始。比如咱们有一百个文献齐需要作念tree,咱们不错如下操作

for (file in file_list) {  # 轮回读取树文献    tree <- read.tree(file)  # 从文献名索要物种名  # 创设立数据框    tree_df <- fortify(tree)  # 脱色分组信息   tree_df <- tree_df %>%      left_join(meta, by = c("label" = "ID"))# 绘图树    p1 <- ggtree(tree_df, layout = "roundrect") +       geom_tree() +      geom_tippoint(aes(label = label, color = Group), size = 1) +      theme(legend.position = "none") +       annotate("text", x = max(tree$edge.length) * 0.5, y = -3,                label = file, size = 2, vjust = -1)  # 保存每个图    ggsave(paste0(species_name, ".pdf"), plot = p1, width =11, height = 5)  # 将图添加到列表中    plots[[length(plots) + 1]] <- p1  }  # 使用cowplot将图脱色,每行袒露5个图  combined_plot <- plot_grid(plotlist = plots, ncol = 5)  # 保存脱色后的图形  ggsave("combined_tree_plot.pdf", plot = combined_plot)

此时,咱们不仅得到了100个pdf时期的tree图,还得到了一张整图(涵盖了所有这个词用率)。这是iTol透顶作念不了的事情。

虽然,ggtree还有更多其他的优点,比如,有更大的变化,补助多样变形。就像乐高通常,ggtree其实莫得固定的套路,补助每个玩家我方的创造。

其官方教程如下:

https://yulab-smu.top/treedata-book/

临了再次感叹一下,学习真不是一件容易的事情。

长按温雅

风作伴,梦作念马,追啊迎啊最强烈的年华

-幼年的你啊

公众堪称呼:微微悦明

科学的乐趣是赢得新学问的振作~

高通量测序、大数据病原微生物检测和监测健康大数据行业资讯纪录与共享

本站仅提供存储处事,所有这个词践诺均由用户发布,如发现存害或侵权践诺,请点击举报。

下一篇:没有了

Powered by 爽?好舒服?好紧H视频 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024