The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

glydraw is a ggplot2-native R engine for drawing
reproducible SNFG glycan cartoons from glycan structure objects or text
notations, with support for batch export, structural highlighting, and
deep appearance customization.
We recommend installing the meta-package glycoverse, which includes this package and other core glycoverse packages.
If you don’t want to install all glycoverse packages, you can only install glydraw.
You can install the latest release of glydraw from CRAN:
pak::pkg_install("glydraw")Or from r-universe:
pak::repo_add(glycoverse = "https://glycoverse.r-universe.dev")
pak::pkg_install("glydraw")Or install the latest GitHub release:
pak::pkg_install("glycoverse/glydraw@*release")Or install the development version from GitHub:
pak::pkg_install("glycoverse/glydraw")library(glydraw)
glycan <- paste0(
"Glc(a1-2)Glc(a1-3)Glc(a1-3)Man(a1-2)Man(a1-2)Man(a1-3)[Man(a1-2)Man(a1-3)",
"[Man(a1-2)Man(a1-6)]Man(a1-6)]Man(b1-4)GlcNAc(b1-4)GlcNAc(a1-"
)
draw_cartoon(glycan, red_end = "PP-Dol")
draw_cartoon_sketch() plots a glycan cartoon with
hand-drawn strokes and patterned residue fills.
library(glydraw)
glycan <- paste0(
"Glc(a1-2)Glc(a1-3)Glc(a1-3)Man(a1-2)Man(a1-2)Man(a1-3)[Man(a1-2)Man(a1-3)",
"[Man(a1-2)Man(a1-6)]Man(a1-6)]Man(b1-4)GlcNAc(b1-4)GlcNAc(a1-"
)
draw_cartoon_sketch(glycan, red_end = "PP-Dol", seed = 1)
glydraw provides ggplot2 extensions to plot
glycan cartoons on a panel, axis, or legend. For example,
geom_glycan() adds glycan cartoons to a bar plot:
library(ggplot2)
library(glydraw)
library(tibble)
plot_data <- tibble(
glycan = c("Gal(b1-3)GalNAc(a1-", "Gal(b1-3)[GlcNAc(b1-6)]GalNAc(a1-"),
value = c(1, 2)
)
ggplot(plot_data, aes(glycan, value)) +
geom_col(fill = "grey70") +
geom_glycan(
aes(structure = glycan),
orient = "up",
size = 0.5,
vjust = 0,
position = position_nudge(y = 0.1)
) +
scale_y_continuous(expand = expansion(mult = c(0, 0.4))) +
theme_classic() +
theme(
axis.text.x = element_blank(),
axis.ticks.x = element_blank()
)
anno_glycan() adds glycan cartoons as row or column
labels in a ComplexHeatmap
heatmap.
suppressPackageStartupMessages(library(ComplexHeatmap))
mat <- matrix(
seq_len(9),
nrow = 3,
dimnames = list(paste0("row", 1:3), paste0("column", 1:3))
)
structures <- c(
"GlcNAc(b1-",
"Gal(b1-4)GlcNAc(b1-",
"Neu5Ac(a2-?)Gal(b1-4)GlcNAc(b1-"
)
Heatmap(
mat,
name = "Corr. Coef.",
show_row_names = FALSE,
show_column_names = FALSE,
row_dend_side = "right",
column_dend_side = "bottom",
left_annotation = rowAnnotation(
glycan = anno_glycan(structures, which = "row")
),
top_annotation = HeatmapAnnotation(
glycan = anno_glycan(structures, which = "column")
)
)
glycan <- paste0(
"Neu5Ac(a2-3)Gal(b1-3)[Fuc(a1-2)Gal(b1-3)[Fuc(a1-4)]GlcNAc(b1-3)",
"[Gal(b1-4)[Fuc(a1-3)]GlcNAc(b1-6)]Gal(b1-4)GlcNAc(b1-6)]GalNAc(a1-"
)
draw_cartoon(glycan, style = style_glygen())
glycan <- "Gal(b1-3)[Neu5Ac(a2-3)Gal6S(b1-4)[Fuc(a1-3)]GlcNAc(b1-6)]GalNAc(a1-"
draw_cartoon(glycan, orient = "up", red_end = "Ser/Thr")
glycan <- "Fuc(a1-3)[Fuc(a1-6)]GlcNAc(b1-"
draw_cartoon(
glycan,
orient = "up",
red_end = "Asn",
style = style_glydraw(fuc_orient = "up")
)
glycan <- paste0(
"WURCS=2.0/3,4,3/[a2122h-1a_1-5_2*N][a1122h-1a_1-5_2*OP^XOCCN/3O/3=O]",
"[a1122h-1a_1-5_6*OP^XOCCN/3O/3=O]/1-2-3-3/a4-b1_b6-c1_c2-d1"
)
draw_cartoon(glycan)
glycan <- "Glc(b1-4)[Xyl(a1-6)][Xyl(a1-2)]Glc(b1-4)[Xyl(a1-6)]Glc(b1-4)[Fuc(a1-2)Gal(b1-2)Xyl(a1-6)]Glc(b1-4)Glc(b1-4)[Xyl(a1-6)]Glc(b1-"
draw_cartoon(glycan, style = style_glydraw(fuc_orient = "up"))
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.