nichenetr: the R implementation of the NicheNet method. The goal of NicheNet is to study intercellular communication from a computational perspective. NicheNet uses human or mouse gene expression data of interacting cells as input and combines this with a prior model that integrates existing knowledge on ligand-to-target signaling paths. This allows to predict ligand-receptor interactions that might drive gene expression changes in cells of interest.
We describe the NicheNet algorithm in the following paper: NicheNet: modeling intercellular communication by linking ligands to target genes.
Bonnardel, T’Jonck et al. already used NicheNet to predict upstream niche signals driving Kupffer cell differentiation Stellate Cells, Hepatocytes, and Endothelial Cells Imprint the Kupffer Cell Identity on Monocytes Colonizing the Liver Macrophage Niche.
The figure below shows a graphical representation of the NicheNet workflow. Interactions inferred from several complementary ligand-receptor, signaling and gene regulatory data sources were aggregated in respective integrated networks from which ligand-target regulatory potential scores were calculated. This model of prior information on potential ligand-target links can then be used to infer active ligand-target links between interacting cells. NicheNet prioritizes ligands according to their activity (i.e., how well they predict observed changes in gene expression in the receiver cell) and looks for affected targets with high potential to be regulated by these prioritized ligands.
We offer the option to use the prebuilt prior model (such that the network integration steps should not be repeated), or to create and use your own prior model (see reference to detailed vignette below).
NicheNet strongly differs from most current computational approaches to study intercellular communication. Current approaches study intercellular communication from (single-cell) expression data by linking ligands expressed by sender cells to their corresponding receptors expressed by receiver cells. However, functional understanding of a cellular communication process also requires knowing how these inferred ligand-receptor interactions result in changes in the expression of downstream target genes within the receiver cells. To address this need, we developed NicheNet. Contrary to existing approaches, NicheNet looks at gene regulatory effects of ligands because the used prior knowledge goes beyond ligand-receptor interactions and incorporates intracellular signaling and transcriptional regulation as well. As a result, NicheNet allows to predict which ligands influence the expression in another cell, which target genes are affected by each ligand and which signaling mediators may be involved. By generating these novel types of hypotheses, NicheNet can drive an improved functional understanding of a cell-cell communication process of interest. The figure below summarizes the conceptual differences between most current ligand-receptor network inference approaches (top panel) and NicheNet (bottom panel) and visualizes the power of NicheNet in prioritizing ligand-receptor interactions based on gene expression effects.
Specific functionalities of this package include:
- assessing how well ligands expressed by a sender cell can predict changes in gene expression in the receiver cell
- prioritizing ligands based on their effect on gene expression
- inferring putative ligand-target links active in the system under study
- inferring potential signaling paths between ligands and target genes of interest: to generate causal hypotheses and check which data sources support the predictions
- validation of the prior ligand-target model
- construction of user-defined prior ligand-target models
Moreover, we provide instructions on how to make intuitive visualizations of the main predictions (e.g., via circos plots as shown here below).
Installation typically takes a few minutes, depending on the number of dependencies that has already been installed on your pc. You can install nichenetr (and required dependencies) from github with:
# install.packages("devtools")
devtools::install_github("saeyslab/nichenetr")
nichenetr was tested on both Windows and Linux (R version 3.6.3)
To learn using nichenetr, read one of the following vignettes explaining several types of analyses:
Following vignette contains the explanation on how to perform a basic NicheNet analysis. This includes prioritizing ligands and predicting target genes of prioritized ligands. This demo analysis takes only a few minutes to run:
- NicheNet’s ligand activity analysis on a gene set of interest:
predict active ligands and their target
genes:
vignette("ligand_activity_geneset", package="nichenetr")
Following vignettes contain explanation on how to do some follow-up analyses after performing the most basic analysis:
- Inferring ligand-to-target signaling
paths:
vignette("ligand_target_signaling_path", package="nichenetr")
- Assess how well top-ranked ligands can predict a gene set of
interest:
vignette("target_prediction_evaluation_geneset", package="nichenetr")
- Single-cell NicheNet’s ligand activity
analysis:
vignette("ligand_activity_single_cell", package="nichenetr")
- Circos plot visualization to show active ligand-target links
between interacting
cells:
vignette("circos", package="nichenetr")
.
To facilitate the use of NicheNet on single-cell data, we demonstrate the use of NicheNet on a Seurat object in following vignettes. One demonstrates the use of a single wrapper function, the other demonstrates what’s behind the wrapper (recommended).
- Perform NicheNet analysis starting from a Seurat
object:
vignette("seurat_wrapper", package="nichenetr")
- Perform NicheNet analysis starting from a Seurat object:
step-by-step
analysis:
vignette("seurat_steps", package="nichenetr")
People interested in building own models or benchmark own models against NicheNet can read one of the following vignettes:
- Model construction:
vignette("model_construction", package="nichenetr")
- Model evaluation: target gene and ligand activity
prediction:
vignette("model_evaluation", package="nichenetr")
- Parameter optimization via
mlrMBO:
vignette("parameter_optimization", package="nichenetr")
People working with mouse data can see in the following vignette how to convert NicheNet’s ligand-target model (given in human symbols) to mouse symbols:
- Converting NicheNet’s model from human to mouse
symbols:
vignette("symbol_conversion", package="nichenetr")
Browaeys, R., Saelens, W. & Saeys, Y. NicheNet: modeling intercellular communication by linking ligands to target genes. Nat Methods (2019) doi:10.1038/s41592-019-0667-5
Bonnardel et al. Stellate Cells, Hepatocytes, and Endothelial Cells Imprint the Kupffer Cell Identity on Monocytes Colonizing the Liver Macrophage Niche. Immunity (2019) doi:10.1016/j.immuni.2019.08.017