已经有了100个物种进化树文件,我想从这个树文件里挑选出10个我感兴趣的物种的进化关系。
treeio这个R语言包里有一个函数drop.tip()可以实现,但是他不是直接挑选出来感兴趣的,而是去掉不感兴趣的。
参考链接:https://yulab-smu.github.io/treedata-book/chapter2.html
简单例子树文件使用treeio包里带的示例文件sample.nwk
nwk<-system.file("extdata","sample.nwk",package="treeio") library(ggtree) tree<-read.tree(nwk) ggtree(tree)+ geom_text2(aes(subset=!isTip,label=node))+ geom_tiplab()image.png
如果我只想看看A/B/C/D/E这些物种之间的关系,就可以去掉非ABCDE这些tips。使用到的是drop.tip()函数。
两个参数:第一个读进来的数;第二个参数是想要去掉的tips。
reserve_tip<-c("A","B","C","D","E") to_drop<-tree$tip.label[-match(reserve_tip,tree$tip.label)] to_drop tree_reduced<-treeio::drop.tip(tree,to_drop) ggtree(tree_reduced)+ geom_tiplab()image.png
将结果保存到树文件中treeio::write.nexus(tree_reduced,file="../../tree_reduced.nex")https://yulab-smu.github.io/treedata-book/chapter2.html
这个链接的介绍里还有画两个进化树面对面,然后相同的tips之间有连线。想到的应用场景是在:之前做叶绿体基因组的进化树,会使用不同的数据集,然后比较不同的数据集之间的进化树是否存在差异可以选择使用这种方法来展示。后面如果用到的话再来学习吧,就不记录在这篇文章里了。
---来自腾讯云社区的---用户7010445
微信扫一扫打赏
支付宝扫一扫打赏