之前有一篇推文介绍了使用R语言的ggtree包做这个事儿,
如何使用R语言ggtree包在进化树上标记自己取样测序的样本
今天看到R包phytools也可以做这个事情,链接是 http://blog.phytools.org/2024/04/pruning-mega-phylogeny-to-include-list.html
这个R包的作者写了很多教程关于进化树的操作
这个R包的github主页 https://github.com/liamrevell/phytools
这个作者的twitter https://twitter.com/phytools_liam
这个作者还写了一本书 《Phylogenetic Comparative Methods in R》
如果需要这本书的pdf可以给推文留言
这边书的主要内容
要在进化树上标记取样的样本
总样本的进化树,这个是随便构造的
library(ggtree)
library(phytools)
tree <- read.tree("data/20220829/fig2.nwk")
plotTree(tree)
假如我选了 "A","H","J" 这三个样本要测序
获取这这三个样本的 node label
lapply(c("A","H","J"),grep,tree$tip.label) -> tips
获取这三个样本的所有父节点
lapply(tips,phangorn::Ancestors,x=tree,type="all") %>%
unlist() %>% unique() -> parents
c(tips %>% unlist(),parents) -> nodes
## 可以把根节点去掉
setdiff(nodes,Ntip(tree)+1) -> nodes
在进化树上进行标记
paintBranches(tree,
nodes,
state = "1",
anc.state = "0") -> tree03
画进化树
cols<-setNames(c("gray","black"),0:1)
plot(tree03,
lend=1,
add=TRUE,
split.vertical=TRUE,
color=cols)
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!
微信公众号好像又有改动,如果没有将这个公众号设为星标的话,会经常错过公众号的推文,个人建议将 小明的数据分析笔记本 公众号添加星标,添加方法是 点开公众号的页面,右上角有三个点
点击三个点,会跳出界面
直接点击

