跳转至

宏基因组全流程(Metagenomics Pipeline)


一句话概述

宏基因组分析从原始测序数据(raw sequencing data)出发,经过 数据校验 → 质量评估 → 质量控制 → 去宿主 → 物种注释 → 功能注释 → 多样性分析 的完整流程,最终实现对环境样本中微生物群落组成和功能的全面解析。


目录


1. 核心知识点(流程总览表)

序号步骤工具目的输入输出关键参数
1md5校验md5sum验证数据传输完整性,防止文件损坏原始 fastq.gz 文件 + md5.txt校验通过/失败报告-c(check模式)
2质量评估FastQC + MultiQC评估原始数据质量,发现潜在问题fastq.gz 文件HTML质量报告-t(线程数)、-o(输出目录)
3质量控制fastp去接头序列、过滤低质量reads、去除短reads原始 R1/R2 fastq.gz清洗后 clean R1/R2 fastq.gz--qualified_quality_phred 20--length_required 50--detect_adapter_for_pe
4去宿主Bowtie2 + samtools去除人源序列污染,保留微生物readsclean fastq.gz + 宿主基因组索引非宿主 reads fastq.gz--very-sensitive-p(线程)、-f 12(保留双端未比对)
5物种注释Kraken2 + Bracken对reads进行物种分类和丰度估计去宿主后 fastq.gz + Kraken2数据库物种分类报告 + 丰度表--confidence 0.05-r(read length)、-l(分类层级)
6功能注释HUMAnN3 / eggNOG-mapper注释微生物群落的代谢通路和基因功能去宿主后 fastq.gz 或组装后的基因序列通路丰度表、基因家族表--threads、数据库路径
7多样性分析R(vegan包)/ Python(scikit-bio)评估群落组成差异和样本间关系物种丰度表(OTU/species table)Alpha/Beta多样性指数、PCoA图等距离度量方法(Bray-Curtis等)

2. 各步骤详解

2.1 md5校验(Data Integrity Check)

什么是md5?

md5(Message Digest Algorithm 5)是一种哈希算法,可以为任意大小的文件生成一个固定长度的128位(32个十六进制字符)"指纹"。即使文件只改变1个字节,md5值也会完全不同。

为什么要做md5校验?

  • 测序数据通常由测序公司通过网络传输,过程中可能出现数据损坏
  • 测序数据文件往往很大(几GB到几十GB),传输中断或磁盘错误的概率不低
  • 如果数据损坏却不知道,后续分析结果都不可靠

实际操作:

测序公司交付数据时会同时提供一个 md5.txt 文件,里面记录了每个fastq.gz文件对应的md5值。我们下载数据后,重新计算md5值并与之比较,一致则说明数据完整。


2.2 质量评估(Quality Assessment)

FastQC 报告的核心模块:

模块名称含义正常标准异常信号
Per base sequence quality每个位置的碱基质量分布Q20以上占大多数,Q30>80%3'端质量急剧下降
Per sequence quality scores每条read的平均质量分布峰值在Q30以上双峰分布
Per base sequence content每个位置的ATCG比例四条线平行、接近25%开头几个碱基波动(正常,来自random primer)
Per sequence GC contentGC含量分布接近理论正态分布多峰(可能有污染)
Sequence length distributionreads长度分布集中在固定长度(如150bp)长度不均一
Adapter content接头序列残留比例接近0%明显上升曲线(需要去接头)
Overrepresented sequences高频重复序列无或极少大量重复(可能是接头或rRNA污染)

MultiQC 的作用:

当样本很多时(比如实习中做几十个样本的宏基因组),逐一看FastQC报告太麻烦。MultiQC 能把所有样本的FastQC报告汇总成一个交互式网页,方便横向比较。

关键质量指标阈值:

指标一般
Q20 占比>95%90-95%<90%
Q30 占比>85%80-85%<80%
Adapter含量<5%5-15%>15%
重复率<30%30-50%>50%
GC分布单峰正态轻微偏移多峰/严重偏移

2.3 质量控制/清洗(Quality Control)

fastp 是什么?

fastp 是一个高效的fastq文件预处理工具,可以同时完成质量过滤、接头去除、低质量碱基修剪等操作。相比老牌工具 Trimmomatic,fastp 速度更快(C++实现)、使用更简单,且自带HTML质量报告。

fastp 核心参数详解:

参数含义常用值说明
-i / -I输入R1/R2文件fastq.gz大写I对应R2
-o / -O输出R1/R2文件clean.fq.gz大写O对应R2
--detect_adapter_for_pe自动检测PE接头开启PE数据推荐开启
--adapter_sequence指定R1接头序列Illumina通用接头知道接头序列时手动指定更准确
--adapter_sequence_r2指定R2接头序列Illumina通用接头同上
-q / --qualified_quality_phred碱基质量阈值20低于此值的碱基被认为是"不合格"
-u / --unqualified_percent_limit不合格碱基最大比例40一条read中不合格碱基超过此比例则过滤
-l / --length_required最短read长度50短于此值的read被丢弃
--cut_front从5'端滑窗切除低质量开启类似Trimmomatic的LEADING
--cut_tail从3'端滑窗切除低质量开启类似Trimmomatic的TRAILING
--cut_window_size滑窗大小4滑窗内平均质量低于阈值则切除
--cut_mean_quality滑窗内平均质量阈值20与滑窗配合使用
-w / --thread线程数8-16根据服务器配置设置
-j / -hJSON/HTML报告输出指定路径fastp自带质量报告,非常好用
--n_base_limit允许的最大N碱基数5含N过多的read被丢弃
--correction碱基校正(PE overlap区域)开启利用PE reads重叠区域纠错

常见Illumina接头序列:

TruSeq Adapter (Read 1): AGATCGGAAGAGCACACGTCTGAACTCCAGTCA
TruSeq Adapter (Read 2): AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT
Nextera Adapter:          CTGTCTCTTATACACATCT

reads保留率参考标准:

阶段正常保留率需要注意
fastp质控后>90%<85% 说明原始数据质量较差
去宿主后(人肠道样本)70-99%(视样本类型)<50% 可能宿主污染严重
去宿主后(土壤/水样本)>95%理论上宿主含量极低

2.4 去宿主(Host Removal)

为什么要去宿主?

宏基因组测序的对象是环境中的微生物DNA,但在样本采集和提取过程中,不可避免地会混入宿主(如人体肠道样本中的人源DNA)的序列。

不去宿主的后果: 1. 浪费计算资源:人源reads可能占10-50%甚至更高,这些reads参与后续分析纯属浪费 2. 干扰物种注释:人源序列可能被错误注释为微生物,产生假阳性 3. 影响丰度估计:分母(总reads数)被人源序列稀释,微生物丰度被低估 4. 功能注释污染:人类基因功能被混入微生物功能分析中

使用什么参考基因组?

  • 人源宿主:GRCh38(hg38),即人类参考基因组第38版
  • 下载地址:NCBI(GCA_000001405.15)或 UCSC(hg38.fa.gz)
  • 小鼠样本:GRCm39(mm39)
  • 其他动物样本:对应物种的参考基因组

Bowtie2 去宿主的原理:

  1. 先用 bowtie2-build 对宿主参考基因组建立索引(只需做一次)
  2. 将质控后的reads比对到宿主基因组
  3. 提取未比对上的reads(即非宿主、属于微生物的reads)
  4. samtools 从BAM文件中提取未比对的reads

关键概念:samtools flag 过滤

flag含义
4该read未比对上(unmapped)
8配对的mate未比对上
12该read和mate都未比对上(4+8=12)

对于PE数据,我们用 samtools view -b -f 12 提取双端都没比对上宿主基因组的read对。

Bowtie2 比对模式:

模式参数速度灵敏度适用场景
very-fast--very-fast最快最低粗筛
fast--fast较低快速分析
sensitive--sensitive中等中等默认模式
very-sensitive--very-sensitive最高去宿主推荐

去宿主时推荐 --very-sensitive,因为我们希望尽可能多地识别和去除宿主序列,宁可多去一些也不要漏掉。


2.5 物种注释(Taxonomic Profiling)

Kraken2

原理:

Kraken2 使用精确的 k-mer 匹配算法进行物种分类。它将每条read切割成连续的 k-mer(默认k=35),然后在预建的数据库中查找每个k-mer属于哪个物种。最终通过LCA(Lowest Common Ancestor,最低公共祖先)算法确定read的分类。

数据库类型:

数据库大小覆盖范围适用场景
Standard~70GBRefSeq完整库(细菌、古菌、病毒、人类)常规分析、精度要求高
MiniKraken~8GB标准库的缩减版内存有限时使用
PlusPF~70GB+Standard + 真菌 + 原生动物需要分析真核微生物时
自建库可变自定义特殊需求

confidence 参数详解:

--confidence 参数控制分类的严格程度,取值范围 0-1。

  • 含义:一条read被分类到某个物种时,支持该分类的k-mer比例必须 >= confidence值
  • 默认值:0(不过滤,所有能分类的read都保留分类结果)
confidence值效果适用场景
0最宽松,分类最多reads,但假阳性最高不推荐用于最终分析
0.05常用推荐值,轻微过滤,平衡灵敏度和精确度(搭配大型 Standard 数据库时建议 0.15~0.2;使用小型数据库时 ≤0.1)常规宏基因组分析
0.1中等严格需要较高可信度时
0.2较严格,只保留高置信分类,减少假阳性但可能丢失低丰度物种要求高精度、不关心低丰度物种
0.5非常严格,大量reads变为"未分类"特殊验证用途

实际选择建议: - 常规分析:--confidence 0.05--confidence 0.1 - 0.05 保留更多信息,适合探索性分析 - 0.2 更保守,适合需要高精度的发表级分析 - 具体选择还取决于数据库大小和样本类型

Bracken

为什么需要Bracken?

Kraken2 的分类结果存在一个问题:很多reads只能被分类到较高的分类层级(如属level),而不是种level。这是因为不同物种之间共享大量k-mer,Kraken2通过LCA算法会把这些reads推到它们的共同祖先节点。

Bracken(Bayesian Reestimation of Abundance with KrakEN)通过贝叶斯算法,将这些高层级的reads重新分配到种level,从而得到更准确的物种水平丰度估计。

Bracken 关键参数:

参数含义常用值
-rread长度150(与实际测序长度一致)
-l分类层级S(种)、G(属)、P(门)
-t最小reads数阈值10(少于此数的物种被过滤)

分类层级代码:

代码层级英文
DDomain
PPhylum
CClass
OOrder
FFamily
GGenus
SSpecies

2.6 功能注释(Functional Annotation)

为什么要做功能注释?

物种注释告诉我们"有哪些微生物",功能注释则告诉我们"这些微生物在做什么"。功能注释将基因序列映射到已知的功能数据库,揭示微生物群落的代谢潜力。

HUMAnN3

HUMAnN3(The HMP Unified Metabolic Analysis Network 3)是宏基因组功能注释的主流工具。

工作流程: 1. 先用MetaPhlAn进行物种鉴定 2. 根据鉴定结果选择对应的泛基因组数据库 3. 用Bowtie2将reads比对到泛基因组 4. 未比对上的reads用DIAMOND比对到UniRef蛋白数据库 5. 整合结果,输出通路丰度和基因家族丰度

主要输出:

输出文件内容用途
genefamilies.tsv基因家族丰度(UniRef90/UniRef50)基因水平功能分析
pathabundance.tsv代谢通路丰度(MetaCyc)通路水平功能分析
pathcoverage.tsv通路覆盖度判断通路是否完整存在

eggNOG-mapper

eggNOG-mapper 通过将基因序列比对到eggNOG数据库,提供多种功能注释: - COG/KOG 分类:蛋白功能正交分类 - GO (Gene Ontology):基因本体注释 - KEGG pathway:代谢通路注释 - CAZy:碳水化合物活性酶

HUMAnN3 vs eggNOG-mapper:

特点HUMAnN3eggNOG-mapper
输入原始reads或clean reads基因序列(通常需要先组装+预测)
速度较慢较快
数据库MetaCyc + UniRefeggNOG
注释类型通路为主多种注释体系(COG/GO/KEGG)
常用场景基于reads的功能分析基于基因的功能分析

2.7 多样性分析(Diversity Analysis)

Alpha多样性(Alpha Diversity)

Alpha多样性衡量的是单个样本内部的物种多样性。

常用指标:

指数英文含义特点
Observed Species观测到的物种数样本中检测到的物种总数最直观,但受测序深度影响大
ShannonShannon-Wiener Index综合考虑物种丰富度和均匀度最常用,值越大多样性越高
SimpsonSimpson Index随机抽取两个个体属于不同物种的概率对优势物种更敏感
Chao1Chao1 Estimator根据低丰度物种估计总物种数常用于16S,宏基因组中较少用
PielouPielou's Evenness物种均匀度(0-1)1表示完全均匀
ACEACE Estimator基于丰度的覆盖度估计与Chao1类似

通俗解释Shannon指数:

想象一个花园: - 花园A:100朵花,分别是50朵玫瑰、30朵百合、20朵菊花 → Shannon较高 - 花园B:100朵花,95朵玫瑰、3朵百合、2朵菊花 → Shannon较低 - Shannon指数同时考虑了"有多少种花"(丰富度)和"每种花的数量是否均衡"(均匀度)

Beta多样性(Beta Diversity)

Beta多样性衡量的是不同样本之间的物种组成差异。

常用距离/相异度指标:

度量英文特点适用场景
Bray-CurtisBray-Curtis Dissimilarity考虑丰度信息,范围0-1最常用,适合丰度数据
JaccardJaccard Distance只考虑有无,不考虑丰度关注物种组成差异
UniFrac (weighted)Weighted UniFrac考虑丰度+进化关系16S数据(需要进化树)
UniFrac (unweighted)Unweighted UniFrac只考虑有无+进化关系16S数据
EuclideanEuclidean Distance常见距离度量一般用于标准化后的数据

常用可视化方法:

方法英文用途
PCoAPrincipal Coordinates Analysis展示样本间距离关系(最常用)
NMDSNon-metric Multidimensional Scaling展示样本排列,适合非线性关系
PCAPrincipal Component Analysis降维展示,适合标准化数据
热图Heatmap展示物种丰度矩阵

统计检验:

方法英文用途
PERMANOVAPermutational MANOVA检验组间Beta多样性是否有显著差异
ANOSIMAnalysis of Similarities类似PERMANOVA,非参数检验
WilcoxonWilcoxon Rank Sum TestAlpha多样性组间比较
Kruskal-WallisKruskal-Wallis H Test多组Alpha多样性比较