fibertools_rs/cli/
fire_opts.rs1use crate::utils::input_bam::InputBam;
2use clap::Args;
3use std::fmt::Debug;
4
5#[derive(Args, Debug)]
6pub struct FireOptions {
7 #[clap(flatten)]
8 pub input: InputBam,
9 #[clap(default_value = "-")]
11 pub out: String,
12 #[clap(long, env)]
15 pub ont: bool,
16 #[clap(hide = true, long, env)]
18 pub human: bool,
19 #[clap(hide = true, long, env)]
21 pub yeast: bool,
22 #[clap(short, long)]
24 pub extract: bool,
25 #[clap(long)]
27 pub all: bool,
28 #[clap(short, long)]
30 pub feats_to_text: bool,
31 #[clap(short, long)]
33 pub skip_no_m6a: bool,
34 #[clap(long, default_value = "0", env = "MIN_MSP")]
36 pub min_msp: usize,
37 #[clap(long, default_value = "0", env)]
39 pub min_ave_msp_size: i64,
40 #[clap(short, long, default_value = "40", env,
42 default_value_ifs([
43 ("human", "true", "40"),
44 ("yeast", "true", "100")
45 ])
46 )]
47 pub width_bin: i64,
48 #[clap(short, long, default_value = "9", env)]
50 pub bin_num: i64,
51 #[clap(long, default_value = "100", env)]
54 pub best_window_size: i64,
55 #[clap(short, long, hide = true)]
57 pub use_5mc: bool,
58 #[clap(long, default_value = "85", env)]
60 pub min_msp_length_for_positive_fire_call: i64,
61 #[clap(long, env = "FIRE_MODEL")]
64 pub model: Option<String>,
65 #[clap(long, env)]
67 pub fdr_table: Option<String>,
68}
69
70impl Default for FireOptions {
71 fn default() -> Self {
72 Self {
73 input: Default::default(),
74 out: "-".to_string(),
75 ont: false,
76 human: false,
77 yeast: false,
78 extract: false,
79 all: false,
80 feats_to_text: false,
81 skip_no_m6a: false,
82 min_msp: 0,
83 min_ave_msp_size: 0,
84 width_bin: 40,
85 bin_num: 9,
86 best_window_size: 100,
87 use_5mc: false,
88 min_msp_length_for_positive_fire_call: 85,
89 model: None,
90 fdr_table: None,
91 }
92 }
93}