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 生物学
3,663 每月下载量
用于 45 crate
800KB
19K SLoC
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-sys
和lzma-sys
以支持完整的CRAM。如果您不需要CRAM支持,或者您需要使用这些压缩方法支持CRAM文件,您可以通过禁用这些功能来减少您的依赖项数量
[dependencies]
rust-htslib = { version = "*", default-features = false }
rust-htslib
可选支持serde
,允许通过任何serde支持的格式进行(反)序列化bam::Record
。
使用curl
功能可以提供对文件的HTTP访问。
通过s3
和gcs
功能提供了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