一、注释策略
进行注释的三种策略:
- 从头注释(de novo prediction):通过已有的概率模型来预测基因结构,在预测剪切位点和UTR区准确性较低
- 同源预测(homology-based prediction):有一些基因蛋白在相近物种间的保守型搞,所以可以使用已有的高质量近缘物种注释信息通过序列联配的方式确定外显子边界和剪切位点
- 基于转录组预测(transcriptome-based prediction):通过物种的RNA-seq数据辅助注释,能够较为准确的确定剪切位点和外显子区域。
每一种方法都有自己的优缺点,所以最后需要用EvidenceModeler(EVM)和GLEAN工具进行整合,合并成完整的基因结构。基于可靠的基因结构,后续可才是功能注释,蛋白功能域注释,基因本体论注释,通路注释等
基因结构注释应是功能注释的先决条件,完整的真核生物基因组注释流程需要如下步骤:
- 必要的基因组重复序列屏蔽
- 从头寻找基因, 可用工具为: GeneMarkHMM, FGENESH, Augustus, SNAP, GlimmerHMM, Genscan;
- 同源蛋白预测, 内含子分析: GeneWIse, Exonerate, GenomeThreader,TransDecoder;
- 将EST序列,全长cDNA序列和Trinity/Cufflinks/Stringtie组装的转录组和基因组联配;
- 如果第4步用到了多个数据来源,使用PASA基于重叠情况进行联配;
- 使用EvidenceModler根据上述结果进行整合;
- 使用PASA更新EVM的一致性预测,增加UTR注释和可变剪切注释;
- 必要的人工检查。
二、从头预测基因 ab initio
文件准备:在水稻网站http://rice.hzau.edu.cn/rice_rs3/下载MH63RS3版本的水稻基因组作为练手数据。
1.Augustus
安装(使用conda安装)
source activate genome_anno
conda install augustus=3.3
conda install -c bioconda augustus -y
使用
mkdir 01-augustsus && cd 01-augustsus
cp MH63RS3.fasta.gz ../01augustus/
mv MH63RS3.fasta genome.fa
seqkit split genome.fa #结果文件在genome.fa.split文件夹里。split是按照指定方式将染色体拆分成小部分。
find genome.fa.split/ -type f -name "*.fa" | parallel -j 30 augustus --species=rice --gff3=on >> test.gff #并行处理 ###注意选择物种
join_aug_pred.pl < test.gff | grep -v '^#' > test.joined.gff
bedtools sort -i test.joined.gff > augustus.gff
2.GeneMark-ES/ET
安装
#GeneMark-ES/ET是唯一一款支持无监督训练模型, 软件下载需要登记。
wget http://topaz.gatech.edu/GeneMark/tmp/GMtool_HbJ0A/gmes_linux_64.tar.gz
tar xf gm_et_linux_64.tar.gz
wget http://topaz.gatech.edu/GeneMark/tmp/GMtool_AoSqY/gm_key_64.gz
gzip -dc gm_key_64.gz > ~/.gm_key
cpan YAML Hash::Merge Logger::Simple Parallel::ForkManager
echo "export PATH=$PATH:$HOME/Tools/GeneMark/gmes_linux_64" >> ~/.bashrc
使用
gmes_petap.pl --ES --sequence genome.fa --cores 50
最后得到的是genemark.gtf,是标准的GTF格式,可以使用Sequence Ontology Project提供的gtf2gff3.pl进行转换。
两种将gtf转为gff格式的方法。
wget http://genes.mit.edu/burgelab/miso/scripts/gtf2gff3.pl
chmod 755 gtf2gff3.pl
perl gtf2gff3.pl /database/genome_assembly/1_03_GeneMark/genemark.gtf | bedtools sort -i - > genemark.gff
gffread genemark.gtf -o- > genemark.gff
3.GlimmerHMM
安装
wget https://ccb.jhu.edu/software/glimmerhmm/dl/GlimmerHMM-3.0.4.tar.gz
tar -xzf GlimmerHMM-3.0.4.tar.gz
使用
1.用训练好的水稻数据集。
glimmerhmm_linux_x86_64 genome.fa -d $HOME/Tools/GlimmerHMM/GlimmerHMM/trained_dir/rice -g -n 1 -o glimm.gff
#参数
USAGE: ./glimmerhmm_linux_x86_64 [options]
Options:
-p file_name If protein domain searches are available, read them from file file_name
-d dir_name Training directory is specified by dir_name (introduced for compatibility with earlier versions)
-o file_name Print output in file_name; if n>1 for top best predictions, output is in file_name.1, file_name.2, ... , file_name.n f
-n n Print top n best predictions
-g Print output in gff format
-v Don't use svm splice site predictions
-f Don't make partial gene predictions
-h Display the options of the program
2.自行训练数据集
#1.手动训练,构建数据集
$HOME/Tools/GlimmerHMM/GlimmerHMM/train/trainGlimmerHMM genome.part_Chr01.fa exon_file
#2.指定自己的训练结果文件夹
cut -f 1 -d ' ' genome.fa.tmp >genome.fa
glimmerhmm_linux_x86_64 genome.fa -d TrainGlimmM-MH63RS3 -g -n 1 -o glimm.gff
三、同源预测基因结构
GenomeThreader
针对一个基因进行同源预测
gth -genomic chr1_5k.fa -protein cer.fa -intermediate -gff3out
# 其中cer.fa就是AT1G02205.2的氨基酸序列
全基因组范围预测流程如下:
准备cDNA和或protein序列:在https://phytozome.jgi.doe.gov/p下载靠谱的物种的蛋白质序列,如 Arabidopsis thaliana, Oryza sativa, Brassica rapa, 查找文献寻找目前该物种的已有EST/cDNA序列,或者RNA-seq从头组装转录组。这里仅考虑用同源物种的蛋白序列进行比对分析,转录组从头组装数据用于PASA整体比对到参考基因组和更新已有的基因解雇。
分别测试不同物种的同源注释结果。
#run seperately
gth -species arabidopsis -translationtable 1 -gff3 -intermediate -protein ~/db/protein_db/Athaliana_167_TAIR10.protein.fa.gz -genomic chi_unmasked.fa -o 03-genomethreader/Athaliana.gff3 &
gth -species arabidopsis -translationtable 1 -gff3 -intermediate -protein ~/db/protein_db/BrapaFPsc_277_v1.3.protein.fa.gz -genomic chi_unmasked.fa -o 03-genomethreader/Brapa.gff3 &
gth -species arabidopsis -translationtable 1 -gff3 -intermediate -protein ~/db/protein_db/Osativa_323_v7.0.protein.fa.gz -genomic chi_unmasked.fa -o 03-genomethreader/Osativa.gff3 &
当然实际的同源注释流程中不能是单个物种分别预测,应该是将所有的蛋白序列进行合并,然后用BLASTX找到最优的联配,之后用GenomeThreader进行预测。PASA流程提到的UniRef90作为同源注释的搜索数据库可能是更好的选择,由于UniRef优先选择哪些人工审查、注释质量高、来源于模式动植物的蛋白,所以可靠性相对于直接使用同源物中可能更高。
四、基于转录组的基因结构预测
TransDecoder
安装
wget https://github.com/TransDecoder/TransDecoder/archive/refs/tags/TransDecoder-v5.7.0.zip
unzip TransDecoder-v5.7.0.zip
$HOME/Tools/TransDecoder/TransDecoder-TransDecoder-v5.7.0/util
可以下载靠谱的转录组数据:https://phytozome.jgi.doe.gov/p
第一个步骤:用已有的注释文件和参考基因组来进行识别。
从有参考基因组的转录结果GTF文件预测编码区域:
我们从cufflinks或stringtie输出的gtf文件开始分析流程,因此有两个输入文件:
• transcripts.gtf: 记录预测转录本的GTF文件
• genome.fasta: 参考基因组序列
- 在含有转录本的gtf文件中提取fasta序列。
$HOME/Tools/TransDecoder/TransDecoder-TransDecoder-v5.7.0/util/gtf_genome_to_cdna_fasta.pl MH63.gtf genome.fa > transcripts.fasta
- 将gtf转为gff
$HOME/Tools/TransDecoder/TransDecoder-TransDecoder-v5.7.0/util/gtf_to_alignment_gff3.pl MH63.gtf > MH63.gff3
- 提取最长的开放阅读框,默认是100个氨基酸,可以用-m修改。默认情况下,TransDecoder.LongOrfs将识别长度至少为100个氨基酸的开放阅读框。可以通过-m参数来降低这个值,但是要知道随着最小长度的变短,ORF预测的假阳性率迅速增长。
$HOME/Tools/TransDecoder/TransDecoder-TransDecoder-v5.7.0/TransDecoder.LongOrfs -t transcripts.fasta
日志结果
Use file: /database/genome_assembly/03TransDecoder/transcripts.fasta.transdecoder_dir/longest_orfs.pep for Pfam and/or BlastP searches to enable homology-based coding region identification.
#可以用生成的longest_orfs.pep蛋白文件在Pfarm或者BlastP比对来识别编码区域。识别他是否准确。
Then, run TransDecoder.Predict for your final coding region predictions.
#最后的预测。
- 最后生成一个基于有参基因组的编码区域注释文件:
cdna_alignment_orf_to_genome_orf.pl transcripts.fasta.transdecoder_dir/longest_orfs.gff3 transcripts.gff3 transcripts.fasta > transcripts.fasta.transdecoder.genome.gff3
- 预测可能的编码区
TransDecoder.Predict -t target_transcripts.fasta [ homology options ]
候选编码区的最终集合可以在文件.transdecoder中找到。扩展名包括.pep,.cds,.gff3和.bed。
$HOME/Tools/TransDecoder/TransDecoder-TransDecoder-v5.7.0/TransDecoder.Predict -t transcripts.fasta -retain_blastp_hits blastp.outfmt6
五、三种方法的结果整合。
最后使用EvidenceModler根据上述结果进行整合,使用PASA更新EVM的一致性预测,增加UTR注释和可变剪切注释;在进行适当的人工纠正。
https://blog.csdn.net/u012110870/article/details/82500684
https://yanzhongsino.github.io/2021/08/10/omics_genome.management/
未完待续