pub struct ExpressionMatrix { /* private fields */ }Expand description
A dense, row-major expression matrix (features × samples).
Implementations§
Source§impl ExpressionMatrix
impl ExpressionMatrix
Sourcepub fn new(
data: Vec<Vec<f64>>,
feature_names: Vec<String>,
sample_names: Vec<String>,
) -> Result<Self>
pub fn new( data: Vec<Vec<f64>>, feature_names: Vec<String>, sample_names: Vec<String>, ) -> Result<Self>
Create a matrix from row-major 2D data.
Each inner Vec is one feature (row) with n_samples values.
Sourcepub fn zeros(
n_features: usize,
n_samples: usize,
feature_names: Vec<String>,
sample_names: Vec<String>,
) -> Result<Self>
pub fn zeros( n_features: usize, n_samples: usize, feature_names: Vec<String>, sample_names: Vec<String>, ) -> Result<Self>
Create a zero-filled matrix.
Sourcepub fn get(&self, feature_idx: usize, sample_idx: usize) -> Option<f64>
pub fn get(&self, feature_idx: usize, sample_idx: usize) -> Option<f64>
Get a single value by feature and sample index.
Sourcepub fn set(
&mut self,
feature_idx: usize,
sample_idx: usize,
value: f64,
) -> Result<()>
pub fn set( &mut self, feature_idx: usize, sample_idx: usize, value: f64, ) -> Result<()>
Set a single value. Returns an error if indices are out of bounds.
Sourcepub fn row(&self, feature_idx: usize) -> Option<&[f64]>
pub fn row(&self, feature_idx: usize) -> Option<&[f64]>
A slice of one feature’s expression across all samples.
Sourcepub fn column(&self, sample_idx: usize) -> Option<Vec<f64>>
pub fn column(&self, sample_idx: usize) -> Option<Vec<f64>>
All feature values for a single sample (column copy, since data is row-major).
Sourcepub fn row_mean(&self, feature_idx: usize) -> Option<f64>
pub fn row_mean(&self, feature_idx: usize) -> Option<f64>
Mean expression of a feature across all samples.
Sourcepub fn column_mean(&self, sample_idx: usize) -> Option<f64>
pub fn column_mean(&self, sample_idx: usize) -> Option<f64>
Mean expression across all features for a sample.
Sourcepub fn transpose(&self) -> ExpressionMatrix
pub fn transpose(&self) -> ExpressionMatrix
Transpose the matrix, swapping features and samples.
Sourcepub fn filter_features(&self, indices: &[usize]) -> Result<ExpressionMatrix>
pub fn filter_features(&self, indices: &[usize]) -> Result<ExpressionMatrix>
Subset the matrix to the given feature (row) indices.
Sourcepub fn filter_samples(&self, indices: &[usize]) -> Result<ExpressionMatrix>
pub fn filter_samples(&self, indices: &[usize]) -> Result<ExpressionMatrix>
Subset the matrix to the given sample (column) indices.
Sourcepub fn as_slice(&self) -> &[f64]
pub fn as_slice(&self) -> &[f64]
The underlying flat data as a slice (row-major, n_features × n_samples).
Sourcepub fn feature_names(&self) -> &[String]
pub fn feature_names(&self) -> &[String]
Feature (gene/protein) names.
Sourcepub fn sample_names(&self) -> &[String]
pub fn sample_names(&self) -> &[String]
Sample names.
Sourcepub fn log_transform(&self, pseudocount: f64) -> ExpressionMatrix
pub fn log_transform(&self, pseudocount: f64) -> ExpressionMatrix
Log2-transform all values: log2(x + pseudocount).
Commonly used to normalize RNA-seq count data.
Trait Implementations§
Source§impl Clone for ExpressionMatrix
impl Clone for ExpressionMatrix
Source§fn clone(&self) -> ExpressionMatrix
fn clone(&self) -> ExpressionMatrix
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more