DREEP (Drug Response Estimation from single-cell Expression Profiles) published BMC medicine and available at Pellecchia, Viscido et al. 2023.
DREEP is a bioinformatics tool that leverages results from large-scale cell-line viability screens and enrichment analysis to predict drug vulnerability from the transcriptional state of a cell. It only requires a pre-defined collection of Genomic Profiles of Drug Sensitivity (GPDS) signatures that are ranked lists of genes reflecting their importance in predicting the effect of a small molecule.
DREEP require the installation of gficf v2 package first. Follow the instruction below to install it on Ubuntu. For other OS althoug not officially supported you can give a look here
You need gsl dev library to successfully install RcppGSL library. On Ubuntu/Debian systems this can be accomplished by running the following command sudo apt-get install libgsl-dev libcurl4-openssl-dev libssl-dev libxml2-dev
from the terminal.
Then exec in R terminal the following commands to install gficf
# Install required bioconductor packages
if (!requireNamespace("BiocManager", quietly = TRUE)) {install.packages("BiocManager")}
BiocManager::install(setdiff(c("sva","edgeR", "fgsea"),rownames(installed.packages())),update = F)
# We rquire RcppML package from github (not the cran version)
if("RcppML" %in% rownames(installed.packages())) {remove.packages("RcppML")}
devtools::install_github("zdebruine/RcppML")
if(!require(devtools)){ install.packages("devtools")}
devtools::install_github("gambalab/gficf")
From the R terminal exec the following commands
if(!require(devtools)){ install.packages("devtools")}
devtools::install_github("gambalab/DREEP")
library(gficf)
library(DREEP)
library(ggplot2)
data(small_BC_atlas)
data <- gficf(M=small_BC_atlas,verbose = T)
# Run DREEP on all the cell of the atlas using only CTRP2 and GDSC drug datasets
dreep.data <- DREEP::runDREEP(M = data$gficf,
n.markers = 500,
gsea = "simple",
gpds.signatures = c("CTRP2","GDSC"))
# DREEP predictions are into dreep.data$df data frame
# Each row is a drug and the column sens contains
# the percentage of cells predicted sensitive to the drug.
# Drugs in this data frame are sorted according to the median ES of the drug on the cell population.
# This is the best measure to determine if your cells are sensible or not to a drug.
# So please use these values instead of the percentage of cells.
head(dreep.data$df)
# Run cell reduction using drug response profile estimated from DREEP
dreep.data <- DREEP::runDrugReduction(dreep.data,
verbose = T,
cellDistAbsolute = F,
reduction = "umap",
storeCellDist = T)
# UMAP coordinate are stored into dreep.data$embedding data frame
head(dreep.data$embedding)
# Let's add cell line names and plot the recontructed cell embedding space
dreep.data$embedding$ccl <- sapply(strsplit(x = rownames(dreep.data$es.mtx),split = "_",fixed = T),function(x) x[1])
ggplot(data = dreep.data$embedding,aes(x=X,y=Y,color=ccl)) + geom_point(size=.5) + theme_bw() + xlab("UMAP 1") + ylab("UMAP 2")
# We can cluster cells using the respone profiles estimated by DREEP
dreep.data <- DREEP::clusterCells(dreep.data,verbose = T,resolution = 0.01)
ggplot(data = dreep.data$embedding,aes(x=X,y=Y,color=cluster)) + geom_point(size=.5) + theme_bw() + xlab("UMAP 1") + ylab("UMAP 2")