glyfun
glyfun is three releases old and has spent all of them chasing glyexp's container change.
A side-by-side editorial comparison of glyrepr and vellumwidget — release velocity, themes, recent moves, and the top alternatives to consider.
The type system the rest of the glycan stack is built on, being hardened one breaking change at a time.
glyrepr defines the vector types for glycan structures and compositions that every sibling package operates on, with names, NA values, resolution levels from basic through intact, and mapping helpers over structure vectors. Structures now convert to and from node and edge tibbles, low-level constructors support name-preserving construction from trusted graphs, and as_glycan_structure() can degrade element-local failures to NA with one aggregated warning instead of failing the whole vector. The monosaccharide table has been normalised so every entry has a generic form, and substituent support keeps widening.
vellumwidget is dissolving its own API: interaction now lives in the plot spec, not the widget call.
vellumwidget compiles a vellum scene or a vellumplot plot into a self-contained client-side htmlwidget with hover, select, brush, lasso, pan/zoom and export, and no server round-trip. The two-way Shiny story is complete: interactions surface as reactive inputs keyed by output id, and vellumwidget_proxy() drives an already-rendered widget from the server without re-rendering it. The last two releases are fidelity work rather than new surface, calibrating hit-testing from the rendered positions of marks and rendering the raster base image at 2x for HiDPI screens.
glyrepr defines the vector types for glycan structures and compositions that every sibling package operates on, with names, NA values, resolution levels from basic through intact, and mapping helpers over structure vectors. Structures now convert to and from node and edge tibbles, low-level constructors support name-preserving construction from trusted graphs, and as_glycan_structure() can degrade element-local failures to NA with one aggregated warning instead of failing the whole vector. The monosaccharide table has been normalised so every entry has a generic form, and substituent support keeps widening.
This package sets the pace for the cohort, and its breaking changes show up as compatibility patches in glyanno, glyenzy and glymotif within days. The direction is toward behaving like a well-built vctrs type: 0.10.0 rewrote the internals to support names and NA properly, 0.11.0 made structure level a vector-wide scalar rather than a per-element value, and the recent releases keep making failure explicit rather than silent, with strict input checks and typed errors replacing quiet drops. Dependencies get shed as readily as features get added, with the parallel-mapping arguments and their furrr and future dependencies removed outright in 0.13.0.
The graph-table conversions added in 0.13.0 and the name-preserving low-level constructors in 0.14.0 both look like foundations for other packages to build structures programmatically, so expect that surface to firm up next. Given the cadence of breaking changes, a 1.0 that freezes the type semantics is the more consequential thing to watch for.
vellumwidget compiles a vellum scene or a vellumplot plot into a self-contained client-side htmlwidget with hover, select, brush, lasso, pan/zoom and export, and no server round-trip. The two-way Shiny story is complete: interactions surface as reactive inputs keyed by output id, and vellumwidget_proxy() drives an already-rendered widget from the server without re-rendering it. The last two releases are fidelity work rather than new surface, calibrating hit-testing from the rendered positions of marks and rendering the raster base image at 2x for HiDPI screens.
The direction is declarative. 0.7.0 removed the interaction-intent arguments from as_widget() outright, dropping the signature from roughly 36 arguments to 24 and moving highlight, filter and cross-filter into vellumplot's spec via select_point(), condition() and filter_by(). Each release since has enacted more of that compiled spec on the frozen scene, from conditional encodings to single-view filters to cross-view cross-filtering, leaving the widget as an interpreter of the plot rather than a configuration surface of its own. The bug fixes track the same theme the engine's do: measured geometry and rendered geometry must not drift.
The notes name the remaining hold-outs explicitly, saying hover_mode, crosshair, legend_click, select_mode and the tooltip-appearance arguments remain only until their spec equivalents land, so the next releases most likely move those into vellumplot and shrink as_widget() further. The scale binds flagged as following the filter work are the other stated next step.
Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either glyrepr or vellumwidget.
glyfun is three releases old and has spent all of them chasing glyexp's container change.
glydet is rebuilding its glycan trait vocabulary on top of someone else's container.
glyexp is retiring its own data container and handing the job to Bioconductor.
A glycan motif matcher trading convenience wrappers for speed, strictness and explicit specs.
Glycan annotation stops depending on the database having seen the structure before.
SNFG glycan cartoons stopped being pictures and became ggplot2 geoms, guides and axis labels.
See all glyrepr alternatives → · See all vellumwidget alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. vellumwidget is currently shipping more aggressively (velocity 6.3 vs 2.5), with 1 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. vellumwidget is currently shipping more aggressively (velocity 6.3 vs 2.5), with 1 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top glyrepr alternatives in Analytics are ranked by recent ship velocity. Browse the "glyrepr alternatives" section above for the current picks, or visit /alternatives/glyrepr for the full list with editorial commentary on each.
Top vellumwidget alternatives in Analytics are ranked by recent ship velocity. Browse the "vellumwidget alternatives" section above for the current picks, or visit /alternatives/vellumwidget for the full list with editorial commentary on each.