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.
Permissions
Files
SKILL.md
glycoengineering
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.
license
Unknown
metadata.version
1.1
metadata.skill-author
Kuan-lin Huang
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.
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 importList, Tupledeffind_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 = 0while 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 += 3else:
i += 1return results
defsummarize_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(1for s in sequons if s['sequon_type'] == 'NXS')}")
lines.append(f"N-X-T sites: {sum(1for 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
defeliminate_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 - 1assert seq[idx] == 'N', f"Position {position} is '{seq[idx]}', not 'N'"
seq[idx] = replacement.upper()
return''.join(seq)
defadd_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 Tif idx + 2 < len(seq) and seq[idx + 2] notin ('S', 'T'):
seq[idx + 2] = flanking_context
return''.join(seq)
O-Glycosylation Analysis
Heuristic O-Glycosylation Hotspot Prediction
defpredict_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 inenumerate(seq):
if aa notin ('S', 'T'):
continueif 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(1for 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:
Output: Per-residue O-glycosylation probability scores
Method: Neural network trained on experimentally verified O-GalNAc sites
import requests
defsubmit_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 casesprint("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-MD (Glycan Shielding Analysis)
GlycoShield-MD analyzes how glycans shield protein surfaces during MD simulations: