mcpcounter-rust 0.1.0

Pure-Rust port of the MCPcounter cell-population quantification methods: MCP-counter (human) and mMCP-counter (mouse), validated for numeric parity against the original R implementations.
Documentation
//! Shared result type for deconvolution methods.

/// Result of a deconvolution: per-population abundance scores across samples.
///
/// `scores` is stored row-major as `populations x samples`, so the score for
/// population `p` in sample `s` lives at `scores[p * samples.len() + s]`.
#[derive(Clone, Debug)]
pub struct DeconvResult {
    /// Cell population names, in output order (rows of `scores`).
    pub populations: Vec<String>,
    /// Sample names (columns of `scores`); same order as the input matrix.
    pub samples: Vec<String>,
    /// Abundance scores, row-major: `scores[pop * samples.len() + sample]`.
    pub scores: Vec<f64>,
}

impl DeconvResult {
    /// Score for `(population index, sample index)`.
    pub fn score(&self, pop: usize, sample: usize) -> f64 {
        self.scores[pop * self.samples.len() + sample]
    }
}