pub struct Normalize;Expand description
Normalization methods
Each method transforms expression values in a specific way, returning a new
ExpressionMatrix. Methods are pure functions: they do not modify the input
matrix.
Implementations§
Source§impl Normalize
impl Normalize
Sourcepub fn log2(matrix: &ExpressionMatrix) -> Result<ExpressionMatrix>
pub fn log2(matrix: &ExpressionMatrix) -> Result<ExpressionMatrix>
Log2 transformation: log2(x+1)
Applies log2(x + 1) to all non-null expression values.
This transformation compresses the dynamic range and handles
zero values gracefully (log2(0+1) = 0).
§Errors
Returns an error if Arrow data construction fails.
Sourcepub fn quantile(matrix: &ExpressionMatrix) -> Result<ExpressionMatrix>
pub fn quantile(matrix: &ExpressionMatrix) -> Result<ExpressionMatrix>
Quantile normalization across samples
Normalizes the distribution of expression values across all samples to have the same distribution (the average quantiles across samples). This ensures that differences in expression are due to biology, not technical variation.
§Algorithm
- Sort values within each sample (column) and compute mean ranks
- Replace each value with the mean of values at that rank across samples
- Unsort to restore original gene order
§Errors
Returns an error if Arrow data construction fails.
Sourcepub fn z_score_per_gene(matrix: &ExpressionMatrix) -> Result<ExpressionMatrix>
pub fn z_score_per_gene(matrix: &ExpressionMatrix) -> Result<ExpressionMatrix>
Z-score normalization per gene (row-wise)
For each gene (row), computes: (x - mean) / std
where mean and std are calculated across all samples for that gene.
Genes with zero variance (std = 0) are left unchanged.
§Errors
Returns an error if Arrow data construction fails.