Overview

In order to enhance clarity and make it less likely for viewers to miss important details of large graphs, in this section we will create a PathwaySpace object with n = 12990 vertices, upon which we will project binary signals representing feature sets from a relatively small number of vertices. The projection will emphasize clusters of vertices forming summits. We will add silhouette outlines as decorative elements to preserve the visibility of the overall graph structure. The examples in this section are adapted from Ellrott et al. (2025) and Tercan et al. (2025).

#--- Load required packages for this section
library(PathwaySpace)
library(RGraphSpace)
library(igraph)
library(ggplot2)

Loading a large graph

Next, we will load an igraph object with n = 12990 vertices, containing gene interaction data available from the Pathway Commons database (version 12) (Rodchenkov et al. 2019).

# Load a large igraph object
data("PCv12_pruned_igraph", package = "PathwaySpace")

# Check number of vertices
length(PCv12_pruned_igraph)
# [1] 12990

# Check vertex names
head(V(PCv12_pruned_igraph)$name)
# [1] "A1BG" "AKT1" "CRISP3" "GRB2" "PIK3CA" "PIK3R1"

# Get top-connected nodes for visualization
top10hubs <- igraph::degree(PCv12_pruned_igraph)
top10hubs <- names(sort(top10hubs, decreasing = TRUE)[1:10])
head(top10hubs)
# [1] "GNB1" "TRIM28" "RPS27A" "CTNNB1" "TP53" "ACTB"
## Check graph validity
g_space_PCv12 <- GraphSpace(PCv12_pruned_igraph, mar = 0.1)
## Visualize the graph layout labeled with 'top10hubs' nodes
plotGraphSpace(g_space_PCv12, node.labels = top10hubs, label.color = "blue", theme = "th3")

We will also load gene sets from the MSigDB collection (Liberzon et al. 2015), which are subsequently used to project a binary signal in the PathwaySpace image.

# Load a list with Hallmark gene sets
data("Hallmarks_v2023_1_Hs_symbols", package = "PathwaySpace")

# There are 50 gene sets in "hallmarks"
length(hallmarks)
# [1] 50

# We will use the 'HALLMARK_P53_PATHWAY' (n=200 genes) for demonstration
length(hallmarks$HALLMARK_P53_PATHWAY)
# [1] 200

Running PathwaySpace

We now follow the PathwaySpace pipeline as explained in the introductory vignette, that is, using the buildPathwaySpace() constructor to initialize a new PathwaySpace object with the Pathway Commons interactions.

# Run the PathwaySpace constructor
p_space_PCv12 <- buildPathwaySpace(gs=g_space_PCv12, nrc=500)
# Note: 'nrc' sets the number of rows and columns of the
# image space, which will affect the image resolution (in pixels)

…and now we mark the HALLMARK_P53_PATHWAY genes in the PathwaySpace object.

# Intersect Hallmark genes with the PathwaySpace
hallmarks <- lapply(hallmarks, intersect, y = names(p_space_PCv12) )

# After intersection, the 'HALLMARK_P53_PATHWAY' dropped to n=173 genes
length(hallmarks$HALLMARK_P53_PATHWAY)
# [1] 173

# Set a binary signal (1s) to 'HALLMARK_P53_PATHWAY' genes
vertexSignal(p_space_PCv12) <- 0
vertexSignal(p_space_PCv12)[ hallmarks$HALLMARK_P53_PATHWAY ] <- 1

…and run the circularProjection() function.

# Run signal projection
p_space_PCv12 <- circularProjection(p_space_PCv12)

Mapping silhouettes

Next, we will decorate the PathwaySpace image with graph’s silhouettes.

# Add silhouettes
p_space_PCv12 <- silhouetteMapping(p_space_PCv12)
plotPathwaySpace(p_space_PCv12, title="HALLMARK_P53_PATHWAY", marks = top10hubs, mark.size = 2, theme = "th3")

Mapping summits

The summits represent regions within the graph that exhibit signal values that are notably higher than the baseline level. These regions may be of interest for downstream analyses. One potential downstream analysis is to determine which vertices projected the original input signal. This could provide insights into the communities within these summit regions. One may also wish to explore other vertices within the summits, by querying associations with the original input gene set. In order to extract vertices within summits, next we use the summitMapping() function, which also decorate summits with contour lines.

# Mapping summits
p_space_PCv12 <- summitMapping(p_space_PCv12, minsize = 50)
plotPathwaySpace(p_space_PCv12, title="HALLMARK_P53_PATHWAY", theme = "th3")

# Extracting summits from a PathwaySpace
summits <- getPathwaySpace(p_space_PCv12, "summits")
class(summits)
# [1] "list"

Citation

If you use PathwaySpace, please cite:

Session information

## R version 4.5.1 (2025-06-13)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.3 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: America/Sao_Paulo
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] igraph_2.1.4       PathwaySpace_1.0.3 RGraphSpace_1.1.0  ggplot2_3.5.2.9001
## 
## loaded via a namespace (and not attached):
##  [1] vctrs_0.6.5        cli_3.6.5          knitr_1.50         rlang_1.1.6       
##  [5] xfun_0.52          ggrepel_0.9.6      generics_0.1.4     S7_0.2.0          
##  [9] jsonlite_2.0.0     glue_1.8.0         htmltools_0.5.8.1  sass_0.4.10       
## [13] scales_1.4.0       rmarkdown_2.29     grid_4.5.1         tibble_3.3.0      
## [17] evaluate_1.0.4     jquerylib_0.1.4    fastmap_1.2.0      yaml_2.3.10       
## [21] lifecycle_1.0.4    compiler_4.5.1     dplyr_1.1.4        RColorBrewer_1.1-3
## [25] Rcpp_1.1.0         pkgconfig_2.0.3    rstudioapi_0.17.1  farver_2.1.2      
## [29] digest_0.6.37      R6_2.6.1           RANN_2.6.2         tidyselect_1.2.1  
## [33] pillar_1.11.0      magrittr_2.0.3     bslib_0.9.0        withr_3.0.2       
## [37] tools_4.5.1        gtable_0.3.6       cachem_1.1.0

References

Ellrott, Kyle, Christopher K Wong, Christina Yau, Mauro A A Castro, et al. 2025. “Classification of Non-TCGA Cancer Samples to TCGA Molecular Subtypes Using Compact Feature Sets.” Cancer Cell 43 (2): 195–212. https://doi.org/10.1016/j.ccell.2024.12.002.
Liberzon, Arthur, Chet Birger, Helga Thorvaldsdottir, Mahmoud Ghandi, Jill Mesirov, and Pablo Tamayo. 2015. “The Molecular Signatures Database (MSigDB) Hallmark Gene Set Collection.” Cell Systems 1 (5): 417–25. https://doi.org/10.1016/j.cels.2015.12.004.
Rodchenkov, Igor, Ozgun Babur, Augustin Luna, Bulent Arman Aksoy, Jeffrey V Wong, Dylan Fong, Max Franz, et al. 2019. Pathway Commons 2019 Update: integration, analysis and exploration of pathway data.” Nucleic Acids Research 48 (D1): D489–97. https://doi.org/10.1093/nar/gkz946.
Tercan, Bahar, Victor H Apolonio, Vinicius S Chagas, Christopher K Wong, et al. 2025. “Classification of Non-TCGA Cancer Samples to TCGA Molecular Subtypes Using Compact Feature Sets.” Cancer Cell 43 (2): 195–212. https://doi.org/https://doi.org/10.1016/j.xpro.2025.103681.