#bam #生物信息学 #测序 #htslib #pileup

rust-htslib

该库提供了HTSlib绑定以及用于读取和写入BAM文件的高级Rust API。

61个版本 (破坏性更新)

0.47.0 2024年5月24日
0.46.0 2024年2月22日
0.45.0 2024年2月7日
0.44.1 2023年6月21日
0.3.1 2015年3月23日

#2 in 生物学

Download history 763/week @ 2024-05-02 666/week @ 2024-05-09 791/week @ 2024-05-16 899/week @ 2024-05-23 1207/week @ 2024-05-30 824/week @ 2024-06-06 736/week @ 2024-06-13 633/week @ 2024-06-20 510/week @ 2024-06-27 723/week @ 2024-07-04 731/week @ 2024-07-11 780/week @ 2024-07-18 898/week @ 2024-07-25 861/week @ 2024-08-01 926/week @ 2024-08-08 863/week @ 2024-08-15

3,663 每月下载量
用于 45 crate

MIT 许可证

800KB
19K SLoC

Crates.io Crates.io Crates.io docs.rs GitHub Workflow Status Coverage Status

Rust的HTSlib绑定

该库提供了HTSlib绑定以及用于读取和写入BAM文件的高级Rust API。

要克隆此存储库,请执行以下命令

$ git clone --recursive https://github.com/rust-bio/rust-htslib.git

确保也获取了HTSlib子模块。如果您只想使用库,则无需克隆存储库。在这种情况下,请继续阅读本节的 使用 部分。

需求

rust-htslib为Mac和Linux提供了预构建的htslib绑定。您需要一个与cc crate兼容的C工具链。此crate的构建脚本将自动构建一个链接htslib。

使用

将此添加到您的 Cargo.toml

[dependencies]
rust-htslib = "*"

默认情况下,rust-htslib链接到bzip2-syslzma-sys以支持完整的CRAM。如果您不需要CRAM支持,或者您需要使用这些压缩方法支持CRAM文件,您可以通过禁用这些功能来减少您的依赖项数量

[dependencies]
rust-htslib = { version = "*", default-features = false }

rust-htslib可选支持serde,允许通过任何serde支持的格式进行(反)序列化bam::Record

使用curl功能可以提供对文件的HTTP访问。

通过s3gcs功能提供了Beta级别的S3和Google Cloud Storge支持。

rust-htslib可选使用bindgen生成htslib的绑定。这可能会显著减慢构建速度。启用bindgen功能将导致hts-sys为您的架构创建一个绑定文件。预构建的绑定已提供给Mac和Linux。Windows上的bindgen功能尚未测试 - 如果您需要帮助,请提交错误报告。

[dependencies]
rust-htslib = { version = "*", features = ["serde_feature"] }

有关更多信息,请参阅文档

替代方案

由Michael Macias开发,实现htslib大部分C功能特性的noodles(目前仍处于实验阶段)。

作者

其他贡献者,请参阅此处

许可证

根据MIT许可证授权 https://opensource.org/licenses/MIT。本项目不得复制、修改或分发,除非符合这些条款。一些测试文件来自https://github.com/samtools/htslib

依赖项

~10–22MB
~364K SLoC