fibertools_rs/cli/
pileup_opts.rs

1use crate::utils::input_bam::InputBam;
2use clap::Args;
3use std::fmt::Debug;
4
5#[derive(Args, Debug)]
6pub struct PileupOptions {
7    #[clap(flatten)]
8    pub input: InputBam,
9    /// Region string to make a pileup of. e.g. chr1:1-1000 or chr1:1-1,000
10    /// If not provided will make a pileup of the whole genome
11    #[clap(default_value = None)]
12    pub rgn: Option<String>,
13    /// Output file
14    #[clap(short, long, default_value = "-")]
15    pub out: String,
16    /// include m6A calls
17    #[clap(short, long)]
18    pub m6a: bool,
19    /// include 5mC calls
20    #[clap(short, long)]
21    pub cpg: bool,
22    /// For each column add two new columns with the hap1 and hap2 specific data.
23    #[clap(long)]
24    pub haps: bool,
25    /// Keep zero coverage regions
26    #[clap(short, long)]
27    pub keep_zeros: bool,
28    /// Write output one base at a time even if the values do not change
29    #[clap(short, long)]
30    pub per_base: bool,
31    /// Calculate coverage starting from the first MSP/NUC to the last MSP/NUC
32    /// position instead of the complete span of the read alignment.
33    #[clap(long)]
34    pub fiber_coverage: bool,
35    /// Shuffle the fiber-seq data according to a bed file of
36    /// the shuffled positions of the fiber-seq data
37    ///
38    /// The bed file should have the following format:
39    /// #chrom shuffled_start shuffled_end read_name original_start
40    #[clap(long)]
41    pub shuffle: Option<String>,
42    /// Output a rolling max of the score column over X bases
43    #[clap(long)]
44    pub rolling_max: Option<usize>,
45    /// No MSP columns
46    #[clap(long)]
47    pub no_msp: bool,
48    /// No NUC columns
49    #[clap(long)]
50    pub no_nuc: bool,
51}