根据示例数据,使用原始read count矩阵是最为推荐的方式,那么将数据标准化以及Zvalue化是否会影响结果?
直接说结论:
1 对样本丰都加合求100%,不影响显著性和R2
2 对样本丰都加合求100%在进行zvalue:
2.1 使用euclidean距离,不影响显著性和R2
2.2 使用默认的bray距离,显著性和R2改变,原来显著的变为不显著
测试代码如下:
libary("vegan")
data(dune)
data(dune.env)
# dune 为 20 X 30 ; 20 个sample ; 30个菌 的原始count数据
colSums(dune)
row.names(dune)
#################################### 1
## default test by terms
set.seed( 123)
adonis2(dune ~ Management, data = dune.env )
#################################### 2
# 标准化样本 : 样本总丰都为100
# dune 和 dune_normalizeSample 行是样本 ,列是菌
dune_normalizeSample = apply(dune , 1 , function(x){100* x/sum(x) }) %>% t(.)
rowSums(dune_normalizeSample )
set.seed( 123)
# 由结果可知,对样本是否标准化,不影响显著性和R2
adonis2(dune_normalizeSample ~ Management, data = dune.env)
#################################### 3
# 标准化样本 再z值化菌 : 样本总丰都为100,然后对每一列菌求z
# dune_normalizeSample和dune_normalizeSample_scale 行是样本 ,列是菌
dune_normalizeSample_scale = apply(dune_normalizeSample , 2 , function(x){ scale(x) })
rowSums(dune_normalizeSample_scale )
set.seed( 123)
#################################### 3.1
# 标准化样本和z value 菌之后,bc距离求显著性: 结果不显著,R2也错误
adonis2(dune_normalizeSample_scale ~ Management, data = dune.env)
#################################### 3.2
# 标准化样本和z value 菌之后,euclidean距离求显著性: 结果显著,R2正确
adonis2(dune_normalizeSample_scale ~ Management, data = dune.env,method = "euclidean")