INNER CODE UNIT · Rust

read_fastq_impl

abdenlab/oxbow · r-oxbow/src/rust/src/lib.rs:35

fn read_fastq_impl(path: &str, fields: Option<Vec<String>>) -> Vec<u8> {
    let compressed = path.ends_with(".gz");
    let reader = std::fs::File::open(path)
        .map(|f| BufReader::with_capacity(BUFFER_SIZE_BYTES, f))
        .unwrap();
    let scanner = FastqScanner::new(resolve_r_fields(fields)).unwrap();

    let ipc = if compressed {
        let gz_reader = std::io::BufReader::new(MultiGzDecoder::new(reader));
        let fmt_reader = noodles::fastq::io::Reader::new(gz_reader);
        let batches = scanner.scan(fmt_reader, None, None, None).unwrap();
        batches_to_ipc(batches)
    } else {
        let fmt_reader = noodles::fastq::io::Reader::new(reader);
        let batches = scanner.scan(fmt_reader, None, None, None).unwrap();
        batches_to_ipc(batches)
    };

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…