Skip to contents

Runs the EPIC algorithm on preprocessed proteomic data to estimate cell type proportions in mixed samples using a reference signature matrix.

Usage

deconvolute_epic(data, signature, with_other_cells = TRUE)

Arguments

data

A numeric matrix of the bulk proteome data with gene identifiers as row names and samples as columns.

signature

A numeric matrix of reference signature profiles with gene identifiers as row names and cell types as columns.

with_other_cells

Logical; if TRUE, EPIC will include an "other cells" component in the output to account for cell types not present in the reference. Default is TRUE.

Value

A numeric matrix with samples as rows and cell types as columns, representing the estimated proportion of each cell type in each sample.

Details

The function normalizes both the input data matrix and signature matrix using the handle_scaling function before running the EPIC deconvolution. The EPIC algorithm uses constrained least squares regression to estimate cell type proportions.

References

Racle, J. et al. (2017). Simultaneous enumeration of cancer and immune cell types from bulk tumor gene expression data. eLife, 6:e26476.

See also

handle_scaling for preprocessing inputs before deconvolution, deconvolute for a unified interface to multiple deconvolution methods.

Examples

if (FALSE) { # \dontrun{
# Load example data and signature matrix
data_file <- system.file("extdata", "mixed_samples_matrix.rds", package = "proteoDeconv")
mixed_samples <- readRDS(data_file)

signature_file <- system.file("extdata", "cd8t_mono_signature_matrix.rds", package = "proteoDeconv")
signature_matrix <- readRDS(signature_file)

# Run EPIC deconvolution
result <- deconvolute_epic(
  data = mixed_samples,
  signature = signature_matrix,
  with_other_cells = TRUE
)

# View first few rows of the result
head(result)
} # }