快速搜索和收集sourmash扩展
项目描述
pyo3_branchwater
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测试。
生成发布版本
-
在
Cargo.toml
中增加版本号并运行make
以更新Cargo.lock
。然后提交并推送到origin/main
。 -
在GitHub上创建具有匹配版本标签的新发布版本。
-
然后
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5754a372a6d482f7f5b44ec08c9a7fd5bcd1db2da395849a2c0f7945ccef973c |
|
MD5 | 73550156628bad36a38f6aafdc958a45 |
|
BLAKE2b-256 | 18e99724a5ec23aec2081d1789fe3c0c8c3391683ce487dd77d4f99ac44d332a |