跳转到主要内容

Rust对MinCED算法的重新实现,用于在环境数据中检测CRISPR实例。

项目描述

🔪🧅 Diced Star me

Rust对MinCED算法的重新实现,用于在环境数据中检测CRISPRs

Actions Coverage License PyPI Bioconda AUR Wheel Python Versions Python Implementations Source GitHub issues Docs Changelog Downloads

🗺️ 概览

MinCED 是由 Connor T. Skennerton 开发的一种方法,用于在分离和宏基因组组装基因组中识别 成簇规律间隔短回文重复序列(CRISPRs)。它源于 CRISPR 识别工具 [1]。它使用快速扫描算法来识别候选重复序列,并结合扩展步骤来查找基因组中具有 CRISPR 重复序列的最大跨度区域。

Diced 是 MinCED 方法的 Rust 实现,以原始 Java 代码为参考。它产生与 MinCED 完全相同的结果,修正了一些错误,并且速度更快。Diced 实现作为 Rust 库提供,以便于使用。

这是 Python 版本,同样也提供了一个 Rust 包

📋 特性

  • 库接口:Rust 实现被编写为库,以促进在其他项目中的重用。它用于通过 PyO3 实现一个 Python 库,以生成原生扩展。
  • 单一依赖:Pyrodigal 作为 Python 包分发,因此您可以将其添加到项目中作为依赖项,并无需担心 Prodigal 二进制文件在最终用户机器上存在。
  • 零拷贝:如果提供简单的 &str 引用,则遍历候选 CRISPRs 的 Scanner 是零拷贝的,但它也支持诸如 Rc<str>Arc<str> 之类的智能指针背后的数据。
  • 快速字符串匹配:Java 实现使用了手写的 Boyer-Moore 算法[2],而 Rust 实现使用标准库中的 str::find 方法,该方法实现了 双向算法[3]。此外,可以使用 memchr 包作为 memmem 函数的快速 SIMD 兼容实现。

💡 示例

Diced 支持字符串格式的任何序列。

import Bio.SeqIO
import diced

record = Bio.SeqIO.read("diced/tests/data/Aquifex_aeolicus_VF5.fna", "fasta")
sequence = str(record.seq)

for crispr in diced.scan(sequence):
    print(
        crispr.start,
        crispr.end,
        len(crispr.repeats),
        crispr.repeats[0],
    )

💭 反馈

⚠️ 问题跟踪器

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

📋 更新日志

此项目遵循 语义版本控制,并在 更新日志 中提供 保持更新日志 格式。

⚖️ 许可证

此库在开源 GPLv3 许可证 或更高版本下提供。此实现的代码是从 MinCED 源代码 衍生的,该代码也以 GPLv3 许可证提供。

此项目与 原始 MinCED 作者 没有任何关联、赞助或任何形式的认可。它是由 Martin Larralde莱顿大学医学中心Zeller 团队 的博士项目中开发的。

📚 参考文献

  • [1] Bland, C., Ramsey, T. L., Sabree, F., Lowe, M., Brown, K., Kyrpides, N. C., & Hugenholtz, P. (2007). 'CRISPR识别工具(CRT):一种用于自动检测成簇规律间隔回文重复序列的工具'. 生物信息学杂志, 8, 209. PMID:17577412 doi:10.1186/1471-2105-8-209.
  • [2] Boyer, R. S. 和 Moore, J. S. (1977). '一种快速字符串搜索算法'. 计算机通信, 20, 10 762–772. doi:10.1145/359842.359859
  • [3] Crochemore, M. & Perrin, D. (1991). '双向字符串匹配'. 计算机学会会刊, 38, 3, 650–674. doi:10.1145/116825.116845

下载文件

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

源分发

diced-0.1.1.tar.gz (501.4 kB 查看哈希值)

上传时间

构建分发

diced-0.1.1-pp310-pypy310_pp73-win_amd64.whl (654.3 kB 查看哈希值)

上传时间 PyPy Windows x86-64

diced-0.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (787.3 kB 查看哈希值)

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

diced-0.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (788.4 kB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

diced-0.1.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (753.7 kB 查看哈希值)

上传时间 PyPy macOS 10.15+ x86-64

diced-0.1.1-pp39-pypy39_pp73-win_amd64.whl (654.1 kB 查看哈希值)

上传时间 PyPy Windows x86-64

diced-0.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (787.3 kB 查看哈希值)

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

diced-0.1.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (788.0 kB 查看哈希值)

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

diced-0.1.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (754.1 kB 查看哈希值)

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

diced-0.1.1-pp38-pypy38_pp73-win_amd64.whl (654.5 kB 查看哈希值)

上传时间: PyPy Windows x86-64

diced-0.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (787.3 kB 查看哈希值)

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

diced-0.1.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (788.6 kB 查看哈希值)

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

diced-0.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (753.5 kB 查看哈希值)

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

diced-0.1.1-pp37-pypy37_pp73-win_amd64.whl (656.1 kB 查看哈希值)

上传时间: PyPy Windows x86-64

diced-0.1.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (789.9 kB 查看哈希值)

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

diced-0.1.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (791.1 kB 查看哈希值)

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

diced-0.1.1-cp312-cp312-win_amd64.whl (652.2 kB 查看哈希值)

上传时间: CPython 3.12 Windows x86-64

diced-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (785.2 kB 查看哈希值)

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

diced-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (787.9 kB 查看哈希值)

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

diced-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (745.2 kB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

diced-0.1.1-cp312-cp312-macosx_10_9_x86_64.whl (752.1 kB 查看哈希值)

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

diced-0.1.1-cp311-cp311-win_amd64.whl (654.1 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

diced-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (787.6 kB 查看哈希值)

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

diced-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (787.9 kB 查看哈希值)

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

diced-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (745.5 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

diced-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl (754.2 kB 查看哈希值)

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

diced-0.1.1-cp310-cp310-win_amd64.whl (654.0 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

diced-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (784.5 kB 查看哈希值)

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

diced-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (787.3 kB 查看哈希值)

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

diced-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (745.0 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

diced-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl (751.3 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

diced-0.1.1-cp39-cp39-win_amd64.whl (654.2 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

diced-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (785.4 kB 查看哈希值)

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

diced-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (787.5 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

diced-0.1.1-cp39-cp39-macosx_11_0_arm64.whl (744.8 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

diced-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl (751.9 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

diced-0.1.1-cp38-cp38-win_amd64.whl (653.3 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

diced-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (784.9 kB 查看哈希值)

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

diced-0.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (787.5 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

diced-0.1.1-cp38-cp38-macosx_11_0_arm64.whl (745.4 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

diced-0.1.1-cp38-cp38-macosx_10_9_x86_64.whl (752.4 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

diced-0.1.1-cp37-cp37m-win_amd64.whl (653.8 kB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

diced-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (784.9 kB 查看哈希值)

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

diced-0.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (787.7 kB 查看哈希值)

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

diced-0.1.1-cp37-cp37m-macosx_10_9_x86_64.whl (751.9 kB 查看哈希值)

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

支持