做微生物16S測序的時候,公司的報告里經(jīng)常會給到兩種檢驗Adonis和ANOSIM,聽過t.test、wilicox、anova各種檢驗,那么Adonis和ANOSIM檢驗是什么呢?
本文參考:
什么是ANOSIM分析?
Adonis和ANOSIM,安能辨我是雄雌
Adonis 多元方差分析
Adonis,多元方差分析,亦可稱為非參數(shù)多元方差分析。其原理是利用距離矩陣(比如基于Bray-Curtis距離、Euclidean距離)對總方差進行分解,分析不同分組因素對樣品差異的解釋度,并使用置換檢驗對其統(tǒng)計學(xué)意義進行顯著性分析。
Adonis分析結(jié)果通常如下:
| Index | Df | SumsOfSqs | MeanSqs | F.Model | R2 | Pr(>F) |
|---|---|---|---|---|---|---|
| GroupFactor | 4 | 1.0899 | 0.27248 | 1.4862 | 0.14883 | 0.011 |
| Residuals | 34 | 6.2335 | 0.18334 | 0.85117 | ||
| Total | 38 | 7.3234 | 1.00000 |
其中,GroupFactor表示實驗中的分組方法
Df表示自由度
SumsOfSqs表示總方差即離差平方和
MeanSqs表示均方差(SumsOfSeqs/Df)
F.Model表示檢驗值F
R2表示該分組方式對樣品間差異的解釋度,R2越大說明該分組方案對差異的解釋度越高
Pr表示P值,小于0.05時顯著說明本次檢驗的可信度高。
那么Adonis具體要如何使用呢?
在微生物的分析中我們通常把Adonis和PCA分析結(jié)合在一起。進行完P(guān)CA分析后,我們想要檢驗不同的分組之間究竟是否有差異,差異是否顯著,這時候我們就可以用Adonis檢驗。如下圖,雖然我們可以看到三組被分開了,但是這種分開真的顯著嗎?這種分組又能對樣本的差異解釋多少呢?那么右側(cè)的Adonis檢驗就告訴了我們明確的答案,這種分組時顯著的,R2=0.11。

在R中我們可以使用Vegan包中的函數(shù)adonis()或adonis2()進行adonis檢驗。
adonis2(formula, data, permutations = 999, method = "bray",
sqrt.dist = FALSE, add = FALSE, by = "terms",
parallel = getOption("mc.cores"), ...)
adonis(formula, data, permutations = 999, method = "bray",
strata = NULL, contr.unordered = "contr.sum",
contr.ordered = "contr.poly", parallel = getOption("mc.cores"), ...)
ANOSIM 相似性分析
ANOSIM,相似性分析是一種非參數(shù)檢驗,用于檢驗高緯度數(shù)據(jù)間的相似性,比較組間和組內(nèi)差異的大小,從而判斷分組是否有意義,其可以用于檢驗兩組的組間和組內(nèi)差異,也可以用于多組。
ANOSIM的原理如下,以最基本的兩個組為例:
現(xiàn)在一共有6個樣本,根據(jù)我們的實驗方案將其分為兩組Group1和Group2,每組含有3個樣本。
1、首先我們基于組內(nèi)樣本間的距離計算組內(nèi)的相似性。

2、然后我們基于組間樣本的距離計算組間的相似性。

結(jié)合組內(nèi)和組間,得到:

然后我們根據(jù)公式計算R值:

其中,
r0= mean rank of between group dissimilarities 即組間差異性秩的平均值
rw= mean rank of within group dissimilarities 即組內(nèi)差異性秩的平均值
n=the number of samples 即樣本總數(shù)量
因此根據(jù)公式可以知道,R的取值范圍為[-1,1]:
當(dāng)R趨向于1時,說明組間差異大于組內(nèi)差異
當(dāng)R=0時,說明組間沒有差異,即分組無效,不同分組之間沒有差異。
當(dāng)R趨向于-1時,說明組間差異小于組內(nèi)差異。
當(dāng)R大于0時,我們還要進一步檢驗這種差異是否顯著具有可信度,ANOSIM中對其的檢驗方法也是使用Permutation Test即置換檢驗。
置換檢驗:1、對原始樣本進行隨機分組,分為實驗組和對照組
2、計算隨機分組的Ri值,并和R比較
3、重復(fù)1000次
4、計算p=Ri大于R的百分比,從而計算P值
在我們做完P(guān)CoA、NMDS等降維分析的時候,我們也會遇到一同樣的問題,數(shù)據(jù)看起來是分開的,但是不同的組之間差異真的顯著嗎?這個時候也可以選擇ANOSIM進行檢驗。
R中Vegan包也提供了ANOSIM檢驗。下面用R中自帶的鳶尾花數(shù)據(jù)集(iris)做一個示范:
library(vegan)
library(ggplot2)
#Delete Species Infor
dat<-subset(iris,select = -Species)
#Calculate Distance
iris.dist<-vegdist(dat)
#MDS analysis
m<-monoMDS(iris.dist)
MDS<-as.data.frame(m$points)
#Gain group information
MDS$group<-iris$Species
#Plot
p<-ggplot(MDS,aes(MDS1,MDS2,col=group,shape=group))+
geom_point()+
theme_bw()+
theme(legend.title=element_blank())

從上圖我們可以直觀地看出,組間差異大于組內(nèi)差異,三組樣本明顯可以分開。
那么進一步我們用ANOSIM檢驗來驗證我們從圖中得到的結(jié)論。
#ANOSIM
anosim_result<-anosim(dat,iris$Species,permutations = 999)
summary(anosim_result)
plot(anosim_result, col = c('#FFD700','#FF7F00','#EE2C2C','#D02090'))


從上圖可以直觀看到組間差異大于組內(nèi)差異,R=0.858,接近于1,P值為0.001,小于0.05,說明該不同的分組之間差異明顯,該分組是有意義的。