跳转至

BUSCO — 基因组组装完整性评估工具


一句话说明

BUSCO(Benchmarking Universal Single-Copy Orthologs)通过搜索一组"所有该类群物种都应该有的单拷贝基因"来评估基因组/转录组/蛋白组的完整性,是发表基因组论文的必备质控指标。


安装与配置

# 方法1:conda 安装(推荐)
conda install -c bioconda -c conda-forge busco  # 从 bioconda 安装

# 方法2:pip 安装
pip install busco

# 验证安装
busco --version  # 当前最新 6.0.0(2025年,使用 OrthoDBv12 数据集)

# 查看可用的 lineage 数据库
busco --list-datasets

BUSCO 原理(白话版)

  • 每个生物类群都有一组"标配基因"(比如所有真核生物都应该有的 255 个基因)
  • BUSCO 检查你的组装里能找到多少个这样的基因
  • 找到的越多,说明组装越完整

核心用法

基本评估

# 评估基因组组装完整性
busco \
  -i assembly.fasta \            # 输入组装文件
  -o busco_result \              # 输出目录名
  -m genome \                    # 模式:genome(基因组)
  -l bacteria_odb12 \            # 谱系数据库(细菌)
  -c 16                          # 16 线程

# 评估转录组完整性
busco \
  -i transcriptome.fasta \
  -o busco_transcriptome \
  -m transcriptome \             # 模式:transcriptome
  -l eukaryota_odb12 \           # 真核生物谱系
  -c 16

# 评估蛋白组完整性
busco \
  -i proteins.faa \
  -o busco_proteins \
  -m proteins \                  # 模式:proteins
  -l mammalia_odb12 \            # 哺乳动物谱系
  -c 16

自动选择谱系(不确定用哪个数据库时)

# 自动谱系选择(BUSCO 自动判断最合适的数据库)
busco \
  -i assembly.fasta \
  -o auto_busco \
  -m genome \
  --auto-lineage \               # 自动选择谱系(较慢)
  -c 16

# 只在原核生物范围内自动选择
busco \
  -i assembly.fasta \
  -o auto_prok \
  -m genome \
  --auto-lineage-prok \          # 只搜索原核谱系(快)
  -c 16

# 只在真核生物范围内自动选择
busco \
  -i assembly.fasta \
  -o auto_euk \
  -m genome \
  --auto-lineage-euk \           # 只搜索真核谱系
  -c 16

进阶用法

# 批量评估多个组装
for asm in assembly1.fa assembly2.fa assembly3.fa; do
  name=$(basename "$asm" .fa)
  busco -i "$asm" -o "busco_${name}" -m genome -l bacteria_odb12 -c 8
done

# 生成比较图(多个 BUSCO 结果对比)
# 先把多个结果的 short_summary 文件复制到一个目录
mkdir busco_summaries
cp busco_result/short_summary.*.txt busco_summaries/

# 生成对比图
generate_plot.py -wd busco_summaries  # 输出 busco_figure.png

# 离线模式(提前下载数据库)
busco --download bacteria_odb12         # 下载细菌数据库
busco --download_path /path/to/busco_downloads  # 指定下载路径
busco -i assembly.fa -o result -m genome \
  -l bacteria_odb12 \
  --offline \                            # 离线模式
  --download_path /path/to/busco_downloads

结果解读

# 结果示例(short_summary.txt):
# C:98.5%[S:97.8%,D:0.7%],F:0.8%,M:0.7%,n:124
#
# C = Complete(完整找到的基因比例)→ 越高越好,通常 >95% 算好
#   S = Single-copy(单拷贝)→ 正常应该占大多数
#   D = Duplicated(重复的)→ 高的话说明有冗余(杂合区域未 purge)
# F = Fragmented(片段化的)→ 基因不完整
# M = Missing(缺失的)→ 没找到
# n = 该谱系的总基因数

常见问题与踩坑

问题1:不知道选哪个谱系数据库

建议:用 --auto-lineage 自动选择;常用的有: - bacteria_odb12(细菌) - eukaryota_odb12(真核通用) - mammalia_odb12(哺乳动物) - fungi_odb10(真菌) - viridiplantae_odb10(植物)

问题2:Duplicated 比例很高(>10%)

原因:基因组有未 purge 的杂合区域,或存在近期全基因组复制
解决:用 Purge_Dups 去冗余后重新评估

问题3:Complete 比例很低(<80%)

可能原因:组装碎片化严重、覆盖度不够、或选错了谱系数据库
解决:检查组装质量(N50)、数据覆盖度,确认谱系选择正确

问题4:运行很慢

原因:genome 模式需要运行基因预测(Augustus/MetaEuk)
解决:增加线程数;protein 模式最快,genome 模式最慢


速查卡片

命令/参数用途
busco -i input -o out -m genome -l lineage基本评估
-m genome基因组模式
-m transcriptome转录组模式
-m proteins蛋白组模式
--auto-lineage自动选择谱系
--auto-lineage-prok原核谱系自动选择
--list-datasets列出所有可用谱系
generate_plot.py -wd dir生成对比图
--offline离线模式
short_summary.*.txt结果摘要文件