Connectome provides a comprehensive suite of visualization functions for exploring cell-cell communication networks. This gallery demonstrates each visualization type with example outputs and interpretation guidelines.
All visualizations in this gallery use a mock connectome dataset for demonstration:
library(Connectome)
# Create mock connectome for demonstration
set.seed(42)
cell_types <- c("Epithelial", "Fibroblast", "Macrophage", "T_cell", "Endothelial")
ligands <- c("VEGFA", "IL6", "TNF", "CXCL12", "FGF2", "TGFB1")
receptors <- c("KDR", "IL6R", "TNFRSF1A", "CXCR4", "FGFR1", "TGFBR1")
modes <- c("growth_factor", "cytokine", "cytokine", "chemokine", "growth_factor", "growth_factor")
n_edges <- 150
mock_connectome <- data.frame(
source = sample(cell_types, n_edges, replace = TRUE),
target = sample(cell_types, n_edges, replace = TRUE),
ligand = sample(ligands, n_edges, replace = TRUE),
receptor = sample(receptors, n_edges, replace = TRUE),
mode = sample(modes, n_edges, replace = TRUE),
ligand.expression = runif(n_edges, 0.5, 3),
recept.expression = runif(n_edges, 0.5, 3),
ligand.scale = rnorm(n_edges, 0, 1),
recept.scale = rnorm(n_edges, 0, 1),
percent.source = runif(n_edges, 0.1, 0.8),
percent.target = runif(n_edges, 0.1, 0.8),
weight_norm = runif(n_edges, 0.5, 5),
weight_sc = runif(n_edges, -2, 2)
)
mock_connectome$pair <- paste(mock_connectome$ligand, mock_connectome$receptor, sep = "_")
mock_connectome$vector <- paste(mock_connectome$source, mock_connectome$target, sep = " - ")
# Filter for visualization
mock_filtered <- mock_connectome[mock_connectome$weight_norm > 2, ]The NetworkPlot() function creates an igraph-based
directed network visualization where nodes represent cell populations
and edges represent signaling interactions.
NetworkPlot(
connectome_filtered,
weight.attribute = "weight_norm",
title = "Cell-Cell Communication Network"
)Network plot showing cell-cell communication. Nodes represent cell types, edges represent signaling interactions, and edge width is proportional to interaction strength.
Interpretation:
Chord diagrams provide an elegant circular representation of connectivity patterns, ideal for visualizing complex multi-cellular communication networks.
Circos plot showing ligand-receptor interactions. Sectors represent ligands (outer) and receptors (inner), with ribbons connecting interacting pairs.
Interpretation:
Matrix visualization showing all edges meeting specified criteria, perfect for systematic comparison across cell-cell vectors.
Edge dot plot showing ligand-receptor pairs (y-axis) across cell-cell communication vectors (x-axis). Dot size represents normalized weight, color represents scaled weight.
Reading the plot:
Hub and authority score analysis stratified by signaling mode, revealing which cell types are central senders or receivers in specific pathways.
Centrality analysis showing hub scores (sending importance, left) and authority scores (receiving importance, right) for each cell type across signaling modes.
Interpretation:
Explore specific signaling mechanisms by visualizing ligand-receptor expression patterns across cell-cell vectors.
SignalScatter(
connectome_filtered,
features = c("VEGFA", "IL6"),
weight.attribute = "weight_norm",
label.threshold = 1.5
)Signal scatter plot showing expression patterns for selected ligands. Each point represents a cell-cell interaction vector, with position determined by ligand/receptor expression.
Plot elements:
| Question | Recommended Plot |
|---|---|
| Overall network topology | NetworkPlot() |
| Circular connectivity view | CircosPlot() |
| Edge details matrix | EdgeDotPlot() |
| Centrality by signaling mode | Centrality() |
| Specific gene interactions | SignalScatter() |
| Specific cell pair | CellCellScatter() |
| Compare conditions | CompareCentrality(), CircosDiff() |
| Differential analysis | DiffEdgeDotPlot(),
DifferentialScoringPlot() |
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] rmarkdown_2.31
#>
#> loaded via a namespace (and not attached):
#> [1] digest_0.6.39 R6_2.6.1 fastmap_1.2.0 xfun_0.59
#> [5] maketools_1.3.2 cachem_1.1.0 knitr_1.51 htmltools_0.5.9
#> [9] buildtools_1.0.0 lifecycle_1.0.5 cli_3.6.6 sass_0.4.10
#> [13] jquerylib_0.1.4 compiler_4.6.0 sys_3.4.3 tools_4.6.0
#> [17] evaluate_1.0.5 bslib_0.11.0 yaml_2.3.12 otel_0.2.0
#> [21] jsonlite_2.0.0 rlang_1.2.0