跳转至

长读测序宏基因组分析


一句话说明

用 Nanopore 或 PacBio 长读测序来分析环境/肠道微生物群落,相比短读测序能组装出更完整的微生物基因组(MAG),还能直接检测甲基化修饰。


核心知识点

1. 为什么宏基因组要用长读

  • 组装更完整:短读组装宏基因组碎片多(几千个 contig),长读能拼出完整环状基因组(白话:短读像拼1000片拼图,长读像拼50片大块拼图)
  • 物种分辨率更高:长读能区分近缘菌株(白话:短读分不清表兄弟,长读能看出谁是谁)
  • 直接检测修饰:ONT 可以直接检测 DNA 甲基化(5mC, 6mA),不需要额外处理
  • 全长基因检测:耐药基因、毒力因子可以获得完整序列

2. 主要测序平台对比

特性ONT (Nanopore)PacBio HiFi
读长1-100+ kb10-25 kb
准确率~98% (Q20+)>99.9%
通量高(PromethION)中等
甲基化直接检测需要额外分析
成本较低较高
宏基因组常用越来越多

3. 分析流程

  • 质控组装binningMAG质量评估物种注释功能注释
  • 关键工具链:Filtlong → Flye/metaFlye → MetaBAT2 → CheckM2 → GTDB-Tk → eggNOG-mapper

4. 长读 vs 短读宏基因组

  • 长读组装的 MAG 完整性更高(N50 更大,contig 数更少)
  • 长读在低丰度物种检测上有优势
  • 混合组装(hybrid assembly)效果最佳:长读搭骨架 + 短读纠错

实战代码

# === 长读宏基因组完整分析流程 ===

# 1. 质控:过滤低质量和短读段
filtlong --min_length 1000 \         # 最短保留1kb
  --keep_percent 95 \                # 保留质量前95%的读段
  raw_reads.fastq.gz > filtered.fq   # 输出过滤后的数据

# 2. 使用 metaFlye 进行宏基因组组装
flye --nano-hq filtered.fq \         # nano-hq 用于Q20+数据
  --out-dir assembly_out \           # 输出目录
  --meta \                           # 宏基因组模式(关键参数!)
  --threads 32                       # 使用32线程

# 3. 用 minimap2 将读段比对回组装结果
minimap2 -ax map-ont \               # ONT比对模式
  assembly_out/assembly.fasta \      # 组装结果作为参考
  filtered.fq | \                    # 输入过滤后的读段
  samtools sort -o mapped.bam        # 排序生成BAM

samtools index mapped.bam            # 建立BAM索引

# 4. MetaBAT2 进行 binning(分箱)
jgi_summarize_bam_contig_depths \    # 计算每个contig的覆盖深度
  --outputDepth depth.txt \          # 输出深度文件
  mapped.bam                         # 输入BAM文件

metabat2 -i assembly_out/assembly.fasta \  # 输入组装序列
  -a depth.txt \                     # 输入深度信息
  -o bins/bin \                      # 输出bin前缀
  -m 1500                            # 最短contig长度1.5kb

# 5. CheckM2 评估 MAG 质量
checkm2 predict \                    # 预测模式
  --input bins/ \                    # bin文件目录
  --output-directory checkm2_out \   # 输出目录
  -x fa \                            # bin文件扩展名
  --threads 16                       # 线程数

# 6. GTDB-Tk 物种分类注释
gtdbtk classify_wf \                 # 分类工作流
  --genome_dir bins/ \               # bin文件目录
  --out_dir gtdbtk_out \             # 输出目录
  -x fa \                            # 文件扩展名
  --cpus 32                          # CPU数
# 解析 CheckM2 结果,筛选高质量 MAG
import pandas as pd                   # 数据处理库

# 读取 CheckM2 质量报告
df = pd.read_csv("checkm2_out/quality_report.tsv", sep="\t")

# MIMAG 标准筛选
high_quality = df[
    (df["Completeness"] >= 90) &      # 完整性 >= 90%
    (df["Contamination"] <= 5)        # 污染率 <= 5%
]
medium_quality = df[
    (df["Completeness"] >= 50) &      # 完整性 >= 50%
    (df["Contamination"] <= 10)       # 污染率 <= 10%
]

print(f"高质量 MAG: {len(high_quality)}")   # 打印高质量MAG数
print(f"中质量 MAG: {len(medium_quality)}") # 打印中质量MAG数

面试常问点

★ 长读测序做宏基因组有什么优势?

参考答案:三个核心优势:(1) 组装更完整,能拼出完整环状基因组,减少碎片化;(2) 能跨越重复序列区域(如 rRNA 操纵子),解决短读组装的"断裂点"问题;(3) ONT 还能直接检测 DNA 甲基化,一次测序获得基因组和表观信息。缺点是成本较高、原始错误率较高,实际项目中常与短读数据混合使用。

★ metaFlye 的 --meta 参数为什么重要?

参考答案:--meta 开启宏基因组模式。普通模式假设所有读段来自同一个基因组,而宏基因组中有成百上千个物种,覆盖度差异巨大(高丰度菌可能100x,低丰度菌可能2x)。--meta 模式会自适应处理不同覆盖度的 contig,不会把低丰度物种当噪音丢掉。

★ 长读宏基因组 binning 和短读有什么不同?

参考答案:长读组装的 contig 更长更少,binning 精度通常更高。但长读数据的覆盖度波动可能更大,所以有些专门为长读优化的 binning 工具(如 SemiBin2 支持长读模式)。另外,长读组装可能直接产生完整基因组,有时不需要 binning 就能得到单个物种的完整序列。


速查卡片

问题答案
长读宏基因组组装工具metaFlye(最常用)
质控工具Filtlong / NanoPlot / chopper
binning 工具MetaBAT2, SemiBin2
MAG 质量评估CheckM2
物种注释GTDB-Tk
高质量 MAG 标准完整性 >=90%, 污染 <=5%
混合组装工具OPERA-MS, Unicycler
ONT 甲基化检测Dorado + modkit
典型数据量10-50 Gb per sample
最低读长过滤通常 1-5 kb