跳转到主要内容

快速搜索和收集sourmash扩展

项目描述

pyo3_branchwater

PyPI

tl;dr 通过sourmash插件快速和低内存地搜索/收集许多sourmash草图。

详情

此仓库包含一个基于PyO3的Python包装器,围绕核心branchwater代码Branchwater 是一个快速、低内存和线程多路复用的应用程序,用于搜索由 sourmash 生成的非常大的 FracMinHash草图 集合。

有关详细信息,请参阅 src/ 中的Rust代码和 src/python/ 中的Python包装器。

使用 pyo3 进行Python到Rust的包装。

此功能可以作为sourmash中的命令行插件使用;请参阅下面的快速入门。

文档

以下是一个快速入门指南,以及更多文档在这里

manysearch的快速入门。

要尝试branchwater,您需要安装sourmash 4.8.3或更高版本。

此快速入门演示了使用Awad等人,2017年的64个基因组进行multisearch

1. 安装必要的依赖项

您需要rust、Python和maturin来构建,以及sourmash来运行。有关conda包的列表,请参阅environment.yml,有关示例命令行,请参阅下面的开发者文档。

2. 安装pyo3_branchwater。

以开发者模式安装此存储库

pip install -e .

3. 下载草图。

以下命令将下载podar基因组的sourmash草图到文件podar-ref.zip

curl -L https://osf.io/4t6cq/download -o podar-ref.zip

5. 执行!

现在运行multisearch以搜索所有草图之间的相互比较

sourmash scripts multisearch podar-ref.zip podar-ref.zip -o results.csv --cores 4

您将在results.csv中看到一组结果。这些是每个查询与所有匹配基因组的比较。

调试帮助

如果您的集合加载不正确,请尝试像这样运行sourmash sig summarize,如下所示

sourmash sig summarize podar-ref.zip

这将确保一切都能正确加载。

未来想法

此代码的速度和功能可能会在将来集成到sourmash核心中,最有可能作为sourmash#2230的一部分。然而,在此期间,这是一个有趣的项目,利用sourmash插件和Rust提供一些可能对某些人有用的快速功能,并且可以作为未来sourmash功能测试平台。

开发者说明

安装开发环境

您需要sourmash、rust和maturin

一个简单的方法是在仓库的顶级目录中运行

mamba env create -n branchwater-dev -f environment.yml

然后激活环境并以可编辑模式安装

mamba activate branchwater-dev
pip install -e .

本地运行测试

执行

make test

将运行Python测试。

生成发布版本

  1. Cargo.toml中增加版本号并运行make以更新Cargo.lock。然后提交并推送到origin/main

  2. 在GitHub上创建具有匹配版本标签的新发布版本。

  3. 然后

make sdist
make upload_sdist

在PyPI上创建新版本。

构建wheel文件

您可以使用以下方法构建当前平台上的发布wheel文件

make wheel

它将被放置在target/wheels/下。


许可

此软件受AGPL许可协议的保护。请参阅LICENSE.txt

作者

  • Luiz Irber
  • C. Titus Brown
  • Mohamed Abuelanin
  • N. Tessa Pierce-Ward

项目详情


下载文件

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

源分布

pyo3_branchwater-0.8.3.tar.gz (22.1 MB 查看哈希值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面