Skip to main content

预测噬菌体生活方式的随机森林分类器

项目描述

BACPHLIP - 噬菌体生活方式预测工具

Adam J. Hockenberry 和 Claus O. Wilke

PyPI 版本 PyPI - 下载 PyPI - 许可证 构建状态 覆盖状态

参考:

预印本可在:https ://www.biorxiv.org/content/10.1101/2020.05.13.094805v1

概述和重要警告

BACPHLIP 软件旨在测试给定的噬菌体基因组(.fasta格式化)是否可能是温和的(溶原的)或毒性的(裂解的)。该软件通过搜索一组特定的假设为“温带特异性”蛋白质结构域来做出这一决定。BACPHLIP 有几个用户应该注意的假设:

  1. 用户输入是一个噬菌体基因组(核苷酸)序列。BACPHLIP 不对输入的核苷酸序列是否为噬菌体进行任何检查,因此请用户在运行 BACPHLIP 之前自行验证这一事实。随机的 DNA 片段将被称为毒性噬菌体(假设在随机序列中没有发现相关结构域),不是因为有任何迹象表明该序列是毒性噬菌体,而是因为没有数据推翻最初的假设(您提供了噬菌体程序,见下文第 3 点)。如果您向 BACPHLIP 提供整个细菌染色体,也会出现类似的奇怪结果,这些可能被称为温带噬菌体,因为很可能会在染色体的某处发现几个相关的“温带域”。

  2. 噬菌体基因组是完整的。我们强调,没有证据并不是没有证据。如果基因组不完整,我们根本没有足够的信息来确定是否存在溶原相关蛋白结构域,因此不应将不完整/部分组装的基因组用作输入

  3. 默认/起始假设是任何给定的输入文件都是毒性(裂解)噬菌体。根据发现的各种溶原性相关蛋白的数量和身份,随机森林分类器可能会更新此默认假设,以表明该序列实际上是温和的。然而,如果根本没有发现感兴趣的蛋白质结构域,结果将是噬菌体具有毒性。

  4. 用户应在使用前通读所有文档,以及(2 页)随附的手稿。我们已经仔细列举了这个软件包的用例和限制。例如,BACPHLIP 在一个几乎完全由来自Caudovirales目的噬菌体组成的数据集上进行了训练,其中大多数感染了ActinobacteriaGammaproteobacteriaBacilli目中的宿主。我们敦促在这些订单之外的物种上使用该软件时要谨慎,但请注意,随着我们在未来版本中更新和扩展训练集数据,这一事实可能会发生变化。

安装

您可以使用 pip 安装 BACPHLIP:

pip install bacphlip

或者,用户可以克隆/下载最新的 github 存储库,导航到下载 BACPHLIP 的目录并运行:

pip install .

BACPHLIP 在标准库之外有几个必需的依赖项:biopythonpandasjoblibscikit-learn

此外,用户需要安装HMMER3 软件套件(除了 HMMER3 网站上列出的安装路线,我们注意到此工具也可以通过conda安装)。默认情况下,BACPHLIP 假定 HMMER3 安装在系统路径中,但本地路径可以作为运行时标志提供(见下文)。

例子

BACPHLIP 最直接的用法是作为命令行工具。所需的输入是fasta包含一条记录的基因组(核苷酸)文件。假设/valid/path/to/a/genome.fasta存在,您可以使用以下命令调用 BACPHLIP:

bacphlip -i /valid/path/to/a/genome.fasta

此命令应在目标路径中创建 4 个单独的文件,genome.fasta其中genome.fasta.bacphlip包含最终模型预测(制表符分隔格式),就输入噬菌体为“毒性”或“温和”的概率而言(其他文件附加.6frame.hmmsearch.hmmsearch.tsv到基因组文件)。尝试第二次运行此命令(假设第一次有效)应该会产生错误,因为输出文件已经存在。可以使用标志更改此行为以强制覆盖文件:

bacphlip -i /valid/path/to/a/genome.fasta -f 

hmmsearch可以在命令行中指定本地 HMMER3 安装(特别是工具)的路径:

bacphlip -i /valid/path/to/a/genome.fasta --local_hmmsearch /valid/path/to/hmmsearch

鼓励希望在多个噬菌体上批量运行 BACPHLIP 的用户使用--multi_fasta运行时标志。在这种情况下,输入基因组(核苷酸)fasta 文件应包含多个序列记录(每个完整基因组一个),具有唯一 ID(由 解析biopython)。BACPHLIP 将创建一个以输入文件命名的目录,与每个序列记录关联的中间文件将从记录 id 命名并写入该目录。最后,最终输出文件将包含一个表格,其中包含每个基因组的预测。假设multigenome.fasta存在:

bacphlip -i /valid/path/to/a/multigenome.fasta --multi_fasta

此外,BACPHLIP 也可以作为 python 库访问和使用。从 python 解释器只需键入:

import bacphlip
bacphlip.run_pipeline('/valid/path/to/a/genome.fasta')

可以使用此库功能将一批输入文件作为循环运行(它将.bacphlip为每个输入输出并保存单独的预测 [,一种简单的制表符分隔格式] 文件:

import bacphlip
import glob
for infile_loc in glob.glob('/valid/path/to/a/set/of/files/*.fasta'):
    bacphlip.run_pipeline(infile_loc)

或者如果多个基因组包含在同一个.fasta文件中,则可以使用该函数分析多个基因组,该函数将为每个输入run_pipeline_multi创建一个包含行:.bacphlip

import bacphlip
multi_fasta_file = '/valid/path/to/multi.fasta'
bacphlip.run_pipeline_multi(infile_loc)

最后,使用 BACPHLIP 作为库可以使用户可以使用各个函数,以便运行单个步骤并可能对其进行故障排除。IE:

import bacphlip
bacphlip.six_frame_translate( ... )
bacphlip.hmmsearch_py( ... )
bacphlip.process_hmmsearch( ... )
bacphlip.predict_lifestyle( ... )

每个函数都有一组相关的参数,应该从文档中清楚地看到。我们希望以这种方式运行 BACPHLIP 将在文件名方面提供更大的灵活性,并且可能对某些用户有用。

下一步

我们有几个计划的后续步骤,包括:

  1. examples在即将发布的文件夹中添加库使用教程作为 jupyter 笔记本。
  2. 添加以“安静”模式运行管道的能力
  3. (在此处插入您的建议)

杂项

该软件是根据 MIT 许可提供给您的(参见文件LICENSE.txt)。该软件的最新版本可在 https://github.com/adamhockenberry/bacphlip获得。

的开发BACPHLIP是在一个单独的存储库中提供的,以提高透明度。请参阅bacphlip-model-dev

贡献

欢迎在 GitHub 上提出解决错误或添加新功能的拉取请求。但是,要被接受,贡献必须通过pytest单元测试。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

bacphlip-0.9.6.tar.gz (10.4 MB 查看哈希

已上传 source