PSDExplorer is an R package for layer-based exploration of protein–protein interaction networks within the postsynaptic density (PSD) — a key region involved in synaptic signaling and plasticity.
This package extends a Python engine that iteratively builds and
visualizes PSD interaction networks using PyVis, allowing users to
explore multi-layer connectivity starting from seed scaffold proteins.
The R interface integrates this engine into a reproducible workflow and
provides tools for cluster detection, GO enrichment, and network summary
statistics.
Current bioinformatics workflows rarely model the PSD as a
layer-expanding system.
PSDExplorer introduces an iterative expansion algorithm that
captures hierarchical organization — expanding the network by adding
proteins that share a user-defined number of interactions with the
previous layer.
This framework helps uncover both structural and functional modules in
the PSD.
Developed and tested on:
```r utils::sessionInfo()R.versionversion.string utils::sessionInfo()$running
R version 4.5.1 (2025-06-13 ucrt) Platform: x86_64-w64-mingw32/x64 Running under: Windows 11 x64 (build 22631)
Installation
To install the latest version of the package:
install.packages(“devtools”) library(“devtools”) devtools::install_github(“anaciur/PSDExplorer”, build_vignettes = TRUE) library(“PSDExplorer”)
To run the shinyApp: Under construction
Overview
You can view package contents and documentation:
ls(“package:PSDExplorer”) data(package = “PSDExplorer”) # optional browseVignettes(“PSDExplorer”)
User-accessible functions Function Purpose runPythonPSD() Runs the Python engine to generate a multi-layer PSD network and visualize it as an HTML graph. detectClusters() Identifies densely connected modules (e.g., Louvain, Infomap via igraph). identifyHubs() Detects hub proteins and computes degree distributions. runGOenrichment() Performs GO enrichment on selected clusters (using clusterProfiler). summaryStats() Summarizes network metrics (degree, modularity, clustering coefficient). plotPSDnetwork() Displays interactive networks via visNetwork. launchApp() Launches the Shiny interface (future feature). Overview diagram
Input (scaffolds.tsv) ↓ Iterative Python-based expansion ↓ Layered network graph (main.html) ↓ R analysis: clustering, enrichment, summary
See vignette: For a full workflow example, see:
browseVignettes(“PSDExplorer”)
Contributions
Author: Ana Ciur
Aspect Contribution Core idea Conceptualized PSDExplorer design, biological rationale, and R–Python architecture Python Developed underlying engine (InteractionProcessor, NestedList, NetworkVisualizer, etc.) R Integrated reticulate bridge, implemented visualization and analysis utilities AI Tools Used for phrasing, structure, and documentation refinement; all scientific and coding logic authored and validated manually References
Csardi, G. & Nepusz, T. (2006). The igraph software package for complex network research.
Yu, G. et al. (2012). clusterProfiler: an R package for comparing biological themes among gene clusters.
Almende, B. et al. (2019). visNetwork: Interactive Network Visualization for R.
PyVis documentation
reticulate documentation
Acknowledgements
This package was developed as part of an assessment for 2025 BCB410H: Applied Bioinformatics at the University of Toronto, Toronto, CANADA. PSDExplorer welcomes issues, enhancement requests, and other contributions. To submit an issue, please use the GitHub Issues tab.
Other Topics Planned Extensions
Implement full automated R–Python bridge (automatic environment setup, no manual Python configuration)
Add Shiny-based network viewer for adjustable layer expansion and enrichment previews
Extend GO analysis to layer-specific subnetworks
Incorporate 3D visualization and PSD ontology annotation