宏基因组序列分析工具EukRep

2024-01-06 07:52

本文主要是介绍宏基因组序列分析工具EukRep,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章:Genome-reconstruction for eukaryotes from complex natural microbial communities | bioRxiv

仓库:patrickwest/EukRep: Classification of Eukaryotic and Prokaryotic sequences from metagenomic datasets (github.com)

推荐使用conda进行安装:

conda create -y -n eukrep-env -c bioconda scikit-learn==0.19.2 eukrep

或者通过pip安装(需预先安装scikit-learn版本0.19.2):

pip install EukRep

示例用法

  • 从fasta文件中识别并输出预测为真核起源的序列:

    EukRep -i <Sequences in Fasta format> -o <Eukaryote sequence output file>

  • 同时识别并分别从fasta文件中输出真核和原核起源的序列:

    EukRep -i <Sequences in Fasta format> -o <Eukaryote sequence output file> --prokarya <Prokaryote sequence output file>

获取真核生物bins EukRep设计用于作为更大规模分析流程的一部分。如需根据“从复杂自然微生物群落中重建真核生物基因组”(West等人,待审阅)一文中所述的方法获得高质量的基因预测及对已识别的真核contigs进行分箱,请参阅以下方法部分: Genome-reconstruction for eukaryotes from complex natural microbial communities | bioRxiv

  • 或者

查看提供的示例工作流程(正在进行中): https://github.com/patrickwest/EukRep_Pipeline

调整筛选严格度 可以通过-m参数调整识别真核contig的严格度。以下是严格、平衡和宽松模式下的假阳性率(FPR)和假阴性率(FNR)。默认设置为平衡模式。在0.6.5版本之前,默认设置为宽松模式。

在对模拟新型门类基因组生成的20kb和5kb片段化支架运行EukRep后,获得了如下所示的数据:

20kb

5kb

此处未给出具体的数据内容,但可根据上述描述理解,在不同长度的支架上应用EukRep,可以得到不同筛选严格度下对应的假阳性和假阴性结果。

典型使用流程:官方推荐

patrickwest/EukRep_Pipeline (github.com)

 

EukRep_Pipeline 这是一个结合EukRep从元基因组中分箱真核生物基因组的示例工作流程。其中包含了一个示例bash脚本euk_pipeline.sh,整合了以下所有步骤。

要求:

  • 预先组装完成的shotgun元基因组样本及其每条scaffold覆盖度信息
  • EukRep工具
  • CONCOCT或metabat工具
  • genemark-ES
  • MAKER2
  • BUSCO
  • 可选但推荐:pyenv

使用EukRep分类 在预先组装的shotgun元基因组样本上运行EukRep:

EukRep -i metagenome.fa -o euk_contigs.fa

如果你处理的是高度复杂或片段化的元基因组,建议降低最小contig长度阈值:


EukRep -i metagenome.fa -o euk_contigs.fa --min 1000

自动分箱 此步骤对于分离样本中的多个真核生物基因组至关重要。 为了获得尽可能高质量的基因预测结果,在进行基因预测前必须将基因组分开。 需要每条scaffold的覆盖度信息 使用CONCOCT执行:

concoct --coverage_file euk_contig_cov.txt --composition_file euk_contigs.fa
mkdir clusters
python /path/to/CONCOCT/scripts/extract_fasta_bins.py --output_path ./clusters/ euk_contigs.fa clustering_gt1000.csv

使用metabat执行:

metabat -a euk_contig_cov.txt -i euk_contigs.fa -o bin -t 6

按bin大小过滤 我们发现在此阶段过滤掉小于2.5 Mbp的bin非常有用。这种过滤可以去除大部分假阳性结果,尤其是当使用CONCOCT时,因为CONCOCT会对每一条scaffold进行分箱,往往会产生许多非常小的bin。训练GeneMark-ES

perl gmes_petap.pl --ES -min_contig 10000 --sequence bin_1.fa

-min_contig选项指定了用于训练指定bin基因预测模型的最小contig长度。并非需要该bin中的每个contig都被用于训练,但如果超过阈值的contig过少,训练可能失败。由于许多来自元基因组的bin通常十分碎片化,所以可能需要调整这个选项。

使用训练好的GeneMark-ES模型和MAKER2预测基因 MAKER使用控制文件。至少建议以以下方式修改它们,以便使用RepeatMasker和GeneMark-ES进行基因预测: 在'maker_opts.ctl'文件中:

keep_preds=1
gmhmm=/path/to/output/gmhmm.mod

然后使用6个核心运行MAKER:

maker -g bin_1.fa -c 6 cd *.maker.output fasta_merge -d *_master_datastore_index.log -o bin_1

为了进一步提高基因预测质量,MAKER能够整合来自相关物种参考基因组的同源蛋白质、转录组证据以及其他如AUGUSTUS等的ab initio基因预测器。为了获取高质量的基因预测,通常最好利用所有可用的这些证据来源。

对许多元基因组样本而言,进行ab initio基因预测可能是唯一可选择的方法。运行BUSCO

python3 BUSCO.py -i *.maker.proteins.fasta -l eukaryota_odb9 -o bin_1 -m prot

BUSCO将在你的bin内寻找单拷贝直系同源基因(SCGs),提供一个完整性估计(以及粗略的重复单拷贝基因污染评估)。 -l参数指定了要使用的SCG谱系集。我们通常使用eukaryota_odb9因为它最通用,然而当你对你的bin所属的生物类型有了更清晰的认识后,也可以选择使用更具体的谱系集。

这篇关于宏基因组序列分析工具EukRep的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/575700

相关文章

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个