#生物信息学 #测序 #dna

fxread

基于Rust的简易快速FASTX读取器

19个版本

0.2.12 2024年1月3日
0.2.11 2023年10月24日
0.2.10 2023年7月28日
0.2.5 2022年9月28日
0.1.8 2022年7月21日

#225 in 生物学


用于 5 crates

MIT 协议

57KB
1.5K SLoC

fxread

MIT licensed actions status codecov

基于Rust的简易快速FASTX读取器。

摘要

该crate试图成为一个比bio-rs更快、更轻量级的替代品,并为处理fasta和fastq格式提供标准化的接口。该crate的目标是快速和灵活——平均而言,它的速度是bio-rs的两倍,但比fastq的标准fastx文件快约一半。然而,一旦包含gzip文件,不同crate之间的差异将大大减少(参见基准测试)。

速度的提升可以归因于减少了每个记录分配的总向量数——但与fastq相比的限制是每个记录对其数据的所有权,并且只分配一次。这创建了一些额外的开销,但非常方便,因为可以直接将读取器作为迭代器处理。

用法

该接口的一些优点是,每个FastaReaderFastqReader都实现了FastxReader特质,并作为Record的迭代器。

initialize_reader可以确定从路径名中提取的fastq格式

use fxread::initialize_reader;

let path = "example/sequences.fq";
let reader = initialize_reader(path).unwrap();
assert_eq!(reader.count(), 10);

initialize_reader可以处理文件是否为gzip,而无需更改下游使用

use fxread::initialize_reader;

let path = "example/sequences.fq.gz";
let reader = initialize_reader(path).unwrap();
assert_eq!(reader.count(), 10);

有关用法,请参阅API文档

依赖关系

~445KB