首页 > 科研绘图 > 微生物分析--R语言绘图篇1
2022
06-27

微生物分析--R语言绘图篇1

前几期我们介绍了扩增子测序分析流程,包括:微生物群落组成分析,α多样性分析,β多样性分析。接下来几期将结合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)



最后编辑:
作者:萌小白
一个热爱网络的青年!

发布评论

表情