61 个重大版本发布

0.62.0 2024年8月4日
0.61.0 2024年7月14日
0.60.0 2024年6月17日
0.51.0 2024年3月28日
0.2.0 2021年7月30日

#1220解析器实现

Download history 465/week @ 2024-05-03 277/week @ 2024-05-10 636/week @ 2024-05-17 699/week @ 2024-05-24 562/week @ 2024-05-31 416/week @ 2024-06-07 790/week @ 2024-06-14 474/week @ 2024-06-21 138/week @ 2024-06-28 196/week @ 2024-07-05 733/week @ 2024-07-12 420/week @ 2024-07-19 451/week @ 2024-07-26 601/week @ 2024-08-02 361/week @ 2024-08-09 309/week @ 2024-08-16

1,763 每月下载量
用于 35 软件包(直接使用6个)

MIT 许可证

1MB
23K 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-vcf 处理 VCF 格式的读写。

示例

从文件中读取所有记录

use noodles_vcf as vcf;

let mut reader = vcf::io::reader::Builder::default().build_from_path("sample.vcf")?;
let header = reader.read_header()?;

for result in reader.records() {
    let record = result?;
    // ...
}

依赖项

~2.2–4MB
~70K SLoC