vlambda博客
学习文章列表

第401期:R语言进行菌群α多样性分析





01

α多样性简介

🔘 α多样性描述的是样本内的多样性,主要有两个维度:一是种类数量(丰富度),二是种类的均匀度。种类数量越多,种类间的分布越均衡(各物种的丰度差异不大),α多样性指数越高。

🔘 Observed species指数:是指样本中实际测定得到的OTU数量,衡量样品中OTU丰富度(Richness)的指数(种类丰富度维度)。 

🔘 物种均一度(Evenness):用来描述物种中的个体所占比例均匀度(均匀度维度)。 

🔘 Shannon指数和Simpson指数:它们的计算考虑到了样品中的分类总数(Richness),和每个分类所占的比例均匀度(种类丰富度和均匀度维度)。

🔘 Faith’s Phylogenetic Diversity:是基于系统发生树来计算的一种多样性指数,它用各个样品中OTU的代表序列计算出构建系统发生树的距离,将某一样品中的所有代表序列的值加和(种类丰富度维度,更强调遗传基础的丰富度)。

02

α多样性分析

通过简介相信大家对于菌群α多样性已经有了初步的了解,那么我们如何利用R语言进行α多样性分析?下面就跟随小编一探究竟:

1.安装并加载必要的R packages

 1install.packages("ggplot2")
2install.packages("ggpubr")
3install.packages("agricolae")
4install.packages("vegan")
5#安装需要的包,如已安装,可省略这一步
6library(ggplot2)
7library(ggpubr)
8library(agricolae)
9library(vegan)
10#加载需要的分析包,如果还没有安装这些包,请使用

2.数据(OTU表)导入

注:#row.names = 1指定第一列为行名 #skip=1跳过第一行不读 #header=T指定第一个有效行为列名#sep='\t'表示指定制表符为分隔符 #comment.char=''表示设置注释符号为空字符‘’,这样#后面的内容就不会被省略。

数据导入注意事项:

明确数据分隔符:逗号‘,’,制表符‘\t’,空格‘ ’等;注意注释符号‘#’,‘#’默认情况下,注释符号后面的内容将会被忽略;数据里慎用特殊字符:除阿拉伯数字,英文字母,下划线之外的符号要慎用,尽量不要在数据里出现特殊符号,以免麻烦。

导入OUT表格式如下:

第401期:R语言进行菌群α多样性分析

3.数据格式转换

在进行OTU丰度计算时,通常需要对表格进行转置,以样本名作为行名,以OTU为列名。且需要对个别行或列进行删除,小编使用的OTU表最后一列为注释信息,为方便丰度计算需要将其删除,代码如下:(如果自己的数据格式满足要求请忽略这一步)

1otu=otu[,-ncol(otu)]
2#删除多余的列,删除最后一列
3otu=t(otu)
4#转置(样本名作为行名)

格式转换后结果如下:

第401期:R语言进行菌群α多样性分析

4.Alpha多样性指数的计算

#计算香农指数

shannon=diversity(otu,"shannon")

#计算辛普森指数

simpson=diversity(otu,"simpson")

#合并数据

alpha=data.frame(shannon,simpson)

#储存结果

write.table(alpha,'alpha-summary.tsv',sep = '\t',quote=F)

# quote=F指明储存时不要加引号

# sep = ‘\t’指明储存的分隔符号

结果如下:

第401期:R语言进行菌群α多样性分析

5.可视化数据导入


 1#读取分组表格
2map<-read.table('mapping_file.txt',row.names=1,header=T,sep='\t',comment.char='',check.names=F)
3#提取需要的分组,'Group1'为表中分组列名
4group<-map['Group1']
5#读取alpha多样性表
6alpha<-read.table('alphasummary.tsv',header = T,row.names = 1,sep = '\t')
7#重排alpha的行的顺序,使其与group的样本id(行名)顺序一致
8alpha<-alpha[match(rownames(group),rownames(alpha)),]
9#合并两个表格
10data<-data.frame(group,alpha)


第401期:R语言进行菌群α多样性分析

6.ggplot2进行可视化

 1p=ggplot(data = data,aes(x=Group1,y=shannon))+geom_boxplot(fill=rainbow(7)[5])   #fill=rainbow 填充彩虹色七种中的第五种
2#data = data指定数据表格
3#x=Group1指定作为x轴的数据列名
4#y=shannon指定作为y轴的数据列名
5#geom_boxplot()表示画箱线图
6mycompare=list(c('A','B'),c('A','C'),c('B','C'))
7#指定多重比较的分组对
8p<-p+stat_compare_means(comparisons=mycompare,label = "p.signif",method = 'wilcox')
9#添加星号,添加显著性标记的第一种方法,使用wilcoxon非参数检验方法
10p=p+xlab("")+ylab("Shannon")
11#更改横坐标标题和纵坐标标题,“”表示啥也没有
12p=p+theme(text = element_text(size = 15,face = "bold"))


此处用到ggplot2包画箱线图,将画图函数赋值给p后,可以用‘+’不断进行图层叠加,给图片p增加新的特性。并使用wilcoxon非参数检验方法添加显著性标记。本文中小编只对Shannon指数的α多样性进行了可视化(如下图所示),有需要的也可以参考本文对其他多样性指数进行可视化(照葫芦画瓢)。

03

小结

菌群α多样性分析是微生物组学数据分析及挖掘的基础性分析,对于加深自己对宏基因组及扩增子数据的理解十分重要。现在有很多软件可以一步出结果,非常方便,可以大大提高大家的科研效率,但对于初学者,小编还是建议首先使用R进行分析,理解其中的“奥妙”,然后再使用其他软件进行分析,徐徐渐进!








编辑:用心珍惜

审核:星空   314