kira-spliceqc 0.2.0

Deterministic, explainable splicing QC for single-cell expression data.
Documentation
use std::path::PathBuf;

#[derive(Debug, Clone, PartialEq, Eq)]
pub enum InputKind {
    TenX(TenXInput),
    H5AD(H5ADInput),
    OrganelleCache(OrganelleCacheInput),
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct InputDescriptor {
    pub kind: InputKind,
    pub n_genes: usize,
    pub n_cells: usize,
    pub has_multiple_samples: bool,
    pub has_metadata: bool,
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TenXInput {
    pub root: PathBuf,
    pub matrix_path: PathBuf,
    pub features_path: PathBuf,
    pub barcodes_path: PathBuf,
    pub compressed: bool,
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct H5ADInput {
    pub path: PathBuf,
    pub x_is_csr: bool,
    pub gene_symbol_source: GeneSymbolSource,
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct OrganelleCacheInput {
    pub root: PathBuf,
    pub cache_path: PathBuf,
    pub prefix: Option<String>,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum GeneSymbolSource {
    VarGeneSymbols,
    VarNamesFallback,
}

pub mod detect;
pub mod error;
pub mod h5ad;
pub mod shared_cache;
pub mod tenx;