可视化指标计算公式_基于OTU的alpha多样性指数计算和可视化
1. 簡介
物種豐富度指數(Species richness)為群落中豐度大于0的物種數之和,一般用Observed OTU(observed species)表示,但只有物種種類信息,沒有豐度信息,數值范圍一般為幾百至幾千不等,范圍很大,與研究對象有關;
香農指數(Shannon index)或稱香農熵指數(Shannon entropy index)、香農-威納指數(Shannon-Wiener index),大家最常用的Shannon index 數值為1-10左右的小數,是綜合物種數量和豐度兩個層面的結果。如果群落僅由單一物種組成(種群),那么我們確信隨機選擇的個體必定為那個唯一的物種,此時不確定性就為零;否則,我們將無法得知隨機被選擇的個體究竟屬于什么物種,并且不確定性也會隨著群落物種種類數的增多而增加。
辛普森指數(Simpson index)同樣考慮了物種豐富度以及均勻度,但與Shannon指數相比,它更受均勻度的影響(Simpson,1949))。經典Simpson指數代表了在群落中兩個隨機選擇的個體屬于同一物種的概率,當群落物種豐富度增加時,這種概率降低,即Simpson指數隨著物種豐富度的增加而降低。由于經典Simpson指數與物種豐富度相反的趨勢不直觀,如今常用演變而來的Gini-Simpson指數表示Simpson指數,即用1減去經典Simpson指數數值后得到,此時Simpson指數隨著豐富度的增加而增加(二者保持一致的趨勢)。
特別注意:通常情況下為保持物種豐度指數與Simpson指數的趨勢一致,直接將“Gini-Simpson”定義為“Simpson”,即絕大多數情況下,我們在文獻中看到的Simpson指數或者軟件直接給出的Simpson指數結果,其實是Gini-Simpson指數,而并非經典Simpson指數。
均勻度(Evenness)用于度量群落中相對物種豐富度,Shannon均勻度(Shannon’s evenness),又稱Pielou均勻度(Pielou’s evenness),為群落實際的Shannon指數與具有相同物種豐富度的群落中能夠獲得的最大Shannon指數的比值。如果所有物種具有相同的相對豐度,則該值為1。
Chao1是根據出現1/2次的OTU來估算總體;還有PD whole tree是考慮物種進化關系權重,認為分類學上非常上近的物種存在一定相關性;
物種豐富度指數(Species richness)為群落中豐度大于0的物種數之和,值越大表明群落中物種種類越豐富。
ACE指數在生態學中同樣作為度量物種豐富度的指標(Chao and Yang,1993),其值越高代表群落物種越豐富。
goods_coverage常用在微生物16S/18S/ITS測序中,作為反映測序深度的指標。其值越接近于1,說明測序深度越合理,測序深度已經基本覆蓋到樣品中所有的物種;反之,測序深度不高,許多物種僅被測到了一次,暗示著很多低豐度物種可能尚未被測序測到。
數據樣式:每一行為一個樣本,每一列為一種OTU,交接位置為相應豐度計數。
2. alpha多樣性指數計算
library(picante)
library(ggplot2)
otu
dimnames = list(row_names = paste0("OTU",seq(1:100)),
col_names = paste0("sample",seq(1:12))))
head(otu)
# 樣本的OTU豐度/ 該樣本OTU總豐度 = 相對豐度
otu
# 如果計算無誤,每個sample的相對豐度和為1
apply(otu, 2, sum)
# 轉制 - 變成行代表樣品,列代表OTU,交叉區域為豐值度
otu
# 物種豐富度 Richness 指數(observed species)
richness 0)
#
shannon_index
#每個樣本的Shannon 多樣性
shannon_diversity
# Shannon 均勻度(Pielou 均勻度)
pielou
# 轉換組成數據集
shannon_diversity
shannon_diversity$sample
# 加入分組信息
group_data
sample = paste0("sample",seq(1:12)),
group = rep(LETTERS[1:4], each = 3),
sites = rep(c("soil", "root"), each = 6),
stringsAsFactors = FALSE)
# 根據sample 合并
shannon_diversity
group_data, by = "sample")
str(shannon_diversity)
# 箱線圖展示
ggplot(data = shannon_diversity) + geom_boxplot(aes(x = group,
y = shannon_diversity,
fill = sites))
其他包括:Simpson指數(Gini-Simpson指數)、Pielou均勻度、Chao1指數、ACE指數、goods_coverage等可以換index進行計算,或者用estimateR()計算常見幾種;譜系多樣性指數需要引入進化樹,用pd(){picante}計算。
如果用qiime2 分析平臺,則可以用一句命令計算所有多樣性指數。16S rRNA 流程目錄 - qiime2
打包進function中,避免太多重復代碼
library(vegan)
library(picante)
otu
otu
# 大多數alpha多樣性計算
# 公式的對數底數均設使用 e(exp(1))
# 給出的simpson 指數是Gini-Simpson 指數值與物種豐富度趨勢一致
Alpha_diversity_index
est
Obs
Shannon
Simpson
Pielou
goods_coverage
result
Pielou, goods_coverage)
# 如果檢測到樹文件,將添加Pd指數計算
if (!is.null(tree)) {
# Pd 同時計算譜系多樣性(PD)和物種豐富度(SR)
# 如果此處刪除[1], 最終結果有兩個我中豐富度值
Pd
Pd
result
}
result
}
alpha.png
3. 批量箱線圖
# 讀入實驗設計和Alpha多樣性值
alpha_file
simple_site
alpha_diversity
theme
# 顯示x平行網格線
panel.grid.major.y = element_line(colour = "black"),
# 顯示x軸坐標
axis.line.x = element_line(colour = "black"),
axis.line.y = element_line(colour = "black"),
axis.title.x = element_blank()
)
# 按Sample_name
data
# Grouped boxplot --------------------------------------------
p
for (i in colnames(alpha_diversity)[2:8]){
p[[i]]
y = i)) +
geom_jitter(aes(color = Group1)) +
geom_boxplot(aes(fill = Group1), width = .2, position = position_nudge(x = - 0.01),
fill = "white", size = 0.8) +
theme
}
plot = wrap_plots(p, nrow = 2) + plot_annotation(tag_levels = 'a')
file_save
ggsave(filename = paste0(file_save, "ABCD_alpha_diversity.tiff"),
plot = plot )
棒棒糖圖
當發現箱形圖非常丑,如:箱體很長,離群值的點非常多,可以采用棒棒糖圖直接可視化每個樣點的多樣性指數。
4. 統計組間是否顯著差異
anova對指數與分組統計
使用TukeyHSD對組間進行檢驗,效正pvalue
總結
以上是生活随笔為你收集整理的可视化指标计算公式_基于OTU的alpha多样性指数计算和可视化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《编译原理》陈火旺——词法分析程序c语言
- 下一篇: GTSAM中ISAM2和Incremen