大数跨境
0
0

使用R语言的phytools包在进化树上标记自己测序取样的样本

使用R语言的phytools包在进化树上标记自己测序取样的样本 小明的数据分析笔记本
2024-04-25
0

之前有一篇推文介绍了使用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》

image.png

如果需要这本书的pdf可以给推文留言

这边书的主要内容

image.png

要在进化树上标记取样的样本

总样本的进化树,这个是随便构造的

library(ggtree)
library(phytools)
tree <- read.tree("data/20220829/fig2.nwk")
plotTree(tree)
image.png

假如我选了 "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)
image.png

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

微信公众号好像又有改动,如果没有将这个公众号设为星标的话,会经常错过公众号的推文,个人建议将 小明的数据分析笔记本 公众号添加星标,添加方法是 点开公众号的页面,右上角有三个点

点击三个点,会跳出界面

直接点击


【声明】内容源于网络
0
0
小明的数据分析笔记本
分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
内容 971
粉丝 0
小明的数据分析笔记本 分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
总阅读350
粉丝0
内容971