Connectome is a computational framework for inferring and analyzing cell-cell communication networks from single-cell RNA sequencing (scRNA-seq) data. The package constructs connectomic edgelists that represent intercellular signaling topologies based on ligand-receptor co-expression patterns.
Connectome requires a Seurat object with:
NormalizeData())ScaleData())Idents())Example network plot showing cell-cell communication topology.
Example circos plot showing ligand-receptor interactions.
The connectome is a data.frame where each row represents a potential signaling edge:
| Column | Description |
|---|---|
source |
Sending cell population |
target |
Receiving cell population |
ligand |
Ligand gene symbol |
receptor |
Receptor gene symbol |
pair |
Ligand-Receptor pair identifier |
mode |
Signaling family/category |
ligand.expression |
Log-normalized ligand expression |
recept.expression |
Log-normalized receptor expression |
ligand.scale |
Z-scored ligand expression |
recept.scale |
Z-scored receptor expression |
percent.source |
Fraction of source cells expressing ligand |
percent.target |
Fraction of target cells expressing receptor |
weight_norm |
Edge weight (normalized expression) |
weight_sc |
Edge weight (scaled expression) |
p_val_adj.lig |
Adjusted p-value for ligand |
p_val_adj.rec |
Adjusted p-value for receptor |
┌─────────────────────────────────────────────────────────────┐
│ Seurat Object │
│ (Normalized + Scaled + Cell Type Labels) │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ CreateConnectome() │
│ • Extract expression matrices │
│ • Match ligand-receptor pairs from FANTOM5 │
│ • Calculate edge weights │
│ • Compute statistical significance (optional) │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ FilterConnectome() │
│ • Apply expression thresholds │
│ • Filter by significance │
│ • Select signaling modes │
└─────────────────────┬───────────────────────────────────────┘
│
┌───────────┴───────────┐
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ Visualization │ │ Analysis │
│ • NetworkPlot() │ │ • Centrality() │
│ • CircosPlot() │ │ • DOR() │
│ • EdgeDotPlot() │ │ • Differential │
└─────────────────────┘ └─────────────────────┘
If you use Connectome in your research, please cite:
Raredon, M.S.B., Yang, J., Garritano, J. et al. Computation and visualization of cell–cell signaling topologies in single-cell systems data using Connectome. Scientific Reports 12, 4187 (2022). https://doi.org/10.1038/s41598-022-07959-x
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