欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Augustus 进行基因注释-准备200个基因以上。还得保证这些基因中要有足够多的外显子,这样子才能训练内含子 b. 这些基因的基因结构一定要足够的准确。不过,也不需要百分百的正确,甚至注释都不需要特别的完整,只要保证起始密码子和终止密码子的准确是准确的即可。 c. 需要保证这些基因没有冗余,也就是说不同序列如果有几乎相同的注释后氨基酸序列,那么仅仅取其中一个(AUGUSTUS教程的建议是:保证任意两个基因在氨基酸水平上低于70%的相似度),这一步既可以避免过度拟合现象,也能用于检验预测的准确性 d. 一条序列允许有多个基因,基因可以在正链也可以在负链,但是这些基因间不能有重叠,每个基因只要其中一个转录本,存放格式是GenBank

最编程 2023-12-31 10:19:36
...
1 ## 100 为测试集的基因数目,其余为训练集
2 randomSplit.pl genes.gb.filter 100

(8)初始化HMM参数设置(在相应~/minicode/config/species/relative name中形成参数,若之前已经存在该物种名字,则需要删除),并进行训练

1 new_species.pl --species=spinach
2 etraining --species=spinach genes.gb.filter.train

(9)用测试数据集检验预测效果,这里可以比较我们训练的结果,和近缘已训练物种的训练效果

1 augustus --species=spinach genes.gb.filter.test | tee firsttest.out
2 augustus --species=arabidopsis genes.gb.filter.test | tee firsttest_ara.out

在 firsttest.out 的尾部可以查看预测结果的统计,首先需要解释几个统计学概念

  • TP(True Positive): 预测为真,事实为真
  • FP(False Positive): 预测为真,事实为假
  • FN(False Negative): 预测为假,事实为真
  • TN(True Negative): 预测为假,事实为假

基于上述,引出下面两个概念。"sensitivity"等于TP/(TP+FP)(预测到的百分率), 是预测为真且实际为真的占你所有认为是真的比例."specificity"等于TN/(TN+FN)(其中正确的百分率), 是预测为假且实际为假的占你所有认为是假的比例。我们希望在预测中,尽可能地不要发生误判,也就是没有基因的地方不要找出基因,有基因的地方不要漏掉基因。

(10)很有可能的一种情况是,我们第一次的训练结果没有已有训练的效果好,所以我们需要进行循环训练找到最优参数;(运行会非常费时间,而且最终的效果一般只能提高准确度几个百分点,慎重使用)

1 optimize_augustus.pl --species=spinach genes.gb.filter.train

(11)再次进行训练,并检验,进行前后比较

1 etraining --species=spinach genes.gb.filter.train
2 augustus --species=spinach genes.gb.filter.test | tee secondtest.out
  • 如果此时你的gene level的sensitivity还是低于20%说明Trainning set不够大,请添加数据;
  • 如果你获得了满意的Trainning结果,请开始prediction吧

下面命令可用于从 firsttest.out 中提取氨基酸序列

sed -n '/^#/p' firsttest.out | sed -n '/start/,/\]/p' | sed 's/# start gene />/g;s/protein sequence \= \[//g;s/#//g;s/\]//g;s/^\s//g' >seq.fa

来源:https://www.cnblogs.com/zhanmaomao/p/12359964.html