基因注释:MAKER全记录(参照徐洲更老师)

MAKER 目前支持

SNAP (效果好、易于训练,但在长内含子的基因组上表现不如其他软件)
Augustus (效果好、训练麻烦但提升效果好)
GeneMark (自我训练,在碎片化基因组或长内含子上表现不佳)
FGENESH (效果好,但是训练需要花钱)

1.AUGUSTUS
将PASA获得的database.sqlite.assemblies.fasta.transdecoder.genome.gff3转为genbank格式
augustus/scripts/gff2gbSmallDNA.pl database.sqlite.assemblies.fasta.transdecoder.genome.gff3 genome.fasta 1000 trans.gene.raw.gb 
过滤可能错误的基因结构
#创建物种初始化hmm文件
augustus/scripts/new_species.pl  --species=new 
#训练,捕捉错误
augustus/bin/etraining --species=new --stopCodonExcludedFromCDS=false trans.gene.raw.gb 2> train.err 
#过滤错误
cat train.err | perl -pe 's/.*in sequence (\S+): .*/$1/' > badgenes_list.txt
augustus/scripts/filterGenes.pl badgenes_list.txt trans.gene.raw.gb > trans.genes.gb
初步训练

将过滤后的trans.genes.gb随机分为训练集trans.genes.gb.train和测试集trans.genes.gb.test ,为了使测试准确性具有统计学意义,测试集应该足够大(包括100~200个loci),剩余loci包含在训练集中。

augustus/scripts/randomSplit.pl trans.genes.gb 100 #100是测试集的loci数

创建初始化HMM参数文件,并进行训练,从头预测trans.genes.gb.train中的基因

augustus/scripts/new_species.pl --species=new
augustus/bin/etraining --species=new trans.genes.gb.train | tee firsttest.out
grep -A 22 Evaluation firsttest.out #查看报告
*******      Evaluation of gene prediction     *******

---------------------------------------------\
                 | sensitivity | specificity |
---------------------------------------------|
nucleotide level |       0.873 |       0.626 |
---------------------------------------------/

----------------------------------------------------------------------------------------------------------\
           |  #pred |  #anno |      |    FP = false pos. |    FN = false neg. |             |             |
           | total/ | total/ |   TP |--------------------|--------------------| sensitivity | specificity |
           | unique | unique |      | part | ovlp | wrng | part | ovlp | wrng |             |             |
----------------------------------------------------------------------------------------------------------|
           |        |        |      |                253 |                101 |             |             |
exon level |    484 |    332 |  231 | ------------------ | ------------------ |       0.696 |       0.477 |
           |    484 |    332 |      |   35 |    0 |  218 |   36 |    0 |   65 |             |             |
----------------------------------------------------------------------------------------------------------/

----------------------------------------------------------------------------\
transcript | #pred | #anno |   TP |   FP |   FN | sensitivity | specificity |
----------------------------------------------------------------------------|
gene level |   156 |   100 |   47 |  109 |   53 |        0.47 |       0.301 |
----------------------------------------------------------------------------/
100个基因中有47个被准确预测
69.6%的外显子被准确预测
47.7%预测的外显子在测试集中确切存在

使用optimize_augustus.pl可以将预测准确度提高几个百分点,但极其耗时

augustus/scripts/optimize_augustus.pl --species=new trans.genes.gb.train 

在optimize_augustus.pl完成后,重新使用它设置的参数进行训练

augustus/bin/etraining --species=new trans.genes.gb.train 

用测试集检查预测准确度

augustus/bin/augustus --species=new trans.genes.test.gb

如果sensitivity低于20%,可能是训练集不够大、基因组质量不高或者物种在某种程度上很“特殊”

2.SNAP模型训练

①SNAP是从基因组中从头预测基因的软件,首先训练一个包含转录组序列与基因组比对结果的SNAP模型

maker -CTL 
vi maker_opts.ctl
 genome=genome.fasta #基因组序列
 est=trinity.fasta #从头组装的转录组序列
 protein=protein.fasta #t同源蛋白序列
 est2genome=1
 protein2genome=1
 cpus=12
maker &> maker.log &

②将上一步生成的结果转换为构建SNAP模型的输入文件

mkdir SNAP && cd SNAP
maker/bin/gff3_merge -d ../genome.fasta.maker.output/genome.fasta_master_datastore_index.log
maker/bin/maker2zff -c 0.8 -e 0.8 -o 0.8 -x 0.2 genome.fasta.all.gff

maker2zff生成一个ZFF格式文件(genome.ann)和一个FASTA格式文件(genome.dna),过滤用于再次训练的高置信度基因,共有7个选项:
-c 由EST/mRNA-Seq比对确定的剪接位点的比例,默认0.5
-e 与EST/mRNA-Seq比对重叠的外显子的比例,默认0.5
-o 和任何证据(EST或者蛋白)重叠的外显子的比例,默认0.5
-a 从头预测证实的剪接位点的比例,默认0
-t 和从头预测结果重叠的外显子的比例,默认0
-l mRNA翻译的蛋白质序列的最短长度
-x 最大AED值,默认0.5
-n 不过滤
AED值:maker2使用注释编辑距离(AED)来评估基因组注释的准确性,AED是一个介于 0 和 1 之间的数字,衡量注释与支持它的evidence的拟合优度,0 表示与可用证据完全一致,1 表示缺乏对注释基因模型的支持

③接着构建模型,生成输入maker2的hmm文件

SNAP/fathom -categorize 1000 genome.ann genome.dna
SNAP/fathom -export 1000 -plus uni.ann uni.dna
SNAP/forge export.ann export.dna
SNAP/hmm-assembler.pl snap . > snap.hmm

④回到maker2的文件夹,编辑maker_opts.ctl,重新运行maker2

vi maker_opts.ctl
 genome=genome.fasta
 est=trinity.fasta
 protein=protein.fasta
 snap=snap.hmm
 est2genome=0 #直接从EST中预测基因,1=yes,0=no
 protein2genome=0
maker &> maker.log &

②-④重复2~3次

ERROR: Could not determine if RepBase is installed

参考ERROR: Could not determine if RepBase is installed · Issue #16501 · bioconda/bioconda-recipes · GitHub
将maker_opts.ctl文件中的model_org设为空选项,不会检查RepBase有没有安装

ERROR:Comparison failed. Retrying with larger minmatch (10)

根据custom de novo library failing - batch failures and "Comparison failed. Retrying with larger minmatch (10)" · Issue #124 · rmhubley/RepeatMasker · GitHub,暂无解决办法
参考文章:
MAKER Tutorial for WGS Assembly and Annotation Winter School 2018 - MAKER Wiki (utah.edu)
http://www.yandell-lab.org/publications/pdf/maker_current_protocols.pdf
https://vcru.wisc.edu/simonlab/bioinformatics/programs/augustus/docs/tutorial2015/training.html
使用MAKER进行基因注释(高级篇之AUGUSTUS模型训练) - (jianshu.com)
https://biohpc.cornell.edu/doc/annotation_2018_exercises1.pdf
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3280279/
https://www.nature.com/articles/s41598-018-26416-2
http://weatherby.genetics.utah.edu/MAKER/wiki/index.php/The_MAKER_control_files_explained

你可能感兴趣的:(基因注释:MAKER全记录(参照徐洲更老师))