Alpha多樣性指數的計算和差異分析(差異檢驗結果可視化)

2021-02-13 紅皇后學術

寫在前面

alpha多樣性是進行生物群落研究的最基礎方法,關於alpha多樣性指數的介紹和計算在網上有茫茫多的資料,本文將不會花費大量篇幅介紹這些基礎知識,而是重點帶來對alpha多樣性進行統計學分析並直接生成圖像的方法。

Alpha多樣性指數

Alpha多樣性用於分析樣品內(Within-community)的微生物群落多樣性,可以反映樣品內的微生物群落的豐富度和多樣性

alpha多樣性指數包括豐富度、多樣性、均一性等。

豐富度指數只是簡單的估算群落中物種的數量,而不考慮群落中每個物種的豐度情況,例如Chao1、ACE等。

多樣性指數同時考慮的物種在群落中是否存在即其所佔的豐度,例如Shannon、Simpson等。

均一性指數用於評估群落中各個微生物在群落中的均勻程度,所有微生物均具有相同的豐度則均一性最高,例如Pielou等。

Alpha多樣性指數計算

目前可以用來計算alpha多樣性指數的工具非常的多,可以說基本上所有的微生物群落分析工具或相關的統計學軟體都包含了alpha多樣性指數的計算功能,最不濟我們還可以根據每個指數的公式進行手動計算。

這裡推薦兩種alpha多樣性指數的計算工具:

再給大家安利一下PAST這個軟體,真是可以說是最輕便、學習成本最低、功能最多樣的統計學分析軟體了,之前做了一套PAST的完整使用教程,大家可以看一下,可以說是瞬間就可以學會。

Alpha多樣性差異檢驗

在微生物群落的alpha多樣性指數分析中,最常用的就是利用統計學分析檢驗不同組樣本間微生物群落alpha多樣性指數的差異顯著性。

兩組樣本分析

當研究的樣本只有兩組時,一般使用t-test檢驗組間差異。

數據格式為兩列,第一列為各樣本的alpha多樣性指數,第二列為樣本的分組信息。

首先導入分析數據:

alpha <- read.table("alpha_diversity.txt",header = TRUE,row.names = 1,sep = "\t")

手動定義下分組名稱的順序,以確定畫圖時各組的位置,默認畫圖時時按照組名的字母順序排列。

alpha$Group <- factor(alpha$Group,levels = c("Water","Sediment"))

使用t.test()函數進行t-test,並將結果保存。

t <- t.test(Shannon~Group,data = alpha)write.csv(t$p.value,file = "t.test.shannon.txt")

進行結果圖的繪製,結果以箱須圖展示並根據t-test的p-value標註組間差異性。

png(filename = "Shannon.png",width = 5400,height = 7200,res = 600)par(mar = c(5,8,2,2))par(xpd = TRUE)box <- boxplot(Shannon~Group,data = alpha,col = "grey80",lwd = 4,range = 0,axes = FALSE,ylim = c(5,11),xlab = "",ylab = "")axis(side = 1,at = c(1,2),labels = c("",""),lwd = 4)segments(x0 = 0.42,y0 = 4.76,x1 = 2.5,y1 = 4.76,lwd = 5)text(x = c(1,2),y = 4.52,labels = c("water","Sediment"),cex = 3,font = 2)axis(side = 2,at = c(5,6,7,8,9,10),labels = c("","","","","",""),lwd = 4)text(x = 0.37,y = c(5,6,7,8,9,10),labels = c("5","6","7","8","9","10"),adj = c(1,0.5),cex = 2.5)segments(x0 = 0.42,y0 = 4.76,x1 = 0.42,y1 = 11,lwd = 5)mtext(side = 2,text = "Shannon index",cex = 3.5,line = 4.5)segments(x0 = 1,y0 = 7.3,x1 = 1,y1 = 10.6,lwd = 5)segments(x0 = 1,y0 = 10.6,x1 = 2,y1 = 10.6,lwd = 5)segments(x0 = 2,y0 = 10.6,x1 = 2,y1 = 10,lwd = 5)text(x = 1.5,y = 10.8,labels = ifelse(t$p.value <= 0.001, "***",ifelse(t$p.value <= 0.01, "**", ifelse(t$p.value <= 0.05 ,"*"," "))),cex = 6)jitter <- jitter(c(rep(1,36),rep(2,36)))points(x = jitter,y = alpha$Shannon,col = "black",bg = "white",cex = 3,lwd= 3,pch = 21)dev.off()

代碼中各參數的意義詳見之前的推文:每天學習一點R:19.箱須圖的繪製!!

多組樣本分析

大多數情況下,我們分析的樣本可能並不是兩組而是多組,此時需要使用ANVOA來檢驗樣本間多樣性指數的差異,但是ANOVA只是用於評估所有樣本整體是否具有差異,各組樣本間的兩兩比較還需要進一步使用Turkey HSD test來進行檢驗

當樣本組數目較多時,如果使用兩兩之間連線+顯著性標註的方法來展示樣本簡單的差異會比較亂,因而通常是使用相同的字母來代表組間沒有差異的樣本,而常規的Turkey test檢驗結果只會給出p-value而並不會標出各組之間的分類結果,下面就來介紹一個基於R語言自動進行統計學檢驗並以字母標出組間差異的方法。

分析的數據格式與兩組樣本一致,均為兩列,一列為alpha多樣性指數,另一列為分組信息。

首先還是要導入數據,並手動指定分組因子的順序。

Sediment <- read.table("Sediment.txt",header = T,sep = "\t",row.names = 1)Sediment$Group <- factor(Sediment$Group,levels = c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"))

接下來進行Turkey檢驗並保存結果。

fit <- aov(chao1~Group,data = Sediment)Tukey <- TukeyHSD(fit)write.csv(Tukey$Group,file = "Tukey.test.S.chao1.csv")

接來下進行圖像繪製,繪圖需要依賴multcomp包。

library(multcomp)png(filename = "S.chao1.png",width = 5400,height = 5400,res = 700)par(mar=c(4,6,6,2))  tuk<-glht(fit,linfct=mcp(Group="Tukey"))p1 <- plot(cld(tuk,level=0.05),col="lightgrey",cex = 4)dev.off()

當然由於這項分析的主要目的是給出統計學結果,因而對於結果可視化上就沒有進行優化,結果圖像中的各項參數相對比較難調整,建議應用該方法得到樣本組分類對應的字母編號,之後在繪製合適的箱須圖後手動添加這些字母標註。

關注公眾號「紅皇后學術」,後臺回復「alpha」獲取本文介紹的繪圖示例文件和完整代碼。

擴展閱讀

相關焦點

  • 擴增子統計繪圖1箱線圖:Alpha多樣性
    第二部《擴增子分析解讀》:學習數據分析的基本思路和流程。第三部《擴增子統計繪圖》:對結果進行可視和統計檢驗,達到出版級的圖表結果。《擴增子統計繪圖》系列文章介紹《擴增子統計繪圖》是之前發布的《擴增子圖表解讀》和《擴增子分析解讀》的進階篇,是在大家可以看懂文獻圖表,並能開展標準擴增子分析的基礎上,進行結果的統計與可視化。
  • 菌群數據的統計和可視化方法
    然而微生物組數據分析過程複雜,分析工具眾多,也限制了研究者對該領域的探索。微生物組研究主要分為三步走,之前已經給大家講解了實驗設計與生信分析的方法(從樣本測序數據到生成物種和功能組成表),那麼接下來為大家介紹菌群測序數據下遊分析的統計和可視化方法,包括多樣性分析、物種組成分析、微生物差異分析、相關性分析、網絡分析、機器學習(構建疾病預測模型)、進化分析、來源分析以及常用可視化方法。
  • r語言的秩和檢驗 - CSDN
    就兩組數據的比較而言,wilcox秩和檢驗(或稱Mann-Whitney U檢驗)是常見的非參數檢驗方法之一。本文簡介怎樣在R中進行wilcox秩和檢驗,以實現兩組間非參數差異分析。本文使用的作圖數據的網盤連結(提取碼o8lr):https://pan.baidu.com/s/1b-1INL4HFrsIOvs_0UfByw文件「alpha.txt」為某16S細菌群落測序所獲得的部分alpha多樣性指數數據,包含3列信息:sample,樣本名稱;observed_species和shannon分別為兩種類型的alpha多樣性指數。
  • 微生物群落多樣性測序與功能分析
    該指數實際反映了本次測序結果是否代表樣本的真實情況。計算公式為:C=1-n1/N  其中n1 = 只含有一條序列的OTU的數目; N = 抽樣中出現的總的序列數目。計算菌群豐度:Chao、ace;  計算菌群多樣性:Shannon、Simpson。Simpson指數值越大,說明群落多樣性越高;Shannon指數越大,說明群落多樣性越高。表中顯示前10個樣本,如果樣本大於10個,詳見結果目錄中的alpha_div.txt。Q: 能不能解釋下每個指數(如chao1、shannon)?
  • qRT-PCR差異分析及P值計算
    ,常用的相對定量數據分析方法是KJ Livak(Applied Biosystems)等人在2001年提出的「比較Ct法相對定量」,即:利用ΔCt值差異來推算基因表達差異(Ct目的基因 – Ct內參基因 = ΔCt),該方法的具體計算方法請參見文章:qRT-PCR相對定量計算詳解。
  • NAR:MicrobiomeAnalyst微生物組分析師——統計、可視化和元分析微生物組數據的網頁工具
    最近的研究表明,如果樣本大小差異較大,如10倍,抽平是必要的。抽平曲線分析允許用戶可視化觀察測試深度與OTU數據的關係。群體組成物種組成多樣性群體組成主要採用R的phyloseq和vegan包。分析可以在不同分類級進行。alpha多樣性功能目前支持6種多樣性指數。樣本的結果可用箱線圖展示(圖2A)。組間的統計顯著性,用戶可選有參、無參方法計算。
  • 微生物組間差異分析之LEfSe分析
    首先在多組樣本中採用 非參數因子Kruskal-Wallis秩和檢驗 檢測不同分組間豐度差異顯著的物種;也就是圖中按class1 和class2兩個大的分組,每一行都進行檢驗,初步得到差異物種,通過檢驗的打鉤進入step2檢驗;Step2.
  • 如何讀懂和利用你的微生物多樣性測序結果
    計算菌群豐度:Chao、ace;  計算菌群多樣性:Shannon、Simpson。Simpson指數值越大,說明群落多樣性越高;Shannon指數越大,說明群落多樣性越高。看了那麼多指數,可能覺得有點暈,到底每個指數是什麼意思呢?
  • 如何讀懂和利用你的微生物多樣性測序結果?
    計算菌群豐度:Chao、ace;  計算菌群多樣性:Shannon、Simpson。Simpson指數值越大,說明群落多樣性越高;Shannon指數越大,說明群落多樣性越高。看了那麼多指數,可能覺得有點暈,到底每個指數是什麼意思呢?
  • Nature子刊:教你零基礎開展微生物組數據分析和可視化
    頁面頂部是幾個下拉菜單,用戶可以在其中瀏覽不同的alpha多樣性測度或選擇分類級別以評估多樣性差異。默認情況下,使用Chao1在特徵(OTU / ASV)級別評估alpha多樣性,並使用t檢驗評估顯著性差異。頁面的下半部分包含結果的兩個圖形摘要。左側是點圖,顯示了樣本之間的alpha多樣性度量,而右側是框圖,總結了各個組的alpha多樣性度量。
  • reldist-相對分布:分布差異分析和檢驗
    相對分布是評估兩個分布間關係的一種有效手段,其直接關注於兩個分布間的差異而非單個分布的特徵。相對分布可定義為一個分布的結果在另一個分布中呈現的相對等級的分布。具體而言,以參照組為基礎,相對分布將實驗組的分布映射於基準組不同分位數水平上。
  • 擴增子圖表解讀2散點圖:組間整體差異分析(Beta多樣性)
    在宏基因組領域,散點圖常用於展示樣品組間的Beta多樣性,常用的分析方法有主成分分析(PCA),主坐標軸分析(PCoA/MDS)和限制條件的主坐標軸分析(CPCoA/CCA/RDA)。Beta多樣性Beat多樣性是生態學概念,專指不同組或生態位間物種組成的差異。
  • 差異分析完整解決方案:Easystat
    (兩種差異表示,三種圖形展示)柱狀圖展示方差分析或非參數檢驗結果(aovMuiBarPlot)在這個包中將差異檢測和出圖部分分離,方便選擇合適的圖表和差異可視化的策略。最終要的參數是result :為前面差異分析結果中的第一個表單,格式為第一列差異顯著字母,第二列分組標籤,列名,分組標籤。如果只是用可視化的函數,直接從外面導入類似數據即可。# ?
  • 使用 ALDEx2 進行差異分析
    ,我們還可以用 aldex.glm() 函數執行 glm 和Kruskal-Wallis 單因素方差分析。此外,因為 aldex.clr() 函數使用蒙特卡羅方法對數據進行採樣,所以所有結果中的值都是由 aldex.clr() 函數中的 mc.samples 變量給出的狄利克雷實例數的平均值。一行命令進行 ALDEX 差異分析目前,aldex 函數僅限於雙樣本檢驗和單因素方差分析。
  • R語言 | 差異顯著性檢驗
    我們經常要比較兩組或多組數據是否具有顯著差異,同時我們還會用差異顯著性檢驗識別不同組樣品中具有顯著差異的變量。這篇推文會分別介紹經常使用的差異顯著性檢驗方法在R語言中的實現。方法選擇差異顯著性檢驗具有多種方法,分別針對不同的情況,我們要根據自身情況選擇合適的方法進行分析。
  • 營養與健康所等開發新的定量蛋白質組數據差異分析計算模型
    」,報導了一種新計算模型MAP,用於統計分析基於同位素標記產生的定量蛋白質組數據並鑑定其中差異表達的蛋白質。  基於同位素標記和質譜技術的定量蛋白質組實驗(如iTRAQ、TMT和SILAC等)能同時檢測數千甚至上萬個蛋白質在不同樣本之間的相對豐度或表達差異。這類數據已有的差異表達分析方法大多依賴於對並行或已有的技術重複數據進行前期比較來構建實驗的技術誤差模型,並以它為基礎檢驗每個蛋白質在被比較樣本之間表達差異的統計顯著性。該方法佔用了有限的實驗通道,也難以保證誤差模型的精確適用性。
  • Methods in Ecology and Evolution | 取樣不一致下的β多樣性計算: CNESS指數評估
    在生態學研究中,度量不同樣本之間的物種組成差異性是β多樣性的常見計算方法。然而,樣本中採集到的物種數往往受到樣本大小的影響。常用的β多樣性指數(如Jaccard, Sørensen等)並不考慮不同樣本大小對計算結果造成的影響,從而造成觀察值與實際值有較大的偏差。
  • R統計-微生物群落結構差異統計分析
    其實使用R進行各種統計分析和繪圖的方法有很多,最重要的是能理解分析和繪圖結果。群落結構差異分析## 4.1 ADONIS/PERMANOVA-PCoA### β多樣性指數可以選擇不同的指數,bray-curits指數既考慮物種有無也考慮物種豐度,jaccard只考慮物種有無,我一般兩個都用grazing.bray = adonis(spe~ grazing,data = group,permutations = 999,method="bray") # 用grazing分組spe
  • FC/T檢驗/PLS-DA篩選差異代謝物方法介紹
    (O)PLS-DA法(VIP值)倍數變化法即根據代謝物的相對定量或絕對定量結果,計算某個代謝物在兩組間表達量的差異倍數(Fold Change),簡稱FC值。假設A物質在對照組中定量結果為1,在疾病組中定量結果為3,那麼此物質的FC值即為3。由於代謝物定量結果肯定是非負數,那麼FC的取值就是(0, +∞)。
  • 每天學習一點R:43.差異顯著性檢驗
    我們經常要比較兩組或多組數據是否具有顯著差異,同時我們還會用差異顯著性檢驗識別不同組樣品中具有顯著差異的變量。這篇推文會分別介紹經常使用的差異顯著性檢驗方法在R語言中的實現。方法選擇差異顯著性檢驗具有多種方法,分別針對不同的情況,我們要根據自身情況選擇合適的方法進行分析。