Communitygithub.com

Glycoengineering

Analyser et modifier la glycosylation des protéines. Recherche des séquons de N-glycosylation (N-X-S/T), prédit les sites d'O-glycosylation et donne accès à des outils de glycoingénierie (NetOGlyc, GlycoShield, GlycoWorkbench). Pour la conception de protéines glycosylées, l'optimisation d'anticorps thérapeutiques et le développement de vaccins.

Qu'est-ce que Glycoengineering ?

Glycoengineering est un outil spécialisé pour l'analyse et la modification de la glycosylation des protéines. Il identifie les séquons de N-glycosylation (N-X-[S/T]) et prédit les hotspots d'O-glycosylation par une méthode heuristique de densité locale. Son utilité couvre la conception d'anticorps (optimisation de la glycosylation du Fc), la stabilité des protéines thérapeutiques, le masquage d'épitopes pour les vaccins, et la caractérisation de biosimilaires. Il intègre des fonctions Python pour l'analyse, la mutation et l'ajout de sites, ainsi que des wrappers pour des outils externes comme NetOGlyc (prédiction haute précision), GlycoSHIELD (modélisation du bouclier glycanique sur structures 3D) et GlyConnect (base de données expérimentale). L'approche combine calcul prédictif et stratégies de mutagenèse raisonnée, avec des tableaux de mutations courantes et une notation des glycanes.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/glycoengineering

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Glycoengineering ?

Aperçu

La glycosylation est la modification post-traductionnelle (MPT) la plus courante et la plus complexe des protéines, affectant plus de 50 % de toutes les protéines humaines. Les glycanes régulent le repliement, la stabilité, la reconnaissance immunitaire, les interactions avec les récepteurs et la pharmacocinétique des protéines thérapeutiques. La glycoingénierie implique la modification rationnelle des motifs de glycosylation pour améliorer l'efficacité thérapeutique, la stabilité ou l'évasion immunitaire.

Les deux principaux types de glycosylation :

  • N-glycosylation : Fixée sur une asparagine (N) dans le séquon N-X-[S/T] où X ≠ Proline ; se produit dans le RE/Golgi
  • O-glycosylation : Fixée sur la sérine (S) ou la thréonine (T) ; pas de motif consensus strict ; principalement initiée par GalNAc

Quand utiliser cette compétence

Utilisez cette compétence lorsque :

  • Ingénierie des anticorps : Optimiser la glycosylation du Fc pour améliorer l'ADCC, la CDC ou réduire l'immunogénicité
  • Conception de protéines thérapeutiques : Identifier les sites de glycosylation qui affectent la demi-vie, la stabilité ou l'immunogénicité
  • Conception d'antigènes vaccinaux : Concevoir des boucliers glycaniques pour focaliser les réponses immunitaires sur les épitopes conservés
  • Caractérisation de biosimilaires : Comparer les motifs glycaniques entre le produit de référence et le biosimilaire
  • Analyse de cible médicamenteuse : La glycosylation affecte-t-elle l'engagement de la cible pour un récepteur ?
  • Stabilité des protéines : Les N-glycanes stabilisent souvent les protéines ; identifier les sites pour des mutations stabilisantes

Analyse des séquons de N-glycosylation

Recherche de sites de N-glycosylation

La N-glycosylation se produit au niveau du séquon N-X-[S/T] où X ≠ Proline.

import re
from typing import List, Tuple

def find_n_glycosylation_sequons(sequence: str) -> List[dict]:
    """
    Recherche les séquons canoniques de N-glycosylation dans une séquence protéique.
    Motif : N-X-[S/T], où X ≠ Proline.

    Args:
        sequence: Séquence d'acides aminés en code à une lettre

    Returns:
        Liste de dictionnaires avec position (base 1), motif et contexte
    """
    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 résidus de contexte
            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:
    """Génère un résumé de recherche des sites de N-glycosylation."""
    sequons = find_n_glycosylation_sequons(sequence)

    lines = [f"# Analyse des séquons de N-glycosylation : {protein_name or 'Protéine'}"]
    lines.append(f"Longueur de la séquence : {len(sequence)}")
    lines.append(f"Nombre total de séquons de N-glycosylation : {len(sequons)}")

    if sequons:
        lines.append(f"\nSites N-X-S : {sum(1 for s in sequons if s['sequon_type'] == 'NXS')}")
        lines.append(f"Sites N-X-T : {sum(1 for s in sequons if s['sequon_type'] == 'NXT')}")
        lines.append(f"\nDétails des sites :")
        for s in sequons:
            lines.append(f"  Position {s['position']} : {s['motif']} (contexte : ...{s['context']}...)")
    else:
        lines.append("Aucun séquon de N-glycosylation canonique détecté.")

    return "\n".join(lines)

# Exemple : région Fc de l'IgG1
fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))

Mutation des sites de N-glycosylation

def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
    """
    Élimine un site de N-glycosylation en substituant Asn → Gln (conservatrice).

    Args:
        sequence: Séquence protéique
        position: Position (base 1) de l'Asn à muter
        replacement: Acide aminé de substitution (par défaut Q = Gln ; taille similaire, non glycosylé)

    Returns:
        Séquence mutée
    """
    seq = list(sequence.upper())
    idx = position - 1
    assert seq[idx] == 'N', f"La position {position} est '{seq[idx]}', pas 'N'"
    seq[idx] = replacement.upper()
    return ''.join(seq)

def add_glycosite(sequence: str, position: int, flanking_context: str = "S") -> str:
    """
    Introduit un site de N-glycosylation en mutant un résidu en Asn,
    et en s'assurant que X ≠ Pro et +2 = S/T.

    Args:
        position: Position (base 1) où introduire l'Asn
        flanking_context: 'S' ou 'T' à la position+2 (si modification nécessaire)
    """
    seq = list(sequence.upper())
    idx = position - 1

    # Mutation en Asn
    seq[idx] = 'N'

    # Vérifier que X+1 != Pro (muter en Ala si nécessaire)
    if idx + 1 < len(seq) and seq[idx + 1] == 'P':
        seq[idx + 1] = 'A'

    # Vérifier que X+2 = S ou T
    if idx + 2 < len(seq) and seq[idx + 2] not in ('S', 'T'):
        seq[idx + 2] = flanking_context

    return ''.join(seq)

Analyse O-glycosylation

Prédiction heuristique des hotspots d'O-glycosylation

def predict_o_glycosylation_hotspots(
    sequence: str,
    window: int = 7,
    min_st_fraction: float = 0.4,
    disallow_proline_next: bool = True
) -> List[dict]:
    """
    Score heuristique des hotspots d'O-glycosylation basé sur la densité locale de S/T.
    Ne remplace pas NetOGlyc ; à utiliser comme référence rapide.

    Règles :
    - La glycosylation O-GalNAc se regroupe sur les segments riches en Ser/Thr
    - Signaler les résidus Ser/Thr dans des fenêtres enrichies en S/T
    - Éviter les S/T immédiatement suivis de Pro (motifs TP/SP qui inhibent GalNAc-T)

    Args:
        window: Taille impaire de la fenêtre pour la densité locale de S/T
        min_st_fraction: Fraction minimale de S/T dans la fenêtre pour signaler un 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

Outils externes de glycoingénierie

1. NetOGlyc 4.0 (prédiction d'O-glycosylation)

Service web pour la prédiction haute précision des sites O-GalNAc :

import requests

def submit_netoglycv4(fasta_sequence: str) -> str:
    """
    Soumet la séquence au service web NetOGlyc 4.0.
    Retourne l'URL du job pour récupérer les résultats.

    Note : Utilise le service web DTU Health Tech. Les résultats prennent ~1-5 min.
    """
    url = "https://services.healthtech.dtu.dk/cgi-bin/webface2.cgi"
    # Soumission NetOGlyc (les paramètres peuvent varier selon la version du service web)
    # Recommandation : utiliser l'interface web directement pour la plupart des cas
    print("Soumettre la séquence à : https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/")
    return url

# Aussi : NetNGlyc pour la prédiction de N-glycosylation
# URL : https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/

2. GlycoSHIELD (Analyse du bouclier glycanique)

GlycoSHIELD greffe des bibliothèques de conformères glycaniques pré-simulés sur une structure protéique statique et évalue la surface protéique masquée par les glycanes, sans lancer de nouvelles simulations de dynamique moléculaire (Tsai et al., Cell 2024, doi:10.1016/j.cell.2024.01.034) :

GlycoSHIELD n'est pas sur PyPI — uv pip install glycoshield échoue. Il se présente sous la forme de trois scripts reposant sur un petit paquet glycoshield (nécessite numpy, scipy, matplotlib, MDAnalysis ; GlycoSASA.py nécessite aussi gmx de GROMACS dans PATH). Installation à partir du dépôt :

# Installation (GPL-3.0). Les bibliothèques de conformères glycaniques sont téléchargées séparément —
# voir glycan_library_downloader.py et GLYCAN_LIBRARY/ dans le dépôt.
git clone https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md.git
cd glycoshield-md
uv pip install -e .

# 1. Greffer les conformères glycaniques sur chaque séquon listé dans le fichier d'entrée.
#    Une ligne par site : <chaîne> <rés-1,rés,rés+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. Score de masquage par résidu à travers les ensembles greffés (rayons de sonde 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

À titre illustratif : les drapeaux proviennent des définitions argparse des scripts et du tutoriel en amont (N-cadhérine EC5 avec des glycanes Man5) ; ils n'ont pas été exécutés ici. --mode CG vérifie les collisions uniquement avec les atomes Cα et s'utilise avec --threshold 3.5 ; --mode All avec --threshold 0.7 est le réglage tous atomes.

3. GlycoWorkbench (Dessin/Analyse de structures glycaniques)

4. GlyConnect (Base de données glycanes-protéines)

  • URL : https://glyconnect.expasy.org/
  • Utilisation : Trouver des glycoprotéines et sites de glycosylation vérifiés expérimentalement
  • Requête : Par protéine (identifiant UniProt), structure glycanique, ou tissu
import requests

def query_glyconnect(uniprot_id: str) -> dict:
    """Interroge GlyConnect pour les données de glycosylation d'une protéine."""
    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 {}

# Exemple : interroger la glycosylation de l'EGFR
efgfr_glyco = query_glyconnect("P00533")

5. UniCarbKB (Base de données de structures glycaniques)

  • URL : https://unicarbkb.org/
  • Utilisation : Parcourir les structures glycaniques, rechercher par masse ou composition
  • Format : GlycoCT ou notation IUPAC

Stratégies clés de glycoingénierie

Pour les anticorps thérapeutiques

ObjectifStratégieNotes
Améliorer l'ADCCDéfucosylation à Fc Asn297L'IgG1 afucosylée a une liaison ~50× meilleure au FcγRIIIa
Réduire l'immunogénicitéSupprimer les glycanes non humainsÉliminer les épitopes α-Gal, NGNA
Améliorer la demi-vie PKSialylationLes glycanes sialylés prolongent la demi-vie
Réduire l'inflammationHypersialylationMécanisme anti-inflammatoire des IVIG
Créer un bouclier glycaniqueAjouter des N-glycosites en surfaceMasque les épitopes vulnérables (conception de vaccins)

Mutations courantes utilisées

MutationEffet
N297A/Q (IgG1)Supprime la glycosylation du Fc (aglycosyle)
N297D (IgG1)Supprime la glycosylation du Fc
S298A/E333A/K334AAugmente la liaison au FcγRIIIa
F243L (IgG1)Augmente la défucosylation
T299ASupprime la glycosylation du Fc

Notation des glycanes

Notation condensée IUPAC (abréviations des monosaccharides)

SymboleNom completType
GlcGlucoseHexose
GlcNAcN-AcétylglucosamineHexNAc
ManMannoseHexose
GalGalactoseHexose
FucFucoseDésoxyhexose
Neu5AcAcide N-acétylneuraminique (Acide sialique)Acide sialique
GalNAcN-AcétylgalactosamineHexNAc

Structure complexe d'un N-glycane

Glycane N bi-antenné complexe typique :
Neu5Ac-Gal-GlcNAc-Man\
                       Man-GlcNAc-GlcNAc-[Asn]
Neu5Ac-Gal-GlcNAc-Man/
(±Fucose central sur le GlcNAc le plus interne)

Bonnes pratiques

  • Commencez par NetNGlyc/NetOGlyc pour une prédiction computationnelle avant validation expérimentale
  • Vérifiez par spectrométrie de masse : Glycoprotéomique (Byonic, Mascot) pour le profilage glycanique site-spécifique
  • Considérez le contexte du site : Tous les séquons prédits ne sont pas réellement glycosylés (accessibilité, type cellulaire, conformation protéique)
  • Pour les anticorps : Le glycane Fc N297 est critique — caractérisez toujours ce site en premier
  • Utilisez GlyConnect pour vérifier si votre protéine d'intérêt possède des données de glycosylation vérifiées expérimentalement

Ressources supplémentaires

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data 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.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer 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.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive 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.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-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.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

Skills associés