###拆分文件,得到各个层次的丰度文件
library(ggplot2)
library(reshape2)
library(RColorBrewer)
###输入参数设置
otu.input = c("S.otu_tax_table.txt")
otu.groups = c("subsample.txt")
topN = as.integer(30)
### 读取配置文件
otu.data = read.table(otu.input, header = T, sep = "\t", row.names = 1)
otu.group = read.table(otu.groups, header = T, sep = "\t")
mycol=brewer.pal(n = 12, name = "Paired")
### 筛选数据,并百分比化、排顺序、筛选数据
otu.data = otu.data[as.character(otu.group$sample)] ########### 注意筛选的数据是因子还是字符串
otu.dataPer = prop.table(as.matrix(otu.data), 2)
otu.dataTop = otu.dataPer[order(apply(otu.dataPer,1,sum), decreasing = T)[1:topN],]
other = 1 - colSums(otu.dataTop)
otu.other = as.data.frame(other)
otu.dataN = rbind(otu.dataTop, t(otu.other))
otu.dataT = as.data.frame(t(otu.dataN))
otu.dataT$sample = rownames(otu.dataT)
### 转化为长格式数据
otu.dataMelt = melt(otu.dataT, id = 'sample')
###ggplot
ggplot(otu.dataMelt, aes(sample, value, fill=variable)) +
geom_bar(stat="identity",position="stack") +
theme_bw()
dev.off()
16s 物种组成
最新推荐文章于 2020-12-21 00:58:57 发布