【基因组预测】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,也有关于模型自身的 ...
随机推荐
- Jmeter之BeanShell 断言
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15436864.html 博客主页:https://www.cnblogs.com/testero ...
- AGC019F
题目大意 $n$ + $m$ 个问题,其中$n$ 个答案是$YES$,$m$个是$NO$的,你依次答题,每答一道,就可以立刻知道这道题的答案,求在最优策略下答错次数的期望,对$998244353$取模 ...
- 并发编程从零开始(十二)-Lock与Condition
并发编程从零开始(十二)-Lock与Condition 8 Lock与Condition 8.1 互斥锁 8.1.1 锁的可重入性 "可重入锁"是指当一个线程调用 object.l ...
- Android上安装第三方库
在Android sdk中安装预安装第三方的(动态,静态)库,到系统中,方便模块无差别的使用. Android.mk include $(CLEAR_VARS) LOCAL_MODULE_TAGS : ...
- 转:VCS仿真vivado IP的方法
vivado中的仿真库和模型与ISE中的是不一样的,因此在vivado中使用VCS进行仿真的方法也与ISE中不一样. VCS可以通过两种方法对XILINX的器件进行功能仿真和门级仿真,这两种方法是 P ...
- binary-tree-maximum-path-sum leetcode C++
Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. ...
- hdu 1159 Common Subsequence(最长公共子序列,DP)
题意: 两个字符串,判断最长公共子序列的长度. 思路: 直接看代码,,注意边界处理 代码: char s1[505], s2[505]; int dp[505][505]; int main(){ w ...
- hdu 2201 熊猫阿波的故事(简单概率。。)
题意: 阿波上了飞机,飞机上有座位1,2,....,N.第i个乘客本应坐在第i个座位上. 可是阿波随便找了个座位就坐了下来,接下来大家也都随便找了个座位坐了下来. 问:第i个乘客坐到原座位的概率是多少 ...
- ELK 脚本自动化删除索引
kibana有自带接口,可通过自带的API接口 通过传参来达到删除索引的目的. # 删除15天前的索引 curl -XDELETE "http://10.228.81.161:9201/pa ...
- Spring一套全通—工厂
百知教育 - Spring系列课程 - 工厂 第一章 引言 1. EJB存在的问题 2. 什么是Spring Spring是一个轻量级的JavaEE解决方案,整合众多优秀的设计模式 轻量级 1. 对于 ...