Skip to main content

fibertools_rs/cli/
predict_opts.rs

1use super::nucleosome_opts::NucleosomeParameters;
2use crate::utils::input_bam::InputBam;
3use clap::Args;
4use std::fmt::Debug;
5
6#[derive(Args, Debug)]
7pub struct PredictM6AOptions {
8    #[clap(flatten)]
9    pub input: InputBam,
10    /// Output bam file with m6A calls in new/extended MM and ML bam tags
11    #[clap(default_value = "-")]
12    pub out: String,
13    #[clap(flatten)]
14    pub nuc: NucleosomeParameters,
15    /// Keep hifi kinetics data
16    #[clap(short, long)]
17    pub keep: bool,
18    /// Force a different minimum ML score
19    #[clap(long, help_heading = "Developer-Options")]
20    pub force_min_ml_score: Option<u8>,
21    /// Keep all m6A calls regardless of how low the ML value is
22    #[clap(long, help_heading = "Developer-Options")]
23    pub all_calls: bool,
24    /// Number of reads to include in batch prediction
25    ///
26    /// Increasing improves GPU performance at the cost of memory.
27    #[clap(short, long, default_value = "1", help_heading = "Developer-Options")]
28    pub batch_size: usize,
29    /// Skip the actual prediction step to allow for testing the speed of other parts of the code
30    #[clap(long, help_heading = "Developer-Options", hide = true)]
31    pub fake: bool,
32}
33
34impl std::default::Default for PredictM6AOptions {
35    fn default() -> Self {
36        Self {
37            input: InputBam::default(),
38            out: "-".to_string(),
39            nuc: NucleosomeParameters::default(),
40            keep: false,
41            force_min_ml_score: None,
42            all_calls: false,
43            batch_size: 1,
44            fake: false,
45        }
46    }
47}