跳转至

609_宏基因组组装评估QUAST

一句话概述: QUAST/MetaQUAST是评估基因组/宏基因组组装质量的标准工具,通过N50、错配率、基因预测等指标量化组装好坏,是组装流程的"质检站"。

核心知识点速查表

概念白话解释
QUASTQuality ASsessment Tool,基因组组装质量评估工具
MetaQUASTQUAST的宏基因组版本,能处理多物种混合组装
N50把contig从长到短排列,累计长度达总长50%时的那个contig长度(越大越好)
L50达到N50时用了多少条contig(越少越好)
Genome fraction参考基因组被组装覆盖的比例(越高越好)
Misassembly组装错误,包括倒位、易位、重排等
Duplication ratio组装中重复区域与参考基因组的比值
GC content碱基组成中G和C的比例
IcarusQUAST自带的交互式可视化工具

一、安装配置

1.1 conda安装(推荐)

# 创建新环境(避免依赖冲突)
conda create -n quast_env python=3.8  # 创建Python3.8环境
conda activate quast_env  # 激活环境

# 安装QUAST(包含MetaQUAST)
conda install -c bioconda quast  # 从bioconda频道安装

# 验证安装
quast --version  # 查看版本号,当前最新5.3.0
metaquast.py --help  # 查看MetaQUAST帮助信息

1.2 pip安装

pip install quast  # 通过pip安装

1.3 源码安装

git clone https://github.com/ablab/quast.git  # 克隆仓库
cd quast  # 进入目录
python setup.py install  # 安装

二、QUAST基本用法(单基因组)

2.1 最简单的用法——无参考基因组

# 只评估组装本身的统计信息
quast contigs.fasta \
    -o quast_output \          # 输出目录
    -t 8                       # 使用8个线程

2.2 有参考基因组的完整评估

# 有参考基因组时,能计算错配率、基因覆盖率等
quast contigs.fasta \
    -r reference.fasta \       # 参考基因组
    -g genes.gff \             # 参考基因组的基因注释(可选)
    -o quast_with_ref \        # 输出目录
    -t 8 \                     # 线程数
    --min-contig 500           # 最短contig长度过滤(默认500bp)

2.3 比较多个组装结果

# 同时比较不同组装器的结果
quast megahit_contigs.fasta \
    spades_contigs.fasta \
    idba_contigs.fasta \
    -r reference.fasta \       # 参考基因组
    -l "MEGAHIT,SPAdes,IDBA" \ # 给每个组装起标签
    -o compare_assemblers \    # 输出目录
    -t 16                      # 线程数

三、MetaQUAST用法(宏基因组)

3.1 有参考基因组的宏基因组评估

# 提供已知参考基因组
metaquast.py metagenome_contigs.fasta \
    -R ref_genome1.fasta,ref_genome2.fasta \  # 多个参考基因组
    -o metaquast_output \      # 输出目录
    -t 16 \                    # 线程数
    --max-ref-number 50        # 最多使用50个参考基因组

3.2 无参考基因组(自动搜索)

# MetaQUAST自动用BLAST搜索SILVA数据库找参考
metaquast.py metagenome_contigs.fasta \
    -o metaquast_auto \        # 输出目录
    -t 16 \                    # 线程数
    --max-ref-number 50        # 最多下载50个参考基因组

白话解释:没有参考基因组时,MetaQUAST会把你的contig去SILVA 16S数据库里比对,找到最可能的物种,然后从NCBI自动下载这些物种的基因组作为参考。

3.3 比较多个宏基因组组装

# 比较MEGAHIT和metaSPAdes的组装结果
metaquast.py megahit_contigs.fa spades_contigs.fa \
    -l "MEGAHIT,metaSPAdes" \  # 标签
    -R references/ \           # 参考基因组目录
    -o meta_compare \          # 输出目录
    -t 16 \                    # 线程数
    --min-identity 90          # 最低比对一致性(默认90%)

四、解读输出报告

4.1 关键指标解读

# 查看文本报告
cat quast_output/report.txt

核心指标解读表:

指标含义好的标准
# contigscontig总数越少越好(说明组装连续)
Total length组装总长度应接近预期基因组大小
N50连续性指标越大越好,细菌通常>50kb
N75类似N50但用75%的阈值越大越好
L50达到N50需要的contig数越少越好
GC (%)GC含量应与物种已知GC一致
Misassemblies组装错误数越少越好
Genome fraction (%)参考基因组覆盖率越高越好,>90%为佳
Duplication ratio重复比率接近1.0最好
# mismatches per 100 kbp每100kb错配数越少越好
# predicted genes预测基因数应与预期基因数一致

4.2 用Icarus查看交互式报告

# 用浏览器打开HTML报告
firefox quast_output/report.html  # Linux
# 或
open quast_output/icarus.html     # macOS

4.3 用Python脚本提取关键指标

import pandas as pd  # 导入pandas

# 读取QUAST的TSV报告
df = pd.read_csv("quast_output/report.tsv", sep="\t")  # 读取报告
print(df.head(20))  # 打印前20行

# 提取关键指标
n50 = df[df["Assembly"] == "N50"].iloc[0, 1]  # 获取N50值
total_len = df[df["Assembly"] == "Total length"].iloc[0, 1]  # 获取总长度
print(f"N50: {n50}")  # 打印N50
print(f"Total length: {total_len}")  # 打印总长度

五、实战案例:宏基因组组装质量评估流程

#!/bin/bash
# 完整的宏基因组组装评估流程

# === 第1步:组装(用MEGAHIT和metaSPAdes分别组装)===
megahit -1 reads_R1.fq.gz -2 reads_R2.fq.gz \
    -o megahit_out \           # MEGAHIT输出目录
    -t 16                      # 16线程

metaspades.py -1 reads_R1.fq.gz -2 reads_R2.fq.gz \
    -o spades_out \            # SPAdes输出目录
    -t 16                      # 16线程

# === 第2步:用MetaQUAST评估 ===
metaquast.py \
    megahit_out/final.contigs.fa \     # MEGAHIT组装结果
    spades_out/contigs.fasta \         # SPAdes组装结果
    -l "MEGAHIT,metaSPAdes" \          # 标签
    -o assembly_evaluation \           # 输出目录
    -t 16 \                            # 线程数
    --min-contig 1000 \                # 只评估>1kb的contig
    --gene-finding                     # 启用基因预测

# === 第3步:查看结果 ===
echo "=== 组装评估报告 ==="
cat assembly_evaluation/report.txt     # 打印文本报告

六、常用参数速查

# QUAST常用参数
--min-contig 500       # 最短contig过滤长度(默认500)
--threads / -t         # 线程数
--gene-finding         # 启用基因预测(GeneMark/MetaGeneMark)
--large                # 大基因组模式(QUAST-LG)
--fragmented           # 参考基因组不完整时使用
--no-plots             # 不生成图片(节省时间)
--split-scaffolds      # 在N处断开scaffold再评估
--fast                 # 快速模式(跳过部分分析)

# MetaQUAST特有参数
--max-ref-number 50    # 最多参考基因组数
--min-identity 90      # 最低比对一致性(默认90%)
--references-list      # 参考基因组列表文件
--unique-mapping       # 每个contig只比对到最佳参考

七、常见报错与解决

报错信息原因解决方案
ERROR: Can't find GeneMark未安装GeneMarkconda install -c bioconda genemark-es
ERROR: Python package is not foundPython依赖缺失pip install matplotlib joblib
No references downloadedNCBI连接超时使用--references-list手动提供参考
Memory error内存不足减少--max-ref-number或增加内存
Permission denied权限问题chmod +x quast.py
Empty file输入文件为空检查组装是否成功完成

八、面试高频题

Q1:N50和L50分别是什么意思?

答: N50是连续性指标——把所有contig从长到短排列,累加长度达到总长50%时的那条contig的长度。N50越大说明组装越连续。L50是达到N50时需要多少条contig,L50越小越好。打比方:N50像是"平均水平的优秀选手身高",L50是"凑够半支队伍需要多少人"。

Q2:MetaQUAST相比QUAST有什么特殊处理?

答: MetaQUAST针对宏基因组做了三个优化:(1) 支持多参考基因组,因为宏基因组包含多个物种;(2) 能自动从NCBI下载参考基因组;(3) 能检测嵌合contig(chimeric contigs),即来自不同物种的序列被错误拼接在一起。另外MetaQUAST的默认比对一致性阈值是90%(QUAST是95%),因为宏基因组的参考基因组通常与样品中的菌株有差异。

Q3:如何判断宏基因组组装质量好不好?

答: 看几个关键指标:(1) N50越大越好,宏基因组通常在几千到几万bp;(2) 总长度应合理,不能远超预期;(3) 如果有参考,Genome fraction应>80%;(4) Misassembly数越少越好;(5) Duplication ratio接近1.0;(6) 预测基因数合理(细菌约1000基因/Mb)。

Q4:为什么组装评估时N50不是唯一标准?

答: N50高不等于组装好。一个组装可能N50很高但错误组装也多(错误地把不相关序列拼在一起会虚假增大N50)。所以必须综合看:N50(连续性)+ Misassembly(准确性)+ Genome fraction(完整性)+ Duplication ratio(重复性)。好比考试成绩不能只看总分,还要看是否有作弊。

Q5:在宏基因组项目中,你用什么工具评估组装质量?

答: 主要用MetaQUAST评估组装连续性和完整性(N50、misassembly等),配合CheckM/CheckM2评估分箱(bin)的完整性和污染度,用BUSCO评估核心基因的完整性。这三个工具从不同角度评估质量:MetaQUAST看整体组装,CheckM看单个bin,BUSCO看进化保守基因。


参考资料:QUAST 5.3.0 官方手册 (quast.sourceforge.net) | MetaQUAST: Mikheenko et al., Bioinformatics 2016 | GitHub: github.com/ablab/quast