17 个版本 (破坏性)

0.14.0 2024年8月4日
0.13.0 2024年7月14日
0.12.0 2024年6月17日
0.10.0 2023年12月14日
0.1.1 2021年7月21日

#2327 in 解析器实现

Download history 605/week @ 2024-04-16 501/week @ 2024-04-23 293/week @ 2024-04-30 273/week @ 2024-05-07 481/week @ 2024-05-14 963/week @ 2024-05-21 697/week @ 2024-05-28 220/week @ 2024-06-04 509/week @ 2024-06-11 1211/week @ 2024-06-18 573/week @ 2024-06-25 128/week @ 2024-07-02 549/week @ 2024-07-09 365/week @ 2024-07-16 323/week @ 2024-07-23 688/week @ 2024-07-30

1,954 个月下载量
用于 36 个crate(3 个直接使用)

MIT 许可证

59KB
1K SLoC

noodles-fastq 处理 FASTQ 格式的读写。

FASTQ 是一种没有正式规范的文本格式,只有一些实际规则。它通常由一系列记录组成,每个记录有四行:定义(读取名称和描述)、序列、加号行和质控分数。

读取名称以一个 @(at 符号)字符为前缀,并包含一个可选的描述,由空格( )或水平制表符(\t)分隔。序列是一系列使用 IUPAC 基因符号编码的碱基。加号行实际上是一个分隔符,有时会重复读取名称和可选的描述,通常会被丢弃。质控分数是一系列 Phred 质控分数(通常但并不保证偏移量为 33)并且与序列中的每个碱基平行。也就是说,每个记录可以像以下这样描述

@<name>[< |\t>description]
<sequence>
+[<name>[< |\t>description]]
<quality scores>

示例

从文件中读取所有记录

use noodles_fastq as fastq;

let mut reader = File::open("sample.fq")
    .map(BufReader::new)
    .map(fastq::io::Reader::new)?;

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

依赖项

~0.6–2.2MB
~38K SLoC