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
57KB
1.5K SLoC
fxread
基于Rust的简易快速FASTX读取器。
摘要
该crate试图成为一个比bio-rs
更快、更轻量级的替代品,并为处理fasta和fastq格式提供标准化的接口。该crate的目标是快速和灵活——平均而言,它的速度是bio-rs
的两倍,但比fastq
的标准fastx文件快约一半。然而,一旦包含gzip文件,不同crate之间的差异将大大减少(参见基准测试)。
速度的提升可以归因于减少了每个记录分配的总向量数——但与fastq
相比的限制是每个记录对其数据的所有权,并且只分配一次。这创建了一些额外的开销,但非常方便,因为可以直接将读取器作为迭代器处理。
用法
该接口的一些优点是,每个FastaReader
和FastqReader
都实现了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