全部版块 我的主页
论坛 经济学论坛 三区 卫生经济学
157 0
2025-11-24

一、全景视角下的微生物研究:宏基因组学

宏基因组学(Metagenomics)利用高通量测序技术直接捕获环境中的所有微生物的基因组信息,无需依赖传统的培养步骤就能揭示微生物群落的物种组成和功能潜力。这一突破性技术解决了“99% 微生物不可培养”的难题,并在医学、环境科学和工业等领域得到广泛应用。例如,在医学领域,宏基因组学被用于研究肠道菌群与疾病的关联;在环境保护方面,则用于解析参与污染修复的微生物群落;而在工业应用中,则用于筛选具有特殊功能的酶。

相较于仅分析 16S rRNA 等标记基因的扩增子测序,宏基因组学能够同时实现物种分类(达到菌株水平分辨率)和功能注释(全面覆盖代谢通路),甚至可以从数据中组装出微生物的基因组草图(MAGs)。本文将详细介绍从实验设计到生物信息学分析的标准化流程,并提供实际操作代码与关键参数。

二、构建高质量数据的基础:实验设计与样本处理

(一)避免“源头误差”的样本采集与保存策略

确保样本质量是宏基因组学研究成功的关键。基本原则包括代表性、无菌性和即时性。针对不同类型的样本,需采取相应的处理方法:

  • 土壤样本:按 0-20cm 深度分层取样,去除石块和植物残体,多点混合(至少 5 个采样点),装入无菌封口袋。现场使用干冰快速冷冻,并在实验室中保持 -80°C 存储以防止反复冻融。对于根际土壤,则需要先抖落松散颗粒,再用无菌刷子收集附着于根部的土层。
  • 水体样本:使用无菌采样器收集 1-2L 水样。若水体浑浊,应先通过大孔滤膜预过滤,然后用 0.22μm 的醋酸纤维素滤膜进一步富集微生物。滤膜需在液氮中冷冻至少 4 小时,并转移到 -80°C 冷藏。
  • 粪便样本:采集新鲜样品(不少于 2g),装入无菌离心管,用干冰运输并在 2 小时内完成 DNA 提取。若延迟处理,则加入专用保存液以防止微生物降解。

注意事项:

  1. 所有工具(如采样勺、离心管)必须在 121°C 下灭菌 30 分钟;
  2. 设置阴性对照(用无菌水模拟采样过程),以监测潜在污染;
  3. 记录样本的元数据信息,如 pH 值、温度和宿主详情等,为后续分析提供基础。

(二)DNA 提取与质量控制:追求完整性、纯度和浓度

DNA 的提取过程中需关注三大核心指标——完整性、纯度和浓度。不同类型的样本应采用不同的方法:

  • 土壤样本:推荐使用 CTAB-酶解法(加入溶菌酶 + 蛋白酶 K),并通过吸附柱进一步去除腐殖酸等杂质;
  • 粪便样本:建议采用商业化的试剂盒(例如 Qiagen QIAamp PowerFecal Pro Kit)以减少多糖的干扰;
  • 水体滤膜:需先将滤膜剪碎,用缓冲液彻底清洗后再进行提取。

质量检测标准包括:
- 纯度:Nanodrop 测定 OD260/280 应在 1.8-2.0 之间(表明无蛋白污染),OD260/230≥2.0(确保无盐类污染);
- 完整性:通过 Agilent Bioanalyzer 检查 DNA 片段的主峰应在 10kb 以上,且没有明显的拖尾现象;
- 浓度:使用 Qubit 荧光定量法测定浓度应不低于 20ng/μL,总量需达到 300ng 或更多(满足建库需求)。

(三)选择合适的测序平台与文库构建方案

根据研究目的合理选择测序策略:

测序平台 读长 准确率 优势场景 推荐数据量
Illumina NovaSeq 150-300bp >99.9% 物种分类、功能通路分析 肠道 10Gb,土壤 20Gb
Nanopore PromethION >10kb ~99% MAGs 组装、耐药基因簇解析 10-15Gb
PacBio Sequel II 5-20kb >99.9% 高精度基因组完成图构建 15-20Gb

文库构建要点:

  • DNA 经超声处理破碎至 300-500bp 片段;
  • 进行末端修复、接头连接和 PCR 扩增等步骤后,使用 Agilent 2100 检测文库片段分布(主峰应在 400-600bp),并通过 Qubit 定量后上机测序。

三、从数据到结论:生物信息学分析流程

(一)数据预处理:去除“噪声”以获得清洁序列

原始的 FastQ 格式测序数据中通常包含接头和低质量碱基等杂质,需经过以下步骤进行净化:

  1. 质量评估(FastQC):使用 FastQC 可视化工具检查质量分布,重点关注碱基质量值(Q20≥90%)、GC 含量(避免异常峰值)和接头污染等。
    # 创建结果目录
    mkdir -p quality_reports trimmed_data
    # 批量生成质量报告
    fastqc -o quality_reports/ raw_data/*.fastq.gz
  2. 数据修剪(Trimmomatic):去除接头序列及低质量读段。具体参数需根据实际数据质量调整。
    trimmomatic PE -threads 8 \
      raw_data/sample_R1.fastq.gz raw_data/sample_R2.fastq.gz \
      trimmed_data/sample_R1_paired.fastq.gz trimmed_data/sample_R1_unpaired.fastq.gz \
      trimmed_data/sample_R2_paired.fastq.gz trimmed_data/sample_R2_unpaired.fastq.gz \
      ILLUMINACLIP:adapters.fasta:2:30:10 \  # 去除Illumina接头
      LEADING:3 \  # 切除5'端Q<3的碱基
      TRAILING:3 \  # 切除3'端Q<3的碱基
      SLIDINGWINDOW:4:20 \  # 4bp窗口平均Q≥20
      MINLEN:50  # 保留≥50bp的读段
  3. 去宿主污染(Bowtie2):对于涉及宿主的样本,如粪便或组织,应使用 Bowtie2 比对去除人源或植物源序列。
    # 构建宿主基因组索引(以人类hg38为例)
    bowtie2-build hg38.fa hg38_index
    # 比对并筛选非宿主序列
    bowtie2 -p 8 -x hg38_index \
      -1 trimmed_data/sample_R1_paired.fastq.gz \
      -2 trimmed_data/sample_R2_paired.fastq.gz \
      --un-conc trimmed_data/sample_clean_.fastq.gz  # 输出非宿主序列

(二)短读段拼接成长片段:序列组装

序列组装的目标是将经过预处理的清洁读段拼接成较长的连续片段(Contig)。常用的工具包括 MEGAHIT(速度快)和 MetaSPAdes(质量高)。具体操作如下:

  • de novo 组装(MEGAHIT):适用于大规模样本集,建议设置 k-mer 梯度以提高组装的完整性。
    megahit -1 trimmed_data/sample_clean_1.fastq.gz \
      -2 trimmed_data/sample_clean_2.fastq.gz \
      --k-min 21 --k-max 121 --k-step 20 \  # k-mer从21到121,步长20
      --min-contig-len 500 \  # 保留≥500bp的Contig
      --merge-level 20,0.98 \  # 合并相似短片段
      -o assembly_output/
  • 组装质量评估(Quast):通过 N50(越长越好)、Contig 总数等指标来判断组装效果。理想的组装标准是:肠道样本 N50≥1kb,土壤样本 N50≥800bp,且 Contig 数量不超过 5 万个。
    quast assembly_output/final.contigs.fa \
      -o quast_report/ \
      --min-contig 500  # 仅统计≥500bp的Contig

(三)基因预测与功能注释:揭示微生物的“能力清单”

1. 编码基因预测(Prodigal):

通过 Prodigal 工具对组装后的 Contigs 进行编码基因预测,这是解析微生物功能的第一步。

宏基因组学分析流程优化

在宏基因组研究中,从 Contig 中识别开放阅读框(ORF)是生成蛋白序列的关键步骤,这些蛋白序列将用于后续的注释工作。


prodigal -i assembly_output/final.contigs.fa \
  -a predicted_proteins.faa \  # 输出蛋白序列
  -d predicted_genes.fna \  # 输出核酸序列
  -o predicted_genes.gff \  # 输出基因位置信息
  -p meta  # 宏基因组模式(允许异质性序列)

功能数据库比对:提升效率与准确性

为了提高比对效率,通常使用 DIAMOND 代替 BLAST 进行蛋白序列的比对。DIAMOND 可以利用多种常用的功能数据库,如 KEGG(代谢通路)、COG(功能分类)和 CAZy(碳水化合物酶),这些数据库在宏基因组分析中非常有用。

KEGG 代谢通路注释流程

  1. 下载 KEGG 数据库并构建索引:
  2. 
    
    diamond makedb --in ko.faa -d kegg_ko
  3. 蛋白序列比对获取 KO 号:
  4. 
    
    diamond blastp -d kegg_ko \
      -q predicted_proteins.faa \
      -o ko_annotation.tsv \
      --evalue 1e-5 \  # 设定E值阈值
      --max-target-seqs 1 \  # 保留最佳比对结果
      --outfmt 6 qseqid sseqid pident evalue bitscore qlen slen  # 输出格式
  5. KO 号转换为通路丰度:
  6. 
    
    # 加载R包
    library(dplyr)
    library(readr)
    
    # 读取注释结果与KO-通路映射表
    ko_annot <- read_tsv("ko_annotation.tsv", col_names = c("gene", "ko", "pident", "evalue", "bitscore", "qlen", "slen"))
    ko_pathway <- read_tsv("ko_pathway_mapping.txt", col_names = c("ko", "pathway", "description"))
    
    # 统计通路丰度
    pathway_abundance <- ko_annot %>%
      group_by(ko) %>%
      count(name = "gene_count") %>%  # 统计每个KO的基因数
      left_join(ko_pathway, by = "ko") %>%
      group_by(pathway, description) %>%
      summarise(total_genes = sum(gene_count), .groups = "drop")  # 汇总通路基因数
    
    # 保存结果
    write_tsv(pathway_abundance, "pathway_abundance.tsv")

物种分类注释:揭秘 "谁在里面"

宏基因组学中,物种分类注释通常采用两种策略:基于读段的快速注释(Kraken2)和基于标记基因的精准注释(MetaPhlAn3)。这两种方法各有优势,适用于不同的研究需求。

1. 快速物种注释(Kraken2)

Kraken2 通过直接用清洁读段比对物种数据库,适合进行初步筛选和快速分类。


# 构建标准数据库(约16GB)
kraken2-build --standard --db kraken2_db

# 物种分类
kraken2 --db kraken2_db \
  --threads 8 \
  --paired trimmed_data/sample_clean_1.fastq.gz trimmed_data/sample_clean_2.fastq.gz \
  --output kraken2_output/classification.txt \
  --report kraken2_output/abundance_report.txt  # 输出物种丰度表

2. 精准物种注释(MetaPhlAn3)

MetaPhlAn3 基于特异性标记基因,实现物种水平的精准定量,并支持菌株识别。


# 安装MetaPhlAn3
conda install -c bioconda metaphlan3

# 物种 profiling
metaphlan trimmed_data/sample_clean_1.fastq.gz,trimmed_data/sample_clean_2.fastq.gz \
  --input_type fastq \
  --nproc 8 \
  --output profiled_metagenome.txt \  # 物种丰度表
  --bowtie2out metaphlan_bowtie2.bam  # 比对结果

3. 物种丰度可视化(R-ggplot2)

使用 R 语言的 ggplot2 包可以将物种丰度数据进行可视化,帮助研究人员直观地理解样本中的物种分布。


library(ggplot2)
library(tidyr)

# 读取物种丰度表(筛选门水平前10)
species_abund <- read_tsv("profiled_metagenome.txt", skip = 4) %>%
  filter(`#SampleID` == "sample") %>%
  separate(clade_name, into = c("kingdom", "phylum", "class", "order", "family", "genus", "species"), sep = "\\|") %>%
  filter(!is.na(phylum)) %>%
  group_by(phylum) %>%
  summarise(abundance = sum(relative_abundance)) %>%
  arrange(desc(abundance)) %>%
  slice(1:10)

# 绘制堆叠柱状图
ggplot(species_abund, aes(x = "", y = abundance, fill = phylum)) +
  geom_col(width = 1) +
  coord_polar("y") +
  labs(title = "微生物群落门水平组成", fill = "门水平分类") +
  theme_void()

代谢通路富集与差异分析:挖掘关键功能

代谢通路的富集分析和组间差异分析是宏基因组学研究中的重要环节,有助于发现样本中的显著功能变化。

1. 通路富集分析(基于 KEGG)

通过 R 语言进行通路富集分析,可以筛选出样本中显著富集的代谢通路。


# 加载通路丰度数据
pathway_data <- read_tsv("pathway_abundance.tsv")
# 计算通路占比
pathway_data <- pathway_data %>%
  mutate(ratio = total_genes / sum(total_genes) * 100) %>%
  arrange(desc(ratio)) %>%
  slice(1:15)  # 取前15条通路

# 绘制水平条形图
ggplot(pathway_data, aes(x = reorder(description, ratio), y = ratio)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  labs(x = "代谢通路", y = "占比(%)", title = "核心代谢通路占比") +
  theme_minimal()

2. 组间差异分析(DESeq2)

使用 DESeq2 包进行组间差异分析,可以比较实验组与对照组之间的差异物种和通路。这需要输入原始计数矩阵。


library(DESeq2)
library(ggplot2)

# 读取物种丰度矩阵(行:物种,列:样本)
abund_matrix <- read.delim("species_abundance_matrix.txt", row.names = 1)
# 读取样本分组信息
sample_info <- data.frame(
  sample = colnames(abund_matrix),
  group = factor(c(rep("control", 5), rep("treatment", 5)))  # 5个对照,5个处理
)

# 构建DESeq2对象
dds <- DESeqDataSetFromMatrix(
  countData = abund_matrix,
  colData = sample_info,
  design = ~ group
)

# 差异分析
dds <- DESeq(dds)
res <- results(dds, contrast = c("group", "treatment", "control"))

# 筛选显著差异物种(padj < 0.05 & |log2FoldChange| > 1)
diff_species <- res %>%
  as.data.frame() %>%
  filter(padj < 0.05 & abs(log2FoldChange) > 1) %>%
  rownames_to_column("species")

# 绘制火山图
res_df <- res %>% as.data.frame() %>% rownames_to_column("species")
ggplot(res_df, aes(x = log2FoldChange, y = -log10(padj))) +
  geom_point(aes(color = ifelse(padj < 0.05 & abs(log2FoldChange) > 1, "red", "black")), alpha = 0.6) +
  geom_vline(xintercept = c(-1, 1), linetype = "dashed", color = "gray") +
  geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "gray") +
  labs(title = "差异物种火山图", x = "log2(处理组/对照组)", y = "-log10(调整后P值)", color = "差异显著性") +
  theme_minimal()

高级分析:从群落到基因组的深度挖掘

在宏基因组学研究中,除了基本的物种分类和功能注释外,还可以进行更深入的高级分析。

1. 宏基因组组装基因组(MAGs)

通过分箱技术将 Contig 分配到单个微生物基因组,常用的流程是 MetaWRAP。这有助于揭示不同微生物在群落中的作用。


# 1. 覆盖度计算
jgi_summarize_bam_contig_depths --outputDepth depth.txt mapping.bam

# 2. 分箱
metawrap binning -o mag_binning -t 8 \
  --metabat2 --maxbin2 --concoct \  # 三种分箱工具联合
  assembly_output/final.contigs.fa \
  depth.txt

# 3. 质量过滤(完整性≥70%,污染率≤10%)
metawrap quality_control -o mag_filtered \
  -t 8 --min_completeness 70 --max_contamination 10 \
  mag_binning/bins/

2. 微生物共现网络分析

使用 R 语言的 igraph 包构建微生物共现网络,可以揭示物种间的共生和竞争关系。


library(igraph)
# 计算物种间Spearman相关性
cor_matrix <- cor(t(abund_matrix), method = "spearman")
# 筛选显著相关对(|r|>0.6 & p<0.05)
cor_signif <- cor.mtest(cor_matrix, conf.level = 0.95)
cor_filtered <- cor_matrix * (abs(cor_matrix) > 0.6 & cor_signif$p < 0.05)

# 构建网络
graph <- graph.adjacency(cor_filtered, mode = "undirected", weighted = TRUE, diag = FALSE)
# 绘制网络
plot(graph, vertex.size = 5, vertex.label = NA, edge.width = abs(E(graph)$weight)*2)

常见问题与解决方案

  • DNA 提取纯度低:对于土壤样本,增加 CTAB 抽提次数;对于粪便样本,使用糖原辅助沉淀。
  • 组装 N50 过低:① 增加测序深度;② 调整 MEGAHIT 的 k-mer 范围(如缩小步长);③ 合并多平台数据(Illumina + Nanopore)。
  • 宿主污染率高:① 采样时减少宿主组织残留;② 使用 Bowtie2 多次比对宿主基因组;③ 提高过滤严格度(如使用 --very-sensitive 参数)。
  • 功能注释率低:① 合并多个数据库(如 KEGG + eggNOG);② 降低 E 值阈值(如 1e-3);③ 使用 GhostKOALA 工具(针对宏基因组优化)。

总结与展望

宏基因组学分析遵循 "样本 - 测序 - 分析 - 解读" 的闭环流程。其中,样本处理的严谨性和生信参数的优化(如组装 k-mer、比对 E 值)是核心质控点。随着长读长测序技术(如 Nanopore)的普及,MAGs 组装完整性将进一步提升。结合宏转录组和宏代谢组的多组学整合分析,将实现从 "物种存在" 到 "功能表达" 的深度解析。

本手册提供的代码适用于 Illumina 平台数据,实际分析中需要根据样本类型(如土壤 vs 肠道)和研究目标(如物种鉴定 vs 功能挖掘)调整参数。建议新手先使用公开数据(如 HMP 数据库)进行练习,逐步掌握工具特性和结果解读逻辑。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群