Skip to main content

lib_run/
lib_run.rs

1// Library-usage demo: call rust_ise::run() in-process and print the IS calls.
2//   cargo run --release --example lib_run -- <genome.fna> <db_dir> [work_dir]
3use rust_ise::{run, IseConfig};
4use std::path::{Path, PathBuf};
5
6fn main() {
7    let mut a = std::env::args().skip(1);
8    let seqfile = a.next().expect("usage: lib_run <genome.fna> <db_dir> [work_dir]");
9    let db = a.next().expect("need db_dir");
10    let work = a.next().unwrap_or_else(|| "/tmp/rustise_lib_work".into());
11
12    let cfg = IseConfig {
13        threads: 8,
14        gpu: false,
15        strict: false,
16        db_dir: PathBuf::from(db),
17    };
18    let calls = run(Path::new(&seqfile), Path::new(&work), &cfg).expect("run");
19    for c in &calls {
20        println!(
21            "{}\t{}\t{}..{}\t{}\t{}\t{}",
22            c.seqid, c.family, c.is_begin, c.is_end, c.strand, c.tier, c.fp_flag
23        );
24    }
25    eprintln!("{} IS calls", calls.len());
26}