首先准备好一个你想注释物质近缘的物种基因组,需要其.gff和.fa文件。
gff2gbSmallDNA.pl scipio.gff genome.fa 1000 genes.raw.gb
将其转为genbank文件(如果有这一步可以跳过)。
$etraining --species=generic --stopCodonExcludedFromCDS=false genes.raw.gb 2> train.err
捕捉一些错误的序列。
$cat train.err | perl -pe 's/.*in sequence (\S+): .*/$1/' > badgenes.lst
$filterGenes.pl badgenes.lst genes.raw.gb > genes.gb
提取错误,并进行过滤
$grep -c "LOCUS" genes.raw.gb genes.gb
查看删除了多少个基因,
badgenes.lst为问题基因序列,
genes.gb为没有问题的基因,依然是gb格式。
将序列分组分为检测组和训练组
$randomSplit.pl genes.gb 200
该命令会生成genes.gb.test文件,它包含200条序列(100-200)。
同时会生成genes.gb.trains文件,包含剩下的序列。
$new_species.pl --species=Dicty --AUGUSTUS_CONFIG_PATH=/home/sun/software/Augustus-3.5.0/config
创建名为Dicty的物种,这里也指定了AUGUSTUS_CONFIG_PATH的地址
$etraining --species=Dicty genes.gb.train
这里将进行第一次Training,training所使用的meta parameters是默认值。
使用之前划分出来的test set来检测Trainning的效果Test set的文件为genes.gb.train。
$augustus --species=Dicty genes.gb.test | tee firsttest.out
******* Evaluation of gene prediction *******
---------------------------------------------\
| sensitivity | specificity |
---------------------------------------------|
nucleotide level | 0.985 | 0.982 |
---------------------------------------------/
----------------------------------------------------------------------------------------------------------\
| #pred | #anno | | FP = false pos. | FN = false neg. | | |
| total/ | total/ | TP |--------------------|--------------------| sensitivity | specificity |
| unique | unique | | part | ovlp | wrng | part | ovlp | wrng | | |
----------------------------------------------------------------------------------------------------------|
| | | | 98 | 111 | | |
exon level | 469 | 482 | 371 | ------------------ | ------------------ | 0.77 | 0.791 |
| 469 | 482 | | 65 | 5 | 28 | 65 | 4 | 42 | | |
----------------------------------------------------------------------------------------------------------/
----------------------------------------------------------------------------\
transcript | #pred | #anno | TP | FP | FN | sensitivity | specificity |
----------------------------------------------------------------------------|
gene level | 196 | 200 | 131 | 65 | 69 | 0.655 | 0.668 |
----------------------------------------------------------------------------/
------------------------------------------------------------------------\
UTR | total pred | CDS bnd. corr. | meanDiff | medianDiff |
------------------------------------------------------------------------|
TSS | 15 | 0 | -1 | -1 |
TTS | 6 | 0 | -1 | -1 |
------------------------------------------------------------------------|
UTR | uniq. pred | unique anno | sens. | spec. |
------------------------------------------------------------------------|
| true positive = 1 bound. exact, 1 bound. <= 20bp off |
UTR exon level | 0 | 0 | -nan | -nan |
------------------------------------------------------------------------|
UTR base level | 0 | 0 | -nan | -nan |
------------------------------------------------------------------------/
nucUTP= 0 nucUFP=0 nucUFPinside= 0 nucUFN=0
# total time: 17.4
# command line:
# augustus --species=Dicty genes.gb.test
1.nucleotide level,sensitivity(预测到的百分率),specificity(其中正确的百分率)
2.exon level, #pred total/unique(预测得到unique外显子总数),#anno total/unique(实际unique外显子总数),TP(正确的预测),FP(假阳性),FN(假阴性)
3.gene level
4.200个基因中,预测到131个
5.77%的外显子被预测到
6.79.1%的外显子预测成功
$optimize_augustus.pl --species=Dicty genes.gb.train
进行持续训练(这个要谨慎,我的20m运行了5天,提升甚微)。
$etraining --species=Dicty genes.gb.filter.train
这里将进行第二次Training,training所使用的meta parameters是学习后的。
$augustus --species=Dicty genes.gb.test | tee secondtest.out
第二次使用检测test进行检测,学习后提高了百分之零点几。
$augustus --species=Dicty ######.fa > augustus.abinitio.gff
使用自己的基因组进行注释。
本文部分参考:
使用MAKER进行基因注释(高级篇之AUGUSTUS模型训练) - 简书 (jianshu.com)
Augustus指南(Trainning部分) - 秒客网 (miaokee.com)
AUGUSTUS - 上海交大超算平台用户手册 Documentation (sjtu.edu.cn)