R: 中心对数比CLR标准化数据

2022-03-11  本文已影响0人  胡童远

比例数据进行中心对数比(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

上一篇 下一篇

猜你喜欢

热点阅读