基因预测与注释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但有近缘蛋白数据 |
| BRAKER3 | RNA-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 expired | GeneMark密钥过期 | 重新下载.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