Glycoengineering

Analyze and engineer protein glycosylation.

How to use it

  1. Hit Copy SKILL.md — or use the Claude Code line below to get every file.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit K-Dense-AI/scientific-agent-skills/skills/glycoengineering#main ~/.claude/skills/glycoengineering

For one project only, change the path to .claude/skills/glycoengineering. This skill also uses GlycoSASA.py, glycan_library_downloader.py, GlycoSHIELD.py, response.json — copying SKILL.md alone won't be enough. See the folder on GitHub.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text356 lines
glycoengineering/SKILL.md356 lines13.5 KBpushed 10d agoRawView on GitHub

Glycoengineering

Overview

Glycosylation is the most common and complex post-translational modification (PTM) of proteins, affecting over 50% of all human proteins. Glycans regulate protein folding, stability, immune recognition, receptor interactions, and pharmacokinetics of therapeutic proteins. Glycoengineering involves rational modification of glycosylation patterns for improved therapeutic efficacy, stability, or immune evasion.

Two major glycosylation types:

  • N-glycosylation: Attached to asparagine (N) in the sequon N-X-[S/T] where X ≠ Proline; occurs in the ER/Golgi
  • O-glycosylation: Attached to serine (S) or threonine (T); no strict consensus motif; primarily GalNAc initiation

When to Use This Skill

Use this skill when:

  • Antibody engineering: Optimize Fc glycosylation for enhanced ADCC, CDC, or reduced immunogenicity
  • Therapeutic protein design: Identify glycosylation sites that affect half-life, stability, or immunogenicity
  • Vaccine antigen design: Engineer glycan shields to focus immune responses on conserved epitopes
  • Biosimilar characterization: Compare glycan patterns between reference and biosimilar
  • Drug target analysis: Does glycosylation affect target engagement for a receptor?
  • Protein stability: N-glycans often stabilize proteins; identify sites for stabilizing mutations

N-Glycosylation Sequon Analysis

Scanning for N-Glycosylation Sites

N-glycosylation occurs at the sequon N-X-[S/T] where X ≠ Proline.

import re
from typing import List, Tuple

def find_n_glycosylation_sequons(sequence: str) -> List[dict]:
    """
    Scan a protein sequence for canonical N-linked glycosylation sequons.
    Motif: N-X-[S/T], where X ≠ Proline.

    Args:
        sequence: Single-letter amino acid sequence

    Returns:
        List of dicts with position (1-based), motif, and context
    """
    seq = sequence.upper()
    results = []
    i = 0
    while i <= len(seq) - 3:
        triplet = seq[i:i+3]
        if triplet[0] == 'N' and triplet[1] != 'P' and triplet[2] in {'S', 'T'}:
            context = seq[max(0, i-3):i+6]  # ±3 residue context
            results.append({
                'position': i + 1,   # 1-based
                'motif': triplet,
                'context': context,
                'sequon_type': 'NXS' if triplet[2] == 'S' else 'NXT'
            })
            i += 3
        else:
            i += 1
    return results

def summarize_glycosylation_sites(sequence: str, protein_name: str = "") -> str:
    """Generate a research log summary of N-glycosylation sites."""
    sequons = find_n_glycosylation_sequons(sequence)

    lines = [f"# N-Glycosylation Sequon Analysis: {protein_name or 'Protein'}"]
    lines.append(f"Sequence length: {len(sequence)}")
    lines.append(f"Total N-glycosylation sequons: {len(sequons)}")

    if sequons:
        lines.append(f"\nN-X-S sites: {sum(1 for s in sequons if s['sequon_type'] == 'NXS')}")
        lines.append(f"N-X-T sites: {sum(1 for s in sequons if s['sequon_type'] == 'NXT')}")
        lines.append(f"\nSite details:")
        for s in sequons:
            lines.append(f"  Position {s['position']}: {s['motif']} (context: ...{s['context']}...)")
    else:
        lines.append("No canonical N-glycosylation sequons detected.")

    return "\n".join(lines)

# Example: IgG1 Fc region
fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))

Mutating N-Glycosylation Sites

def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
    """
    Eliminate an N-glycosylation site by substituting Asn → Gln (conservative).

    Args:
        sequence: Protein sequence
        position: 1-based position of the Asn to mutate
        replacement: Amino acid to substitute (default Q = Gln; similar size, not glycosylated)

    Returns:
        Mutated sequence
    """
    seq = list(sequence.upper())
    idx = position - 1
    assert seq[idx] == 'N', f"Position {position} is '{seq[idx]}', not 'N'"
    seq[idx] = replacement.upper()
    return ''.join(seq)

def add_glycosite(sequence: str, position: int, flanking_context: str = "S") -> str:
    """
    Introduce an N-glycosylation site by mutating a residue to Asn,
    and ensuring X ≠ Pro and +2 = S/T.

    Args:
        position: 1-based position to introduce Asn
        flanking_context: 'S' or 'T' at position+2 (if modification needed)
    """
    seq = list(sequence.upper())
    idx = position - 1

    # Mutate to Asn
    seq[idx] = 'N'

    # Ensure X+1 != Pro (mutate to Ala if needed)
    if idx + 1 < len(seq) and seq[idx + 1] == 'P':
        seq[idx + 1] = 'A'

    # Ensure X+2 = S or T
    if idx + 2 < len(seq) and seq[idx + 2] not in ('S', 'T'):
        seq[idx + 2] = flanking_context

    return ''.join(seq)

O-Glycosylation Analysis

Heuristic O-Glycosylation Hotspot Prediction

def predict_o_glycosylation_hotspots(
    sequence: str,
    window: int = 7,
    min_st_fraction: float = 0.4,
    disallow_proline_next: bool = True
) -> List[dict]:
    """
    Heuristic O-glycosylation hotspot scoring based on local S/T density.
    Not a substitute for NetOGlyc; use as fast baseline.

    Rules:
    - O-GalNAc glycosylation clusters on Ser/Thr-rich segments
    - Flag Ser/Thr residues in windows enriched for S/T
    - Avoid S/T immediately followed by Pro (TP/SP motifs inhibit GalNAc-T)

    Args:
        window: Odd window size for local S/T density
        min_st_fraction: Minimum fraction of S/T in window to flag site
    """
    if window % 2 == 0:
        window = 7
    seq = sequence.upper()
    half = window // 2
    candidates = []

    for i, aa in enumerate(seq):
        if aa not in ('S', 'T'):
            continue
        if disallow_proline_next and i + 1 < len(seq) and seq[i+1] == 'P':
            continue

        start = max(0, i - half)
        end = min(len(seq), i + half + 1)
        segment = seq[start:end]
        st_count = sum(1 for c in segment if c in ('S', 'T'))
        frac = st_count / len(segment)

        if frac >= min_st_fraction:
            candidates.append({
                'position': i + 1,
                'residue': aa,
                'st_fraction': round(frac, 3),
                'window': f"{start+1}-{end}",
                'segment': segment
            })

    return candidates

External Glycoengineering Tools

1. NetOGlyc 4.0 (O-glycosylation prediction)

Web service for high-accuracy O-GalNAc site prediction:

import requests

def submit_netoglycv4(fasta_sequence: str) -> str:
    """
    Submit sequence to NetOGlyc 4.0 web service.
    Returns the job URL for result retrieval.

    Note: This uses the DTU Health Tech web service. Results take ~1-5 min.
    """
    url = "https://services.healthtech.dtu.dk/cgi-bin/webface2.cgi"
    # NetOGlyc submission (parameters may vary with web service version)
    # Recommend using the web interface directly for most use cases
    print("Submit sequence at: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/")
    return url

# Also: NetNGlyc for N-glycosylation prediction
# URL: https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/

2. GlycoSHIELD (Glycan Shielding Analysis)

GlycoSHIELD grafts libraries of pre-simulated glycan conformers onto a static protein structure and scores how much of the protein surface the glycans shield, without running new MD (Tsai et al., Cell 2024, doi:10.1016/j.cell.2024.01.034):

GlycoSHIELD is not on PyPIuv pip install glycoshield fails. It ships as three scripts on top of a small glycoshield package (needs numpy, scipy, matplotlib, MDAnalysis; GlycoSASA.py also needs gmx from GROMACS on PATH). Install from the checkout:

# Installation (GPL-3.0). Glycan conformer libraries are downloaded separately —
# see glycan_library_downloader.py and GLYCAN_LIBRARY/ in the repository.
git clone https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md.git
cd glycoshield-md
uv pip install -e .

# 1. Graft glycan conformers onto each sequon listed in the input file.
#    One line per site: <chain> <res-1,res,res+1> <1,2,3> <glycan.pdb> <glycan.xtc> <out.pdb> <out.xtc>
python GlycoSHIELD.py --protpdb protein.pdb --inputfile sequons_input \
    --threshold 3.5 --mode CG --shuffle-sugar

# 2. Per-residue shielding score across the grafted ensembles (probe radii in nm)
python GlycoSASA.py --pdblist A_463.pdb,A_492.pdb --xtclist A_463.xtc,A_492.xtc \
    --probelist 0.14,0.25 --plottrace

Illustrative: the flags come from the scripts' argparse definitions and the upstream tutorial (N-cadherin EC5 with Man5 glycans); they were not run here. --mode CG checks clashes against Cα atoms only and pairs with --threshold 3.5; --mode All with --threshold 0.7 is the all-atom setting.

3. GlycoWorkbench (Glycan Structure Drawing/Analysis)

4. GlyConnect (Glycan-Protein Database)

  • URL: https://glyconnect.expasy.org/
  • Use: Find experimentally verified glycoproteins and glycosylation sites
  • Query: By protein (UniProt ID), glycan structure, or tissue
import requests

def query_glyconnect(uniprot_id: str) -> dict:
    """Query GlyConnect for glycosylation data for a protein."""
    url = f"https://glyconnect.expasy.org/api/proteins/uniprot/{uniprot_id}"
    response = requests.get(url, headers={"Accept": "application/json"})
    if response.status_code == 200:
        return response.json()
    return {}

# Example: query EGFR glycosylation
egfr_glyco = query_glyconnect("P00533")

5. UniCarbKB (Glycan Structure Database)

  • URL: https://unicarbkb.org/
  • Use: Browse glycan structures, search by mass or composition
  • Format: GlycoCT or IUPAC notation

Key Glycoengineering Strategies

For Therapeutic Antibodies

Goal Strategy Notes
Enhance ADCC Defucosylation at Fc Asn297 Afucosylated IgG1 has ~50× better FcγRIIIa binding
Reduce immunogenicity Remove non-human glycans Eliminate α-Gal, NGNA epitopes
Improve PK half-life Sialylation Sialylated glycans extend half-life
Reduce inflammation Hypersialylation IVIG anti-inflammatory mechanism
Create glycan shield Add N-glycosites to surface Masks vulnerable epitopes (vaccine design)

Common Mutations Used

Mutation Effect
N297A/Q (IgG1) Removes Fc glycosylation (aglycosyl)
N297D (IgG1) Removes Fc glycosylation
S298A/E333A/K334A Increases FcγRIIIa binding
F243L (IgG1) Increases defucosylation
T299A Removes Fc glycosylation

Glycan Notation

IUPAC Condensed Notation (Monosaccharide abbreviations)

Symbol Full Name Type
Glc Glucose Hexose
GlcNAc N-Acetylglucosamine HexNAc
Man Mannose Hexose
Gal Galactose Hexose
Fuc Fucose Deoxyhexose
Neu5Ac N-Acetylneuraminic acid (Sialic acid) Sialic acid
GalNAc N-Acetylgalactosamine HexNAc

Complex N-Glycan Structure

Typical complex biantennary N-glycan:
Neu5Ac-Gal-GlcNAc-Man\
                       Man-GlcNAc-GlcNAc-[Asn]
Neu5Ac-Gal-GlcNAc-Man/
(±Core Fuc at innermost GlcNAc)

Best Practices

  • Start with NetNGlyc/NetOGlyc for computational prediction before experimental validation
  • Verify with mass spectrometry: Glycoproteomics (Byonic, Mascot) for site-specific glycan profiling
  • Consider site context: Not all predicted sequons are actually glycosylated (accessibility, cell type, protein conformation)
  • For antibodies: Fc N297 glycan is critical — always characterize this site first
  • Use GlyConnect to check if your protein of interest has experimentally verified glycosylation data

Additional Resources

1---
2name: glycoengineering
3description: Analyze and engineer protein glycosylation. Scan sequences for N-glycosylation sequons (N-X-S/T), predict O-glycosylation hotspots, and access curated glycoengineering tools (NetOGlyc, GlycoShield, GlycoWorkbench). For glycoprotein engineering, therapeutic antibody optimization, and vaccine design.
4license: Unknown
5metadata:
6 version: "1.2"
7 skill-author: Kuan-lin Huang
8---
9 
10# Glycoengineering
11 
12## Overview
13 
14Glycosylation is the most common and complex post-translational modification (PTM) of proteins, affecting over 50% of all human proteins. Glycans regulate protein folding, stability, immune recognition, receptor interactions, and pharmacokinetics of therapeutic proteins. Glycoengineering involves rational modification of glycosylation patterns for improved therapeutic efficacy, stability, or immune evasion.
15 
16**Two major glycosylation types:**
17- **N-glycosylation**: Attached to asparagine (N) in the sequon N-X-[S/T] where X ≠ Proline; occurs in the ER/Golgi
18- **O-glycosylation**: Attached to serine (S) or threonine (T); no strict consensus motif; primarily GalNAc initiation
19 
20## When to Use This Skill
21 
22Use this skill when:
23 
24- **Antibody engineering**: Optimize Fc glycosylation for enhanced ADCC, CDC, or reduced immunogenicity
25- **Therapeutic protein design**: Identify glycosylation sites that affect half-life, stability, or immunogenicity
26- **Vaccine antigen design**: Engineer glycan shields to focus immune responses on conserved epitopes
27- **Biosimilar characterization**: Compare glycan patterns between reference and biosimilar
28- **Drug target analysis**: Does glycosylation affect target engagement for a receptor?
29- **Protein stability**: N-glycans often stabilize proteins; identify sites for stabilizing mutations
30 
31## N-Glycosylation Sequon Analysis
32 
33### Scanning for N-Glycosylation Sites
34 
35N-glycosylation occurs at the sequon **N-X-[S/T]** where X ≠ Proline.
36 
37```python
38import re
39from typing import List, Tuple
40 
41def find_n_glycosylation_sequons(sequence: str) -> List[dict]:
42 """
43 Scan a protein sequence for canonical N-linked glycosylation sequons.
44 Motif: N-X-[S/T], where X ≠ Proline.
45 
46 Args:
47 sequence: Single-letter amino acid sequence
48 
49 Returns:
50 List of dicts with position (1-based), motif, and context
51 """
52 seq = sequence.upper()
53 results = []
54 i = 0
55 while i <= len(seq) - 3:
56 triplet = seq[i:i+3]
57 if triplet[0] == 'N' and triplet[1] != 'P' and triplet[2] in {'S', 'T'}:
58 context = seq[max(0, i-3):i+6] # ±3 residue context
59 results.append({
60 'position': i + 1, # 1-based
61 'motif': triplet,
62 'context': context,
63 'sequon_type': 'NXS' if triplet[2] == 'S' else 'NXT'
64 })
65 i += 3
66 else:
67 i += 1
68 return results
69 
70def summarize_glycosylation_sites(sequence: str, protein_name: str = "") -> str:
71 """Generate a research log summary of N-glycosylation sites."""
72 sequons = find_n_glycosylation_sequons(sequence)
73 
74 lines = [f"# N-Glycosylation Sequon Analysis: {protein_name or 'Protein'}"]
75 lines.append(f"Sequence length: {len(sequence)}")
76 lines.append(f"Total N-glycosylation sequons: {len(sequons)}")
77 
78 if sequons:
79 lines.append(f"\nN-X-S sites: {sum(1 for s in sequons if s['sequon_type'] == 'NXS')}")
80 lines.append(f"N-X-T sites: {sum(1 for s in sequons if s['sequon_type'] == 'NXT')}")
81 lines.append(f"\nSite details:")
82 for s in sequons:
83 lines.append(f" Position {s['position']}: {s['motif']} (context: ...{s['context']}...)")
84 else:
85 lines.append("No canonical N-glycosylation sequons detected.")
86 
87 return "\n".join(lines)
88 
89# Example: IgG1 Fc region
90fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
91print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))
92```
93 
94### Mutating N-Glycosylation Sites
95 
96```python
97def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
98 """
99 Eliminate an N-glycosylation site by substituting Asn → Gln (conservative).
100 
101 Args:
102 sequence: Protein sequence
103 position: 1-based position of the Asn to mutate
104 replacement: Amino acid to substitute (default Q = Gln; similar size, not glycosylated)
105 
106 Returns:
107 Mutated sequence
108 """
109 seq = list(sequence.upper())
110 idx = position - 1
111 assert seq[idx] == 'N', f"Position {position} is '{seq[idx]}', not 'N'"
112 seq[idx] = replacement.upper()
113 return ''.join(seq)
114 
115def add_glycosite(sequence: str, position: int, flanking_context: str = "S") -> str:
116 """
117 Introduce an N-glycosylation site by mutating a residue to Asn,
118 and ensuring X ≠ Pro and +2 = S/T.
119 
120 Args:
121 position: 1-based position to introduce Asn
122 flanking_context: 'S' or 'T' at position+2 (if modification needed)
123 """
124 seq = list(sequence.upper())
125 idx = position - 1
126 
127 # Mutate to Asn
128 seq[idx] = 'N'
129 
130 # Ensure X+1 != Pro (mutate to Ala if needed)
131 if idx + 1 < len(seq) and seq[idx + 1] == 'P':
132 seq[idx + 1] = 'A'
133 
134 # Ensure X+2 = S or T
135 if idx + 2 < len(seq) and seq[idx + 2] not in ('S', 'T'):
136 seq[idx + 2] = flanking_context
137 
138 return ''.join(seq)
139```
140 
141## O-Glycosylation Analysis
142 
143### Heuristic O-Glycosylation Hotspot Prediction
144 
145```python
146def predict_o_glycosylation_hotspots(
147 sequence: str,
148 window: int = 7,
149 min_st_fraction: float = 0.4,
150 disallow_proline_next: bool = True
151) -> List[dict]:
152 """
153 Heuristic O-glycosylation hotspot scoring based on local S/T density.
154 Not a substitute for NetOGlyc; use as fast baseline.
155 
156 Rules:
157 - O-GalNAc glycosylation clusters on Ser/Thr-rich segments
158 - Flag Ser/Thr residues in windows enriched for S/T
159 - Avoid S/T immediately followed by Pro (TP/SP motifs inhibit GalNAc-T)
160 
161 Args:
162 window: Odd window size for local S/T density
163 min_st_fraction: Minimum fraction of S/T in window to flag site
164 """
165 if window % 2 == 0:
166 window = 7
167 seq = sequence.upper()
168 half = window // 2
169 candidates = []
170 
171 for i, aa in enumerate(seq):
172 if aa not in ('S', 'T'):
173 continue
174 if disallow_proline_next and i + 1 < len(seq) and seq[i+1] == 'P':
175 continue
176 
177 start = max(0, i - half)
178 end = min(len(seq), i + half + 1)
179 segment = seq[start:end]
180 st_count = sum(1 for c in segment if c in ('S', 'T'))
181 frac = st_count / len(segment)
182 
183 if frac >= min_st_fraction:
184 candidates.append({
185 'position': i + 1,
186 'residue': aa,
187 'st_fraction': round(frac, 3),
188 'window': f"{start+1}-{end}",
189 'segment': segment
190 })
191 
192 return candidates
193```
194 
195## External Glycoengineering Tools
196 
197### 1. NetOGlyc 4.0 (O-glycosylation prediction)
198 
199Web service for high-accuracy O-GalNAc site prediction:
200- **URL**: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
201- **Input**: FASTA protein sequence
202- **Output**: Per-residue O-glycosylation probability scores
203- **Method**: Neural network trained on experimentally verified O-GalNAc sites
204 
205```python
206import requests
207 
208def submit_netoglycv4(fasta_sequence: str) -> str:
209 """
210 Submit sequence to NetOGlyc 4.0 web service.
211 Returns the job URL for result retrieval.
212 
213 Note: This uses the DTU Health Tech web service. Results take ~1-5 min.
214 """
215 url = "https://services.healthtech.dtu.dk/cgi-bin/webface2.cgi"
216 # NetOGlyc submission (parameters may vary with web service version)
217 # Recommend using the web interface directly for most use cases
218 print("Submit sequence at: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/")
219 return url
220 
221# Also: NetNGlyc for N-glycosylation prediction
222# URL: https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
223```
224 
225### 2. GlycoSHIELD (Glycan Shielding Analysis)
226 
227GlycoSHIELD grafts libraries of pre-simulated glycan conformers onto a static protein structure and
228scores how much of the protein surface the glycans shield, without running new MD
229(Tsai et al., *Cell* 2024, doi:10.1016/j.cell.2024.01.034):
230- **URL**: https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md/ (web app: https://glycoshield.eu)
231- **Use**: Model the glycan shield on a glycoprotein and map per-residue shielding
232- **Output**: Glycosylated PDB/XTC ensembles per site, per-residue shielding plot, PDB with shielding in the B-factor column
233 
234GlycoSHIELD is **not on PyPI**`uv pip install glycoshield` fails. It ships as three scripts on top
235of a small `glycoshield` package (needs numpy, scipy, matplotlib, MDAnalysis; `GlycoSASA.py` also needs
236`gmx` from GROMACS on `PATH`). Install from the checkout:
237 
238```bash
239# Installation (GPL-3.0). Glycan conformer libraries are downloaded separately —
240# see glycan_library_downloader.py and GLYCAN_LIBRARY/ in the repository.
241git clone https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md.git
242cd glycoshield-md
243uv pip install -e .
244 
245# 1. Graft glycan conformers onto each sequon listed in the input file.
246# One line per site: <chain> <res-1,res,res+1> <1,2,3> <glycan.pdb> <glycan.xtc> <out.pdb> <out.xtc>
247python GlycoSHIELD.py --protpdb protein.pdb --inputfile sequons_input \
248 --threshold 3.5 --mode CG --shuffle-sugar
249 
250# 2. Per-residue shielding score across the grafted ensembles (probe radii in nm)
251python GlycoSASA.py --pdblist A_463.pdb,A_492.pdb --xtclist A_463.xtc,A_492.xtc \
252 --probelist 0.14,0.25 --plottrace
253```
254 
255Illustrative: the flags come from the scripts' argparse definitions and the upstream tutorial
256(N-cadherin EC5 with Man5 glycans); they were not run here. `--mode CG` checks clashes against
257Cα atoms only and pairs with `--threshold 3.5`; `--mode All` with `--threshold 0.7` is the all-atom
258setting.
259 
260### 3. GlycoWorkbench (Glycan Structure Drawing/Analysis)
261 
262- **URL**: https://www.eurocarbdb.org/project/glycoworkbench
263- **Use**: Draw glycan structures, calculate masses, annotate MS spectra
264- **Format**: GlycoCT, IUPAC condensed glycan notation
265 
266### 4. GlyConnect (Glycan-Protein Database)
267 
268- **URL**: https://glyconnect.expasy.org/
269- **Use**: Find experimentally verified glycoproteins and glycosylation sites
270- **Query**: By protein (UniProt ID), glycan structure, or tissue
271 
272```python
273import requests
274 
275def query_glyconnect(uniprot_id: str) -> dict:
276 """Query GlyConnect for glycosylation data for a protein."""
277 url = f"https://glyconnect.expasy.org/api/proteins/uniprot/{uniprot_id}"
278 response = requests.get(url, headers={"Accept": "application/json"})
279 if response.status_code == 200:
280 return response.json()
281 return {}
282 
283# Example: query EGFR glycosylation
284egfr_glyco = query_glyconnect("P00533")
285```
286 
287### 5. UniCarbKB (Glycan Structure Database)
288 
289- **URL**: https://unicarbkb.org/
290- **Use**: Browse glycan structures, search by mass or composition
291- **Format**: GlycoCT or IUPAC notation
292 
293## Key Glycoengineering Strategies
294 
295### For Therapeutic Antibodies
296 
297| Goal | Strategy | Notes |
298|------|----------|-------|
299| Enhance ADCC | Defucosylation at Fc Asn297 | Afucosylated IgG1 has ~50× better FcγRIIIa binding |
300| Reduce immunogenicity | Remove non-human glycans | Eliminate α-Gal, NGNA epitopes |
301| Improve PK half-life | Sialylation | Sialylated glycans extend half-life |
302| Reduce inflammation | Hypersialylation | IVIG anti-inflammatory mechanism |
303| Create glycan shield | Add N-glycosites to surface | Masks vulnerable epitopes (vaccine design) |
304 
305### Common Mutations Used
306 
307| Mutation | Effect |
308|----------|--------|
309| N297A/Q (IgG1) | Removes Fc glycosylation (aglycosyl) |
310| N297D (IgG1) | Removes Fc glycosylation |
311| S298A/E333A/K334A | Increases FcγRIIIa binding |
312| F243L (IgG1) | Increases defucosylation |
313| T299A | Removes Fc glycosylation |
314 
315## Glycan Notation
316 
317### IUPAC Condensed Notation (Monosaccharide abbreviations)
318 
319| Symbol | Full Name | Type |
320|--------|-----------|------|
321| Glc | Glucose | Hexose |
322| GlcNAc | N-Acetylglucosamine | HexNAc |
323| Man | Mannose | Hexose |
324| Gal | Galactose | Hexose |
325| Fuc | Fucose | Deoxyhexose |
326| Neu5Ac | N-Acetylneuraminic acid (Sialic acid) | Sialic acid |
327| GalNAc | N-Acetylgalactosamine | HexNAc |
328 
329### Complex N-Glycan Structure
330 
331```
332Typical complex biantennary N-glycan:
333Neu5Ac-Gal-GlcNAc-Man\
334 Man-GlcNAc-GlcNAc-[Asn]
335Neu5Ac-Gal-GlcNAc-Man/
336(±Core Fuc at innermost GlcNAc)
337```
338 
339## Best Practices
340 
341- **Start with NetNGlyc/NetOGlyc** for computational prediction before experimental validation
342- **Verify with mass spectrometry**: Glycoproteomics (Byonic, Mascot) for site-specific glycan profiling
343- **Consider site context**: Not all predicted sequons are actually glycosylated (accessibility, cell type, protein conformation)
344- **For antibodies**: Fc N297 glycan is critical — always characterize this site first
345- **Use GlyConnect** to check if your protein of interest has experimentally verified glycosylation data
346 
347## Additional Resources
348 
349- **GlyTouCan** (glycan structure repository): https://glytoucan.org/
350- **GlyConnect**: https://glyconnect.expasy.org/
351- **CFG Functional Glycomics**: http://www.functionalglycomics.org/
352- **DTU Health Tech servers** (NetNGlyc, NetOGlyc): https://services.healthtech.dtu.dk/
353- **GlycoWorkbench**: https://glycoworkbench.software.informer.com/
354- **Review**: Apweiler R et al. (1999) Biochim Biophys Acta. PMID: 10564035
355- **Therapeutic glycoengineering review**: Jefferis R (2009) Nature Reviews Drug Discovery. PMID: 19448661
356 

Discussion

Alternatives

Also in Genomics & omics
AnndataData structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.Science · MITArboretoInfer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.Science · MITBiopython: Computational Molecular Biology in PythonComprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.Science · MITBulk rnaseqEnd-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g. "analyze my RNA-seq", "FASTQ to DESeq2", "run nf-core/rnaseq", "STAR/Salmon quantification", "build a counts matrix for DESeq2", or "go from reads to differentially expressed genes and enriched pathways". Routes between an nf-core/rnaseq (Nextflow) path and a standalone STAR/Salmon path, and covers experimental design, strandedness, and QC gates. For single-cell RNA-seq use the scanpy skill instead.Science · MIT