ggetrs_seq/
launch.rs

1use std::fs::File;
2use std::io::Write;
3
4use anyhow::Result;
5
6use super::sequence;
7use ggetrs_uniprot::functions::query;
8
9pub fn launch_seq(
10    search_terms: &Vec<String>,
11    translate: bool,
12    species: &Option<String>,
13    output: &Option<String>,
14) -> Result<()> {
15    if translate {
16        let results = query(search_terms, false, &None)?;
17        match output {
18            Some(path) => {
19                if let Ok(mut writer) = File::create(path) {
20                    write!(writer, "{}", results.to_fasta()).expect("Unable to write to file");
21                } else {
22                    print!("{}", results.to_fasta());
23                }
24            }
25            None => {
26                print!("{}", results.to_fasta());
27            }
28        }
29    } else {
30        let results = sequence(search_terms, species)?;
31        match output {
32            Some(path) => {
33                if let Ok(mut writer) = File::create(path) {
34                    write!(writer, "{}", results.to_fasta()).expect("Unable to write to file");
35                } else {
36                    print!("{}", results.to_fasta());
37                }
38            }
39            None => {
40                print!("{}", results.to_fasta());
41            }
42        }
43    }
44    Ok(())
45}