跳转至

167_植物基因组分析

一句话概述

植物基因组分析面对多倍体、高重复序列含量和大基因组等特殊挑战,通过EDTA(转座子注释)、BRAKER(基因预测)和BUSCO(完整性评估)构建高质量基因组注释,结合比较基因组学揭示进化关系和全基因组复制事件。


核心知识点总览

知识点说明
多倍体植物基因组常含2-6套染色体组(异源/同源多倍体)
重复序列占基因组50-85%(转座子为主)
EDTA综合转座子(TE)注释流水线
BRAKER结合蛋白证据和RNA-seq的基因预测
BUSCO基于保守直系同源基因的完整性评估
全基因组复制(WGD)植物进化中的多倍化事件
共线性分析染色体间/种间的基因顺序保守性
Ks分布同义替换率分布检测WGD

各步骤详解

第一步:植物基因组的特殊挑战

白话解释: 植物基因组是"地狱级"难度的生信分析:它们经常很大(小麦17Gb,是人类基因组的5倍)、充满重复序列(玉米基因组85%是转座子)、还可能是多倍体(六倍体小麦有3套同源基因组)。分析这样的基因组需要专门的工具和策略。

植物基因组特点: | 特点 | 影响 | 应对策略 | |------|------|---------| | 大基因组(1-30Gb) | 计算资源需求大 | HPC+长读长 | | 高重复(50-85%) | 组装碎片化 | 长reads+Hi-C | | 多倍体 | 同源序列混淆 | ALLHiC/hifiasm分离亚基因组 | | 高杂合度 | haplotig问题 | purge_dups | | 转座子活跃 | 基因被TE插入打断 | EDTA注释后mask |


第二步:转座子注释(EDTA)

代码示例:

# === 安装EDTA ===
conda install -c bioconda edta

# === 运行EDTA ===
EDTA.pl \
  --genome genome.fasta \
  --species others \
  --step all \
  --sensitive 1 \
  --anno 1 \
  --threads 32

# 参数:
# --species: Rice/Maize/others
# --sensitive 1: 高灵敏度模式
# --anno 1: 输出注释(mask文件等)
# --cds: 提供CDS文件排除基因(推荐)

# === 带CDS过滤(推荐) ===
EDTA.pl \
  --genome genome.fasta \
  --cds known_cds.fasta \
  --species others \
  --step all \
  --sensitive 1 \
  --anno 1 \
  --threads 32

# === 输出文件 ===
# genome.fasta.mod.EDTA.TElib.fa    : TE consensus库
# genome.fasta.mod.EDTA.TEanno.gff3 : TE注释GFF3
# genome.fasta.mod.EDTA.TEanno.sum  : 统计摘要
# genome.fasta.mod.MAKER.masked     : 硬mask基因组

# === 统计TE组成 ===
# EDTA输出包含分类统计:
# LTR retrotransposons: Copia, Gypsy
# DNA transposons: hAT, CACTA, Mutator, Harbinger
# MITE, Helitron, LINE, SINE


第三步:基因预测(BRAKER)

代码示例:

# === 安装BRAKER3 ===
# BRAKER3整合了GeneMark-ETP和Augustus
conda install -c bioconda braker3

# === 方法1: 仅用蛋白证据 ===
braker.pl \
  --genome=genome_masked.fasta \
  --prot_seq=proteins.fasta \
  --softmasking \
  --threads=32 \
  --species=my_plant

# === 方法2: RNA-seq + 蛋白证据(推荐) ===
# 先比对RNA-seq
hisat2-build genome_masked.fasta genome_idx
hisat2 -x genome_idx \
  -1 rnaseq_R1.fq.gz -2 rnaseq_R2.fq.gz \
  -p 32 --dta | samtools sort -@ 8 -o rnaseq.bam
samtools index rnaseq.bam

# 运行BRAKER3
braker.pl \
  --genome=genome_masked.fasta \
  --bam=rnaseq.bam \
  --prot_seq=OrthoDB_plants.fasta \
  --softmasking \
  --threads=32 \
  --species=my_plant \
  --gff3

# === 方法3: BRAKER结合Iso-Seq长读长 ===
braker.pl \
  --genome=genome_masked.fasta \
  --bam=rnaseq.bam \
  --prot_seq=proteins.fasta \
  --rnaseq_sets_ids=isoseq \
  --rnaseq_sets_dirs=isoseq_aligned.bam \
  --softmasking \
  --threads=32

# === 输出 ===
# braker/augustus.hints.gff3 : 基因注释
# braker/augustus.hints.aa   : 蛋白序列
# braker/augustus.hints.codingseq : CDS序列


第四步:BUSCO完整性评估

代码示例:

# === 安装BUSCO ===
conda install -c bioconda busco

# === 基因组完整性评估 ===
busco -i genome.fasta \
  -l embryophyta_odb10 \
  -o busco_genome \
  -m genome \
  -c 16

# === 蛋白/转录本完整性评估 ===
busco -i predicted_proteins.fasta \
  -l embryophyta_odb10 \
  -o busco_proteins \
  -m protein \
  -c 16

# === 解读BUSCO结果 ===
# C:95.2%[S:92.1%,D:3.1%],F:2.3%,M:2.5%,n:1614
# C = Complete (完整)
# S = Single-copy (单拷贝完整)
# D = Duplicated (重复完整) - 多倍体中D高是正常的
# F = Fragmented (片段化)
# M = Missing (缺失)
# 质量标准: C>95%为优秀; C>90%为良好

# === 多倍体注意 ===
# 六倍体小麦的BUSCO Duplicated可能>50%(因为3套同源基因)
# 这不是错误,而是多倍体的特征


第五步:比较基因组学

代码示例:

# === 共线性分析(MCScanX) ===
# 安装
git clone https://github.com/wyp1125/MCScanX.git
cd MCScanX && make

# 准备输入: 全蛋白BLASTp
makeblastdb -in all_proteins.fasta -dbtype prot -out blast_db
blastp -query all_proteins.fasta -db blast_db \
  -outfmt 6 -evalue 1e-10 -num_threads 16 \
  -out blast.out -max_target_seqs 5

# 准备GFF简化文件 (chr, gene, start, end)
awk '$3=="gene"' annotation.gff3 | \
  awk -F'\t' '{print $1"\t"$9"\t"$4"\t"$5}' > genes.gff

# 运行MCScanX
MCScanX genes  # 输入前缀

# 输出:
# genes.collinearity : 共线性块
# genes.tandem       : 串联重复基因
# genes.html         : 网页可视化

# === Ks分析检测WGD ===
# 使用wgd包或手动计算
library(ggplot2)

# 读取Ks值(从ParaAT+KaKs_Calculator获得)
ks_data <- read.delim("ks_values.tsv")

# Ks分布图
ggplot(ks_data, aes(x = Ks)) +
  geom_density(fill = "steelblue", alpha = 0.5) +
  xlim(0, 5) +
  geom_vline(xintercept = c(0.3, 0.8, 1.5), linetype = "dashed", color = "red") +
  annotate("text", x = c(0.3, 0.8, 1.5), y = rep(0.8, 3),
           label = c("Recent WGD", "Ancient WGD", "Older WGD")) +
  labs(x = "Ks (synonymous substitution rate)", y = "Density",
       title = "Ks Distribution - WGD Detection") +
  theme_minimal()
# 峰值对应全基因组复制事件时间点

实战命令

# === 植物基因组注释完整流程 ===
# 1. 转座子注释
EDTA.pl --genome genome.fa --cds cds.fa --sensitive 1 --anno 1 --threads 32

# 2. 软mask基因组
bedtools maskfasta -fi genome.fa -bed EDTA_TE.bed -soft -fo genome_softmasked.fa

# 3. 基因预测
braker.pl --genome=genome_softmasked.fa --bam=rnaseq.bam \
  --prot_seq=proteins.fa --softmasking --threads=32 --gff3

# 4. BUSCO评估
busco -i braker/augustus.hints.aa -l embryophyta_odb10 -m protein -c 16

# 5. 功能注释
interproscan.sh -i predicted_proteins.fa -goterms -pa -f tsv

面试常问点

Q1:植物基因组注释中为什么要先做TE注释?

A: 植物基因组50-85%是转座子(TE)。如果不先mask TE:(1) 基因预测器会将TE开放阅读框误判为基因(假基因);(2) BLAST比对会被TE序列主导;(3) 基因数会虚高(真基因~30000,不mask可能预测出>100000)。正确流程:EDTA注释TE → softmask基因组 → BRAKER预测基因。

Q2:如何处理多倍体基因组的基因注释?

A: (1) 先将各亚基因组分离(ALLHiC scaffolding或subgenome assignment);(2) 对每个亚基因组分别进行TE注释和基因预测;(3) 注意同源基因对的分辨——BRAKER可能将高度相似的同源基因合并;(4) BUSCO评估时Duplicated比例高是正常的(六倍体可达>50%);(5) 使用亚基因组特异的RNA-seq证据辅助区分同源基因的表达模式。

Q3:BRAKER3相比BRAKER2有什么改进?

A: BRAKER3集成了GeneMark-ETP(Evidence-based Transcript Prediction),主要改进:(1) 同时利用RNA-seq和蛋白质证据进行训练和预测(BRAKER2需要分别运行再合并);(2) 更好地处理长读长RNA-seq(Iso-Seq)数据;(3) 改进的外显子-内含子边界预测;(4) 对植物特有的GT-AG/GC-AG剪接位点支持更好。

Q4:如何通过Ks分析检测全基因组复制(WGD)?

A: 对基因组内的旁系同源基因对(paralogs)计算同义替换率Ks。WGD事件使大量基因同时复制,这些基因对在WGD后积累的Ks值相似,在Ks分布图上表现为一个峰。峰的位置对应WGD发生的相对时间(Ks越小越近期)。多个峰=多次WGD。结合分子钟(1 Ks ≈ 某百万年)可估计绝对时间。

Q5:BUSCO评估结果中各数字如何解读?

A: 以embryophyta_odb10(1614个基因)为例:C:95%[S:90%,D:5%],F:3%,M:2% 表示——Complete 95%=1614中的95%在基因组中找到完整拷贝;Single 90%=以单拷贝存在(二倍体期望值);Duplicated 5%=以多拷贝存在(可能是WGD残留或assembly错误);Fragmented 3%=只找到部分;Missing 2%=完全未找到。多倍体中D高是正常的。


易错点

1. 未mask TE就做基因预测

错误: 在重复序列丰富的基因组上直接运行BRAKER。 正确做法: 必须先用EDTA注释TE并softmask基因组。未mask会导致大量假基因预测。

2. 使用错误的BUSCO lineage数据库

错误: 用metazoa_odb10评估植物基因组。 正确做法: 植物用embryophyta_odb10或更精确的谱系(如poales_odb10用于禾本科)。

3. 多倍体BUSCO Duplicated高被误判为组装错误

错误: 六倍体小麦BUSCO D=60%认为是冗余组装。 正确做法: 多倍体中同源基因确实多拷贝存在。区分方法:检查D的基因是否位于不同亚基因组/染色体。如果是且符合倍性期望则正常。

4. EDTA运行时CDS文件格式错误

错误: 提供的CDS文件含基因组序列而非CDS。 正确做法: CDS文件应只含编码序列(外显子拼接后),用于排除EDTA将基因误判为TE。

5. 比较基因组中未考虑基因组大规模重排

错误: 直接做全基因组点图(dot plot)不理解断裂模式。 正确做法: 植物基因组经历频繁的染色体重排(易位/倒位)。共线性应在block级别分析(MCScanX)而非期望完整染色体共线性。


补充知识

植物基因组注释工具生态

工具功能
EDTATE注释(整合LTR_retriever, RepeatModeler等)
BRAKER3基因预测(GeneMark+Augustus)
BUSCO完整性评估
MAKER注释整合流水线
GeMoMa同源基因预测
MCScanX共线性分析
WGDI全基因组复制分析
OrthoFinder直系同源基因推断

模式植物基因组资源

  • Phytozome: 植物基因组门户
  • Ensembl Plants: 植物基因组注释
  • PLAZA: 植物比较基因组平台
  • PlantTFDB: 植物转录因子数据库