# R语言中怎么用ggtree画圆形的树状图展示聚类分析的结果 ## 引言 在生物信息学和数据可视化领域,树状图(Dendrogram)是展示层次聚类结果的经典方法。传统的树状图通常以矩形布局呈现,但在某些场景下(如展示进化关系或大规模数据时),圆形布局(Circular Layout)能更有效地利用空间并增强视觉表现力。本文将详细介绍如何使用R语言中的`ggtree`包绘制圆形树状图来展示聚类分析结果。 --- ## 一、环境准备 ### 1.1 安装必要R包 首先需要安装并加载以下R包: ```r install.packages(c("ggtree", "ape", "tidyverse", "stats")) library(ggtree) library(ape) # 用于树结构操作 library(tidyverse) # 数据处理 library(stats) # 聚类分析 使用R内置数据集USArrests进行层次聚类:
data("USArrests") hc <- hclust(dist(USArrests), method = "average") # 平均链接聚类 ggtree需要phylo格式的树,可通过as.phylo()转换:
tree <- as.phylo(hc) 基础可视化:
ggtree(tree) + geom_tiplab() + theme_tree() 通过layout参数指定布局:
ggtree(tree, layout = "circular") + geom_tiplab() + theme_tree() ggtree(tree, layout = "circular") + geom_tiplab(offset = 0.1, hjust = 0.5) + # 调整标签位置 xlim(-10, NA) # 控制半径范围 ggtree(tree, layout = "circular", aes(color = branch.length)) + geom_tiplab() + scale_color_continuous(low = "blue", high = "red") + theme(legend.position = "right") 结合gheatmap展示关联数据:
p <- ggtree(tree, layout = "circular") gheatmap(p, USArrests, offset = 5, width = 1.5) + scale_fill_viridis_c() 手动定义簇并高亮显示:
clusters <- cutree(hc, k = 3) p <- ggtree(tree, layout = "circular") %<+% data.frame(label = names(clusters), cluster = clusters) p + geom_hilight(node = which(clusters == 1), fill = "red") + geom_hilight(node = which(clusters == 2), fill = "blue") + geom_tippoint(aes(color = factor(cluster)), size = 3) 将矩形树转换为圆形:
p <- ggtree(tree) + geom_tiplab() p + coord_polar(theta = "y") gene_tree <- read.tree("gene_tree.nwk") # 假设有Newick格式的树文件 ggtree(gene_tree, layout = "circular") + geom_tiplab(aes(subset = grepl("GeneA", label)), color = "red") + geom_cladelabel(node = 45, label = "Important Clade", offset = 1.5) geom_tiplab2()自动调整ggtree(tree, layout = "circular") + geom_tiplab(angle = function(x) ifelse(x < 180, x - 90, x + 90)) layout = "fan"简化布局ggtree(tree, layout = "circular") + geom_tiplab(data = . %>% filter(isTip & branch.length > 1)) 本文详细介绍了如何利用ggtree包实现圆形树状图的绘制,包括: 1. 层次聚类结果转换 2. 基础圆形布局实现 3. 颜色、标签、热图等高级定制 4. 实际生物信息学案例应用
通过灵活调整参数,用户可以创建出既美观又富含信息的可视化结果。ggtree的语法与ggplot2高度一致,使得可视化过程更加直观高效。
”`
注:实际使用时需根据具体数据调整参数,如分支颜色阈值、标签偏移量等。对于超大树(>1000个节点),建议先使用ape::collapse.nodes()简化结构。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。