42 次重大发布

0.43.0 2024年7月14日
0.41.0 2024年5月16日
0.38.0 2024年3月28日
0.35.0 2023年12月14日
0.3.0 2021年7月30日

#2793解析器实现

Download history 528/week @ 2024-05-03 326/week @ 2024-05-10 730/week @ 2024-05-17 720/week @ 2024-05-24 324/week @ 2024-05-31 336/week @ 2024-06-07 806/week @ 2024-06-14 520/week @ 2024-06-21 171/week @ 2024-06-28 231/week @ 2024-07-05 785/week @ 2024-07-12 474/week @ 2024-07-19 472/week @ 2024-07-26 503/week @ 2024-08-02 420/week @ 2024-08-09 424/week @ 2024-08-16

1,872 每月下载量
用于 36 颗粒(3 个直接使用)

MIT 许可证

370KB
8K SLoC

noodles

crates.io Docs.rs CI status

noodles 尝试提供符合规范(当适用时)的库的实现,用于处理各种生物信息学文件格式。它目前支持 BAM 1.6、BCF 2.2、BED、BGZF、CRAM 3.0/3.1、CSI、FASTA、FASTQ、GFF3、GTF 2.2、htsget 1.3、refget 2.0、SAM 1.6、tabix 和 VCF 4.3/4.4。

用法

noodles 发布在 crates.io。早期版本可用于项目,但请注意,API 仍被视为实验性的。

noodles 按文件格式拆分为多个颗粒。为了方便,可以将名为 noodles 的顶级元颗粒添加到项目的依赖项列表中;格式,列在 功能 中。例如,要处理 BAM 格式,请添加 noodles 颗粒并启用 bam 功能。

cargo add noodles --features bam

然后可以导入已启用的每个功能的重新导出名称,例如

use noodles::bam;

功能标志

个别颗粒可能具有可选功能,可以使用功能标志启用。

  • async:启用使用 Tokio 的异步 I/O。(BAM、BCF、BGZF、CRAM、CSI、FASTA、FASTQ、GFF、SAM、tabix 和 VCF)
  • libdeflate:使用 libdeflate 编码和解码 DEFLATE 流。(BGZF 和 CRAM)

示例

每个颗粒可能都有自己的示例目录,所有示例都可以作为应用程序运行。克隆存储库后,运行 cargo run --release --example 以获取可用示例列表。使用示例名称作为选项参数,并将程序参数追加到命令中,例如

cargo run --release --example bam_write > sample.bam
cargo run --release --example bam_read_header sample.bam

lib.rs:

noodles-tabix 处理 tabix 格式 的读写。

Tabix(TBI)是一种索引文件,通常用于允许对随附的

  1. bgzip压缩的
  2. 制表符分隔的
  3. 按参考序列名称分组的
  4. 按起始位置排序的

文件进行随机访问。

示例

读取tabix文件

use noodles_tabix as tabix;
let index = tabix::read("sample.vcf.gz.tbi")?;

依赖关系

~2.2–4MB
~69K SLoC