1 Overview

We previously developed an R/BioConductor package called Pathview, which maps, integrates and visualizes a wide range of data onto KEGG pathway graphs. Since its publication, Pathview has been widely used in omics studies and data analyses, and has become the leading tool in its category. Here we introduce the SBGNview package, which adopts Systems Biology Graphical Notation (SBGN) and greatly extends the Pathview project by supporting multiple major pathway databases beyond KEGG.

Key features:

  • Pathway definition by the widely adopted Systems Biology Graphical Notation (SBGN);

  • Supports multiple major pathway databases beyond KEGG (Reactome, MetaCyc, SMPDB, PANTHER, METACROP etc) and user defined pathways;

  • Covers 5,200 reference pathways and over 3,000 species by default;

  • Extensive graphics controls, including glyph and edge attributes, graph layout and sub-pathway highlight;

  • SBGN pathway data manipulation, processing, extraction and analysis.

2 Citation

Please cite the following papers when using this open-source package. This will help the project and our team:

Luo W, Brouwer C. Pathview: an R/Biocondutor package for pathway-based data integration and visualization. Bioinformatics, 2013, 29(14):1830-1831, doi: 10.1093/bioinformatics/btt285

3 Installation

3.1 Prerequisites

SBGNview depends or imports from the following R packages:

  • xml2: parse SBGN-ML files
  • rsvg: convert svg files to other formats (pdf, png, ps). librsvg2 is needed to install rsvg. See this page for more details: https://github.com/jeroen/rsvg
  • igraph: find shortest paths
  • httr: search SBGNhub for mapping files
  • KEGGREST: generate mapping tables from scratch when needed
  • pathview: map between different ID types for gene and chemical compound
  • gage: R package for pathway enrichment analysis.
  • SBGNview.data: demo and supportive datasets for SBGNview package
  • SummarizedExperiment: alternative input user data as SummarizedExperiment objects
  • AnnotationDbi: BioConductor annotation data and infrastructure

Note these dependencies will be automatically installed when SBGNview is installed from BioConductor or GitHub. To install them manually within R:

if (!requireNamespace("BiocManager", quietly = TRUE)){
     install.packages("BiocManager")
}
BiocManager::install(c("xml2", "rsvg", "igraph", "httr", "KEGGREST", "pathview", "gage", "SBGNview.data", "SummarizedExperiment", "AnnotationDbi"))

External dependencies (outside R): Windows 10: none

Linux (Ubuntu): needs additional packages (libxml2-dev, libssl-dev, libcurl4-openssl-dev, librsvg2-dev) to be installed. Run the command below in a terminal to install the necessary packages. The same or similar packages can be found for other distributes of linux.

sudo apt install libxml2-dev libssl-dev libcurl4-openssl-dev librsvg2-dev

3.2 Install SBGNview

Install SBGNview through Bioconductor:

BiocManager::install(c("SBGNview"))

Install SBGNview through GitHub:

install.packages("devtools")
devtools::install_github("datapplab/SBGNview")

Clone the Git repository:

git clone https://github.com/datapplab/SBGNview.git

4 Quick example

library(SBGNview)
# load demo dataset, SBGN pathway data collection and info, which may take a few seconds
data("gse16873.d","pathways.info", "sbgn.xmls")
input.pathways <- findPathways("Adrenaline and noradrenaline biosynthesis")
SBGNview.obj <- SBGNview(
          gene.data = gse16873.d[,1:3], 
          gene.id.type = "entrez",
          input.sbgn = input.pathways$pathway.id,
          output.file = "quick.start", 
          output.formats =  c("png")
          ) 
print(SBGNview.obj)

Two image files (a svg file by default and a png file) will be created in the current working directory.

\label{fig:quickStartFig}Quick start example: Adrenaline and noradrenaline biosynthesis pathway.

Figure 4.1: Quick start example: Adrenaline and noradrenaline biosynthesis pathway.

As a unique and useful feature of SBGNview package, we can highlight nodes, edges and/or paths using the highlight functions. Please read the function documentation and main vignette for details.{#quickhighlight}

outputFile(SBGNview.obj) <- "quick.start.highlights"
SBGNview.obj + highlightArcs(class = "production",color = "red") + 
               highlightArcs(class = "consumption",color = "blue") +
               highlightNodes(node.set = c("tyrosine", "(+-)-epinephrine"), 
                              stroke.width = 4, stroke.color = "green") + 
               highlightPath(from.node = "tyrosine", to.node = "dopamine",
                             from.node.color = "green",
                             to.node.color = "blue",
                             shortest.paths.cols = "purple",
                             input.node.stroke.width = 6,
                             path.node.stroke.width = 5,
                             path.node.color = "purple",
                             path.stroke.width = 5,
                             tip.size = 10 )
\label{fig:quickStartFigHighlight}Quick start example: Highlight arcs, nodes, and path.

Figure 4.2: Quick start example: Highlight arcs, nodes, and path.

5 Additional information

This tutorial is just a brief introduction and quick start. For more info, please check the package documentation and main vignettes.

For more info on SBGN, please check the official SBGN project website

For any questions, please contact Kovidh Vegesna (kvegesna [AT] uncc.edu) or Weijun Luo (luo_weijun [AT] yahoo.com)

6 Session Info

sessionInfo()
## R version 4.3.1 (2023-06-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.3 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.18-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [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/New_York
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] SBGNview_1.16.0      SBGNview.data_1.15.0 pathview_1.42.0     
## [4] knitr_1.44          
## 
## loaded via a namespace (and not attached):
##  [1] sass_0.4.7                  SparseArray_1.2.0          
##  [3] bitops_1.0-7                xml2_1.3.5                 
##  [5] lattice_0.22-5              RSQLite_2.3.1              
##  [7] digest_0.6.33               magrittr_2.0.3             
##  [9] evaluate_0.22               grid_4.3.1                 
## [11] KEGGgraph_1.62.0            bookdown_0.36              
## [13] fastmap_1.1.1               blob_1.2.4                 
## [15] Matrix_1.6-1.1              jsonlite_1.8.7             
## [17] AnnotationDbi_1.64.0        graph_1.80.0               
## [19] GenomeInfoDb_1.38.0         DBI_1.1.3                  
## [21] httr_1.4.7                  XML_3.99-0.14              
## [23] Rgraphviz_2.46.0            Biostrings_2.70.0          
## [25] jquerylib_0.1.4             abind_1.4-5                
## [27] Rdpack_2.5                  cli_3.6.1                  
## [29] rlang_1.1.1                 crayon_1.5.2               
## [31] rbibutils_2.2.15            XVector_0.42.0             
## [33] Biobase_2.62.0              bit64_4.0.5                
## [35] DelayedArray_0.28.0         cachem_1.0.8               
## [37] yaml_2.3.7                  S4Arrays_1.2.0             
## [39] tools_4.3.1                 memoise_2.0.1              
## [41] GenomeInfoDbData_1.2.11     SummarizedExperiment_1.32.0
## [43] BiocGenerics_0.48.0         vctrs_0.6.4                
## [45] R6_2.5.1                    org.Hs.eg.db_3.18.0        
## [47] png_0.1-8                   matrixStats_1.0.0          
## [49] stats4_4.3.1                zlibbioc_1.48.0            
## [51] KEGGREST_1.42.0             rsvg_2.6.0                 
## [53] S4Vectors_0.40.0            IRanges_2.36.0             
## [55] bit_4.0.5                   pkgconfig_2.0.3            
## [57] bslib_0.5.1                 GenomicRanges_1.54.0       
## [59] xfun_0.40                   MatrixGenerics_1.14.0      
## [61] htmltools_0.5.6.1           igraph_1.5.1               
## [63] rmarkdown_2.25              compiler_4.3.1             
## [65] RCurl_1.98-1.12