记录下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.*则是正常,目前没发现这个问题。

https://www.biostars.org/p/9464353/

  • 第二个比较关心的问题是,braker流程出来一堆结果,我到底该用哪个?虽然官网有一些解释,但总有些不能理解。

    几个比较关键的结果: augustus.hints.* 是AUGUSTUS最终蛋白hints结果。

    而braker.gtf/gff3是 AUGUSTUS和GeneMark-EP+预测(braker流程中的蛋白预测)的并集,因此该结果是高敏感性低特异性(更多基因被预测以及更多假阳性)。

    总体来说,二者结果是相近的,如果侧重于敏感性,则用braker.gtf结果。否则用augustus。(个人建议还是用augustus的结果,相当于二次预测)

https://github.com/Gaius-Augustus/BRAKER/issues/194

https://github.com/Gaius-Augustus/Augustus/issues/31

总之,braker2流程虽然使用简单(相对于evm,maker等),但它的结果还是差异很大的,预测的基因数目普遍较多。文章引用率还不是太高,使用需要谨慎。

仅尝试使用体验,后续待补充。

【基因组预测】braker2基因结构注释要点记录的更多相关文章

  1. iBatis & myBatis & Hibernate 要点记录

    iBatis & myBatis & Hibernate 要点记录 这三个是当前常用三大持久层框架,对其各自要点简要记录,并对其异同点进行简单比较. 1. iBatis iBatis主 ...

  2. JAVA 中LinkedHashMap要点记录

    JAVA 中LinkedHashMap要点记录 构造函数中可能出现的几个参数说明如下: 1.initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16 2.loadFactor ...

  3. 真核生物基因结构 & mRNA结构

    参考: 分子生物学教材 再一次,翻看真核生物基因结构! mRNA基本结构特点 Structure and function of Messenger RNA (mRNA ) 基因结构 其实这个结构不完 ...

  4. C/S结构软件测试要点汇总

    C/S结构测试要点   1.安装/卸载: 1.安装包:完整性,安装包大小是否达到要求,显示基本信息是否正确,步骤是否明确,内容是否合理. 2.首次安装: 1)是否与其他已安装的软件冲突. 2)各种杀毒 ...

  5. Android开发入门要点记录:四大组件

    cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...

  6. python学习第一课要点记录

    写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考.感觉这样学不好,除了多写 ...

  7. 编写高质量JavaScript代码的基本要点记录

    原文:深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 1.最小全局变量(Minimizing Globals)的重要性 JavaScript通过函数管理作用域.在 ...

  8. tRNAscan-SE 预测tRNA基因

    tRNAscan-SE 软件可以根据输入的基因组序列,预测对应的tRNA的基因 在线的tRNAscan-SE的链接如下:http://lowelab.ucsc.edu/tRNAscan-SE/ 如下图 ...

  9. Social GAN代码要点记录

    近日在阅读Social GAN文献的实验代码,加深对模型的理解,发现源代码的工程化很强,也比较适合构建实验模型的学习,故细致阅读.下文是笔者阅读中一些要点总结,有关于pytorch,也有关于模型自身的 ...

随机推荐

  1. [对对子队]Scrum Meeting 博客汇总

    对对子队 博客目录 一.Scrum Meeting 1. Alpha Scrum Meeting 1(会议记录4.10) Scrum Meeting 2(会议记录4.11) Scrum Meeting ...

  2. 【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑

    编写Java Spring Boot应用,通过配置logging.path路径把日志输出在指定的文件夹中. 第一步:通过VS Code创建一个空的Spring Boot项目 第二步:在applicat ...

  3. triangle leetcode C++

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  4. POJ 2446 Chessboard(二分图最大匹配)

    题意: M*N的棋盘,规定其中有K个格子不能放任何东西.(即不能被覆盖) 每一张牌的形状都是1*2,问这个棋盘能否被牌完全覆盖(K个格子除外) 思路: M.N很小,把每一个可以覆盖的格子都离散成一个个 ...

  5. uni-app(Vue)中(picker)用联动(关联)选择以至于完成某些功能

    如下图所示,在项目中需求是通过首先选择学生的专业,选好之后在每个专业下面选择对应的学期,每个学期有对应的学费,因此就需要联动选择来实现这一功能. 以下仅展示此功能主要代码: <div class ...

  6. 五(二)、spring 声明式事务xml配置

    概述: 接着上一节内容,把注解配置@@Transactional形式改为xml配置形式: 一.配置步骤 1.配置事务管理器 1 <!-- 1配置事务管理器 --> 2 <bean i ...

  7. 八. Go并发编程--errGroup

    一. 前言 了解 sync.WaitGroup的用法都知道 一个 goroutine 需要等待多个 goroutine 完成和多个 goroutine 等待一个 goroutine 干活时都可以解决问 ...

  8. webpack 之开发环境优化 source-map

    webpack 之开发环境优化 source-map /** * source-map:一种 提供源代码到构建后代码映射 技术 (如果构建后代码出错了,通过映射可以追踪源代码错误) * [inline ...

  9. MacOS升级到Monterey后python SSL握手失败问题

    MacOS升级到Monterey 12.0.1后,忽然发现原来工作正常的python3请求华为restconf API报错失败,提示 ssl.SSLError: [SSL: SSLV3_ALERT_H ...

  10. 第九届网安竞赛writeup

    web easysql[已解决] uname=a') union select 1,extractvalue(1, concat(0x7e, (select database()),0x7e))#&a ...