Skip to contents

This function enables in-silico gene expression perturbation analysis using a co-expression network.

Usage

ModulePerturbation(
  seurat_obj,
  mod,
  perturb_dir,
  perturbation_name,
  graph,
  group.by = NULL,
  group_name = NULL,
  n_hubs = 5,
  n_iters = 3,
  delta_scale = 0.2,
  corr_sigma = 0.05,
  n_threads = 4,
  use_velocyto = TRUE,
  use_graph_tp = FALSE,
  layer = "counts",
  slot = "counts",
  assay = "RNA",
  return_delta = FALSE,
  wgcna_name = NULL
)

Arguments

seurat_obj

A Seurat object

mod

Name of the co-expression module to perturb

perturb_dir

A numeric determining the type of perturbation to apply. Negative values for knock-down, positive for knock-in, and 0 for knock-out.

perturbation_name

A name for the in-silico perturbation that will be stored in the Seurat obejct

graph

Name of the cell-cell graph in the Graphs(seurat_obj)

group.by

A string containing the name of a column in the Seurat object with cell groups (clusters, cell types, etc).

group_name

A string containing a group present in the provided group.by column. A character vector can be provided to select multiple groups at a time.

n_hubs

The number of hub genes to perturb from the selected co-expression module.

n_iters

The number of times to apply the signal propagation.

corr_sigma

A numeric scaling factor for the correlation matrix.

n_threads

Number of threads for the correlation calculation

slot

Slot to extract data for aggregation. Default = 'counts'

assay

Assay in seurat_obj containing expression information.

return_delta

Logical indicating whether or not to return the "Delta" matrix in the Seurat object.

wgcna_name

The name of the hdWGCNA experiment in the seurat_obj@misc slot

Value

A Seurat object containing the in-silico perturbation results as a new assay.

Details

Following co-expression network analysis with hdWGCNA, ModulePerturbation allows us to perform in-silico gene expression perturbation analysis. This analysis consists of several key steps.

  1. Apply a primary perturbation to the hub genes of a selected module. In this step, we model the observed gene expression of the hub genes using a zero-inflated negative binomial (ZINB), or other distributions. We then simulate new exptession data by sampling this distribution. The simulated expression matrix is then multiplied by the perturb_dir, and the final perturbation expression matrix is computed by adding the observed and simulated expression matrices.

  2. Apply a secondary perturbation to the rest of the co-expression module using a signal propagation algorithm. Given the gene-gene co-expression network from hdWGCNA, we can propagate the perturbation signal throughout the network by computing the dot product between the network adjacency matrix and the perturbation expression matrix. This can be performed over several iterations using n_iters.

  3. Compute the cell-cell transition probabilities.