
consICA implements a data-driven deconvolution method – consensus independent component analysis (ICA) to decompose heterogeneous omics data and extract features suitable for patient diagnostics and prognostics. The method separates biologically relevant transcriptional signals from technical effects and provides information about cellular composition and biological processes [1]. The implementation of parallel computing in the package ensures the efficient analysis on the modern multicore systems.
Package is available from bioconductor 3.15 (R version >= 4.1.0)
if (!requireNamespace("BiocManager", quietly=TRUE))
install.packages("BiocManager")
BiocManager::install("consICA")
Package is also available on GitHub
library(devtools)
install_github("biomod-lih/consICA")
As for fast data calculation we use the RcppGSl package in dependencies, for Linux it requires a separately installed libgsl0-dev library. Please install it before the consICA installation:
sudo apt-get update -y
sudo apt-get install -y libgsl0-dev
library(consICA)
library(SummarizedExperiment)
data("samples_data") # example SKCM TCGA cohort (SummarizedExperiment)
# Consensus ICA: decompose expression into ICs (S) and weights (M)
cica <- consICA(samples_data, ncomp = 20, ntry = 10, ncores = 4)
# Top genes contributing to each component
features <- getFeatures(cica, alpha = 0.05)
head(features$ic.1$pos)
# Functional annotation: enriched GO terms for each component
cica <- getGO(cica, db = "BP", ncores = 4)
# PDF report: components, factors, survival and GO
Var <- as.data.frame(colData(samples_data))
Sur <- Var[, c("time", "event")]
factors <- c("gender", "age_at_initial_pathologic_diagnosis",
"Cancer.Type.Detailed", "UV.signature", "BRAFV600.",
"Tumor.tissue.site")
saveReport(cica, Var = Var[, factors], surv = Sur, file = "Report_cica20.pdf")
See the vignette for the full walkthrough:
browseVignettes("consICA")