← Back to all sparks
G

glymotif

ANALYTICS
Velocity2.5

Extract Glycan Motifs from Glycan Structures

A glycan motif matcher trading convenience wrappers for speed, strictness and explicit specs.

glycomicsmotif-matchinggraph-algorithmsperformancer-packages
Current state
glymotif detects and counts structural motifs in glycans, over a built-in motif database or user-supplied structures, with fuzzy modification matching and alignment control. Database motifs are now requested through a db_motifs_spec object carrying their own matching parameters rather than as a name vector with loose arguments, and db_motif_info() exposes the built-in set as an inspectable tibble. A lenient mode lets lower-information glycans match more specific motifs while concrete mismatches still fail, and low-level entry points work directly on igraph objects for other package authors.
Where it's heading
Performance has been a recurring line item across at least four releases, culminating in optimised graph searches and candidate filtering aimed at batch analyses, which points at the real workload being whole experiments rather than single glycans. The API has moved the other way from convenience toward explicitness: the add_motifs_lgl() and add_motifs_int() wrappers are deprecated in favour of composing with dplyr or glyexp verbs, optional arguments must now be named, and loose matching parameters were folded into the spec object. Documentation is being steered toward the cohort's newer container types, so this package is following a coordinated migration rather than setting its own course.
Prediction
With the deprecated annotation wrappers on their way out and documentation already pointing at the replacement verbs, their removal is the likely next breaking change. The lenient matching mode is new enough that its boundary against concrete mismatches will probably need tuning as users apply it to real, partially resolved data.

Recent moves

  1. 29d ago

    Optimised graph search cuts batch matching time; missing N-glycan core now warns

    Optimised graph searches and candidate filtering substantially reduce runtime for batch analyses and dynamic motif extraction while keeping fuzzy modification matching intact, which is the fourth performance pass in this record and the clearest signal that experiment-scale use is the target. Downgrading the missing N-glycan core case from an error to a warning that returns no branch motifs is the right call for batch work, where one unsuitable glycan should not abort the run.

    View source ↗
  2. 1mo ago

    Docs point at the new container types and replacement verbs

    Documentation-only, steering users toward the GlycomicSE and GlycoproteomicSE containers and the mutate_row() replacement for the deprecated annotation helpers. It is a marker of a coordinated ecosystem migration rather than a change in this package.

    View source ↗
  3. 1mo ago

    Examples run against both legacy and current containers

    Example fixes so they work with both container generations and use valid condensed IUPAC glycans. Housekeeping during the same migration.

    View source ↗
  4. 1mo ago

    Lenient matching for lower-information glycans; annotation wrappers deprecated

    Lenient mode addresses the practical problem that measured glycans are often less resolved than the motifs being looked for, allowing a match where detail is absent while still failing on concrete mismatches. Deprecating add_motifs_lgl() and add_motifs_int() in favour of composing with dplyr or glyexp verbs continues the move away from wrapper functions toward explicit composition, and requiring named optional arguments is the same instinct applied to call sites.

    View source ↗
  5. 1mo ago

    Empty glycans handled in motif matching

    An edge-case fix for empty glycans, the kind that surfaces once matching is run across whole experiments rather than curated examples.

    View source ↗
  6. 1mo ago

    Database motifs become a spec object carrying their own parameters

    db_motifs() stops returning names and starts returning a spec that travels with its matching parameters, so alignment, linkage handling and match degree can no longer be set inconsistently at the call site. Three inspection helpers are deprecated in favour of db_motif_info(), which returns the whole built-in set as a tibble. Breaking, and the clearest instance of this package preferring one explicit object over several loose arguments.

    View source ↗