huget 0.1.0

gProfiler for human genomics
use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
#[command(
    name = "huget",
    version = "1.0",
    about = "huget: human genomics conversion
       ************************************************
       Gaurav Sablok
       codeprog@icloud.com
      ************************************************"
)]
pub struct CommandParse {
    /// subcommands for the specific actions
    #[command(subcommand)]
    pub command: Commands,
}

#[derive(Subcommand, Debug)]
pub enum Commands {
    MaprsID {
        // provide the path to the identified snps in personal genomics
        pathfile: String,
        // provide the specific snp for the token
        rsid: String,
        /// threads for the analysis
        thread: String,
    },
    GenerateInfo {
        // provide the rsid for the variant
        rsid: String,
        /// thread for the analysis
        thread: String,
    },
    AnnotateAll {
        // provide yes as a comment and it will annotate all variants
        annotate: String,
        // provide the path to the file
        pathfile: String,
        /// threads for the analysis
        thread: String,
    },
    /// threaded version of genelength for human
    ThreadedLengthHuman {
        /// provide yes as argument
        generate: String,
        /// thread for the analysis
        thread: String,
    },
    /// trhreaded version of genelength for mouse
    ThreadedLengthMouse {
        /// provide yes as argument
        generate: String,
        /// thread for the analysis
        thread: String,
    },
    /// threaded version of genelength for human
    ThreadedHuman {
        /// provide yes as argument
        count: String,
        /// thread for the analysis
        thread: String,
    },
    /// threaded version of genelength for mouse
    ThreadedMouse {
        /// provide yes as argument
        count: String,
        /// thread for the analysis
        thread: String,
    },
    /// Exon search
    Exon {
        /// path to the file
        pathname: String,
        /// searched gene
        searchgene: String,
        /// threads for the analysis
        threads: String,
    },
    /// GOBP fetch
    GOBP {
        /// path to the GOBP file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// GOCC fetch
    GOCC {
        /// path to the GOCC file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// GOMF fetch
    GOMF {
        /// path to the GOMF file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// HP fetch
    HP {
        /// path to the HP file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// HPA fetch
    HPA {
        /// path to the HPA file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// React fetch
    React {
        /// path to the React file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// Pathways fetch
    Pathways {
        /// path to the Pathways file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// miRNA fetch
    MiRNA {
        /// path to the Pathways file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// pdB fetch
    PDB {
        /// path to the Pdb file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// HGNC fetch
    HGNC {
        /// path to the hgnc file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// RefSeqfetch
    RefSeq {
        /// path to the RefSeq file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// Swiss fetch
    Swiss {
        /// path to the Swiss file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// TreMBL fetch
    TrEMBL {
        /// path to the TrEMBL file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
    },
    /// MetaData fetch
    MetaData {
        /// path to the Pathways file
        pathname: String,
        /// searched ensembl id
        ensemblid: String,
        /// Refseq or CCDS
        typestring: String,
    },
    /// Train the Conv1D using the Burn convolution network
    NeuralConv1D {
        /// path to the classification file
        pathname: String,
        /// threads
        thread: String,
    },
}