欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OTU表标准化

程序员文章站 2024-03-01 17:49:22
...

## 回顾:通过聚类我们可以得到2个表 “otu_tax_table.txt”、“otu_tax_table.biom”

## 标准化目的:因为不同测序深度,检测到的物种数量会不同。我们将OTU表重抽样至相同数据量,以公平比较各样品的物种数量。

## 方法一:

# 查看样品的数据量最小值
biom summarize-table -i otu_tax_table.biom
# 基于最小值进行重抽样标准化
single_rarefaction.py -i otu_tax_table.biom -o otu_table_rare.biom -d 2525
# 转换biom为txt格式
biom convert -i otu_table_rare.biom -o otu_table_rare.txt --to-tsv --header-key taxonomy

## 方法二:R包 vegan 

setwd("D:/16S/16sRscript")
#!/usr/bin/Rscript
library("vegan")

inputfile = c("otu_tax_table.txt")
outfile = c("otu_table_rare.txt")

data = read.table(inputfile, header = T, row.names = 1,check.names = F, sep = "\t")
tmp = data.frame(taxonomy = data$taxonomy, row.names = row.names(data))
dataS = subset(data, select = -taxonomy)
dataT = t(dataS)

##只标准化
dataB <- data.frame(t(decostand(dataN, "hell")),check.names=F) ## Standardization Methods 

##基于最小值进行重抽样标准化
set.seed(1000)
dataN = rrarefy(dataT, min(rowSums(dataT)))  ## Rarefaction Species Richness 稀释最少深度
dataB <- data.frame(t(decostand(dataN, "hell")),check.names=F) ## Standardization Methods for Community Ecology 标准化 类似FPKM

data <- merge(dataB, tmp, by=0)

 

相关标签: OTU 标准化