Skip to contents

Infer every structure-driven biosynthetic path from from to to by trimming terminal residues and sulfate groups from to backward to from. Unlike path_biosynthesis(), this does not require known enzyme rules.

Usage

path_biosynthesis_virtual(from, to, enzymes = NULL, annotate_enzymes = FALSE)

Arguments

from

A glyrepr::glycan_structure() scalar, or a character string supported by glyparse::auto_parse(). The starting glycan structure.

to

A glyrepr::glycan_structure() scalar, or a character string supported by glyparse::auto_parse(). The target glycan structure.

enzymes

A character vector of gene symbols, or a list of enzyme() objects. Used only when annotate_enzymes is TRUE; if NULL, all available enzymes are considered.

annotate_enzymes

Whether to annotate each virtual transition with concrete enzymes whose rules can perform it. Defaults to FALSE.

Value

A glyenzy_virtual_biosynthesis_network object inheriting from glyenzy_biosynthesis_network and igraph::igraph(). Vertices contain IUPAC-condensed strings in name; edges have a forward step and virtual-enzyme enzyme attribute. When annotate_enzymes is TRUE, concrete_enzymes is a list of character vectors containing every candidate concrete enzyme for each transition.

Virtual enzymes

Each edge is named for the residue added by that step. Intact glycans include the linkage anomer and acceptor position, so a beta-1,4-linked GlcNAc is labeled "b4GlcNAcT". Partial and topological glycans omit linkage information and use "GlcNAcT". Generic or mixed topological glycans use their preserved generic residue names, such as "HexNAcT".

Sulfation is represented as its own atomic transition. Sulfate additions at positions 3 and 6 use "3SulfoT" and "6SulfoT"; an unknown or other position uses "?SulfoT". A sulfated terminal residue is therefore desulfated before the residue itself can be trimmed.

Virtual tracing starts N-glycans at the N-glycan core and all other glycans at their reducing-end root residue. Sulfates are removed from these automatically selected starts. In path_biosynthesis_virtual(), the explicit from glycan is always the virtual starting structure, including any sulfate groups it contains; those sulfates must also occur in to. These networks represent structural possibilities rather than biological feasibility.

Generic structures do not retain glycan-class metadata. A generic structure matching the N-glycan-core topology is therefore assumed to be an N-glycan; use path_biosynthesis_virtual() with an explicit from when that topology belongs to another glycan class.

Examples

virtual_path <- path_biosynthesis_virtual(
  "Gal(b1-3)GalNAc(a1-",
  "GlcNAc(b1-4)Gal(b1-3)GalNAc(a1-"
)

annotated_path <- path_biosynthesis_virtual(
  "Gal(b1-3)GalNAc(a1-",
  "GlcNAc(b1-4)Gal(b1-3)GalNAc(a1-",
  annotate_enzymes = TRUE
)