生信修炼

答读者问~使用R语言利用SSR数据构建进化树

2020-11-16  本文已影响0人  小明的数据分析笔记本

今天公众号的一位读者留言问有了SSR的数据,如何画树状图?

SSR的数据我也是第一次接触,我看了一下他发给我的数据,是csv格式,每行是一个样本,每列是一个位点。位点的取值是0,和1。这种格式好像叫做二进制的格式。就是下面这种

image.png

第一列是样本名称,后面每一列是一个位点。

我搜索了一下相关教程,找到了一个。需要借助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)
image.png
样本太多可以选择环形树展示
ggtree(tree,layout="circular")+
  geom_tiplab2(size=3)
image.png
去掉枝长看起来可能会好看一点
ggtree(tree,layout="circular",branch.length = "none")+
  geom_tiplab2(size=3)
image.png

遇到的问题

这位读者的数据过多,最后画树状图如果带上样本名字的效果如下

image.png

这个图应该如何美化我还真没有思路。大家如果做过这种图欢迎留言讨论 如何美化会好看一点

我记得好像MEGA也可以利用这种二进制数据构建进化树了,但是一时想不起来如何做了。如果有知道的同学欢迎写一篇教程,可以在我这个公众号发一下。不过没有稿费了,只有文末的广告收入,差不多4块钱左右吧。大家如果看到这里记得点击文末广告,点击我就有收入了,哈哈哈。

今天讨论的问题是:

欢迎大家关注我的公众号
小明的数据分析笔记本

上一篇下一篇

猜你喜欢

热点阅读