跳转至

基因预测与注释Braker3

一句话概述:BRAKER3是全自动化的真核基因组注释流水线,整合RNA-seq和蛋白质证据,通过GeneMark-ETP+AUGUSTUS+TSEBRA实现高精度基因结构预测。

核心知识点速查表

概念说明
BRAKER3最新版全自动基因注释流水线(2024年Genome Research发表)
GeneMark-ETP整合RNA-seq+蛋白质+从头预测的基因发现工具
AUGUSTUS经典ab initio基因预测器,可用外部证据训练
TSEBRA转录本选择与合并工具,整合多来源预测结果
ab initio从头预测,仅凭序列特征预测基因(白话:猜基因在哪)
外部证据RNA-seq/蛋白质比对等支持基因预测的证据
F1-score精确率和召回率的调和平均,衡量预测准确度

一、BRAKER版本对比

版本证据类型适用场景
BRAKER1仅RNA-seq有转录组数据的物种
BRAKER2仅蛋白质无RNA-seq但有近缘蛋白数据
BRAKER3RNA-seq + 蛋白质两种数据都有(推荐首选)

BRAKER3比BRAKER1/2的转录本F1-score提高约20个百分点,尤其对大型复杂基因组效果显著。

二、安装与环境配置

# === 方法1: Singularity容器(强烈推荐) ===
# BRAKER3依赖众多,手动安装极其繁琐
# 使用容器一键解决所有依赖问题

# 拉取BRAKER3 Singularity镜像
singularity pull docker://teambraker/braker3:latest    # 拉取最新版容器

# 验证安装
singularity exec braker3_latest.sif braker.pl --version   # 检查版本
# === 方法2: Conda安装 ===
# 创建独立环境
conda create -n braker3 -c bioconda -c conda-forge braker3   # 创建环境并安装
conda activate braker3                                         # 激活环境

# 下载Augustus配置文件(必需)
# Augustus需要写权限的config目录
cp -r $CONDA_PREFIX/config/ augustus_config/    # 复制配置目录
export AUGUSTUS_CONFIG_PATH=$(pwd)/augustus_config   # 设置环境变量
# === 准备蛋白质数据库 ===
# 方法A: 下载OrthoDB蛋白质数据
wget https://bioinf.uni-greifswald.de/bioinf/partitioned_odb11/Viridiplantae.fa.gz   # 植物
# 也可选择: Metazoa.fa.gz(动物), Fungi.fa.gz(真菌)等

# 方法B: 从UniProt下载近缘物种蛋白
# 访问 https://www.uniprot.org/ 搜索并下载

三、运行BRAKER3

3.1 标准流程(RNA-seq + 蛋白质)

# === BRAKER3 标准运行 ===
braker.pl \
    --genome=genome.fasta \              # 输入:组装好的基因组(需先soft-mask重复序列)
    --bam=rnaseq_sorted.bam \            # RNA-seq比对结果(BAM格式)
    --prot_seq=proteins.fa \             # 近缘物种蛋白质序列
    --softmasking \                      # 基因组已做soft-masking
    --threads=16 \                       # CPU线程数
    --species=my_species \               # 物种名(用于AUGUSTUS训练)
    --workingdir=braker3_out \           # 工作目录
    --gff3                                # 输出GFF3格式(默认GTF)

3.2 仅RNA-seq证据(BRAKER1模式)

# === 没有蛋白质数据时 ===
braker.pl \
    --genome=genome.fasta \       # 基因组序列
    --bam=rnaseq.bam \            # RNA-seq比对结果
    --softmasking \               # 已soft-mask
    --threads=16 \                # 线程数
    --species=my_species           # 物种名

3.3 仅蛋白质证据(BRAKER2模式)

# === 没有RNA-seq数据时 ===
braker.pl \
    --genome=genome.fasta \       # 基因组序列
    --prot_seq=proteins.fa \      # 蛋白质序列
    --softmasking \               # 已soft-mask
    --threads=16 \                # 线程数
    --species=my_species           # 物种名

四、输入数据准备

# === 1. 基因组预处理:重复序列mask ===
# BRAKER3要求输入soft-masked基因组
RepeatMasker \
    -pa 16 \                     # 并行线程数
    -species "arabidopsis" \     # 物种名(RepeatMasker库中的)
    -xsmall \                    # soft-masking(小写字母标记重复区)
    -dir masked_output \         # 输出目录
    genome.fasta                  # 输入基因组

# === 2. RNA-seq数据比对 ===
# 使用HISAT2比对RNA-seq到基因组
hisat2-build genome.fasta genome_index             # 建立索引
hisat2 \
    -x genome_index \                               # 索引前缀
    -1 rnaseq_R1.fastq.gz \                         # RNA-seq正向reads
    -2 rnaseq_R2.fastq.gz \                         # RNA-seq反向reads
    --dta \                                          # 针对下游转录本组装优化
    -p 16 \                                          # 线程数
    | samtools sort -@ 8 -o rnaseq_sorted.bam       # 排序并输出BAM

samtools index rnaseq_sorted.bam                     # 建立BAM索引

五、结果文件解读

# === BRAKER3输出目录结构 ===
braker3_out/
├── braker.gtf              # 最终基因注释(GTF格式)★主要结果
├── braker.gff3             # GFF3格式注释(加--gff3参数时)
├── braker.aa               # 预测蛋白质序列(氨基酸)
├── braker.codingseq        # 预测编码序列(CDS核酸)
├── hintsfile.gff           # 证据提示文件
├── Augustus/               # AUGUSTUS训练参数
├── GeneMark-ETP/           # GeneMark-ETP中间结果
└── braker.log              # 运行日志
# === 统计注释结果 ===
# 统计预测基因数量
grep -c "gene" braker.gtf          # 基因总数
grep -c "mRNA" braker.gtf          # mRNA/转录本数
grep -c "CDS" braker.gtf           # CDS数量

# 用AGAT进行详细统计
agat_sp_statistics.pl \
    --gff braker.gff3 \            # 输入GFF3文件
    -o annotation_stats.txt         # 输出统计结果

# 用BUSCO验证注释蛋白质的完整性
busco \
    -i braker.aa \                  # 输入预测的蛋白质序列
    -o busco_proteins \             # 输出目录
    -m proteins \                   # 蛋白质模式
    -l eukaryota_odb10              # 谱系数据库

六、面试高频考点

Q1: BRAKER3相比BRAKER1/2的核心改进?

  • 数据整合:同时利用RNA-seq和蛋白质证据(BRAKER1只用RNA-seq,BRAKER2只用蛋白质)
  • GeneMark-ETP:新算法生成高精度训练集,GC含量特异性模型训练
  • TSEBRA合并器:智能选择最优转录本,综合考虑所有证据
  • F1-score提升:平均提升约20%,对大型复杂基因组效果尤为显著

Q2: 什么时候用哪个模式?

  • 有RNA-seq + 蛋白质 → BRAKER3(首选)
  • 只有RNA-seq → BRAKER1模式
  • 只有蛋白质 → BRAKER2模式
  • 非模式生物无任何证据 → GeneMark-ES(纯ab initio)

Q3: 注释质量怎么评估?

  • BUSCO完整度 >85%
  • 预测基因数量在合理范围(与近缘物种比较)
  • 平均基因长度、外显子数等与近缘物种一致
  • 手动检查关键基因的注释是否正确

常见报错与解决

报错原因解决方案
AUGUSTUS_CONFIG_PATH not set环境变量未设置export AUGUSTUS_CONFIG_PATH=/path/to/config
GeneMark license expiredGeneMark密钥过期重新下载.gm_key文件放到$HOME
No training genes输入数据质量太差检查BAM文件是否有比对结果
Genome not soft-masked基因组未做重复序列mask先用RepeatMasker处理
Permission denied容器中写入权限问题--bind挂载目录
Out of memory大基因组内存不足增加内存或分染色体运行

速查表

# === BRAKER3 一键流程速查 ===
# 1. 重复序列mask
RepeatMasker -pa 16 -species "species_name" -xsmall genome.fasta

# 2. RNA-seq比对
hisat2-build genome.fasta.masked idx
hisat2 -x idx -1 R1.fq.gz -2 R2.fq.gz --dta -p 16 | samtools sort -o rna.bam
samtools index rna.bam

# 3. 运行BRAKER3
braker.pl --genome=genome.fasta.masked --bam=rna.bam --prot_seq=proteins.fa \
    --softmasking --threads=16 --species=my_sp --gff3

# 4. 评估质量
busco -i braker.aa -m proteins -l lineage_odb10