跳转到主要内容

oxli是一个用于在基因组测序数据中计数k-mer的Rust库和Python接口。

项目描述


oxli

oxli是一个功能强大的Rust库,它提供了一个简单的Python接口,用于在基因组测序数据中计数k-mer。

使用oxli将快速k-mer计数和比较操作带给您的Python项目。

该库是基于sourmash rust库编写的,底层数据处理代码经过良好测试。

安装

快速设置

oxli在conda-forge上可用,支持Linux、Mac OS X和Windows,适用于Python 3.10、3.11和3.12版本。

conda install oxli

这将安装Python的oxli库。

对于开发者

您也可以尝试自行构建oxli并在开发模式中使用它

# Setup conda development env
mamba env create -f environment.yml -n oxli

# Install oxli in dev mode
pip install -e '.[test]'

入门指南

有关Python API的文档,请参阅oxli Wiki

基本用法

初始化一个新的KmerCountTable

# Import oxli
from oxli import KmerCountTable

# Create new count table
kct = KmerCountTable(ksize=4) # Count 4-mers

添加k-mer计数。

# Add single k-mer with count()
kct.count("AAAA")
>>> 1

# Increment count
kct.count("AAAA")
>>> 2

# Forward and Reverse complement counted together
kct.count("TTTT")
>>> 3

# Add many k-mers from a longer sequence with consume
kct.consume("GGGGGGGGGG") # 7 x 4-mers of 'GGGG'

通过k-mer查找计数。

# Retrieve kmer counts
kct.get('GGGG') # Count for GGGG/CCCC
>>> 7
kct.get('AAAA') #Count for AAAA/TTTT
>>> 3

从文件中提取k-mer。

# Screed for FASTA/FASTQ parsing
import screed

# Create new table
counts = KmerCountTable(ksize=21)

# Read fasta records and extract k-mers
for record in screed.open('doc/example.fa'):
    counts.consume(record.sequence)
>>> 349910

这里的历史是什么?

首先,oxli是借鉴了khmer,一个由@ctb和其他人编写的包。您可能会看到khmer中的有用功能出现在oxli中,这不会让您感到惊讶。

khmer包对于检查大量k-mer集合很有用,但难以维护和升级。

大约在2016年,@ctb的实验室开始转向开发sourmash,最初它是基于与khmer相似的技术栈(Python & C++)构建的。

在某个时候,@luizirber将sourmash的C++代码重写为Rust。

这迫使@ctb学习Rust来维护sourmash。

@ctb随后决定他非常喜欢Rust,并怀念一些khmer的功能。

就这样,oxli诞生了。

作者

作者:C. Titus Brown (@ctb),ctbrown@ucdavis.edu
以及@Adamtaranto添加的一些杂项功能

项目详情


下载文件

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

源代码分发

oxli-0.3.0.tar.gz (143.8 kB 查看哈希值)

上传时间 源代码

构建版本

oxli-0.3.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (2.0 MB 查看哈希值)

上传时间 PyPy musllinux: musl 1.2+ x86-64

oxli-0.3.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl (2.0 MB 查看哈希值)

上传时间 PyPy musllinux: musl 1.2+ i686

oxli-0.3.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (2.0 MB 查看哈希值)

上传时间 PyPy musllinux: musl 1.2+ ARMv7l

oxli-0.3.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (1.9 MB 查看哈希值)

上传时间 PyPy musllinux: musl 1.2+ ARM64

oxli-0.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB 查看哈希值)

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

oxli-0.3.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ s390x

oxli-0.3.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

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

oxli-0.3.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB 查看哈希值)

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

oxli-0.3.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

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

oxli-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

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

oxli-0.3.0-cp312-none-win_amd64.whl (1.4 MB 查看哈希值)

上传时间: CPython 3.12 Windows x86-64

oxli-0.3.0-cp312-none-win32.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 Windows x86

oxli-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.0 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ x86-64

oxli-0.3.0-cp312-cp312-musllinux_1_2_i686.whl (2.0 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ i686

oxli-0.3.0-cp312-cp312-musllinux_1_2_armv7l.whl (2.0 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ ARMv7l

oxli-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.9 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ ARM64

oxli-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB 查看哈希值)

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

oxli-0.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ s390x

oxli-0.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ppc64le

oxli-0.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ i686

oxli-0.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARMv7l

oxli-0.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

oxli-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

oxli-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 macOS 10.12+ x86-64

oxli-0.3.0-cp311-none-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

oxli-0.3.0-cp311-none-win32.whl (1.3 MB 查看哈希值)

上传于 CPython 3.11 Windows x86

oxli-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.0 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ x86-64

oxli-0.3.0-cp311-cp311-musllinux_1_2_i686.whl (2.0 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ i686

oxli-0.3.0-cp311-cp311-musllinux_1_2_armv7l.whl (2.0 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ ARMv7l

oxli-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ ARM64

oxli-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB 查看哈希值)

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

oxli-0.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ s390x

oxli-0.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ppc64le

oxli-0.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686

oxli-0.3.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARMv7l

oxli-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

oxli-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

oxli-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.12+ x86-64

oxli-0.3.0-cp310-none-win_amd64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

oxli-0.3.0-cp310-none-win32.whl (1.3 MB 查看哈希值)

上传于 CPython 3.10 Windows x86

oxli-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl (2.0 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ x86-64

oxli-0.3.0-cp310-cp310-musllinux_1_2_i686.whl (2.0 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ i686

oxli-0.3.0-cp310-cp310-musllinux_1_2_armv7l.whl (2.0 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ ARMv7l

oxli-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.2+ ARM64

oxli-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB 查看哈希值)

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

oxli-0.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ s390x

oxli-0.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ppc64le

oxli-0.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686

oxli-0.3.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARMv7l

oxli-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

oxli-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB 查看哈希值)

上传于 macOS 11.0+ ARM64

由以下支持