NOVA provides a comprehensive suite of visualization functions to explore and present cell-cell communication analysis results. This gallery demonstrates the various plotting capabilities with practical examples.
set.seed(123)
# Simulate expression matrix
n_genes <- 200
n_cells <- 500
gene_names <- paste0("Gene", 1:n_genes)
cell_names <- paste0("Cell", 1:n_cells)
expr <- matrix(0, nrow = n_genes, ncol = n_cells,
dimnames = list(gene_names, cell_names))
expressed <- sample(length(expr), size = length(expr) * 0.25)
expr[expressed] <- abs(rnorm(length(expressed), mean = 3, sd = 1.5))
expr <- Matrix::Matrix(expr, sparse = TRUE)
# Create clusters
clusters <- sample(c("T_cells", "B_cells", "Macrophages", "Fibroblasts", "Dendritic"),
n_cells, replace = TRUE, prob = c(0.25, 0.20, 0.25, 0.15, 0.15))
names(clusters) <- cell_names
annotation <- data.frame(cell = cell_names, cluster = clusters)
# Map genes to LR database
lr_db <- GetLRDatabase("lrc2p")
ligands <- unique(lr_db$ligand)[1:30]
receptors <- unique(lr_db$receptor)[1:30]
rownames(expr)[1:30] <- ligands
rownames(expr)[31:60] <- receptorsThe heatmap displays the overall communication strength between cell types.
Network graphs provide an intuitive view of communication patterns.
Chord diagrams elegantly display the flow of communication between cell types.
Examine specific LR pairs between cluster pairs.
NOVA provides a custom color palette optimized for cell type visualization.
# Display color palette
colors <- nova_palette(20)
barplot(rep(1, 20), col = colors, border = NA, axes = FALSE,
main = "NOVA Color Palette")NOVA color palette
| Function | Description | Output Type |
|---|---|---|
PlotHeatmap() |
Communication strength heatmap | ComplexHeatmap |
PlotNetwork() |
Network graph | ggplot2 |
PlotChord() |
Chord diagram | Base R |
PlotLRPairs() |
Bipartite LR visualization | ggplot2 |
PlotDiffHeatmap() |
Differential communication heatmap | ComplexHeatmap |
PlotVolcano() |
Volcano plot | ggplot2 |
sessionInfo()
#> R version 4.6.0 (2026-04-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: Etc/UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] ggplot2_4.0.3 data.table_1.18.4 NOVA_1.0.0 rmarkdown_2.31
#>
#> loaded via a namespace (and not attached):
#> [1] Matrix_1.7-5 gtable_0.3.6 jsonlite_2.0.0 dplyr_1.2.1
#> [5] compiler_4.6.0 tidyselect_1.2.1 Rcpp_1.1.1-1.1 parallel_4.6.0
#> [9] jquerylib_0.1.4 scales_1.4.0 yaml_2.3.12 fastmap_1.2.0
#> [13] lattice_0.22-9 R6_2.6.1 generics_0.1.4 knitr_1.51
#> [17] tibble_3.3.1 maketools_1.3.2 bslib_0.11.0 pillar_1.11.1
#> [21] RColorBrewer_1.1-3 rlang_1.2.0 cachem_1.1.0 xfun_0.57
#> [25] sass_0.4.10 sys_3.4.3 S7_0.2.2 otel_0.2.0
#> [29] cli_3.6.6 withr_3.0.2 magrittr_2.0.5 digest_0.6.39
#> [33] grid_4.6.0 lifecycle_1.0.5 vctrs_0.7.3 evaluate_1.0.5
#> [37] glue_1.8.1 farver_2.1.2 buildtools_1.0.0 tools_4.6.0
#> [41] pkgconfig_2.0.3 htmltools_0.5.9