QIIME2多样性分析进阶:2024-2025最新功能¶
一句话概述¶
QIIME2是微生物组扩增子分析的"瑞士军刀",从原始测序数据到多样性分析、物种组成、差异分析一条龙搞定,2025年版本带来了大量新功能和改进。
核心知识点表格¶
| 知识点 | 说明 |
|---|---|
| QIIME2 2025.4 | 最新版本,2025年5月发布,包含大量新功能 |
| q2-boots | 2025年新插件,基于Bootstrap的更稳健多样性分析 |
| 新文档站 | amplicon-docs.qiime2.org 替代旧docs.qiime2.org |
| uchime2/3 | 新的嵌合体检测算法,适合去噪后的ASV |
| orient-reads | 新功能,处理混合方向的reads |
| UNITE v10 | 2025年2月更新的真菌ITS分类数据库 |
安装QIIME2 2025.4¶
# 使用conda安装最新版QIIME2(2025.4)
# 第一步:下载安装文件
wget https://data.qiime2.org/distro/amplicon/qiime2-amplicon-2025.4-py310-linux-conda.yml
# 第二步:创建环境
conda env create -n qiime2-2025.4 \
--file qiime2-amplicon-2025.4-py310-linux-conda.yml # 按yml文件创建环境
# 第三步:激活环境
conda activate qiime2-2025.4 # 激活QIIME2环境
# 验证安装
qiime --version # 查看版本号
qiime info # 查看已安装的插件信息
进阶分析一:Alpha多样性深度分析¶
稀释曲线与采样深度选择¶
# 生成alpha稀释曲线(判断测序深度是否足够)
qiime diversity alpha-rarefaction \
--i-table table.qza \ # 输入feature表
--i-phylogeny rooted-tree.qza \ # 输入有根系统发育树
--p-max-depth 50000 \ # 最大稀释深度
--m-metadata-file metadata.tsv \ # 样本元数据
--o-visualization alpha-rarefaction.qzv # 输出可视化文件
# 在浏览器中查看
qiime tools view alpha-rarefaction.qzv # 离线查看(2025.4新功能)
多种Alpha多样性指数一次性计算¶
# 计算多种alpha多样性指数
# Shannon指数(物种丰富度+均匀度)
qiime diversity alpha \
--i-table table.qza \
--p-metric shannon \ # Shannon多样性指数
--o-alpha-diversity shannon.qza
# Faith's PD(系统发育多样性)
qiime diversity alpha-phylogenetic \
--i-table table.qza \
--i-phylogeny rooted-tree.qza \
--p-metric faith_pd \ # Faith系统发育多样性
--o-alpha-diversity faith_pd.qza
# Pielou均匀度
qiime diversity alpha \
--i-table table.qza \
--p-metric pielou_e \ # Pielou均匀度指数
--o-alpha-diversity pielou.qza
# 组间差异统计检验
qiime diversity alpha-group-significance \
--i-alpha-diversity shannon.qza \ # 输入alpha多样性
--m-metadata-file metadata.tsv \ # 元数据
--o-visualization shannon-significance.qzv # 输出可视化
进阶分析二:Beta多样性深度分析¶
PCoA排序与组间比较¶
# 一次性计算核心多样性指标(alpha + beta + PCoA)
qiime diversity core-metrics-phylogenetic \
--i-table table.qza \ # 输入feature表
--i-phylogeny rooted-tree.qza \ # 输入系统发育树
--p-sampling-depth 10000 \ # 稀释深度(根据稀释曲线选择)
--m-metadata-file metadata.tsv \ # 元数据
--output-dir core-metrics-results # 输出目录
# 输出包含:
# observed_features_vector.qza — 观测到的特征数
# shannon_vector.qza — Shannon指数
# faith_pd_vector.qza — Faith PD
# evenness_vector.qza — 均匀度
# unweighted_unifrac_distance_matrix.qza — 非加权UniFrac距离
# weighted_unifrac_distance_matrix.qza — 加权UniFrac距离
# bray_curtis_distance_matrix.qza — Bray-Curtis距离
# jaccard_distance_matrix.qza — Jaccard距离
# 以及各指标对应的Emperor PCoA可视化
PERMANOVA检验(组间差异显著性)¶
# 用PERMANOVA检验组间差异
qiime diversity beta-group-significance \
--i-distance-matrix core-metrics-results/weighted_unifrac_distance_matrix.qza \
--m-metadata-file metadata.tsv \
--m-metadata-column Group \ # 分组列名
--p-method permanova \ # 统计方法:PERMANOVA
--p-pairwise \ # 进行两两比较
--o-visualization permanova-results.qzv
# 使用ANOSIM检验
qiime diversity beta-group-significance \
--i-distance-matrix core-metrics-results/bray_curtis_distance_matrix.qza \
--m-metadata-file metadata.tsv \
--m-metadata-column Group \
--p-method anosim \ # 统计方法:ANOSIM
--o-visualization anosim-results.qzv
PERMDISP(组间离散度检验)¶
# 检验组间beta多样性离散度是否一致
qiime diversity beta-group-significance \
--i-distance-matrix core-metrics-results/weighted_unifrac_distance_matrix.qza \
--m-metadata-file metadata.tsv \
--m-metadata-column Group \
--p-method permdisp \ # 检验组间离散度
--o-visualization permdisp-results.qzv
进阶分析三:2025年新功能q2-boots¶
基于Bootstrap的稳健多样性分析¶
# 安装q2-boots(2025年3月发布的新插件)
pip install q2-boots # 安装q2-boots
# q2-boots通过bootstrap采样提供更稳健的多样性结果
# 不像rarefaction直接丢弃reads,而是多次重采样取平均
# 使用q2-boots计算alpha多样性
qiime boots alpha-collection \
--i-table table.qza \ # 输入feature表
--p-metric shannon \ # 多样性指标
--p-sampling-depth 10000 \ # 采样深度
--p-n 100 \ # bootstrap重复次数
--o-alpha-diversities boots-shannon.qza # 输出
# 使用q2-boots计算beta多样性
qiime boots beta-collection \
--i-table table.qza \
--p-metric braycurtis \ # 距离指标
--p-sampling-depth 10000 \
--p-n 100 \ # bootstrap重复次数
--o-distance-matrices boots-braycurtis.qza
进阶分析四:纵向数据分析¶
# 使用q2-longitudinal分析时间序列数据
# 线性混合效应模型
qiime longitudinal linear-mixed-effects \
--m-metadata-file metadata_longitudinal.tsv \ # 纵向元数据
--p-state-column Timepoint \ # 时间点列
--p-individual-id-column SubjectID \ # 个体ID列
--p-metric shannon \ # 分析的指标
--m-metadata-file shannon.qza \ # Shannon多样性数据
--o-visualization lme-shannon.qzv # 输出可视化
# Volatility分析(波动性分析)
qiime longitudinal volatility \
--m-metadata-file metadata_longitudinal.tsv \
--p-state-column Timepoint \
--p-individual-id-column SubjectID \
--p-default-metric shannon \
--m-metadata-file shannon.qza \
--o-visualization volatility-shannon.qzv
进阶分析五:组成分析(ANCOM)¶
# 使用ANCOM-BC进行差异丰度分析
# 先过滤低频特征
qiime feature-table filter-features \
--i-table table.qza \
--p-min-frequency 50 \ # 最低总频率
--p-min-samples 5 \ # 至少出现在5个样本中
--o-filtered-table filtered-table.qza
# 添加伪计数(ANCOM需要)
qiime composition add-pseudocount \
--i-table filtered-table.qza \ # 输入过滤后的表
--o-composition-table comp-table.qza # 输出组成表
# 运行ANCOM
qiime composition ancom \
--i-table comp-table.qza \ # 输入组成表
--m-metadata-file metadata.tsv \
--m-metadata-column Group \ # 分组列
--o-visualization ancom-results.qzv
2025.4版本重要更新详解¶
1. 改进的嵌合体检测¶
# 新的uchime2/uchime3去噪算法(适合已去噪的ASV)
qiime vsearch uchime-denovo \
--i-table table.qza \
--i-sequences rep-seqs.qza \
--p-dn 1.0 \ # 默认参数
--o-chimeras chimeras.qza \ # 输出嵌合体序列
--o-nonchimeras nonchimeras.qza \ # 输出非嵌合体序列
--o-stats chimera-stats.qza # 输出统计信息
# 注意:2023.9/2024.2/2024.5版本有uchime-denovo的bug
# 建议升级到2025.4版本
2. 处理混合方向reads¶
# 新的orient-reads功能(处理R1/R2方向混乱的数据)
qiime vsearch orient-reads \
--i-sequences demuxed-seqs.qza \ # 输入demux后的序列
--i-reference ref-seqs.qza \ # 参考序列
--o-oriented-sequences oriented-seqs.qza # 输出方向统一的序列
3. 分类器更新¶
# 使用最新的Greengenes2分类器
# 下载2024.09版本的预训练分类器
wget https://data.qiime2.org/classifiers/greengenes2/2024.09/gg2-2024.09-nb-classifier.qza
# 运行分类
qiime feature-classifier classify-sklearn \
--i-classifier gg2-2024.09-nb-classifier.qza \ # 预训练分类器
--i-reads rep-seqs.qza \ # 输入代表序列
--o-classification taxonomy.qza # 输出分类结果
常见报错与解决¶
| 报错 | 原因 | 解决方案 |
|---|---|---|
Plugin error: No sequences... | 稀释深度设太高 | 降低 --p-sampling-depth,参考稀释曲线 |
metadata column not found | 元数据列名拼写错误 | 检查metadata.tsv列名,注意大小写 |
uchime-denovo bug | 2023.9-2024.5版本已知bug | 升级到2025.4版本 |
| DADA2运行极慢 | 数据量大、参数不当 | 调整 --p-n-threads,减少 --p-trunc-len |
| Emperor图显示不了 | 浏览器兼容性问题 | 用Chrome打开,或用 qiime tools view 离线查看 |
classify-sklearn 内存不足 | 分类器太大 | 增加内存,或使用更小的分类器 |
速查表¶
# QIIME2常用命令
qiime info # 查看安装信息
qiime tools import # 导入数据
qiime tools export # 导出数据
qiime tools view *.qzv # 查看可视化(2025.4支持离线)
qiime tools peek *.qza # 查看artifact信息
# 核心分析流程
1. 导入数据 → qiime tools import
2. 质控去噪 → qiime dada2 denoise-paired
3. 系统发育树 → qiime phylogeny align-to-tree-mafft-fasttree
4. 多样性分析 → qiime diversity core-metrics-phylogenetic
5. 分类注释 → qiime feature-classifier classify-sklearn
6. 差异分析 → qiime composition ancom
# 多样性指标速查
Alpha: shannon / observed_features / faith_pd / pielou_e
Beta: braycurtis / jaccard / weighted_unifrac / unweighted_unifrac
# 统计检验
Kruskal-Wallis → alpha组间比较
PERMANOVA → beta组间比较
ANOSIM → beta组间相似性检验
PERMDISP → beta组间离散度检验
面试高频问题¶
Q1:Alpha多样性和Beta多样性有什么区别?
A:Alpha多样性描述单个样本内部的微生物多样性(有多少种、多均匀),常用Shannon指数、Faith PD等。Beta多样性描述样本间的群落组成差异(两个样本有多不同),常用Bray-Curtis距离、UniFrac距离等。
Q2:加权UniFrac和非加权UniFrac有什么区别?
A:非加权UniFrac只考虑物种"有没有"(presence/absence),加权UniFrac还考虑物种"有多少"(丰度)。如果关注稀有物种的差异用非加权,关注优势物种的丰度变化用加权。
Q3:PERMANOVA检验的原理是什么?
A:PERMANOVA是基于距离矩阵的置换多变量方差分析。它比较组内距离和组间距离,如果组间距离显著大于组内距离,说明分组因素对群落组成有显著影响。用置换检验计算p值,不需要正态分布假设。
Q4:如何选择合适的稀释深度?
A:看稀释曲线(alpha-rarefaction图),选择曲线趋于平坦的最小深度值。通常还要考虑:①不能丢弃太多样本;②建议保留至少70%的样本。2025年新的q2-boots插件通过bootstrap方法避免了rarefaction丢失数据的问题。
Q5:QIIME2 2025年有什么重要更新?
A:主要更新:①q2-boots新插件用bootstrap替代rarefaction;②修复了vsearch嵌合体检测的bug;③新增orient-reads功能处理混合方向reads;④新文档站amplicon-docs.qiime2.org;⑤Greengenes2分类器更新到2024.09版本。