【基因组预测】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,也有关于模型自身的 ...
随机推荐
- SpringCloud微服务实战——搭建企业级开发框架(六):使用knife4j集成Swagger2接口文档
knife4j是为集成Swagger生成api文档的增强解决方案,前后端Java代码以及前端Ui模块进行分离,在微服务架构下使用更加灵活, 提供专注于Swagger的增强解决方案,不同于只是改善增强前 ...
- 第0次 Beta Scrum Meeting
本次会议为Beta阶段第0次Scrum Meeting会议 会议概要 会议时间:2021年5月27日 会议地点:「腾讯会议」线上进行 会议时长:1小时 会议内容简介:本次会议为Beta阶段启程会议,主 ...
- [no code][scrum meeting] Alpha 12
项目 内容 会议时间 2020-04-19 会议主题 周总结会议 会议时长 45min 参会人员 全体成员 $( "#cnblogs_post_body" ).catalog() ...
- 第03课 OpenGL 添加颜色
添加颜色: 作为第二课的扩展,我将叫你如何使用颜色.你将理解两种着色模式,在下图中,三角形用的是光滑着色,四边形用的是平面着色 上一课中我教给您三角形和四边形的绘制方法.这一课我将教您给三角形和四边形 ...
- 正则表达式之grep
grep 的五个参数,基本的常用的: -a :将 binary 档案以 text 档案的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺 ...
- k8s入坑之路(10)kubernetes coredns详解
概述 作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,那么就需要一个集群范围内的DNS服务来完成从服务名到ClusterIP的解析. DNS服务在kubernetes中经历了三个 ...
- Excel 读写
一.环境准备:pom.xml 导入依赖 poi-ooxml <dependencies> <dependency> <groupId>org.apache.poi& ...
- 论文翻译:Fullsubnet: A Full-Band And Sub-Band Fusion Model For Real-Time Single-Channel Speech Enhancement
论文作者:Xiang Hao, Xiangdong Su, Radu Horaud, and Xiaofei Li 翻译作者:凌逆战 论文地址:Fullsubnet:实时单通道语音增强的全频带和子频带 ...
- Obsidian中如何记录自己的灵感?
在生活中当中你是否会在某个瞬间产生一个想法,但没过多久就想不起来了,正所谓灵感转瞬即逝,那我们不妨在灵感出现的时候顺手将他记录下来.记录的过程要求简单.方便且不会花费我们太多时间,下面我们介绍一下如何 ...
- The 'stream().forEach()' chain can be replaced with 'forEach()' (may change semantics)
对集合操作时,因不同的写法Idea经常会提示:The 'stream().forEach()' chain can be replaced with 'forEach()' (may change s ...