Introduction to Connectome

Overview

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.

Key Features

  • Multi-species support: Human, mouse, rat, and pig via FANTOM5 database
  • Statistical rigor: Wilcoxon rank-sum tests with multiple testing correction
  • Network analysis: Kleinberg hub/authority scores for centrality analysis
  • Rich visualization: Network plots, circos diagrams, dot plots
  • Differential analysis: Compare connectivity between conditions

Installation

From GitHub

remotes::install_github("Zaoqu-Liu/Connectome")

Quick Start

Load Required Packages

library(Seurat)
library(Connectome)

Prepare Your Data

Connectome requires a Seurat object with:

  1. Normalized data (NormalizeData())
  2. Scaled data (ScaleData())
  3. Cell identity labels (stored in Idents())
# Example workflow
seurat_obj <- NormalizeData(seurat_obj)
seurat_obj <- ScaleData(seurat_obj)
Idents(seurat_obj) <- "cell_type"  # Set your cell type column

Create Connectome

connectome <- CreateConnectome(
  object = seurat_obj,
  species = "human",
  LR.database = "fantom5",
  min.cells.per.ident = 50,
  p.values = TRUE
)

Filter Edges

connectome_filtered <- FilterConnectome(
  connectome,
  min.pct = 0.1,       # Minimum expression fraction
  min.z = 0.25,        # Minimum z-score
  max.p = 0.05         # Maximum adjusted p-value
)

Visualize Results

Network Plot

NetworkPlot(connectome_filtered)
Example network plot showing cell-cell communication topology.

Example network plot showing cell-cell communication topology.

Circos Plot

CircosPlot(connectome_filtered)
Example circos plot showing ligand-receptor interactions.

Example circos plot showing ligand-receptor interactions.

Centrality Analysis

Centrality(connectome_filtered)
Example centrality analysis showing hub and authority scores.

Example centrality analysis showing hub and authority scores.

Understanding the Output

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

Workflow Summary

┌─────────────────────────────────────────────────────────────┐
│                     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     │
└─────────────────────┘  └─────────────────────┘

Next Steps

Citation

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

Session Info

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