message: feat: warn if --genes requested not found in --genemap
diff: @@ -3,6 +3,7 @@ use crate::io::gff3::read_gff3_file;
  use crate::make_error;
  use eyre::Report;
  use itertools::Itertools;
  +use log::{debug, warn};
  use std::collections::BTreeMap;
  use std::path::PathBuf;
  @@ -22,10 +23,21 @@ pub fn read_gene_map(input_gene_map: &Option<PathBuf>, genes: &Option<Vec<String
  match (input_gene_map, genes) {
  // Both gene map and list of genes are provided. Read gene map and retain only requested genes.
  (Some(input_gene_map), Some(genes)) => {
  - let gene_map = read_gff3_file(&input_gene_map)?
  + let gene_map: GeneMap = read_gff3_file(&input_gene_map)?
  .into_iter()
  .filter(|(gene_name, ..)| genes.contains(gene_name))
  .collect();
  + // Make warning if genes requested but not found in genemap
  + let requested_genes_not_in_genemap = genes
  + .iter()
  + .filter(|&gene_name| !gene_map.contains_key(gene_name))
  + .collect::<Vec<_>>();
  + if requested_genes_not_in_genemap.len() > 0 {
  + warn!(
  + "The following genes were requested through `--genes` but not found in the gene map: {:?}",
  + requested_genes_not_in_genemap
  + );
  + }
  Ok(gene_map)
  }
  @@ -33,7 +45,9 @@ pub fn read_gene_map(input_gene_map: &Option<PathBuf>, genes: &Option<Vec<String
  (Some(input_gene_map), None) => read_gff3_file(&input_gene_map),
  // Gene list is provided, but no gene map. This is illegal.
  - (None, Some(_)) => make_error!("List of genes via '--genes' can only be specified when a gene map (genome annotation) is provided"),
  + (None, Some(_)) => {
  + make_error!("List of genes via '--genes' can only be specified when a gene map (genome annotation) is provided")
  + }
  // Nothing is provided. Create an empty gene map.
  // This disables codon-aware alignment, translation, AA mutations, frame shifts, and everything else that relies
  