前几期我们介绍了扩增子测序分析流程,包括:微生物群落组成分析,α多样性分析,β多样性分析。接下来几期将结合R语言将扩增子测序分析结果可视化,从而更直观地展现群落结构及丰度分布。R是一门用于统计计算和作图的语言,其强大的绘图功能主要由众多的图形函数来实现,包括:高级绘图函数,低级绘图函数,图形参数。本期主要介绍通过柱状图,热图,韦恩图实现对微生物群落组成分析的可视化。
1. 柱状图
输入文件:在OTU聚类和物种注释后,通过对物种丰度表排序,均一化等处理后,获得不同分类层级下物种丰度表,例如:tax_table.p.txt
其中,第一行代表样本名,第一列代表门水平下的物种,sample1拟杆菌相对丰度为0.1154。
图形实现:
#输入文件
data <- read.table('tax_table.p.txt',header=TRUE,row.names=1,sep=' ')
注:header设置文件第一行为行名,row.names设置文件第一列为列名,sep设置分隔标识符为tab键
#设置颜色
col <- rainbow(11)
#画图
x<-barplot(as.matrix(head(data,n=10)),legend.text=row.names(data),args.legend=list(xjust=0,cex=0.6), xaxt='n', col = col,ylab='Relative Abundance',cex.axis=0.8)
注:legend.txt设置图例内容,args.legend设置图例位置和大小,xaxt设置横轴坐标是否显示,col设置颜色,ylab设置纵坐标标题内容,cex.axis设置坐标字体大小
#添加坐标
axis(at=x,labels=colnames(data), cex.axis=0.6,font=2,side=1,las=2)
注:labels设置添加的坐标内容,cex.axis设置坐标字体大小,font设置字体,side设置添加的坐标轴位置,las设置字体方向
2. 热图
输入文件:tax_table.g.txt, 物种丰度表(与上同)
group.list,样品分类信息表,格式如下:
图形实现:
#文件输入
data <- read.table('./input/tax_table.g.txt',header=TRUE,row.names=1,sep=' ')
group <- read.table('./input/group.list',header=F,sep=' ')
#设置group行名
colnames(group) <- c('Sample','group')
#设置数据框annotation_col(只有一列Group,且行名为样本名)
annotation_col <- data.frame(Group=factor(group$group))
rownames(annotation_col) <- group$Sample
#安装并加载R包pheatmap
install.packages('pheatmap')
library(pheatmap)
#画图
pheatmap(head(data,n=30))
注:提取前30个物种相对丰度值画热图,如图所示图形很丑。为了看一个物种在不同样本中的丰度分布,需要消除样本间差异,即对丰度表进行标准化处理。
pheatmap(head(data,n=30),scale='row')
注:scale设置标准化参数,取值为“row”“column”或“none”
pheatmap(head(data,n=30),scale='row',annotation_col=annotation_col)
注:annotation_col设置样本分类
其他重要参数:
clustering_distance_rows = 'correlation'#设置行聚类使用的聚类方法,也可以自定义方式
breaks#用于调整区间
cluster_row = FALSE#表示行不聚类
legend = FALSE#表示右侧图例不显示
display_numbers = TRUE#表示在热图中格子显示对应的数字
cellwidth, cellheight#表示热图中小方格的宽度和高度
fontsize#表示字体大小
filename #将图形保存成图片文件
main#设置标题
3. 韦恩图
输入数据:韦恩图可用于分析不同样本之间物种分布差异,因此可以构建一个列表,其中每一个分量代表每一组样本聚类到的OTU,如下图所示。
图形实现:
#下载及安装包
install.packages('VennDiagram')
library('VennDiagram')
#设置颜色
cols <- rainbow(4)
#画图
venn <- venn.diagram(data,fill=cols, filename=NULL)
注:fill设置填充颜色,filename设置图形保存的文件名
#显示图形
grid.draw(venn)
- 本文固定链接: https://maimengkong.com/image/1048.html
- 转载请注明: : 萌小白 2022年6月27日 于 卖萌控的博客 发表
- 百度已收录