← Back to all sparks
G

glydraw

ANALYTICS
Velocity6.3

Draw Beautiful Symbol Nomenclature for Glycans

SNFG glycan cartoons stopped being pictures and became ggplot2 geoms, guides and axis labels.

glycomicsdata-visualizationggplot2snfgr-packages
Current state
glydraw renders glycan structures as SNFG-standard cartoons, standalone or exported in bulk, and since 0.7.0 as native ggplot2 components: geom_glycan() for observations, geom_node_glycan() for ggraph networks, guide_glycan() for legends, and scale_x_glycan() and scale_y_glycan() for discrete axes. Appearance is configured through a single reusable style object rather than scattered arguments, a consolidation that 0.8.0 made breaking. The colour handling now expects a complete SNFG palette rather than sparse per-monosaccharide overrides.
Where it's heading
The first half of this record is geometry correctness, fixing branch spacing, overlapping linkage annotations, core fucose collisions, triangle alignment and nested side-chain layout, because a cartoon that draws the wrong topology is worse than no cartoon. Once the drawing was trustworthy the package moved outward into ggplot2 and then inward again to consolidate its own API, dropping the glyexp dependency, removing positional argument support, and folding rendering options into style_glydraw(). Each of the last several releases has been explicitly breaking, which is a maintainer using a pre-1.0 window deliberately.
Prediction
With the style object established and the ggplot2 surface in place, the remaining explicit arguments, show_linkage and orient, are the visible inconsistency and may follow the others into the style. Sibling packages adopt each change within days, as glyenzy did with the new orientation values, so expect the next breaking change to propagate the same way.

Recent moves

  1. 14d ago

    Rendering options consolidated into a single style object

    Appearance arguments scattered across eight functions move into style_glydraw(), which is breaking for anyone passing fuc_orient, node sizes, fonts or colours directly. Requiring a complete SNFG palette instead of sparse overrides is the stricter half: it trades convenience for the guarantee that a plot's colours are a known standard rather than a partial edit of one.

    View source ↗
  2. 22d ago

    Glycan cartoons become ggplot2 geoms, legends and axis labels

    ⚡ SPARK

    The release that changes what the package is for: cartoons stop being a standalone output and become components of a plot someone else is building. The style object introduced here is what makes that practical, and 0.8.0 then makes it mandatory.

    View source ↗
  3. 1mo ago

    Nested side-chain layout preserves residue order and linkage labels

    A layout fix for xyloglucan-like nested branches, where residue order and linkage annotations were being lost. One of the geometry corrections that had to land before the drawing could be trusted inside other people's plots.

    View source ↗
  4. 1mo ago

    Fucose triangle geometry aligned to rectangle node bounds

    Triangle bases and apexes now line up with the bounds used for rectangular nodes, removing a visual inconsistency in mixed-shape cartoons. Small, and exactly the kind of thing SNFG conformance requires.

    View source ↗
  5. 1mo ago

    Custom colours, fucose orientation and export scaling; glyexp dependency dropped

    The customisation groundwork the later style object generalises: colour overrides, a choice of whether fucose triangles always point up or flex toward their linkage, and output scaling that preserves appearance. Dropping glyexp input from export_cartoons() and removing positional arguments are both the maintainer narrowing the package to drawing, which the ggplot2 work then builds on.

    View source ↗
  6. 1mo ago

    Switches to SNFG standard colours

    The palette moves to the SNFG standard, with minor line width and node size adjustments. A conformance change users will notice immediately but which adds no capability.

    View source ↗