Was macht Glycoengineering?
Übersicht
Glykosylierung ist die häufigste und komplexeste posttranslationale Modifikation (PTM) von Proteinen und betrifft über 50 % aller menschlichen Proteine. Glykane regulieren die Proteinfaltung, Stabilität, Immunerkennung, Rezeptorinteraktionen und Pharmakokinetik therapeutischer Proteine. Glykoengineering umfasst die rationale Modifikation von Glykosylierungsmustern zur Verbesserung der therapeutischen Wirksamkeit, Stabilität oder Immunumgehung.
Zwei Haupttypen der Glykosylierung:
- N-Glykosylierung: An Asparagin (N) im Sequon N-X-[S/T] gebunden, wobei X ≠ Prolin; findet im ER/Golgi statt
- O-Glykosylierung: An Serin (S) oder Threonin (T) gebunden; kein strenges Konsensusmotiv; hauptsächlich GalNAc-Initiation
Wann diese Fähigkeit einsetzen?
Nutzen Sie diese Fähigkeit, wenn:
- Antikörper-Engineering: Optimieren Sie die Fc-Glykosylierung für verbesserte ADCC, CDC oder reduzierte Immunogenität
- Design therapeutischer Proteine: Identifizieren Sie Glykosylierungsstellen, die Halbwertszeit, Stabilität oder Immunogenität beeinflussen
- Design von Impfstoffantigenen: Entwickeln Sie Glykan-Schilde, um Immunantworten auf konservierte Epitope zu fokussieren
- Biosimilar-Charakterisierung: Vergleichen Sie Glykanmuster zwischen Referenz und Biosimilar
- Analyse von Wirkstoffzielen: Beeinflusst die Glykosylierung die Zielbindung eines Rezeptors?
- Proteinstabilität: N-Glykane stabilisieren oft Proteine; identifizieren Sie Stellen für stabilisierende Mutationen
Analyse von N-Glykosylierungssequons
Scannen nach N-Glykosylierungsstellen
N-Glykosylierung tritt am Sequon N-X-[S/T] auf, wobei X ≠ Prolin.
import re
from typing import List, Tuple
def find_n_glycosylation_sequons(sequence: str) -> List[dict]:
"""
Durchsucht eine Proteinsequenz nach kanonischen N-gebundenen Glykosylierungssequons.
Motiv: N-X-[S/T], wobei X ≠ Prolin.
Args:
sequence: Einbuchstabige Aminosäuresequenz
Returns:
Liste von Dictionaries mit Position (1-basiert), Motiv und Kontext
"""
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 Reste Kontext
results.append({
'position': i + 1, # 1-basiert
'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:
"""Erzeugen Sie eine Zusammenfassung der N-Glykosylierungsstellen als Forschungsprotokoll."""
sequons = find_n_glycosylation_sequons(sequence)
lines = [f"# N-Glykosylierungs-Sequon-Analyse: {protein_name or 'Protein'}"]
lines.append(f"Sequenzlänge: {len(sequence)}")
lines.append(f"Gesamtanzahl N-Glykosylierungssequons: {len(sequons)}")
if sequons:
lines.append(f"\nN-X-S-Stellen: {sum(1 for s in sequons if s['sequon_type'] == 'NXS')}")
lines.append(f"N-X-T-Stellen: {sum(1 for s in sequons if s['sequon_type'] == 'NXT')}")
lines.append(f"\nStellendetails:")
for s in sequons:
lines.append(f" Position {s['position']}: {s['motif']} (Kontext: ...{s['context']}...)")
else:
lines.append("Keine kanonischen N-Glykosylierungssequons erkannt.")
return "\n".join(lines)
# Beispiel: IgG1-Fc-Region
fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))
Mutieren von N-Glykosylierungsstellen
def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
"""
Eliminiert eine N-Glykosylierungsstelle durch Substitution von Asn → Gln (konservativ).
Args:
sequence: Proteinsequenz
position: 1-basierte Position des zu mutierenden Asn
replacement: Zu substituierende Aminosäure (Standard Q = Gln; ähnliche Größe, nicht glykosyliert)
Returns:
Mutierte Sequenz
"""
seq = list(sequence.upper())
idx = position - 1
assert seq[idx] == 'N', f"Position {position} ist '{seq[idx]}', nicht 'N'"
seq[idx] = replacement.upper()
return ''.join(seq)
def add_glycosite(sequence: str, position: int, flanking_context: str = "S") -> str:
"""
Einführung einer N-Glykosylierungsstelle durch Mutation eines Restes zu Asparagin,
und Sicherstellung X ≠ Pro und +2 = S/T.
Args:
position: 1-basierte Position, an der Asn eingeführt werden soll
flanking_context: 'S' oder 'T' an Position+2 (falls Modifikation erforderlich)
"""
seq = list(sequence.upper())
idx = position - 1
# Mutieren zu Asn
seq[idx] = 'N'
# Sicherstellen X+1 != Pro (zu Ala mutieren, falls nötig)
if idx + 1 < len(seq) and seq[idx + 1] == 'P':
seq[idx + 1] = 'A'
# Sicherstellen X+2 = S oder T
if idx + 2 < len(seq) and seq[idx + 2] not in ('S', 'T'):
seq[idx + 2] = flanking_context
return ''.join(seq)
O-Glykosylierungsanalyse
Heuristische Vorhersage von O-Glykosylierungs-Hotspots
def predict_o_glycosylation_hotspots(
sequence: str,
window: int = 7,
min_st_fraction: float = 0.4,
disallow_proline_next: bool = True
) -> List[dict]:
"""
Heuristische Bewertung von O-Glykosylierungs-Hotspots basierend auf lokaler S/T-Dichte.
Kein Ersatz für NetOGlyc; als schnelle Ausgangsbasis verwenden.
Regeln:
- O-GalNAc-Glykosylierung clustert auf Ser/Thr-reichen Segmenten
- Markieren Sie Ser/Thr-Reste in Fenstern, die für S/T angereichert sind
- Vermeiden Sie S/T unmittelbar gefolgt von Pro (TP/SP-Motive hemmen GalNAc-T)
Args:
window: Ungerade Fenstergröße für lokale S/T-Dichte
min_st_fraction: Mindestanteil an S/T im Fenster, um eine Stelle zu markieren
"""
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
Externe Glykoengineering-Tools
1. NetOGlyc 4.0 (O-Glykosylierungsvorhersage)
Webdienst für hochgenaue O-GalNAc-Stellenvorhersage:
- URL: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
- Eingabe: FASTA-Proteinsequenz
- Ausgabe: O-Glykosylierungs-Wahrscheinlichkeitswerte pro Rest
- Methode: Neuronales Netzwerk, trainiert auf experimentell verifizierten O-GalNAc-Stellen
import requests
def submit_netoglycv4(fasta_sequence: str) -> str:
"""
Sequenz an den NetOGlyc 4.0-Webdienst senden.
Gibt die Job-URL für den Ergebnisabruf zurück.
Hinweis: Dies verwendet den DTU Health Tech-Webdienst. Ergebnisse dauern ~1-5 Min.
"""
url = "https://services.healthtech.dtu.dk/cgi-bin/webface2.cgi"
# NetOGlyc-Übermittlung (Parameter können je nach Webdienstversion variieren)
# Es wird empfohlen, für die meisten Anwendungsfälle direkt die Weboberfläche zu verwenden
print("Sequenz einreichen unter: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/")
return url
# Auch: NetNGlyc für N-Glykosylierungsvorhersage
# URL: https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
2. GlycoSHIELD (Glykanabschirmungsanalyse)
GlycoSHIELD pfropft Bibliotheken von vorsimulierten Glykankonformeren auf eine statische Proteinstruktur und bewertet, wie viel der Proteinoberfläche durch die Glykane abgeschirmt wird, ohne neue MD-Simulationen auszuführen (Tsai et al., Cell 2024, doi:10.1016/j.cell.2024.01.034):
- URL: https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md/ (Web-App: https://glycoshield.eu)
- Verwendung: Modellierung des Glykanschilds auf einem Glykoprotein und Kartierung der Abschirmung pro Rest
- Ausgabe: Glykosylierte PDB/XTC-Ensembles pro Stelle, Abschirmungsdiagramm pro Rest, PDB mit Abschirmung in der B-Faktor-Spalte
GlycoSHIELD ist nicht auf PyPI — uv pip install glycoshield schlägt fehl. Es wird als drei Skripte auf Basis eines kleinen glycoshield-Pakets geliefert (benötigt numpy, scipy, matplotlib, MDAnalysis; GlycoSASA.py benötigt auch gmx von GROMACS im PATH). Installation aus dem Checkout:
# Installation (GPL-3.0). Glykankonformer-Bibliotheken werden separat heruntergeladen —
# siehe glycan_library_downloader.py und GLYCAN_LIBRARY/ im Repository.
git clone https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md.git
cd glycoshield-md
uv pip install -e .
# 1. Glykankonformere auf jedes in der Eingabedatei aufgeführte Sequon pfropfen.
# Eine Zeile pro Stelle: <Kette> <Rest-1,Rest,Rest+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. Abschirmungswert pro Rest über die aufgepfropften Ensembles (Sondenradien 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
Zur Veranschaulichung: Die Flags stammen aus den argparse-Definitionen der Skripte und dem Upstream-Tutorial (N-Cadherin EC5 mit Man5-Glykanen); sie wurden hier nicht ausgeführt. --mode CG prüft Kollisionen nur gegen Cα-Atome und paart mit --threshold 3.5; --mode All mit --threshold 0.7 ist die All-Atom-Einstellung.
3. GlycoWorkbench (Glykanstruktur-Zeichnung/Analyse)
- URL: https://www.eurocarbdb.org/project/glycoworkbench
- Verwendung: Glykanstrukturen zeichnen, Massen berechnen, MS-Spektren annotieren
- Format: GlycoCT, IUPAC-kondensierte Glykan-Notation
4. GlyConnect (Glykan-Protein-Datenbank)
- URL: https://glyconnect.expasy.org/
- Verwendung: Experimentell verifizierte Glykoproteine und Glykosylierungsstellen finden
- Abfrage: Nach Protein (UniProt-ID), Glykanstruktur oder Gewebe
import requests
def query_glyconnect(uniprot_id: str) -> dict:
"""GlyConnect nach Glykosylierungsdaten für ein Protein abfragen."""
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 {}
# Beispiel: EGFR-Glykosylierung abfragen
eggfr_glyco = query_glyconnect("P00533")
5. UniCarbKB (Glykanstruktur-Datenbank)
- URL: https://unicarbkb.org/
- Verwendung: Glykanstrukturen durchsuchen, nach Masse oder Zusammensetzung suchen
- Format: GlycoCT- oder IUPAC-Notation
Wichtige Glykoengineering-Strategien
Für therapeutische Antikörper
| Ziel | Strategie | Hinweise |
|---|---|---|
| ADCC verbessern | Defucosylierung an Fc Asn297 | Afucosyliertes IgG1 hat ~50× bessere FcγRIIIa-Bindung |
| Immunogenität reduzieren | Nicht-menschliche Glykane entfernen | Eliminiere α-Gal-, NGNA-Epitope |
| PK-Halbwertszeit verbessern | Sialylierung | Sialylierte Glykane verlängern die Halbwertszeit |
| Entzündung reduzieren | Hypersialylierung | IVIG-entzündungshemmender Mechanismus |
| Glykanschild erzeugen | N-Glykosylierungsstellen auf der Oberfläche hinzufügen | Maskiert verwundbare Epitope (Impfstoffdesign) |
Häufig verwendete Mutationen
| Mutation | Wirkung |
|---|---|
| N297A/Q (IgG1) | Entfernt Fc-Glykosylierung (aglykosyliert) |
| N297D (IgG1) | Entfernt Fc-Glykosylierung |
| S298A/E333A/K334A | Erhöht FcγRIIIa-Bindung |
| F243L (IgG1) | Erhöht Defucosylierung |
| T299A | Entfernt Fc-Glykosylierung |
Glykan-Notation
IUPAC-kondensierte Notation (Monosaccharid-Abkürzungen)
| Symbol | Vollständiger Name | Typ |
|---|---|---|
| Glc | Glucose | Hexose |
| GlcNAc | N-Acetylglucosamin | HexNAc |
| Man | Mannose | Hexose |
| Gal | Galactose | Hexose |
| Fuc | Fucose | Desoxyhexose |
| Neu5Ac | N-Acetylneuraminsäure (Sialinsäure) | Sialinsäure |
| GalNAc | N-Acetylgalactosamin | HexNAc |
Komplexe N-Glykan-Struktur
Typisches komplexes biantennäres N-Glykan:
Neu5Ac-Gal-GlcNAc-Man\
Man-GlcNAc-GlcNAc-[Asn]
Neu5Ac-Gal-GlcNAc-Man/
(±Kern-Fucose am innersten GlcNAc)
Bewährte Vorgehensweisen
- Beginnen Sie mit NetNGlyc/NetOGlyc für rechnerische Vorhersage vor der experimentellen Validierung
- Verifizieren Sie mit Massenspektrometrie: Glykoproteomik (Byonic, Mascot) für stellenspezifisches Glykan-Profiling
- Berücksichtigen Sie den Stellenkontext: Nicht alle vorhergesagten Sequons sind tatsächlich glykosyliert (Zugänglichkeit, Zelltyp, Proteinkonformation)
- Für Antikörper: Das Fc N297-Glykan ist kritisch – charakterisieren Sie diese Stelle immer zuerst
- Verwenden Sie GlyConnect, um zu prüfen, ob Ihr interessierendes Protein experimentell verifizierte Glykosylierungsdaten hat
Zusätzliche Ressourcen
- GlyTouCan (Glykanstruktur-Repository): https://glytoucan.org/
- GlyConnect: https://glyconnect.expasy.org/
- CFG Functional Glycomics: http://www.functionalglycomics.org/
- DTU Health Tech-Server (NetNGlyc, NetOGlyc): https://services.healthtech.dtu.dk/
- GlycoWorkbench: https://glycoworkbench.software.informer.com/
- Übersichtsartikel: Apweiler R et al. (1999) Biochim Biophys Acta. PMID: 10564035
- Übersichtsartikel zum therapeutischen Glykoengineering: Jefferis R (2009) Nature Reviews Drug Discovery. PMID: 19448661