You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ggtree为系统发育树内部节点标注SHaLRT/UFBoot值及设置节点样式

解决ggtree标注IQTree节点支持值及节点样式分类问题

1. 标注内部节点的UFBoot/SHaLRT支持值

IQTree输出的树文件中,node.label已存储UFBoot/SHaLRT格式的支持值,直接调用该字段即可完成标注——你之前报错“标签与节点长度不匹配”,是因为错误使用node作为标签字段,而非node.label。示例代码:

library(ggtree)

# 读取IQTree生成的树文件(替换为你的树文件路径)
tree <- read.tree("treefile.treefile")

# 基础树图(保留你已有的末端上色逻辑)
p <- ggtree(tree) + 
  geom_tippoint(aes(color=group), size=3) + # 替换为你按物种类别上色的代码
  theme_tree2()

# 添加内部节点支持值标注
p + geom_text2(aes(subset=!isTip, label=node.label), hjust=-.3, size=3)
  • subset=!isTip确保仅给内部节点添加标签
  • hjust=-.3让标签远离节点避免重叠,可根据树的疏密调整数值

2. 按支持值阈值设置节点样式分类

需先拆分node.label中的两个支持值,转换为数值后判断节点类别,再用geom_nodepoint设置不同样式:

# 1. 将树转换为数据框,方便处理节点属性
tree_data <- fortify(tree)

# 拆分内部节点的支持值为UFBoot和SHaLRT数值列
internal_nodes <- !tree_data$isTip
tree_data$ufboot[internal_nodes] <- as.numeric(sapply(tree_data$node.label[internal_nodes], function(x) strsplit(x, "/")[[1]][1]))
tree_data$shalrt[internal_nodes] <- as.numeric(sapply(tree_data$node.label[internal_nodes], function(x) strsplit(x, "/")[[1]][2]))

# 2. 定义支持值阈值(可按需调整)
uf_thresh <- 90
shalrt_thresh <- 80

# 3. 为内部节点分配类别
tree_data$node_class <- NA
tree_data$node_class[internal_nodes] <- case_when(
  tree_data$ufboot >= uf_thresh & tree_data$shalrt >= shalrt_thresh ~ "both_pass",
  tree_data$ufboot >= uf_thresh | tree_data$shalrt >= shalrt_thresh ~ "one_pass",
  TRUE ~ "none_pass"
)

# 4. 绘制带节点分类的树图
ggtree(tree_data) +
  geom_tippoint(aes(color=group), size=3) + # 保留你的末端上色代码
  geom_nodepoint(aes(subset=!isTip, shape=node_class, fill=node_class), size=3) +
  # 设置节点样式:空心圆=双值均未达标,灰色实心=单值达标,黑色实心=双值达标
  scale_shape_manual(values=c("none_pass"=21, "one_pass"=21, "both_pass"=21)) +
  scale_fill_manual(values=c("none_pass"="white", "one_pass"="gray50", "both_pass"="black")) +
  theme_tree2() +
  guides(shape=FALSE, fill=FALSE) # 不需要图例可添加此行
  • shape=21是带填充色的圆形,通过fill参数控制内部颜色实现不同样式
  • 若你的node.label格式非严格数字/数字,可先做格式清洗(如去除多余字符)再拆分

内容的提问来源于stack exchange,提问作者Metin Gabriel Davutoglu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 00:32:23