crast 1.0.4

CRAST, Context RNA Alignment Search Tool
Documentation
extern crate crast;
extern crate time;
extern crate num;

#[cfg(test)]
mod tsts {
  use time::precise_time_ns;
  use num::pow::pow;
  use std::process::{Command, Output};

  #[test]
  fn tst_crast() {
    let cmnd = "target/release/crast-db";
    let args = vec!["-i", "asts/m_mscls_ncrnas.fa", "-o", "asts/m_mscls_ncrna_db", "--nr"];
    let bgn = precise_time_ns();
    rn_cmnd(cmnd, &args, "Failed to run CRAST");
    let elps_tm = precise_time_ns() - bgn;
    println!("Elapsed time for database construction = {}[s]", elps_tm as f32 * pow(0.1, 9));
    let cmnd = "target/release/crast";
    let args = vec!["-i", "asts/h_spns_m_mscls_hmlg_lncrnas.fa", "-o", "asts/h_spns_m_mscls_hmlg_lncrnas_2_m_mscls_ncrnas.maf", "--db", "asts/m_mscls_ncrna_db"];
    let bgn = precise_time_ns();
    rn_cmnd(cmnd, &args, "Failed to run CRAST");
    let elps_tm = precise_time_ns() - bgn;
    println!("Elapsed time for alignment search of human homologous lncRNAs to house mouse ncRNAs = {}[s]", elps_tm as f32 * pow(0.1, 9));
    let args = vec!["-i", "asts/shfl_h_spns_m_mscls_hmlg_lncrnas.fa", "-o", "asts/shfl_h_spns_m_mscls_hmlg_lncrnas_2_m_mscls_ncrnas.maf", "--db", "asts/m_mscls_ncrna_db"];
    let bgn = precise_time_ns();
    rn_cmnd(cmnd, &args, "Failed to run CRAST");
    let elps_tm = precise_time_ns() - bgn;
    println!("Elapsed time for alignment search of di-nucleotide shuffled human homologous lncRNAs to house mouse ncRNAs = {}[s]", elps_tm as f32 * pow(0.1, 9));
  }

  fn rn_cmnd(cmnd: &str, args: &[&str], expct: &str) -> Output {
    Command::new(cmnd).args(args).output().expect(expct)
  }
}