DECAL (Differential Expression analysis of Clonal Alterations Local effects) provide you tools to conduct differential expression analysis of single-cell perturbations to potential interacting genes. Similar to other expression analysis tools, it models gene expression using a Negative Binomial (or Gamma-Poisson) regression, modeling each gene UMI count by the cell total count and the cell alteration status.
decal
is compatible with tidyverse analysis.decal
model and evaluate your statistical power.MASS
, fastglm
and Matrix
.To install decal
package current version, open your R terminal and type:
## Install remotes if not available with
## install.install.packages("remotes")
remotes::install_github("mauranolab/decal")
decal
The package main function (decal
) runs the whole statistical analysis by fitting a Negative Binomial (or Gamma-Poisson) regression to each gene and alteration pair specified and evaluate the perturbation statistical significance for a single-cell perturbation experiment. You can run decal
as follow:
decal(perturbations, count, clone)
The three parameters required are the following:
perturbations
).count
).clone
). This is represented by a R list composed by character (or integer) vectors named after the clone ID and indicating the cells belonging to this clone.decal
returns a deep copy of the perturbations
table with the following additional columns:
n0
and n1
: number of non-perturbed and perturbed cells, respectively.x0
and x1
: average UMI count among perturbed and non-perturbed cells, respectively.mu
: average UMI count among all cells.xb
: expected average UMI count of perturbed cells.theta
: estimated negative binomial dispersion parameter.z
: estimated perturbation z-score.lfc
: log2 fold-change of perturbed cells gene expression.pvalue
and p_adjusted
: perturbation t-test significance values.Below we include a example of decal
analysis on a simulated dataset included with our package.
library(decal)
data("sim_decal")
perturbations <- sim_decal$perturbations
count <- sim_decal$count
clone <- sim_decal$clone
decal(perturbations, count, clone)
Further details exploring this example are included in our quick-start vignette.
sctransform
package and described by Hafemeister & Satija (2019)