pub fn parse_path<P, F, O>(path: Option<P>, func: F) -> Result<O>
Expand description
Create a parser and guess the compression.
At the moment this supports gzip, lz4 and plain fastq files. If the path is None, read from stdin.
ยงExamples
use fastq::{parse_path, Record};
use std::env::args;
let filename = args().nth(1);
// Accept "-" as stdin
let path = match filename.as_ref().map(String::as_ref) {
None | Some("-") => { None },
Some(name) => Some(name)
};
parse_path(path, |mut parser| {
let stopped = parser.each(|record| {
// stop parsing if we find a sequnce containing 'N'
record.validate_dnan()
}).expect("Invalid fastq file");
if stopped {
println!("The file contains only sequences with ACTGN");
} else {
println!("The file contains invalid sequences");
}
}).expect("Invalid compression");