fastseq 0.1.4

fastseq is a Rust crate for parsing FASTA/Q sequences
Documentation

fastseq

fastseq is a high-performance Rust crate for parsing FASTA/Q sequences, for learning purposes.

It seemlessly parses FASTA/Q records from either plain files, (gzip, xz, bzip2, zstd, and lz4) compressed files or STDIN.

Examples

use std::error::Error;

use fastseq::Reader;

fn main() -> Result<(), Box<dyn Error>> {
    // Read FASTA/Q records from stdin and write the number of records, total bases

    let in_file = "-";

    let mut reader = Reader::new(in_file)
        .map_err(|e| format!("failed to parse input file: {}: {}", in_file, e))?;

    let mut total_records: u64 = 0;
    let mut total_bases: u64 = 0;

    while let Some(res) = reader.next() {
        let seq = res?;

        total_records += 1;
        total_bases += seq.seq.len() as u64;
    }

    print!("{}\t{}\n", total_records, total_bases);

    Ok(())
}

Benchmarking

see fastx-tools

Reference

License

MIT License