Downsample an expression matrix by randomly selecting a specified number of samples from each group.
downsample_expression(expression_matrix, groups, downsample = 10)A dense expression matrix (genes x downsampled samples)
Expression matrix with genes as rows and samples as columns
Factor vector indicating which group each sample belongs to
Integer, number of samples to keep per group (default: 10)
This function randomly samples up to downsample samples from each group level.
The returned expression matrix is converted to dense format and maintains column names
from the original matrix. Useful for creating balanced subsets for visualization or
when memory is limited.