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 | 结果摘要文件 |