as_glycan_composition: Convert to Glycan Composition

View source: R/composition.R

as_glycan_compositionR Documentation

Convert to Glycan Composition

Description

Converts an object to a glycan composition using vctrs casting framework. This function provides a convenient way to convert various input types to glycan_composition().

Usage

as_glycan_composition(x)

Arguments

x

An object to convert to a glycan composition. Supported inputs include:

  • Named integer vectors or lists of named integer vectors

  • Character vectors with composition strings (e.g., "Hex(5)HexNAc(2)")

  • glyrepr_structure objects (counts both monosaccharides and substituents)

  • Glycan igraph objects (returns a length-one composition vector)

  • Existing glyrepr_composition objects (returned as-is)

Details

This function uses the vctrs casting framework for type conversion. When converting from glycan structures, both monosaccharides and substituents are counted. Substituents are extracted from the sub attribute of each vertex and from the floating_substituents graph attribute. For example, a vertex with sub = "3Me" or an unresolved {?Me} each contributes one "Me" substituent to the composition.

Simple composition strings use one-letter residue codes: "H" for "Hex", "N" for "HexNAc", "F" for "dHex", "S"/"A" for "NeuAc", and "G" for "NeuGc". "E" and "L" are also accepted as linkage-specific Neu5Ac codes; they are converted to "NeuAc" with a warning because composition objects do not preserve linkage information.

Value

A glyrepr_composition object.

Examples

# From a single named vector
as_glycan_composition(c(Hex = 5, HexNAc = 2))

# From a list of named vectors
as_glycan_composition(list(c(Hex = 5, HexNAc = 2), c(Hex = 3, HexNAc = 1)))

# From a character vector of Byonic composition strings
as_glycan_composition(c("Hex(5)HexNAc(2)", "Hex(3)HexNAc(1)"))

# From a character vector of simple composition strings
as_glycan_composition(c("H5N2", "H5N4S1F1"))

# From an existing composition (returns as-is)
comp <- glycan_composition(c(Hex = 5, HexNAc = 2))
as_glycan_composition(comp)

# From a glycan structure vector or graph
strucs <- c(n_glycan_core(), o_glycan_core_1())
as_glycan_composition(strucs)
graph <- get_structure_graphs(strucs[[1]])
as_glycan_composition(graph)


glyrepr documentation built on Sept. 22, 2026, 5:09 p.m.