跳转至

基因组完整性BUSCO评估

一句话概述:BUSCO(Benchmarking Universal Single-Copy Orthologs)通过搜索进化保守的单拷贝直系同源基因来评估基因组组装、基因注释或转录组的完整性,是基因组质量控制的金标准。

核心知识点速查表

概念说明
BUSCO用保守单拷贝基因评估基因组完整性
Complete(C)完整找到的基因(越高越好,>95%优秀)
Single-copy(S)单拷贝完整基因(正常基因组应占主导)
Duplicated(D)重复的完整基因(高比例可能是杂合/多倍体)
Fragmented(F)片段化基因(部分找到,组装可能不完整)
Missing(M)完全缺失的基因(越少越好)
Lineage dataset谱系特异的基因集(白话:不同物种有不同的"标准考题")
odb10/odb11OrthoDB第10/11版数据库

一、安装与配置

# === Conda安装(推荐) ===
conda create -n busco -c conda-forge -c bioconda busco=5    # 创建环境
conda activate busco                                          # 激活

# === 查看版本和可用谱系 ===
busco --version                      # 查看版本
busco --list-datasets                 # 列出所有可用谱系数据集

# === 常用谱系数据集 ===
# eukaryota_odb10        - 真核生物通用(255个基因)
# bacteria_odb10         - 细菌通用(124个基因)
# fungi_odb10            - 真菌(758个基因)
# viridiplantae_odb10    - 植物(425个基因)
# mammalia_odb10         - 哺乳动物(9226个基因)
# vertebrata_odb10       - 脊椎动物(3354个基因)
# embryophyta_odb10      - 陆地植物(1614个基因)
# metazoa_odb10          - 后生动物(954个基因)

二、运行BUSCO

2.1 基因组模式

# === 评估基因组组装质量 ===
busco \
    -i genome_assembly.fasta \       # 输入:组装的基因组
    -o busco_genome \                # 输出目录名
    -m genome \                      # 模式:genome(基因组)
    -l eukaryota_odb10 \             # 谱系数据集(根据物种选)
    -c 16 \                          # CPU线程数
    --augustus                         # 使用AUGUSTUS进行基因预测

2.2 蛋白质模式

# === 评估基因注释的蛋白质集质量 ===
busco \
    -i predicted_proteins.fasta \    # 输入:预测的蛋白质序列
    -o busco_proteins \              # 输出目录名
    -m proteins \                    # 模式:proteins(蛋白质)
    -l mammalia_odb10 \              # 谱系数据集
    -c 16                             # CPU线程数

2.3 转录组模式

# === 评估转录组组装质量 ===
busco \
    -i transcriptome_assembly.fasta \   # 输入:组装的转录组
    -o busco_transcriptome \             # 输出目录名
    -m transcriptome \                   # 模式:transcriptome
    -l vertebrata_odb10 \                # 谱系数据集
    -c 16                                 # CPU线程数

2.4 自动谱系选择

# === 不确定该用哪个谱系?让BUSCO自动选 ===
busco \
    -i assembly.fasta \
    -o busco_auto \
    -m genome \
    --auto-lineage \               # 自动检测最佳谱系(较慢)
    -c 16

# 或分步自动选择
# --auto-lineage-prok    仅细菌/古菌
# --auto-lineage-euk     仅真核

三、结果解读

# === 查看BUSCO结果摘要 ===
cat busco_genome/short_summary.specific.eukaryota_odb10.busco_genome.txt

# 输出示例:
# ***** Results: *****
#
#     C:95.3%[S:93.1%,D:2.2%],F:2.0%,M:2.7%,n:255
#
#     243  Complete BUSCOs (C)           # 完整找到243个
#     237  Complete and single-copy (S)  # 其中237个是单拷贝
#       6  Complete and duplicated (D)   # 6个是重复的
#       5  Fragmented BUSCOs (F)         # 5个是片段化的
#       7  Missing BUSCOs (M)            # 7个完全缺失
#     255  Total BUSCO groups searched   # 总共搜索255个基因

质量标准解读

指标优秀良好一般
Complete(C)>95%90-95%80-90%<80%
Duplicated(D)<5%5-15%15-30%>30%
Missing(M)<5%5-10%10-20%>20%

特殊情况解读

结果模式可能原因
C高, D低, M低正常二倍体基因组,组装质量好
C高, D高杂合基因组未purge / 多倍体 / 近期WGD
C低, F高组装碎片化,需改进组装策略
C低, M高测序深度不足 / 基因组区域丢失
转录组D高正常,转录本有多个亚型

四、多个样本对比

# === 批量运行BUSCO ===
for fasta in assemblies/*.fasta; do
    name=$(basename "$fasta" .fasta)     # 提取文件名
    busco \
        -i "$fasta" \                     # 输入
        -o "busco_${name}" \              # 输出
        -m genome \                        # 基因组模式
        -l eukaryota_odb10 \              # 谱系
        -c 16                              # 线程
done

# === 生成对比图 ===
# 收集所有short_summary文件
mkdir busco_summaries/
cp busco_*/short_summary.*.txt busco_summaries/

# 使用BUSCO内置脚本生成对比图
generate_plot.py \
    -wd busco_summaries/                   # 包含所有summary的目录
# 输出: busco_figure.png(条形图对比各样本BUSCO结果)
# === Python自定义可视化 ===
import matplotlib.pyplot as plt
import numpy as np

# 数据示例
samples = ['Assembly_v1', 'Assembly_v2', 'Assembly_v3']  # 样本名
complete = [90.2, 95.3, 97.1]     # Complete百分比
fragmented = [5.1, 2.0, 1.2]     # Fragmented百分比
missing = [4.7, 2.7, 1.7]        # Missing百分比

fig, ax = plt.subplots(figsize=(10, 4))                  # 创建画布
x = np.arange(len(samples))                               # x轴位置

# 堆叠条形图
ax.barh(x, complete, color='#2196F3', label='Complete')    # 蓝色=完整
ax.barh(x, fragmented, left=complete, color='#FFC107', label='Fragmented')  # 黄色=片段
ax.barh(x, missing, left=[c+f for c,f in zip(complete,fragmented)],
        color='#F44336', label='Missing')                   # 红色=缺失

ax.set_yticks(x)                     # 设置y轴刻度
ax.set_yticklabels(samples)          # 设置y轴标签
ax.set_xlabel('Percentage (%)')       # x轴标题
ax.legend()                           # 图例
plt.tight_layout()                    # 紧凑布局
plt.savefig('busco_comparison.png', dpi=300)   # 保存高分辨率图

五、面试高频考点

Q1: BUSCO结果怎么看?什么标准算合格?

  • Complete >90% 基本合格,>95% 优秀
  • Duplicated 高不一定是坏事(多倍体/杂合基因组是正常的)
  • Missing <5% 最好,>20% 说明基因组不完整
  • 白话:BUSCO就像期末考试,考255道题,答对多少就是完整度

Q2: BUSCO和N50哪个更重要?

  • N50衡量的是序列连续性(拼图拼得长不长)
  • BUSCO衡量的是基因完整性(关键基因找到了多少)
  • 两者互补,都要看。有时候N50很高但BUSCO差(组装错误),反之亦然
  • 发表文章两个指标都要报告

Q3: 如何选择合适的谱系数据集?

  • 越接近你的物种越好:蘑菇用fungi,水稻用embryophyta
  • 不确定就用--auto-lineage自动选
  • 同一项目中不同样本必须用同一个谱系才能比较

常见报错与解决

报错原因解决方案
Lineage dataset not found谱系数据未下载BUSCO会自动下载,检查网络
Augustus errorAugustus配置问题设置AUGUSTUS_CONFIG_PATH
No genes predicted输入序列太短或不是基因组检查输入文件
tblastn errorBLAST+未安装conda install blast
Permission deniedconfig目录无写权限复制config到有权限的位置

速查表

# === BUSCO 速查 ===
# 基因组评估
busco -i genome.fa -o out -m genome -l lineage_odb10 -c 16

# 蛋白质评估
busco -i proteins.fa -o out -m proteins -l lineage_odb10 -c 16

# 转录组评估
busco -i transcripts.fa -o out -m transcriptome -l lineage_odb10 -c 16

# 自动谱系
busco -i genome.fa -o out -m genome --auto-lineage -c 16

# 常用谱系: eukaryota/bacteria/fungi/viridiplantae/mammalia/metazoa
# 质量标准: C>95%优秀 | C>90%合格 | D<5%正常 | M<5%良好