今天公众号的一位读者留言问有了SSR的数据,如何画树状图?
SSR的数据我也是第一次接触,我看了一下他发给我的数据,是csv格式,每行是一个样本,每列是一个位点。位点的取值是0,和1。这种格式好像叫做二进制的格式。就是下面这种
第一列是样本名称,后面每一列是一个位点。
我搜索了一下相关教程,找到了一个。需要借助ape
这个包,如果是第一次使用的话需要先安装
install.packages("ape")
后面进化树可视化还需要用到ggtree
,如果是第一次使用也要安装
BiocManager::install("ggtree")
BiocManager
第一次使用也得先安装
install.packages("BiocManager")
找到的教程的链接是 https://www.biostars.org/p/100432/
首先是读入数据
df<-read.csv("SSR_example.csv",header=T,row.names = 1)
将数据框转化成矩阵
ssr<-as.matrix(df)
NJ法构建进化树
library(ape)
tree<-nj(dist.gene(ssr))
使用ggtree展示进化树
library(ggtree)
ggtree(tree)+
geom_tiplab()+
xlim(0,6.5)
样本太多可以选择环形树展示
ggtree(tree,layout="circular")+
geom_tiplab2(size=3)
去掉枝长看起来可能会好看一点
ggtree(tree,layout="circular",branch.length = "none")+
geom_tiplab2(size=3)
遇到的问题
这位读者的数据过多,最后画树状图如果带上样本名字的效果如下
这个图应该如何美化我还真没有思路。大家如果做过这种图欢迎留言讨论 如何美化会好看一点
我记得好像MEGA也可以利用这种二进制数据构建进化树了,但是一时想不起来如何做了。如果有知道的同学欢迎写一篇教程,可以在我这个公众号发一下。不过没有稿费了,只有文末的广告收入,差不多4块钱左右吧。大家如果看到这里记得点击文末广告,点击我就有收入了,哈哈哈。
今天讨论的问题是:
- 1、样本过多的进化树如何美化?
- 2、MEGA如何利用二进制数据构建进化树?
欢迎大家关注我的公众号
小明的数据分析笔记本