¿Qué hace glicoingeniería?
Resumen
La glicosilación es la modificación postraduccional (PTM) de proteínas más común y compleja, afectando a más del 50% de todas las proteínas humanas. Los glicanos regulan el plegamiento, la estabilidad, el reconocimiento inmunitario, las interacciones con receptores y la farmacocinética de las proteínas terapéuticas. La glicoingeniería implica la modificación racional de los patrones de glicosilación para mejorar la eficacia terapéutica, la estabilidad o la evasión inmune.
Dos tipos principales de glicosilación:
- N-glicosilación: Unida a asparagina (N) en la secuencia N-X-[S/T] donde X ≠ Prolina; ocurre en el RE/Golgi
- O-glicosilación: Unida a serina (S) o treonina (T); no tiene un motivo de consenso estricto; principalmente iniciación con GalNAc
Cuándo usar esta habilidad
Usa esta habilidad cuando:
- Ingeniería de anticuerpos: Optimizar la glicosilación del Fc para mejorar ADCC, CDC o reducir inmunogenicidad
- Diseño de proteínas terapéuticas: Identificar sitios de glicosilación que afectan la vida media, estabilidad o inmunogenicidad
- Diseño de antígenos de vacunas: Diseñar escudos de glicanos para enfocar respuestas inmunitarias en epítopos conservados
- Caracterización de biosimilares: Comparar patrones de glicanos entre un referente y un biosimilar
- Análisis de dianas farmacológicas: ¿La glicosilación afecta la unión a un receptor?
- Estabilidad de proteínas: Los N-glicanos a menudo estabilizan proteínas; identificar sitios para mutaciones estabilizadoras
Análisis de secuencia N-glicosilación
Escaneo de sitios de N-glicosilación
La N-glicosilación ocurre en la secuencia N-X-[S/T] donde X ≠ Prolina.
import re
from typing import List, Tuple
def find_n_glycosylation_sequons(sequence: str) -> List[dict]:
"""
Escanea una secuencia de proteína en busca de secuencias canónicas de N-glicosilación.
Motivo: N-X-[S/T], donde X ≠ Prolina.
Args:
sequence: Secuencia de aminoácidos en notación de una letra
Returns:
Lista de diccionarios con posición (base 1), motivo y contexto
"""
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] # contexto ±3 residuos
results.append({
'position': i + 1, # base 1
'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:
"""Genera un resumen de registro de investigación de los sitios de N-glicosilación."""
sequons = find_n_glycosylation_sequons(sequence)
lines = [f"# Análisis de secuencia N-glicosilación: {protein_name or 'Proteína'}"]
lines.append(f"Longitud de secuencia: {len(sequence)}")
lines.append(f"Total de secuencias N-glicosilación: {len(sequons)}")
if sequons:
lines.append(f"\nSitios N-X-S: {sum(1 for s in sequons if s['sequon_type'] == 'NXS')}")
lines.append(f"Sitios N-X-T: {sum(1 for s in sequons if s['sequon_type'] == 'NXT')}")
lines.append(f"\nDetalles de sitios:")
for s in sequons:
lines.append(f" Posición {s['position']}: {s['motif']} (contexto: ...{s['context']}...)")
else:
lines.append("No se detectaron secuencias canónicas de N-glicosilación.")
return "\n".join(lines)
# Ejemplo: Región Fc de IgG1
fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))
Mutación de sitios de N-glicosilación
def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
"""
Elimina un sitio de N-glicosilación sustituyendo Asn → Gln (conservativa).
Args:
sequence: Secuencia de proteína
position: Posición base 1 de la Asn a mutar
replacement: Aminoácido a sustituir (por defecto Q = Gln; tamaño similar, no glicosilado)
Returns:
Secuencia mutada
"""
seq = list(sequence.upper())
idx = position - 1
assert seq[idx] == 'N', f"La posición {position} es '{seq[idx]}', no 'N'"
seq[idx] = replacement.upper()
return ''.join(seq)
def add_glycosite(sequence: str, position: int, flanking_context: str = "S") -> str:
"""
Introduce un sitio de N-glicosilación mutando un residuo a Asn,
asegurando que X ≠ Pro y +2 = S/T.
Args:
position: Posición base 1 donde introducir Asn
flanking_context: 'S' o 'T' en posición+2 (si se necesita modificación)
"""
seq = list(sequence.upper())
idx = position - 1
# Mutar a Asn
seq[idx] = 'N'
# Asegurar que X+1 != Pro (mutar a Ala si es necesario)
if idx + 1 < len(seq) and seq[idx + 1] == 'P':
seq[idx + 1] = 'A'
# Asegurar que X+2 = S o T
if idx + 2 < len(seq) and seq[idx + 2] not in ('S', 'T'):
seq[idx + 2] = flanking_context
return ''.join(seq)
Análisis de O-glicosilación
Predicción heurística de puntos calientes de O-glicosilación
def predict_o_glycosylation_hotspots(
sequence: str,
window: int = 7,
min_st_fraction: float = 0.4,
disallow_proline_next: bool = True
) -> List[dict]:
"""
Puntuación heurística de puntos calientes de O-glicosilación basada en la densidad local de S/T.
No sustituye a NetOGlyc; usar como línea base rápida.
Reglas:
- La O-GalNAc glicosilación se agrupa en segmentos ricos en Ser/Thr
- Marcar residuos Ser/Thr en ventanas enriquecidas con S/T
- Evitar S/T seguido inmediatamente por Pro (los motivos TP/SP inhiben GalNAc-T)
Args:
window: Tamaño impar de ventana para densidad local de S/T
min_st_fraction: Fracción mínima de S/T en ventana para marcar sitio
"""
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
Herramientas externas de glicoingeniería
1. NetOGlyc 4.0 (predicción de O-glicosilación)
Servicio web para predicción de alta precisión de sitios O-GalNAc:
- URL: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
- Entrada: Secuencia de proteína en FASTA
- Salida: Puntuaciones de probabilidad de O-glicosilación por residuo
- Método: Red neuronal entrenada con sitios O-GalNAc verificados experimentalmente
import requests
def submit_netoglycv4(fasta_sequence: str) -> str:
"""
Envía secuencia al servicio web NetOGlyc 4.0.
Devuelve la URL del trabajo para recuperación de resultados.
Nota: Utiliza el servicio web de DTU Health Tech. Los resultados tardan ~1-5 min.
"""
url = "https://services.healthtech.dtu.dk/cgi-bin/webface2.cgi"
# Envío de NetOGlyc (los parámetros pueden variar según la versión del servicio web)
# Recomendamos usar la interfaz web directamente para la mayoría de los casos de uso
print("Enviar secuencia en: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/")
return url
# También: NetNGlyc para predicción de N-glicosilación
# URL: https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
2. GlycoSHIELD (Análisis de escudo de glicanos)
GlycoSHIELD injerta librerías de conformeros de glicanos pre-simulados en una estructura proteica estática y puntúa cuánta superficie de la proteína es protegida por los glicanos, sin necesidad de ejecutar nueva DM (Tsai et al., Cell 2024, doi:10.1016/j.cell.2024.01.034):
- URL: https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md/ (aplicación web: https://glycoshield.eu)
- Uso: Modelar el escudo de glicanos en una glicoproteína y mapear la protección por residuo
- Salida: Conjuntos PDB/XTC glicosilados por sitio, gráfico de protección por residuo, PDB con protección en la columna B-factor
GlycoSHIELD no está en PyPI — uv pip install glycoshield falla. Se distribuye como tres scripts sobre un pequeño paquete glycoshield (necesita numpy, scipy, matplotlib, MDAnalysis; GlycoSASA.py también necesita gmx de GROMACS en PATH). Instalar desde el repositorio clonado:
# Instalación (GPL-3.0). Las librerías de conformeros de glicanos se descargan por separado —
# consulte glycan_library_downloader.py y GLYCAN_LIBRARY/ en el repositorio.
git clone https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md.git
cd glycoshield-md
uv pip install -e .
# 1. Injerir conformeros de glicanos en cada secuencia listada en el archivo de entrada.
# Una línea por sitio: <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. Puntuación de protección por residuo en los conjuntos injertados (radios de sonda en nm)
python GlycoSASA.py --pdblist A_463.pdb,A_492.pdb --xtclist A_463.xtc,A_492.xtc \
--probelist 0.14,0.25 --plottrace
Ilustrativo: las banderas provienen de las definiciones argparse de los scripts y del tutorial original (N-cadherina EC5 con glicanos Man5); no se ejecutaron aquí. --mode CG verifica colisiones solo con átomos Cα y se combina con --threshold 3.5; --mode All con --threshold 0.7 es la configuración de todos los átomos.
3. GlycoWorkbench (Dibujo/Análisis de estructuras de glicanos)
- URL: https://www.eurocarbdb.org/project/glycoworkbench
- Uso: Dibujar estructuras de glicanos, calcular masas, anotar espectros de EM
- Formato: GlycoCT, notación IUPAC condensada de glicanos
4. GlyConnect (Base de datos de glicano-proteína)
- URL: https://glyconnect.expasy.org/
- Uso: Encontrar glicoproteínas y sitios de glicosilación verificados experimentalmente
- Consulta: Por proteína (ID UniProt), estructura de glicano o tejido
import requests
def query_glyconnect(uniprot_id: str) -> dict:
"""Consulta GlyConnect para datos de glicosilación de una proteína."""
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 {}
# Ejemplo: consultar glicosilación de EGFR
egfr_glyco = query_glyconnect("P00533")
5. UniCarbKB (Base de datos de estructuras de glicanos)
- URL: https://unicarbkb.org/
- Uso: Navegar por estructuras de glicanos, buscar por masa o composición
- Formato: Notación GlycoCT o IUPAC
Estrategias clave de glicoingeniería
Para anticuerpos terapéuticos
| Objetivo | Estrategia | Notas |
|---|---|---|
| Mejorar ADCC | Defucosilación en Fc Asn297 | IgG1 afucosilado tiene ~50× mejor unión a FcγRIIIa |
| Reducir inmunogenicidad | Eliminar glicanos no humanos | Eliminar epítopos α-Gal, NGNA |
| Mejorar vida media PK | Sialilación | Los glicanos sialilados extienden la vida media |
| Reducir inflamación | Hipersialilación | Mecanismo antiinflamatorio de IVIG |
| Crear escudo de glicanos | Añadir N-glicositos a la superficie | Enmascara epítopos vulnerables (diseño de vacunas) |
Mutaciones comunes utilizadas
| Mutación | Efecto |
|---|---|
| N297A/Q (IgG1) | Elimina la glicosilación del Fc (aglicosilado) |
| N297D (IgG1) | Elimina la glicosilación del Fc |
| S298A/E333A/K334A | Aumenta la unión a FcγRIIIa |
| F243L (IgG1) | Aumenta la defucosilación |
| T299A | Elimina la glicosilación del Fc |
Notación de glicanos
Notación IUPAC condensada (abreviaturas de monosacáridos)
| Símbolo | Nombre completo | Tipo |
|---|---|---|
| Glc | Glucosa | Hexosa |
| GlcNAc | N-Acetilglucosamina | HexNAc |
| Man | Manosa | Hexosa |
| Gal | Galactosa | Hexosa |
| Fuc | Fucosa | Desoxihexosa |
| Neu5Ac | Ácido N-acetilneuramínico (Ácido siálico) | Ácido siálico |
| GalNAc | N-Acetilgalactosamina | HexNAc |
Estructura de N-glicano complejo
N-glicano biantenado complejo típico:
Neu5Ac-Gal-GlcNAc-Man\
Man-GlcNAc-GlcNAc-[Asn]
Neu5Ac-Gal-GlcNAc-Man/
(±Fucosa central en GlcNAc más interno)
Mejores prácticas
- Comience con NetNGlyc/NetOGlyc para predicción computacional antes de la validación experimental
- Verifique con espectrometría de masas: Glicoproteómica (Byonic, Mascot) para perfilado de glicanos sitio-específico
- Considere el contexto del sitio: No todas las secuencias predichas están realmente glicosiladas (accesibilidad, tipo celular, conformación proteica)
- Para anticuerpos: El glicano Fc N297 es crítico — caracterice siempre primero este sitio
- Use GlyConnect para verificar si su proteína de interés tiene datos de glicosilación verificados experimentalmente
Recursos adicionales
- GlyTouCan (repositorio de estructuras de glicanos): https://glytoucan.org/
- GlyConnect: https://glyconnect.expasy.org/
- CFG Functional Glycomics: http://www.functionalglycomics.org/
- Servidores DTU Health Tech (NetNGlyc, NetOGlyc): https://services.healthtech.dtu.dk/
- GlycoWorkbench: https://glycoworkbench.software.informer.com/
- Revisión: Apweiler R et al. (1999) Biochim Biophys Acta. PMID: 10564035
- Revisión de glicoingeniería terapéutica: Jefferis R (2009) Nature Reviews Drug Discovery. PMID: 19448661