OTU分析和作图
明章之治韦恩图 Venn
venn 图可⽤于统计多个样品中所共有和独有的OTU 数⽬,可以⽐较直观的表现环境样品的OTU 数⽬组成相似性及重叠情况。通常情
况下,分析时选⽤相似⽔平为97%的OTU 样品表。
参考⽂献:
Fouts DE, Szpakowski S, Purushe J, Torralba M, Waterman RC, et al. (2012) Next Generation快乐的春游
Sequencing to Define Prokaryotic and Fungal Diversity in the Bovine Rumen. PLoS ONE 7(11): e48289.
doi:10.1371/journal.pone.0048289.
例图:
注:不同的颜⾊代表不同的样本,如果两个不同颜⾊圆圈重叠的区域标注有数字100,说明这两个样品均有序列被划分⼊相同的OTU 中,
且这样的OTU 有100 个。图中的样品数量⼀般为2~5 个。
⼯具:R,r-venndiagram
1#载⼊VennDiagram包
2
3library(VennDiagram)
4
5venn.diagram(list(A=1:10,B=3:8,C=6:9), fill=c("red","green","blue"), alpha=c(0.5,0.5,0.5), cex=2, cat.fontface=4, fontfamily=3, filename="VennDiagram.tiff"稀释性曲线 rarefaction curve
稀释性曲线是从样本中随机抽取⼀定数量的个体,统计这些个体所代表的物种数⽬,并以个体数与物种数来构建曲线。它可以⽤来⽐较
测序数据量不同的样本中物种的丰富度,也可以⽤来说明样本的测序数据量是否合理。采⽤对序列进⾏随机抽样的⽅法,以抽到的序列数与
它们所能代表OTU 的数⽬构建rarefaction curve,当曲线趋向平坦时,说明测序数据量合理,更多的数据量只会产⽣少量新的OTU,反之
则表明继续测序还可能产⽣较多新的OTU。因此,通过作稀释性曲线,可得出样品的测序深度情况。
法师铭文参考⽂献:
Katherine R Amato. et al. Habitat degradation impacts black howler monkey (Alouatta pigra) gastrointestinal
microbiomes. The ISME Journal (2013) 7, 1344–1353; doi:10.1038/ismej.
例图:
注:横坐标:随机抽取的测序数据量;纵坐标:观测到的OTU 数量软件:R,ggplot2
1# 安装和载⼊相关包和数据⽂件
文章经典语录2
3#source("bioconductor/biocLite.R")
4
5#biocLite(c("ggplot2","reshape2")) # 没安装过此类包的请⼿动运⾏这两⾏代码安装包
6
7library("ggplot2") # load related packages
8
9library("reshape2")
10
11design = read.table("", header=T, row.names= 1, p="\t")
12
13rare = read.table("", header=T, row.names= 1, p="\t")
14
15# 提取样品组信息
16
17sampFile = as.data.frame(design$genotype,row.names = row.names(design))
18
19colnames(sampFile)[1] = "group"
20
21# 转换宽表格为ggplot通⽤长表格格式
22
23rare$x = rownames(rare) # 添加x轴列
24
25rare_melt = melt(rare, id.vars=c("x")) # 转换为长表格
26
27rare_melt$x = factor(rare_melt$x, levels=1:100) # 设置x轴顺序
28
29# 添加分组信息
30
31rare_melt3 = merge(sampFile,rare_melt, by.x="row.names", by.y="variable")
32
33rare_melt3$variable=rare_melt3$Row.names
34
35# 按样品分组,按组上⾊
36
37p = ggplot(rare_melt3, aes(x = x, y = value, group = variable, color = group )) +
38
39geom_line()+
40
41xlab("Rarefraction Percentage")+ylab("Richness (Obrved OTUs)")+
42
43scale_x_discrete(breaks = c(1:10)*10, labels = c(1:10)*10) + theme_classic()
打鸟
44
45p
46
47ggsave(paste("alpha_rare_samples.pdf", p=""), p, width = 8, height = 5)
Rank Abundance 曲线
Rank-abundance曲线是分析多样性的⼀种⽅式。构建⽅法是统计单⼀样品中,每⼀个OTU 所含的序列数,将OTUs 按丰度(所含有的序列条数)由⼤到⼩等级排序,再以OTU 等级为横坐标,以每个OTU 中所含的序列数(也可⽤OTU 中序列数的相对百分含量)为纵坐标做图。
Rank-abundance 曲线可⽤来解释多样性的两个⽅⾯,即物种丰度和物种均匀度。在⽔平⽅向,物种的丰度由曲线的宽度来反映,物种的丰度越⾼,曲线在横轴上的范围越⼤;曲线的形状(平滑程度)反映了样品中物种的均度,曲线越平缓,物种分布越均匀。
参考⽂献:
Scott T Bates, Jo C Clemente, et al. Global biogeography of highly diver protistan communities in soil. The ISME Journal (2013) 7, 652–659; doi:10.1038/ismej.2012.147.
例图:
注:横坐标:OTU 等级,“500”代表样本中按照丰度排列第500 位的OTU;纵坐标:该等级OTU 中
序列数的相对百分含量,即属于该OTU 的序列数除以总序列数,纵坐标轴上数字,例如“100”代表相对丰度为100%,“10”代表相对丰度为10%,依次类推。
软件:R,r-biodiversityr
1#读取 OTU 丰度表
2
3otu <- read.delim('', row.names = 1, p = '\t', stringsAsFactors = FALSE, check.names = FALSE)
4
5otu <- t(otu)
6
7#统计,BiodiversityR 包 rankabundance() 实现 OTU 排序
8
9#虽然⾃⼰排序也很简单,但还是导个包统计省事点……
10
11library(BiodiversityR)
12
13otu_relative <- otu / rowSums(otu) #转化为相对丰度
14
15rank_dat <- data.frame()
16
17for (i in rownames(otu_relative)) {
18
19rank_dat_i <- data.frame(rankabundance(subt(otu_relative, rownames(otu_relative) == i), digits = 6))[1:2]
20魔方作文
21rank_dat_i$sample <- i
22
23rank_dat <- rbind(rank_dat, rank_dat_i)
24
25}
26
27rank_dat <- subt(rank_dat, abundance != 0)
28
29#ggplot2 作图,更好的可视化效果,还请⾃⾏修改 ggplot2 作图细节在岗位上
30
小班公开课31library(ggplot2)
32
33ggplot(rank_dat, aes(rank, log(abundance, 10), color = sample)) +
34
35geom_line() +
36
37scale_colour_manual(limits = c('a1', 'a2', 'a3', 'a4', 'a5', 'a6'), values = c('orange', 'purple', 'green', 'blue', 'red', 'gray40')) +
38
39labs(x = 'OTUs rank', y = 'Relative adundance (%)', color = NULL) +
40
id = element_blank(), panel.background = element_rect(fill = 'transparent', color = 'black'), legend.key = element_rect(fill = 'transparent' 42
43scale_y_continuous(breaks = 0:-5, labels = c('100', '10', '1', '0.1', '0.01', '0.001'), limits = c(-5, 0))
heatmap(热图)
Heatmap可以⽤颜⾊变化来反映⼆维矩阵或表格中的数据信息,它可以直观地将数据值的⼤⼩以定义的颜⾊深浅表⽰出来。常根据需
要将数据进⾏物种或样品间丰度相似性聚类,将聚类后数据表⽰在heatmap 图上,可将⾼丰度和低丰度的物种分块聚集,通过颜⾊梯度及
相似程度来反映多个样品在各分类⽔平上群落组成的相似性和差异性。结果可有彩虹⾊和⿊红⾊两种选择。
参考⽂献:
Elie Jami, Adi Israel, et al. Exploring the bovine rumen bacterial community from birth to adulthood. The ISME Journal
advance online publication, 21 February 2013; doi:10.1038/ismej.2013.2
例图: