比例数据进行中心对数比(Centered Log-ratio, CLR)转化,更接近正态分布。经过clr转换后的数据会出现很多负数,相加等于0(接近0),原先表格里已经有的0可预先转化为一个非常小的数值,如,1E-10。
CLR转化方法
1 安装依赖
install.packages("chemometrics")
install.packages("compositions")
2 测试数据
set.seed(1995)
data=matrix(abs(round(rnorm(200, mean=1000, sd=500))), 20, 10)
colnames(data)=paste("Species", 1:10, sep=".")
rownames(data)=paste("Sample", 1:20, sep=".")
# 归一化
data_norm=data
for(i in 1:20){
sample_sum=apply(data, 1, sum)
for(j in 1:10){
data_norm[i,j]=data[i,j]/sample_sum[i]
}
}
library("reshape2")
melt_norm = melt(data_norm)
hist(melt_norm$value)
3 compositions::clr转化
data_clr = compositions::clr(data_norm)
melt_clr = melt(data_clr)
hist(melt_clr$value)
4 chemometrics::clr转化
data_clr_2 = chemometrics::clr(data_norm)
melt_clr_2 = melt(data_clr_2)
hist(melt_clr_2$value)
更多
微生物研究文献解读系列·1:“一切都是相对的?”——CLR变换
微生物组数据的centered log-ratio transformation
Gut metagenome associations with extensive digital health data in a volunteer-based Estonian microbiome cohort. NC 2022
网友评论