cyto_cli/map/
gex.rs

1use std::path::PathBuf;
2
3use anyhow::Result;
4use clap::Parser;
5
6use crate::ArgsOutput;
7
8use super::{Geometry, MapOptions, MultiPairedInput, ProbeOptions, RuntimeOptions};
9
10#[derive(Parser, Debug)]
11pub struct ArgsGex {
12    #[clap(flatten)]
13    pub input: MultiPairedInput,
14
15    #[clap(flatten)]
16    pub geometry: Geometry,
17
18    #[clap(flatten)]
19    pub gex: GexOptions,
20
21    #[clap(flatten)]
22    pub map: MapOptions,
23
24    #[clap(flatten)]
25    pub probe: ProbeOptions,
26
27    #[clap(flatten)]
28    pub runtime: RuntimeOptions,
29
30    #[clap(flatten)]
31    pub output: ArgsOutput,
32}
33impl ArgsGex {
34    pub fn validate_outdir(&self) -> Result<()> {
35        self.output.validate_outdir()
36    }
37    pub fn log_path(&self) -> PathBuf {
38        self.output.log_path()
39    }
40}
41
42#[derive(Parser, Debug)]
43#[clap(next_help_heading = "Flex GEX Options")]
44pub struct GexOptions {
45    //// Path to Flex GEX library file
46    #[clap(short = 'c', long = "gex")]
47    pub gex_filepath: String,
48
49    /// Spacer sequence length
50    #[clap(short = 's', long, default_value = "18")]
51    pub spacer: usize,
52}