Dense mode analysis
Let’s analyze data from a dense mode experiment.
Gather files
Gather the required metadata file and raw file(s), we recommend putting them into separate folders for simplicity:
meta 📂
Contains the single metadata .csv file
Try using the example from the analysis overview page
raw 📂
Contains the raw file(s) in 384-well format (and nothing else)
Try using the example from the dense mode protocol
Nothing else should be in these folders at the start of analysis.
Prepare for analysis
The best way to proceed is to use an IDE like RStudio or Positron. We need to:
Load the
combocatpackage (see the analysis overview page for installation)Read in the metadata file
Set the working directory to the
rawfolder
#Load library
library(combocat)
#Read in the metadata file using Import Dataset➝From text (readr) or
meta_dense <- read_csv(".../meta_dense.csv")
#Set working directory using Session➝Set Working Directory or
setwd(".../raw")Quick start
The entire workflow of analysis, plotting, and reporting can be run in this single block:
#Map, normalize
normData <-
cc_map(meta_dense, getwd(), save_raw_plate_heatmaps = TRUE) %>%
cc_norm(.)
#Fit DR models
drData <-
cc_getDR(normData)
#Calculate synergy, QC
synData <-
cc_getSyn(normData, drData) %>%
cc_getQC(., drData)
#Return/save results
cc_report(
synData,
drData,
cd_plots = cc_plotMat(synData, "perc_cell_death", color_midpoint = 50),
syn_plots = cc_plotMat(synData, "bliss_synergy", color_midpoint = 20),
extra_plots = cc_plotExtras(synData, color_midpoint = 20))Below, the process is broken down into more detail:
Core functions
These are the functions that handle mapping, normalization, synergy quantification, and fitting DR curves:
mappedData <-
cc_map(meta_dense, getwd()) #Map
normData <-
cc_norm(mappedData) #Normalize
drData <-
cc_getDR(normData) #Fit dose-response models
synData <-
cc_getSyn(normData, drData) #Calculate synergyQuality Control (QC)
See the Advanced topics section for details of what the QC does and why it is important
synData <- cc_getQC(normData, drData)Generating plots
Now we plot the cell death and synergy matrices, plus the accessory plots (like bar plots of the maximum synergy per combo)
#Plot cell death matrices
cdPlots <-
cc_plotMat(synData,
plotting_variable = "perc_cell_death",
color_midpoint = 50)
#Plot synergy matrices
synPlots <-
cc_plotMat(synData,
plotting_variable = "bliss_synergy",
color_midpoint = 20)
#Accessory plots
extraPlots <-
cc_plotExtras(synData)Generating the reports
Finally, cc_report will save all the plots, and generate detailed reports of cell death, synergy, IC50 values, and much more.
cc_report(synData,
drData,
cdPlots,
synPlots,
extraPlots,
save_summary_files = TRUE,
save_summary_plots = TRUE)For example:
The summary plots will include the following (left-to-right):
Single-agent dose-response curves
Cell death matrix
Synergy matrix
Bar plot of maximum synergy (the %cell death of the drug doses that produce maximum synergy. Note than when %cell death is <0, this is typically due to a normalization artifact).
Synergy scatterplot (observed vs. expected synergy across all doses).