拿到物种/功能丰度表后,做多样性分析、差异分析、关联分析,画图写论文。这是"讲故事"的阶段。
→
输出文件
alpha_diversity.pdf(Shannon/Simpson)
beta_diversity_PCoA.pdf(PCoA/NMDS图)
differential_species.tsv(差异物种表)
LEfSe_results.pdf(生物标志物)
heatmap.pdf(丰度热图)
barplot_phylum.pdf(门水平堆叠柱状图)
R: vegan(多样性)
R: phyloseq
R: DESeq2(差异分析)
Python: scikit-bio
LEfSe(生物标志物)
MaAsLin2(关联分析)
R: ggplot2(画图)
library(vegan)
shannon <- diversity(otu_table, index = "shannon")
simpson <- diversity(otu_table, index = "simpson")
bray_dist <- vegdist(otu_table, method = "bray")
pcoa_res <- cmdscale(bray_dist, eig = TRUE, k = 2)
adonis2(bray_dist ~ Group, data = metadata)
wilcox.test(abundance ~ group, data = species_data)
📖 参数逐行讲解
▸ α多样性(样本内多样性)
diversity(otu_table, index = "shannon") 计算 Shannon 指数:值越大物种越丰富且均匀(肠道一般 2.5-4.0)
diversity(otu_table, index = "simpson") 计算 Simpson 指数:值越接近 1 多样性越高(侧重优势种占比)
▸ β多样性(样本间差异)
vegdist(otu_table, method = "bray") 计算 Bray-Curtis 距离矩阵:考虑丰度差异,宏基因组最常用
cmdscale(bray_dist, eig = TRUE, k = 2) PCoA 降维:把高维距离投影到 2D 平面画散点图
▸ 统计检验
adonis2(bray_dist ~ Group, data = metadata) PERMANOVA 检验:判断分组是否能解释样本间差异(看 R² 和 p 值)
wilcox.test(abundance ~ group) Wilcoxon 秩和检验:非参数方法比较两组差异(不要求正态分布,微生物数据首选)
R vegan 多样性计算(真实代码 + 输出格式):
sample1 sample2 sample3 sample4 sample5 sample6
3.412 3.567 3.289 2.891 2.745 2.934 ← 每个样本一个 Shannon 值
(Health) (Health) (Health) (T2D) (T2D) (T2D) ← 健康组明显高于 T2D 组
─────────────────────────────────────────────
Wilcoxon rank sum test ← 非参数检验(不假设正态分布)
W = 89, p-value = 0.003 ← p<0.05 表示两组差异显著
─────────────────────────────────────────────
← PERMANOVA 检验
Df SumOfSqs R2 F Pr(>F)
Group 1 0.8234 0.156 5.23 0.001 ← R²=0.156 表示分组解释了 15.6% 的变异
Residual 28 4.4567 0.844 ← 剩余 84.4% 由其他因素解释
Total 29 5.2801 1.000
─────────────────────────────────────────────
⚠ Shannon 值范围通常 1.5-5.0,肠道菌群一般 2.5-4.0
⚠ PERMANOVA 的 R² 在菌群研究中通常 5-20%,不要期望太高
⚠ p 值必须做 FDR 校正:p.adjust(p_values, method="BH")
Wilcoxon 差异分析 + FDR 校正(真实输出格式):
mean±SD mean±SD ↑ 原始p FDR校正后p
─────────────────────────────────────────────────────────────────────────
Faecalibacterium prausnitzii 8.2±2.1 3.1±1.5 -1.40 0.00012 0.0018 ** ↓ T2D下降 ← 产丁酸菌,核心标志物
Roseburia intestinalis 5.6±1.8 2.3±1.2 -1.28 0.00034 0.0034 ** ↓ T2D下降 ← 产丁酸菌
Escherichia coli 1.2±0.6 4.8±2.3 +2.00 0.00021 0.0025 ** ↑ T2D升高 ← 条件致病菌!LPS→炎症
Desulfovibrio sp. 0.5±0.3 2.1±0.9 +2.07 0.00089 0.0067 ** ↑ T2D升高 ← 硫酸盐还原菌,产H₂S
Akkermansia muciniphila 3.4±1.1 1.2±0.7 -1.50 0.0012 0.0120 * ↓ T2D下降 ← 改善代谢,热门研究对象
─────────────────────────────────────────────────────────────────────────
⚠ log2FC: 负值=T2D中减少 正值=T2D中增加(|log2FC|>1 通常有生物学意义)
⚠ p.adjust(BH) 才是最终看的 p 值!原始 p-value 有多重检验膨胀
⚠ 相对丰度变化 ≠ 绝对丰度变化(组成数据的陷阱!)
α多样性 — 健康组 vs T2D 组
| 指标 | 健康组 (n=30) | T2D 组 (n=30) | p-value | 结论 |
| Shannon | 3.45 ± 0.32 | 2.89 ± 0.45 | 0.003 ** | T2D 多样性显著降低 |
| Simpson | 0.92 ± 0.03 | 0.85 ± 0.06 | 0.008 ** | T2D 均匀度下降 |
| Observed OTUs | 456 ± 67 | 312 ± 89 | 0.001 *** | T2D 物种数减少 |
差异物种 TOP5(T2D vs 健康)
| 物种 | 健康组 | T2D组 | 变化 | 生物学意义 |
| F. prausnitzii | 8.2% | 3.1% | ↓ 下降 | 产丁酸,抗炎 |
| Roseburia | 5.6% | 2.3% | ↓ 下降 | 产丁酸 |
| A. muciniphila | 3.4% | 1.2% | ↓ 下降 | 改善代谢 |
| E. coli | 1.2% | 4.8% | ↑ 升高 | 条件致病菌 |
| Desulfovibrio | 0.5% | 2.1% | ↑ 升高 | 硫酸盐还原菌,促炎 |
常用统计方法速查
| 分析类型 | 方法 | R 函数 | 适用场景 |
| α多样性比较 | Wilcoxon 秩和检验 | wilcox.test() | 两组比较 |
| α多样性比较 | Kruskal-Wallis | kruskal.test() | 三组及以上 |
| β多样性检验 | PERMANOVA | adonis2() | 组间差异是否显著 |
| β多样性可视化 | PCoA / NMDS | cmdscale() / metaMDS() | 样本聚类散点图 |
| 差异物种 | Wilcoxon + FDR | wilcox.test() + p.adjust() | 非参数,最常用 |
| 差异物种 | DESeq2 | DESeqDataSetFromMatrix() | 参数法,适合小样本 |
| 生物标志物 | LEfSe (LDA) | lefse 命令行工具 | 筛选 LDA > 2 的标志物 |
| 关联分析 | MaAsLin2 | Maaslin2() | 菌群与临床指标关联 |
- 多重检验校正必做:几百个物种同时检验,必须做 FDR(BH)校正,否则假阳性爆炸
- 非参数优先:微生物丰度数据通常不符合正态分布,优先用 Wilcoxon 而非 t-test
- β多样性距离选择:Bray-Curtis(考虑丰度)最常用,UniFrac(考虑进化关系)需要进化树
- 样本量要够:每组至少 10 个样本,理想 30+ 个,样本太少统计功效不足
- 混杂因素:年龄、性别、BMI、饮食等都影响菌群,分析时要考虑协变量
- 相对丰度的陷阱:一个菌升高不代表绝对量增加,可能是其他菌减少导致的"被动升高"
α多样性 = 单个样本内的丰富度(Shannon指数越高越好)。β多样性 = 样本间的差异(用PCoA/NMDS图展示,PERMANOVA检验显著性)。差异分析常用 Wilcoxon(非参数)、DESeq2(参数)、LEfSe(LDA效应值)。你的毕设用的就是这套分析!