use na_seq::{Nucleotide, seq_to_str_lower};
use url::Url;
const BLAST_URL: &str = "https://blast.ncbi.nlm.nih.gov/Blast.cgi";
pub fn open_blast(seq: &[Nucleotide], seq_name: &str) {
let text_query = format!(">{seq_name} ({} bp)\n{}", seq.len(), seq_to_str_lower(seq));
let params = vec![
("PAGE_TYPE", "BlastSearch"),
("CMD", "Web"),
("LAYOUT", "OneWindow"),
("PROGRAM", "blastn"),
("MEGABLAST", "on"),
("PAGE", "Nucleotides"),
("DATABASE", "nr"),
("FORMAT_TYPE", "HTML"),
("NCBI_GI", "on"),
("SHOW_OVERVIEW", "on"),
("QUERY", &text_query),
];
let mut url = Url::parse(BLAST_URL).unwrap();
{
let mut query_pairs = url.query_pairs_mut();
for (key, value) in params {
query_pairs.append_pair(key, value);
}
}
if let Err(e) = webbrowser::open(url.as_str()) {
eprintln!("Failed to open the web browser: {:?}", e);
}
}