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 解析器实现
1,954 个月下载量
用于 36 个crate(3 个直接使用)
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