fibertools_rs/cli/
pg_inject_opts.rs

1use crate::cli::{GlobalOpts, PansnParameters};
2use clap::Args;
3use std::fmt::Debug;
4
5#[derive(Args, Debug)]
6pub struct PgInjectOptions {
7    /// Reference FASTA file to create mock BAM from (supports .gz/.bgz compression)
8    #[clap()]
9    pub reference: String,
10    /// Output BAM file
11    #[clap(short, long, default_value = "-")]
12    pub out: String,
13    /// Split contigs into multiple BAM records every N base pairs (0 = no splitting)
14    #[clap(short, long, default_value_t = 50_000)]
15    pub split_size: usize,
16    /// Uncompressed BAM output (default: compressed)
17    #[clap(short, long)]
18    pub uncompressed: bool,
19    /// Optional BED file with annotations to add to mock BAM records
20    #[clap(short, long)]
21    pub bed: Option<String>,
22    /// Extract BED annotations from an annotated BAM file (reverses injection)
23    #[clap(short, long)]
24    pub extract: bool,
25    /// Additionally write the output BAM header to this file
26    #[clap(long)]
27    pub header_out: Option<String>,
28    #[clap(flatten)]
29    pub global: GlobalOpts,
30    #[clap(flatten)]
31    pub pansn: PansnParameters,
32}