按分布从全基因组构建人工mags

randmag的Python项目详细描述


简介

随着测序速度的不断提高,分析数据面临挑战。 特别是,单个扩增基因组和亚基因组组装基因组(sags&mags)可能 由于其不完整或受污染的倾向,证明具有挑战性 与其他基因组的接触。存在许多工具来应对挑战。 分析的各个阶段,但没有一个是完美的。为了设计新的 处理sags和mags的工具方法模拟这些数据的能力 布景是最重要的。

<> > RANMAG是一个纤细的软件,目标是从现有的人造磁石或凹坑中生产。 完整的基因组。Randmag根据提供的整个基因组生成随机mag,a 给定的连续长度分布,以及所需的完整性- 污染程度。

与randmag一起打包的是一个包含长度为192243的2284个contigs的文件 细菌杂志[1]来自塔拉海洋亚基因组调查。

  1. [TullyEtAl_2018]

依赖关系

Python(>;=3.6)

python库

如果是从pypi包构建的,那么这些将自动安装,否则可以 使用pipInstall pip)轻松安装。

必需的

  • 生物圈(>;=1.70)
  • 纽比(>;=1.13.1)
  • matplotlib(>;=2.0.2)
  • scipy(>;=1.1.0)
  • Seaborn(>;=0.9.0)
  • 熊猫(>;=0.23.4)

位置参数

genome_tab            Genomes in .fna in list format
distribution          Set of lengths to base the distribution on

genome_tab应该是一个包含基因组列表的简单文件(核苷酸fasta文件) 它将被用来制造人造磁棒,例如:

GCF_000007265.1_ASM726v1_genomic.fna
GCF_000007325.1_ASM732v1_genomic.fna
...

distribution也应该是一个包含表示 一种用于分割人工容器的容器尺寸分布,例如:

23967
15981
149609
...

可选地,distribution可以用Tara_bact填充以使用contig集 引论中描述了塔拉海洋的长度。

可选参数

-h, --helpshow this help message and exit
-c COMPLETENESS, --completeness COMPLETENESS
Range of completeness levels to be produced. Default=1.0
-r CONTAMINATION, --contamination CONTAMINATION
Range of contamination to be included in produced MAGs. Default=1.0
-n NUM, --num NUM
Number of randomised MAGs to produce. Produces one randomised per provided genome by default.

示例

首先,创建一个包含基因组fasta文件列表的文件,这些文件将作为人工mags的基础:

$ head -n5 reference_fna.list
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000005845.2_ASM584v2_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006745.1_ASM674v1_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006765.1_ASM676v1_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006785.2_ASM678v2_genomic.fna
/nobackup/genomic_sources/genbank_reference_bacteria_fna_20181128/ncbi-genomes-2018-11-28/GCF_000006845.1_ASM684v1_genomic.fna

然后是第二个文件,它是表示contig大小分布的长度列表:

$ head -n5 Tara_bact
23967
15981
149609
37636
121320

示例1-拆分为contigs

这个例子将reference_fna.list中的所有.fna文件按照 在Tara_bact

中的连续长度分布
$ randMAG reference_fna.list Tara_bact

结果是在当前工作目录中为 每个输入。fna。还生成了simulated_MAGs.tab,一个包含输入的表格文件 文件,指定的唯一8字符后缀、完整性和冗余部分:

$ head -n5 simulated_MAGs.tab
GCF_000005845.2_ASM584v2_genomic    mpmwoutk        1.0     1.0
GCF_000006745.1_ASM674v1_genomic    mmqehxfx        1.0     1.0
GCF_000006765.1_ASM676v1_genomic    engiyxoz        1.0     1.0
GCF_000006785.2_ASM678v2_genomic    rtvayhqu        1.0     1.0
GCF_000006845.1_ASM684v1_genomic    bzpsqnfq        1.0     1.0

本例中fasta文件的内容保持不变,除了 被分成两部分。

示例2-更改完整性/污染

要更改fasta文件的完整性和污染,-c-r 需要使用参数。可以使用-n参数精确地获取 所需数量的unqiue mags:

$ randMAG reference_fna.list Tara_bact -c 0.7 -r 1.2 -n 10000

这将生成至少70%完整且至少20%受污染的文件:

$ head -n5 simulated_MAGs.tab
GCF_000005845.2_ASM584v2_genomic    kfcckaxy        0.6956260400391929      1.2092498368299183
GCF_000006745.1_ASM674v1_genomic    xqnerzfy        0.6927500102156292      1.202911467089386
GCF_000006765.1_ASM676v1_genomic    kiubfyau        0.6988059837775469      1.200510423558475
GCF_000006785.2_ASM678v2_genomic    xxltcsmv        0.6849106013550827      1.2144702270571384
GCF_000006845.1_ASM684v1_genomic    rcxezdoq        0.6927952822804169      1.2028640216997193

以及使用-n

$ wc -l simulated_MAGs.tab
10000 simulated_MAGs.tab

参考文献

[TullyEtAl_2018]Tully,B.J. et al. (2018) The reconstruction of 2,631 draft metagenome-assembled genomes from the global oceans. Sci. Data, 5, 170203

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java迭代图形框架聚合达到内存限制的消息   反编译和开发人员向Android应用程序提供java安全密钥   活页夹中的java Vaadin上传组件,例如Crud编辑器   java如何定义0090当我有了每个字符   带有AOP的java截取私有注释方法   在Java中暂停并恢复动画(thread.sleep)   java在JavaFX中从不同的控制器向TableView添加行   java如何通过Spring使用脚本初始化inmemory HSQLDB   windows找到了绝对的java。通过编程从java代码获取exe路径   Java同步、信号量和队列的多线程性能   java异步任务回调未调用   java在迷宫中用坐标寻找最短路径   Java:并行处理数组,查找发生异常的位置   java我无法理解我收到的错误   如何调用。bat文件,并使用java中的ProcessBuilder发送字符串   java在mysql数据库中插入日期   将ArrayList的内容显示为格式正确的JSON for Java REST API   java@OneToMany注释SQLSyntaxErrorException:ORA000904无效标识符