gb-io 0.9.0

A library for parsing, writing and manipulating Genbank sequence files
Documentation
extern crate gb_io;

use std::fs::File;
use std::io::{stdout, BufWriter, Write};
use std::str;

use gb_io::reader::SeqReader;

fn main() {
    let stdout = stdout();
    let mut out = BufWriter::new(stdout.lock());
    for r in SeqReader::new(File::open("tests/mg1655.gb").unwrap()) {
        let r = r.unwrap();
        let record_name = r.name.clone().unwrap();
        for f in &r.features {
            if f.kind == "CDS" {
                let name = format!(
                    "{}_{}_{}",
                    record_name,
                    f.qualifier_values("locus_tag")
                        .next()
                        .unwrap(),
                    f.qualifier_values("gene").next().unwrap()
                );
                // FASTA format
                writeln!(&mut out, ">{}", name).unwrap();
                let extracted = r.extract_location(&f.location).unwrap();
                for line in extracted.chunks(60) {
                    writeln!(&mut out, "{}", str::from_utf8(line).unwrap()).unwrap();
                }
            }
        }
    }
}