#gff #bioinformatics #format #noodles #file-format #file-io #generic

noodles-gff

通用的特征格式 (GFF) 读写器

34 个重大发布

0.35.0 2024年7月14日
0.33.0 2024年5月19日
0.29.0 2024年3月28日
0.26.0 2023年12月14日
0.1.1 2021年7月21日

#109 in 生物学

Download history 547/week @ 2024-04-28 287/week @ 2024-05-05 423/week @ 2024-05-12 812/week @ 2024-05-19 568/week @ 2024-05-26 277/week @ 2024-06-02 797/week @ 2024-06-09 816/week @ 2024-06-16 410/week @ 2024-06-23 312/week @ 2024-06-30 220/week @ 2024-07-07 780/week @ 2024-07-14 382/week @ 2024-07-21 417/week @ 2024-07-28 385/week @ 2024-08-04 377/week @ 2024-08-11

1,604 每月下载量
33 个crate(2个直接) 中使用

MIT 许可证

425KB
10K 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 根据文件格式分成多个crate。为了方便,可以将顶层元crate命名为 noodles 并添加到项目的依赖列表中;格式,列出为 features。例如,为了使用 BAM 格式,添加 noodles crate 并启用 bam 功能。

cargo add noodles --features bam

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

use noodles::bam;

功能标志

单个crate可能具有可选的功能,可以使用功能标志启用。

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

示例

每个crate可能都有自己的示例目录,所有示例都可以作为应用程序运行。在克隆仓库后,运行 cargo run --release --example 以列出可用的示例。使用示例名称作为选项参数并将程序参数附加到命令中,例如

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

lib.rs:

noodles-gff 处理 GFF3 格式的读写。

GFF(通用特征格式)是一种基于文本的格式,用于表示基因组特征。

示例

读取 GFF3 文件中的所有记录

use noodles_gff as gff;

let mut reader = File::open("annotations.gff3")
    .map(BufReader::new)
    .map(gff::io::Reader::new)?;

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

    println!(
        "{}\t{}\t{}",
        record.reference_sequence_name(),
        record.start(),
        record.end(),
    );
}

依赖关系

~2.2–4MB
~69K SLoC