跳转到主要内容

PyO3绑定和Python接口,用于使用稀疏链计算快速基因组身份的方法skani。

项目描述

🐍⛓️🧬 PySkani Stars

PyO3绑定和Python接口到skani,一种使用稀疏链进行快速基因组身份计算的方法。

Actions Coverage License PyPI Bioconda AUR Wheel Python Versions Python Implementations Source Mirror Issues Docs Changelog Downloads

🗺️ 概览

skani 是由 Jim ShawYun William Yu 开发的一种方法,通过稀疏链式连接快速而稳健地进行宏基因组序列比较。它在准确性方面优于 FastANI,同时速度更快,且内存占用更少。

pyskani 是一个 Python 模块,使用 PyO3 框架实现,为 skani 提供绑定。它直接链接到 skani 代码,与 CLI 包装器相比有以下优点:

  • 预构建轮子pyskani 在 PyPI 上发布,包括 x86-64 和 Arm64 UNIX 等常见平台预构建轮子。
  • 单一依赖项:如果您将软件或分析流程作为 Python 包分发,可以将 pyskani 作为依赖项添加到项目中,从而无需担心最终用户机器上是否有 skani 二进制文件。
  • 无 I/O:所有操作都在内存中进行,在您控制的 Python 对象中,这使得在不将序列写入临时文件的情况下传递到 skani 更加容易。

这个库仍在开发中,处于实验阶段,但它已经包含了足够的功能,可以在标准流程中使用。

🔧 安装

Pyskani 可以直接从 PyPI 安装,它托管了一些预构建的 CPython 轮子,适用于 x86-64 Unix 平台,以及用于使用 Rust 编译源代码的代码。

$ pip install pyskani

如果您必须从源代码编译此包,所有必需的 Rust 库都已包含在源代码发行版中,如果主机机器上没有 Rust 编译器,则会自动设置。

💡 示例

📝 创建数据库

数据库可以存储在内存中或使用机器文件系统上的文件夹来存储草图。无论存储方式如何,数据库都可以立即用于查询或保存到不同的位置。

以下是如何使用 Biopython 加载记录来在内存中创建数据库的示例

database = pyskani.Database()
record = Bio.SeqIO.read("vendor/skani/test_files/e.coli-EC590.fasta", "fasta")
database.sketch("E. coli EC590", bytes(record.seq))

对于草图基因组,只需向 sketch 方法传递更多参数,可以使用展开运算符。

database = pyskani.Database()
records = Bio.SeqIO.parse("vendor/skani/test_files/e.coli-o157.fasta", "fasta")
sequences = (bytes(record.seq) for record in records)
database.sketch("E. coli O157", *sequences)

🗒️ 加载数据库

要加载数据库,无论是使用 skani 还是 pyskani 创建的,您可以加载所有草图到内存中,以便快速查询。

database = pyskani.Database.load("path/to/sketches")

或者懒加载文件以节省内存,但查询速度会变慢。

database = pyskani.Database.open("path/to/sketches")

🔎 查询数据库

一旦创建或加载了数据库,使用 Database.query 方法计算一些查询基因组的 ANI。

record = Bio.SeqIO.read("vendor/skani/test_files/e.coli-K12.fasta", "fasta")
hits = database.query("E. coli K12", bytes(record.seq))

🔎 相关内容

计算封闭基因组的 ANI?您可能还对使用 pyfastani,一个用于计算 ANI 的 Python 包,感兴趣,它使用了 FastANI 方法,该方法由 Chirag Jain 等人开发。

💭 反馈

⚠️ 问题跟踪器

发现了一个错误?有一个增强请求?如果您需要报告或询问一些内容,请访问 GitHub 问题跟踪器。如果您正在报告错误,请尽可能多地提供有关问题的信息,并尝试在简单且易于复制的环境中重现相同的错误。

🏗️ 贡献

欢迎贡献!有关详细信息,请参阅 CONTRIBUTING.md

⚖️ 许可证

此库根据 MIT 许可证 提供。

《skani》代码由Jim Shaw编写,并按照MIT许可证分发。更多信息请参阅vendor/skani/LICENSE。使用cargo vendor命令,pyskani供应商在其自身条款下添加了额外的源。

该项目与原始的skani作者没有任何关联、赞助或其他形式的认可。该项目由Martin Larralde欧洲分子生物学实验室Zeller团队的博士项目期间开发。

项目详情


下载文件

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

源分发

pyskani-0.1.2.tar.gz (2.9 MB 查看哈希值)

上传时间

构建分发

pyskani-0.1.2-pp310-pypy310_pp73-win_amd64.whl (3.3 MB 查看哈希值)

上传时间 PyPy Windows x86-64

pyskani-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-pp310-pypy310_pp73-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传时间 PyPy macOS 12.0+ x86-64

pyskani-0.1.2-pp39-pypy39_pp73-win_amd64.whl (3.3 MB 查看哈希值)

上传时间 PyPy Windows x86-64

pyskani-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-pp39-pypy39_pp73-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传时间: PyPy macOS 12.0+ x86-64

pyskani-0.1.2-pp38-pypy38_pp73-win_amd64.whl (3.3 MB 查看哈希值)

上传时间: PyPy Windows x86-64

pyskani-0.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-pp38-pypy38_pp73-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传时间: PyPy macOS 12.0+ x86-64

pyskani-0.1.2-pp37-pypy37_pp73-win_amd64.whl (3.3 MB 查看哈希值)

上传时间: PyPy Windows x86-64

pyskani-0.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-pp37-pypy37_pp73-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传时间: PyPy macOS 12.0+ x86-64

pyskani-0.1.2-cp312-cp312-win_amd64.whl (3.3 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

pyskani-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-cp312-cp312-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传时间 CPython 3.12 macOS 12.0+ x86-64

pyskani-0.1.2-cp312-cp312-macosx_12_0_arm64.whl (3.3 MB 查看哈希值)

上传时间 CPython 3.12 macOS 12.0+ ARM64

pyskani-0.1.2-cp311-cp311-win_amd64.whl (3.3 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

pyskani-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-cp311-cp311-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传时间 CPython 3.11 macOS 12.0+ x86-64

pyskani-0.1.2-cp311-cp311-macosx_12_0_arm64.whl (3.3 MB 查看哈希值)

上传时间 CPython 3.11 macOS 12.0+ ARM64

pyskani-0.1.2-cp310-cp310-win_amd64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

pyskani-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-cp310-cp310-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传于 CPython 3.10 macOS 12.0+ x86-64

pyskani-0.1.2-cp310-cp310-macosx_12_0_arm64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.10 macOS 12.0+ ARM64

pyskani-0.1.2-cp39-cp39-win_amd64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

pyskani-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-cp39-cp39-macosx_12_0_x86_64.whl (3.4 MB 查看哈希值)

上传于 CPython 3.9 macOS 12.0+ x86-64

pyskani-0.1.2-cp39-cp39-macosx_12_0_arm64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.9 macOS 12.0+ ARM64

pyskani-0.1.2-cp38-cp38-win_amd64.whl (3.3 MB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

pyskani-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-cp38-cp38-macosx_12_0_x86_64.whl (3.4 MB 查看哈希)

上传于 CPython 3.8 macOS 12.0+ x86-64

pyskani-0.1.2-cp38-cp38-macosx_12_0_arm64.whl (3.3 MB 查看哈希)

上传于 CPython 3.8 macOS 12.0+ ARM64

pyskani-0.1.2-cp37-cp37m-win_amd64.whl (3.3 MB 查看哈希)

上传于 CPython 3.7m Windows x86-64

pyskani-0.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB 查看哈希)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

pyskani-0.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB 查看哈希)

上传于 CPython 3.7m manylinux: glibc 2.17+ ARM64

pyskani-0.1.2-cp37-cp37m-macosx_12_0_x86_64.whl (3.4 MB 查看哈希)

上传于 CPython 3.7m macOS 12.0+ x86-64