您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# R语言中ggtree怎么从进化树中挑选子集
## 引言
在进化生物学和系统发育分析中,经常需要从大型进化树中提取特定分支或类群进行分析。`ggtree`是R语言中专门用于可视化进化树的强大工具,结合`treeio`等扩展包可以实现复杂的子树操作。本文将详细介绍使用`ggtree`从进化树中筛选子集的三种核心方法。
## 一、准备工作
首先需要加载必要的R包并导入树文件:
```r
library(ggtree)
library(treeio)
library(dplyr)
# 读取树文件(支持Newick/Nexus/Phylo等格式)
tree <- read.tree("example.nwk")
p <- ggtree(tree) + geom_text(aes(label=node), hjust=-.3)
print(p) # 显示带节点编号的树
subtree <- tree_subset(tree, node = 45, levels_back = 0)
ggtree(subtree) + geom_tiplab()
target_tips <- c("Human", "Chimp", "Gorilla")
subtree <- keep.tip(tree, target_tips)
primate_subtree <- tree %>%
treeio::drop.tip(grep("Rodent|Fish", .$tip.label))
group_df <- data.frame(
tip = tree$tip.label,
group = c(rep("A",10), rep("B",15))
)
groupA_tips <- group_df %>% filter(group == "A") %>% pull(tip)
subtree <- keep.tip(tree, groupA_tips)
long_branches <- tree$edge.length > 0.1
selected_nodes <- unique(tree$edge[long_branches, 2])
subtree <- tree_subset(tree, node = selected_nodes)
ancestor <- MRCA(tree, c("Mouse", "Rat"))
subtree <- tree_subset(tree, node = ancestor)
library(patchwork)
p1 <- ggtree(tree) + ggtitle("Full Tree")
p2 <- ggtree(subtree) + ggtitle("Subset Tree")
p1 | p2 # 并排显示
ggtree
重新绘制带节点编号的树tree_subset()
是否保留了原始属性ape::extract.clade()
提高效率通过ggtree
的多种子树提取方法,研究者可以灵活地聚焦于特定进化分支。建议结合dplyr
等数据操作工具构建系统化的分析流程,更多高级功能可参考ggtree
官方文档。
注意:实际操作时请根据具体树文件调整参数,本文示例基于模拟数据。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。