#bigwig #bio #reading #associated #bigbeds #bigbed #big-wig

bin+lib bigtools

用于读取和写入 bigwig 和 bigbed 文件的库和相关工具

26 个版本

0.5.2 2024 年 8 月 13 日
0.5.1 2024 年 7 月 30 日
0.4.3 2024 年 5 月 19 日
0.4.2 2024 年 2 月 12 日
0.1.1 2019 年 11 月 21 日

220解析实现

Download history 303/week @ 2024-04-23 298/week @ 2024-04-30 235/week @ 2024-05-07 339/week @ 2024-05-14 324/week @ 2024-05-21 284/week @ 2024-05-28 110/week @ 2024-06-04 289/week @ 2024-06-11 368/week @ 2024-06-18 145/week @ 2024-06-25 172/week @ 2024-07-02 272/week @ 2024-07-09 197/week @ 2024-07-16 150/week @ 2024-07-23 366/week @ 2024-07-30 192/week @ 2024-08-06

1,078 每月下载量
用于 5 软件包(4 个直接使用)

MIT 许可证

9.5MB
38K SLoC

Bitbake 27K SLoC // 0.0% comments Rust 11K SLoC // 0.1% comments

Bigtools

License Paper Zenodo

Rust, CLI crates.io bigtools on Bioconda Rust Docs
Python PyPI pybigtools on Bioconda Python Docs

Bigtools 是一个用于读取和写入 bigwig 和 bigbed 文件的库和相关工具。

项目的首要目标是

  • 性能
  • 可扩展性
  • 现代性

性能

Bigtools 内部使用 async/await 以允许在可能的情况下进行高效的、多核计算。此外,工具针对最小内存使用进行了优化。有关更多详细信息,请参阅 基准测试

可扩展性

Bigtools 设计得尽可能模块化。这,加上 Rust 的安全性和可靠性,使得它作为一个库既灵活又正确。此外,创建新的工具或二进制文件非常容易。提供了一些二进制文件,它们与来自 UCSC 的相关现有二进制文件并行,并且对于最常见的标志具有直接兼容性。

现代性

Bigtools 使用 Rust 编写,并发布到 crates.io,因此可以使用 cargo install bigtools 安装二进制文件,或者只需将其包含在您的 cargo.toml 中即可作为库使用。

要在 Rust 项目中使用 bigtools,请将 bigtools 添加到您的 Cargo.toml 或运行

cargo add bigtools

查看 bigtools 🦀 文档

示例

use bigtools::bbiread::BigWigRead;

let mut reader = BigWigRead::open("test.bigWig").unwrap();
let chr1 = reader.get_interval("chr1", 0, 10000).unwrap();
for interval in chr1 {
    println!("{:?}", interval);
}

二进制文件

可以通过 crates.ioconda 安装 bigtools CLI 二进制文件。

cargo install bigtools
conda install -c bioconda bigtools

此外,还可以通过 GitHub 发布 下载预构建的二进制文件。

以下二进制文件可用:

二进制文件 描述
bigtools 提供对多个子命令的访问,包括以下所有命令:
bedgraphtobigwig 从给定的 bedGraph 文件写入 bigWig
bedtobigbed 从给定的 bed 文件写入 bigBed
bigbedinfo 显示提供的 bigBed 的信息
bigbedtobed 从 bigBed 的数据中写入 bed
bigwigaverageoverbed 使用 bigWig 中的值计算 bed 文件区域的统计数据
bigwiginfo 显示提供的 bigWig 的信息
bigwigmerge 合并多个 bigWig,输出为新的 bigWig 或 bedGraph
bigwigtobedgraph 从 bigWig 中的数据写入 bedGraph
bigwigvaluesoverbed 使用值获取 bigWig 在 bed 文件区域的每碱基值

bigtools 二进制文件重命名为任何子命令(不区分大小写)允许您直接运行该子命令。

Python 包装器

pybigtools 包是使用 PyO3 编写的 Python 包装器。您可以通过 PyPIconda 安装或使用它作为依赖项。

pip install pybigtools
conda install -c bioconda pybigtools

请参阅 pybigtools 🐍 API 文档

如何从源代码构建

为了构建 bigtools 二进制文件,您可以运行

cargo build --release

并且二进制文件可以在 target/release/ 中找到。

否则,您可以通过运行以下命令从源代码安装二进制文件:

cargo install --path bigtools/

构建 pybigtools 的 Python 轮子需要 maturin。要构建用于安装的 pybigtools 轮子(并安装),您可以运行

maturin build --release -m pybigtools/Cargo.toml
pip install target/wheels/pybigtools*.whl

maturin develop --release -m pybigtools/Cargo.toml

基准测试

基准测试包含在 ./bench 目录中。它们需要 python 运行。

多个工具与相应的 UCSC 工具进行了比较。为了完整性,包括单线程和多线程(如有可用)的基准测试。在不同重复中进行多个不同配置选项的基准测试,但以下表格中有总结

如何引用

此存储库包含一个包含引用信息的 CITATION.cff 文件。Github 允许您以 APA 或 BibTeX 格式获取引用;这在“关于”下的“引用此存储库”中可用。

依赖关系

~3–15MB
~176K SLoC