gglycan: Grammar of Graphics for Glycans

gglycan

The goal of gglycan is to provide a ggplot2-compatible framework for visualizing glycan structures (N-glycans, O-glycans, etc.) using the standard SNFG (Symbol Nomenclature for Glycans) style. It leverages ggtangle for network layout and ggstar for SNFG symbols.

Installation

You can install the development version of gglycan like so:

# install.packages("devtools")
devtools::install_github("YuLab-SMU/gglycan")

Example

This is a basic example which shows you how to plot a complex N-glycan:

library(ggplot2)
library(gglycan)

# Define a glycan using IUPAC condensed string
s <- "Neu5Ac(a2-3)Gal(b1-4)GlcNAc(b1-2)Man(a1-3)[Neu5Ac(a2-3)Gal(b1-4)GlcNAc(b1-2)Man(a1-6)]Man(b1-4)GlcNAc(b1-4)GlcNAc"

# Plot with default SNFG style and layout
gglycan(s) + 
  geom_glycan()

Custom Layouts

gglycan supports flexible layouts. You can change the growth direction (left, right, up, down) and adjust branching angles.

# Vertical layout growing upwards
gglycan(s, direction = "up", angle_sep = 45) + 
  geom_glycan() + 
  ggtitle("Vertical Layout")

Motif Highlighting

You can highlight specific substructures (motifs) within a glycan. The motif remains fully opaque, while the rest of the structure is dimmed.

# Highlight the Sialyl-Lewis x like motif
motif <- "Neu5Ac(a2-3)Gal(b1-4)GlcNAc"

gglycan(s, motif = motif) + 
  geom_glycan() + 
  ggtitle("Motif Highlighting")

Key Features