跳转到主要内容

A Python interface to gb-io, a fast GenBank parser and serializer written in Rust.

项目描述

🧬🏦 gb-io.py Stars

A Python interface to gb-io, a fast GenBank parser and serializer written in Rust.

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

🗺️ 概述

gb-io.py 是一个Python包,提供了一个到 gb-io 的接口,这是一个使用Rust实现的非常快速的GenBank格式解析器和序列化器。它的速度比 Biopythonscikit-bio 解析器要高得多。

此库没有外部依赖,适用于所有现代Python版本(3.7+)。

为了提高性能,该库实现了一种按需复制模式,因此数据仅在实际上被访问时才在Python堆上复制,而不是在对象创建时。例如,如果解析器的消费者只需要GenBank特征而不是记录序列,则序列将不会复制到Python bytes对象。

🔧 安装

直接从PyPi安装gb-io包,该包提供了预编译的wheel,可以使用pip进行安装

$ pip install gb-io

提供了适用于常见平台(如x86-64 Linux、Windows和MacOS)以及Aarch64 Linux和MacOS的wheel。如果没有可用的wheel,将下载源代码分发,并下载Rust编译器的本地副本以构建该包,除非主机机器上已安装。

📖 文档

完整的API参考可以在在线文档中找到,或者可以直接使用pydoc从命令行访问。

$ pydoc gb_io

💡 使用

使用gb_io.load函数来获取文件中所有GenBank记录的列表

records = gb_io.load("tests/data/AY048670.1.gb")

支持从类似文件的对象中读取,包括文本和二进制模式

with open("tests/data/AY048670.1.gb") as file:
    records = gb_io.load(file)

还可以使用gb_io.iter方法迭代文件中的每个记录,而无需将整个文件内容加载到内存中,该方法返回一个迭代器而不是一个列表

for record in gb_io.iter("tests/data/AY048670.1.gb"):
    print(record.name, record.sequence[:10])

可以使用gb_io.dump方法将一个或多个记录写入文件(可以是路径,也可以是文件类似句柄)

with open("tests/data/AY048670.1.gb", "wb") as file:
    gb_io.dump(records, file)

📝 示例

以下小型脚本将从一个GenBank文件中提取所有CDS特征,并将它们以FASTA格式写入输出文件

import gb_io

with open("tests/data/AY048670.1.faa", "w") as dst:
    for record in gb_io.iter("tests/data/AY048670.1.gb"):
        for feature in filter(lambda feat: feat.type == "CDS", record.features):
            qualifiers = feature.qualifiers.to_dict()
            dst.write(">{}\n".format(qualifiers["locus_tag"][0]))
            dst.write("{}\n".format(qualifiers["translation"][0]))

与使用Bio.SeqIO.parseBio.GenBank.parseBio.GenBank.Scanner.GenBankScanner.parse_cds_features的类似实现相比,性能如下

gb_io.iter GenBankScanner GenBank.parse SeqIO.parse
时间(s) 2.264 7.982 15.259 19.351
速度(MiB/s) 136.5 37.1 20.5 16.2
加速 8.55倍 2.42倍 1.27倍 -

💭 反馈

⚠️ 问题跟踪器

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

🏗️ 贡献

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

⚖️ 许可证

该库是在MIT许可证下提供的。《code>gb-io Rust crate包由David Leslie编写,并受MIT许可证的约束。该包还提供了一些其他包的源代码,这些包受Apache-2.0MITBSD-3-Clause许可证的约束;有关更多信息,请参阅每个转售依赖项的源代码副本中分发的许可证文件。

本项目与原始gb-io作者无任何关联、赞助或认可。该项目由Martin Larralde欧洲分子生物学实验室Zeller团队的博士项目期间开发。

项目详情


下载文件

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

源代码发行版

gb_io-0.3.3.tar.gz (18.5 MB 查看哈希值)

上传时间 源代码

构建发行版

gb_io-0.3.3-pp310-pypy310_pp73-win_amd64.whl (321.6 kB 查看哈希值)

上传时间 PyPy Windows x86-64

gb_io-0.3.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (481.5 kB 查看哈希值)

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

gb_io-0.3.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (492.0 kB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

gb_io-0.3.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (431.2 kB 查看哈希值)

上传时间 PyPy macOS 10.9+ x86-64

gb_io-0.3.3-pp39-pypy39_pp73-win_amd64.whl (322.3 kB 查看哈希值)

上传时间 PyPy Windows x86-64

gb_io-0.3.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (482.7 kB 查看哈希值)

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

gb_io-0.3.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (493.7 kB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

gb_io-0.3.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (432.6 kB 查看哈希值)

上传于 PyPy macOS 10.9+ x86-64

gb_io-0.3.3-pp38-pypy38_pp73-win_amd64.whl (321.1 kB 查看哈希值)

上传于 PyPy Windows x86-64

gb_io-0.3.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (482.2 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ x86-64

gb_io-0.3.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (493.2 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ ARM64

gb_io-0.3.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (432.3 kB 查看哈希值)

上传于 PyPy macOS 10.9+ x86-64

gb_io-0.3.3-pp37-pypy37_pp73-win_amd64.whl (323.5 kB 查看哈希值)

上传于 PyPy Windows x86-64

gb_io-0.3.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (484.6 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ x86-64

gb_io-0.3.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (495.9 kB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ ARM64

gb_io-0.3.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (434.7 kB 查看哈希值)

上传于 PyPy macOS 10.9+ x86-64

gb_io-0.3.3-cp312-cp312-win_amd64.whl (320.8 kB 查看哈希值)

上传于 CPython 3.12 Windows x86-64

gb_io-0.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (485.5 kB 查看哈希值)

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

gb_io-0.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (495.9 kB 查看哈希值)

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

gb_io-0.3.3-cp312-cp312-macosx_11_0_arm64.whl (425.9 kB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

gb_io-0.3.3-cp312-cp312-macosx_10_9_x86_64.whl (433.4 kB 查看哈希值)

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

gb_io-0.3.3-cp311-cp311-win_amd64.whl (321.7 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

gb_io-0.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (483.0 kB 查看哈希值)

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

gb_io-0.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (493.3 kB 查看哈希值)

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

gb_io-0.3.3-cp311-cp311-macosx_11_0_arm64.whl (424.0 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

gb_io-0.3.3-cp311-cp311-macosx_10_9_x86_64.whl (432.2 kB 查看哈希值)

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

gb_io-0.3.3-cp310-cp310-win_amd64.whl (322.4 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

gb_io-0.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (482.6 kB 查看哈希值)

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

gb_io-0.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (494.1 kB 查看哈希值)

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

gb_io-0.3.3-cp310-cp310-macosx_11_0_arm64.whl (424.3 kB 查看哈希值)

上传时间 CPython 3.10 macOS 11.0+ ARM64

gb_io-0.3.3-cp310-cp310-macosx_10_9_x86_64.whl (432.5 kB 查看哈希值)

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

gb_io-0.3.3-cp39-cp39-win_amd64.whl (323.0 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

gb_io-0.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (483.7 kB 查看哈希值)

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

gb_io-0.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (495.0 kB 查看哈希值)

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

gb_io-0.3.3-cp39-cp39-macosx_11_0_arm64.whl (424.4 kB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ ARM64

gb_io-0.3.3-cp39-cp39-macosx_10_9_x86_64.whl (432.7 kB 查看哈希值)

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

gb_io-0.3.3-cp38-cp38-win_amd64.whl (322.6 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

gb_io-0.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (483.5 kB 查看哈希值)

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

gb_io-0.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (495.1 kB 查看哈希值)

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

gb_io-0.3.3-cp38-cp38-macosx_11_0_arm64.whl (424.5 kB 查看哈希值)

上传时间: CPython 3.8 macOS 11.0+ ARM64

gb_io-0.3.3-cp38-cp38-macosx_10_9_x86_64.whl (433.3 kB 查看哈希值)

上传时间: CPython 3.8 macOS 10.9+ x86-64

gb_io-0.3.3-cp37-cp37m-win_amd64.whl (323.1 kB 查看哈希值)

上传时间: CPython 3.7m Windows x86-64

gb_io-0.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (484.0 kB 查看哈希值)

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

gb_io-0.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (495.3 kB 查看哈希值)

上传时间: CPython 3.7m manylinux: glibc 2.17+ ARM64

gb_io-0.3.3-cp37-cp37m-macosx_10_9_x86_64.whl (433.4 kB 查看哈希值)

上传时间: CPython 3.7m macOS 10.9+ x86-64

由以下组织支持