DAZZLE
Many computational tools have been proposed to infer gene regulatory networks (GRNs) from single-cell RNA sequencing (scRNA-seq) data. One of the major challenges when dealing with single-cell data is the prevalence of dropout events, when low-moderate expression values are not captured. Here we propose to improve GRN inference using Dropout Augmentation (DA), which helps models stay robust against stochastic dropout events by introducing more dropout noise during training. For more information, check out the full paper.
You can also check out our visualization on the inferred network in mice microglia (technical details are described in the paper).
Github: https://github.com/TuftsBCB/dazzle
Get Started
Installation
You can install this package from pypi.
pip install grn-dazzle
Example
Here is an example of using the dazzle
with a provided BEELINE benchmark.
from dazzle import load_beeline, runDAZZLE, get_metrics, extract_edges
from dazzle import DEFAULT_DAZZLE_CONFIGS
# bl_data is a scanpy data object.
# bl_ground_truth include processed ground truth data for fast eval.
bl_data, bl_ground_truth = load_beeline(
data_dir='data',
benchmark_data="hESC",
benchmark_setting="1000_STRING"
)
model, adjs = runDAZZLE(bl_data.X, DEFAULT_DAZZLE_CONFIGS)
get_metrics(model.get_adj(), bl_ground_truth)
(This example could also be found in this colab notebook)
The input of runDAZZLE()
is a numpy.array
with normalized single-cell data (we were using the typical log normalization). When hardware permits, it can easily run GRN inference on 15,000 genes without gene filtration. The only requirement is that the expression values for a gene should not be all zeros.
You also need to supply a python dictionary for configuration and we provide some defaults here to make it easier for everyone. To be more specific, two sets of default settings are provided in the package, namely DEFAULT_DAZZLE_CONFIGS
and DEFAULT_DEEPSEM_CONFIGS
. Note that there are some differences on the network structure between our implementation and the official one. We believe they are equivalent but you can always refer to the original repo for DeepSEM settings.