【基因组预测】braker2基因结构注释要点记录
记录下braker2的使用要点,以备忘记。
流程使用
braker2有很多流程,根据你的数据:组装的基因组、转录组、蛋白(同源,包括近缘或远缘)选择不同流程,官网有说明:
https://github.com/Gaius-Augustus/BRAKER
现在的动植物组装,大多数都含有以上三类数据吧,因此可选择如下流程,用公共数据库OrthoDB中的直系同源蛋白,根据自己的物种选择,有动物植物微生物等,如我选择植物就有300多万条序列。

作者指出,braker2并非证据越多越好,该流程还是不够稳定(尤其是对中小基因组)。
整个流程你可以分步,即分别预测转录组和蛋白数据,得到hints,再使用braker进行最终整合和预测。或者只对转录组或者蛋白数据进行预测。比如我先用ProtHint单独对OrthoDB进行预测,这样处理是很快的,三百多万条序列3-4小时即可跑完。最后得到的是prothint_augustus.gff可用于后续输入文件。
cat Rawdata/* >proteins.fasta
/ProtHint-2.6.0/bin/prothint.py genome.fa proteins.fasta --workdir test --threads 40
可参考:
https://github.com/gatech-genemark/ProtHint/tree/master/example
braker流程为:
braker.pl --cores 48 --species=test_orthodb-2 \
--genome=genome.softmasked.fa \
--softmasking
--bam=A.bam,B.bam \
--hints=prothint_augustus.gff \
--etpmode \
--gff3
作者建议用--softmasking 基因组
也可以将所有数据放到脚本中,一步到位。速度也还可以,调用了spaln和diamond等(运行时如果没找到相关软件路径,需要你export PATH临时指定一下),如:
export GENEMARK_PATH=/path/gmes_linux_64
export PATH=/path/gmes_linux_64/ProtHint/bin:/path/GUSHR:$PATH
braker.pl --cores 48 --species=test_orthodb-2 \
--genome=genome.softmasked.fa \
--softmasking
--bam=A.bam,B.bam \
--prot_seq=proteins.fa \
--gff3
建议还是看官网吧,我描述的比较片面
另一个可能更实用的流程是:

可用genomeThreader预测近缘物种同源蛋白。速度会比较慢,不建议用exonerate,巨慢无比。
braker.pl --cores 48 --species=homodb \
--genome=genome.softmasked.fa \
--softmasking
--bam=A.bam,B.bam \
--prot_seq=proteins.fa \
--prg=gth \
--gff3
另外如果你想要预测UTR,braker得到的gtf/gff文件默认是没有这类信息的。则需要调用GUSHR,参数中添加--addUTR=on。最终得到的gushr.gtf即是包含了UTR的结果文件。
问题
braker还不是很成熟,运行过程中可能遇到各种问题。
这是官网的一些建议:
- 使用高质量基因组。组装很碎的基因组不仅耗时,还影响准确性
- 染色体或scaffold名称不宜过长且不含
%&!*(){})等特殊字符。 - 使用软屏蔽基因组好于硬屏蔽基因组。
- 检查物种是否具有进化分支特征。
- 检查基因预测结果,如UCSC浏览器。
我个人的一些记录:
- 预测结果文件braker.gtf中,转录本和基因ID,前面可能会自动加上
file_1_file_1_,如g4417.t1变为file_1_file_1_g4417.t1,导致生成的gff(或者你用其他软件,如augustus转换脚本gtf2gff.pl,实际上你在参数中指定--gff3,流程调用的也是agustus/gtf2gff.pl)转化得到的gff3文件中没有基因特征。所以,如果你用的结果是braker.gtf,含有这个问题,必须人为去掉。augustus.hints.*则是正常,目前没发现这个问题。
- 第二个比较关心的问题是,braker流程出来一堆结果,我到底该用哪个?虽然官网有一些解释,但总有些不能理解。
几个比较关键的结果: augustus.hints.* 是AUGUSTUS最终蛋白hints结果。
而braker.gtf/gff3是 AUGUSTUS和GeneMark-EP+预测(braker流程中的蛋白预测)的并集,因此该结果是高敏感性低特异性(更多基因被预测以及更多假阳性)。
总体来说,二者结果是相近的,如果侧重于敏感性,则用braker.gtf结果。否则用augustus。(个人建议还是用augustus的结果,相当于二次预测)
- 另外,在gtf2gff.pl转换中,还可能会遇到
[gtf2gff.pl: transcript jg1.t1 has conflicting gene parents: and jg1](https://github.com/Gaius-Augustus/Augustus/issues/39)类似错误。作者虽然写了一个临时脚本https://github.com/Gaius-Augustus/Augustus/blob/master/scripts/fix_joingenes_gtf.pl 来解决这个问题,但并未解决我的问题。
总之,braker2流程虽然使用简单(相对于evm,maker等),但它的结果还是差异很大的,预测的基因数目普遍较多。文章引用率还不是太高,使用需要谨慎。
仅尝试使用体验,后续待补充。
【基因组预测】braker2基因结构注释要点记录的更多相关文章
- iBatis & myBatis & Hibernate 要点记录
iBatis & myBatis & Hibernate 要点记录 这三个是当前常用三大持久层框架,对其各自要点简要记录,并对其异同点进行简单比较. 1. iBatis iBatis主 ...
- JAVA 中LinkedHashMap要点记录
JAVA 中LinkedHashMap要点记录 构造函数中可能出现的几个参数说明如下: 1.initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16 2.loadFactor ...
- 真核生物基因结构 & mRNA结构
参考: 分子生物学教材 再一次,翻看真核生物基因结构! mRNA基本结构特点 Structure and function of Messenger RNA (mRNA ) 基因结构 其实这个结构不完 ...
- C/S结构软件测试要点汇总
C/S结构测试要点 1.安装/卸载: 1.安装包:完整性,安装包大小是否达到要求,显示基本信息是否正确,步骤是否明确,内容是否合理. 2.首次安装: 1)是否与其他已安装的软件冲突. 2)各种杀毒 ...
- Android开发入门要点记录:四大组件
cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...
- python学习第一课要点记录
写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考.感觉这样学不好,除了多写 ...
- 编写高质量JavaScript代码的基本要点记录
原文:深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 1.最小全局变量(Minimizing Globals)的重要性 JavaScript通过函数管理作用域.在 ...
- tRNAscan-SE 预测tRNA基因
tRNAscan-SE 软件可以根据输入的基因组序列,预测对应的tRNA的基因 在线的tRNAscan-SE的链接如下:http://lowelab.ucsc.edu/tRNAscan-SE/ 如下图 ...
- Social GAN代码要点记录
近日在阅读Social GAN文献的实验代码,加深对模型的理解,发现源代码的工程化很强,也比较适合构建实验模型的学习,故细致阅读.下文是笔者阅读中一些要点总结,有关于pytorch,也有关于模型自身的 ...
随机推荐
- Python绘制Excel图表
今天讲解下如何使用Python绘制各种Excel图表,下面我们以绘制饼状图.柱状图.水平图.气泡图.2D面积图.3D面积图为例来说明. import openpyxlfrom openpyxl imp ...
- RabbitMQ的一些理解和笔记
在这篇博客中,简单记录一下 rabbitmq 服务器中一些基本的概念. Connection: connection 为 TCP连接,是我们的应用程序和RabbitMQ服务器真正发送和接收数据的地方. ...
- [LGP1866]编号
传送门 题意:找n个数,使得 $ 1 \leq a_i \leq Maxnumber_i $ 求有多少种组合 这题我们可以看到,还有一种无解的情况 我们可以先判断无解的情况 首先把Maxnumber数 ...
- 双堆DEAP
记录一道遇到的考研真题 特性分析: DEAP为一颗完全二叉树,左子树小堆,右子树大堆,故左右子树分别可以用l[].r[]数组存储,用m和n分别表示当前两完全二叉树的结点,左右子树高度差为1,且左子树的 ...
- iPhone SE切换颜色特效
Apple 网站的特效, iPhone SE 共有黑.白.红三种颜色,在卷动页面的时候会逐步替换,看起来效果非常时尚,在此供上代码学习. <!DOCTYPE html> <html& ...
- 攻防世界 杂项 1.base64÷4
666C61677B45333342374644384133423834314341393639394544444241323442363041417D 根据题目base64÷4得base16 在线工 ...
- 树行DP小结
顾名思义:就是在树上做的DP,依据DFS的性质,在访问过儿子之后返回后将儿子的状态传递给父亲... 先看例题: 此题用贪心也能过,不过正解是DP. 对于树上的DP我们可以直接考虑最优解下各点的状态来方 ...
- svg的animate动画动态加载删除遇到删除animate后再次加载的animate动画没有效果问题
svg上有多个圆圈,当选中特定圆圈后给其加上animate动画效果,并把其他圆圈的animate效果去除. 第一次选择一个点实现动画效果完全达到效果,因为是第一次所以不需要把其他圆圈的animate子 ...
- robot_framewok自动化测试--(7)认识RIDE
认识 RIDE RIDE 作为 Robot Framework 的"脸面",虽然我们已经可以拿它来创建和运行测试了,但我们对它的认识并不全面,这一小节我们将了解这个工具的使用. 1 ...
- robotframework定位页面内Frame框架里的元素
在自动化开发中,会遇到在页面内部点开一个新的页面后,新的页面元素无法定位到的情况,如点击下图的上传图片,弹出的界面无法直接定位到: 遇到这种情况需要查看弹出界面是否是Frame框架页面:打开火狐浏览器 ...