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.

Features

  • decal is compatible with tidyverse analysis.
  • Includes a suit of simulation functions to generate your own dataset based decal model and evaluate your statistical power.
  • Package has few dependencies, requiring only MASS, fastglm and Matrix.
  • Can evaluate specific clonal alteration and gene effect, instead of modeling all genes and all alterations. This allow us to quickly investigate a large number of interactions skipping unlikely effects.

Installation

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")

Using 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:

  • a table specifying the population and gene to evaluate perturbation (perturbations).
  • a UMI count matrix that each column correspond to a cell and each row a gene or feature (count).
  • a list of cells specifying your clones composition (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.

Quick Start

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.

Acknowledgement

  • The negative binomial dispersion estimation process was extracted and modified from sctransform package and described by Hafemeister & Satija (2019)