####R語言將微生物OTU表標準化為百分比形式
otu<-read.csv("D://test/test_otu.csv",row.names = 1)
#連結:https://pan.baidu.com/s/1KpV3jhlcEf8DakZFKjsxmg 提取碼:qxxd
#統計樣品序列數總和,序列並不一致,因此需要標準化。
colSums(otu)
#36717 55257 34664 45064 45774 26558 36491
#抽平由於只能局限於整數的計算,會導致數據的丟失,尤其是樣品的序列數相差幾倍甚至10倍以上的時候。
#通過標準化為百分比和百萬分比(CPM:counts per million)可以數據的0丟失
Len<-as.numeric(length(rownames(otu)))
Row<-as.numeric(length(colnames(otu)))
id<-rep(colSums(otu),Len)
#生成OTU序列和的矩陣
bb<-matrix(id, nrow = Row, ncol = Len)
bb<-as.data.frame(t(bb))
#計算百分比相對豐度
rarefy_otu<-otu/bb*100
colSums(rarefy_otu)
#經過標準化後,每個樣品的序列之和都轉化為了100 100 100 100 100 100 100 100。
write.csv(rarefy_otu,file="D://taxonomy_rarefy.csv")