mcpField
A
alterlab-glycoengineering

alterlab-glycoengineering

github.com/alterlab-ieuその他7867 回インストール5 週間前に更新
リポジトリ

alterlab-glycoengineering について

alterlab-glycoengineering は、治療用タンパク質、抗体、ワクチン研究向けのタンパク質糖鎖解析・設計ガイドです。N-結合型糖鎖配列の検索、O-結合型糖鎖ホットスポットの経験的予測、関連データベースや外部ツールの利用方法を扱います。

主な機能

  1. 01N-結合型糖鎖配列モチーフの検索
  2. 02O-結合型糖鎖ホットスポットの経験的予測
  3. 03糖鎖予測・解析ツールの紹介
  4. 04治療用タンパク質の糖鎖設計戦略
  5. 05糖鎖表記法とデータベースの参照情報

活用シーン

  1. 01タンパク質配列の N-結合型糖鎖部位の確認
  2. 02治療用抗体の Fc 糖鎖の評価
  3. 03ワクチン抗原の糖鎖シールド設計
  4. 04先発品とバイオシミラーの糖鎖パターン比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-glycoengineering

インストール後、Claude Code で/alterlab-glycoengineeringを入力して読み込まれたか確認します。

同梱ファイルevals/evals.jsonreferences/glycan_databases.md

詳細

糖鎖工学

概要

糖鎖修飾は、タンパク質で最も一般的かつ複雑な翻訳後修飾(PTM)であり、ヒトの全タンパク質の50%以上に影響します。糖鎖は、タンパク質のフォールディング、安定性、免疫認識、受容体との相互作用、治療用タンパク質の薬物動態を調節します。糖鎖工学では、治療効果や安定性の向上、または免疫回避を目的として、糖鎖修飾パターンを合理的に改変します。

主な糖鎖修飾の種類:

  • N-結合型糖鎖修飾:N-X-[S/T]というシークオン内のアスパラギン(N)に結合します(X ≠ プロリン)。小胞体/ゴルジ体で生じます
  • O-結合型糖鎖修飾:セリン(S)またはスレオニン(T)に結合します。厳密なコンセンサスモチーフはなく、主にGalNAcから開始します

このスキルを使用する場面

次のような場合にこのスキルを使用します。

  • 抗体工学:ADCCやCDCの増強、または免疫原性の低減を目的として、Fc糖鎖修飾を最適化する
  • 治療用タンパク質の設計:半減期、安定性、免疫原性に影響する糖鎖修飾部位を特定する
  • ワクチン抗原の設計:保存されたエピトープに免疫応答を集中させるため、糖鎖シールドを設計する
  • バイオシミラーの特性評価:先行品とバイオシミラーの糖鎖パターンを比較する
  • 創薬標的の解析:糖鎖修飾は受容体への標的結合に影響するか
  • タンパク質の安定性:N-結合型糖鎖はタンパク質を安定化させることが多いため、安定化変異の対象となる部位を特定する
対象外
シナリオ代わりに使用するもの
糖鎖/炭水化物のケモインフォマティクス(構造、記述子、SMILES)alterlab-rdkit
質量分析の生データから糖ペプチドを特定するalterlab-pyopenms
糖タンパク質自体の3D構造を予測するalterlab-alphafold、alterlab-boltz
糖鎖シールドのMDシミュレーション(セットアップ、力場、軌跡)alterlab-molecular-dynamics
UniProtでタンパク質のキュレーション済み配列特徴を調べるalterlab-uniprot

N-結合型糖鎖修飾シークオンの解析

N-結合型糖鎖修飾部位のスキャン

N-結合型糖鎖修飾は、X ≠ プロリンであるシークオン N-X-[S/T] で生じます。

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 = []
    # Step by 1, not 3: adjacent sequons can overlap (e.g. NNST has a sequon at
    # both position 1 (N-N-S) and position 2 (N-S-T)); skipping ahead misses them.
    for i in range(len(seq) - 2):
        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'
            })
    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"))
N-結合型糖鎖修飾部位の変異
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-結合型糖鎖修飾の解析

O-結合型糖鎖修飾ホットスポットのヒューリスティック予測
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

外部の糖鎖工学ツール

1. NetOGlyc 4.0(O-結合型糖鎖修飾の予測)

高精度なO-GalNAc部位予測を行うウェブサービスです。

NetOGlyc 4.0には安定した公開REST APIがありません。CGI送信エンドポイントと フォームパラメーターは、ウェブサービスの改訂ごとに変更されます。確実に結果を得るには、 ウェブインターフェースからFASTAを送信し、結果テーブルをダウンロードしてください。

オフライン/バッチ実行向けのスタンドアロンパッケージも、各ページからダウンロードできます。 手早く事前スクリーニングするには、上記のインライン find_n_glycosylation_sequons を使用してください。

2. GlycoShield-MD(糖鎖シールド解析)

GlycoShield-MDは、MDシミュレーション中に糖鎖がタンパク質表面をどのように覆い隠すかを解析します。

GlycoSHIELDはPyPIにはありません(2026-09に確認済み。pip install glycoshield は404で失敗します)。プロジェクトのGitLabリポジトリからインストールしてください。インストール手順は同リポジトリのREADMEに従ってください。READMEには、必要な入力(糖タンパク質のトポロジー(PDB)、軌跡、シールドとして扱う糖鎖残基名)も記載されています。出力されるのは残基ごとのシールド率で、これを表面にマッピングできます。この値から、糖鎖が実際にどのエピトープを覆い隠すかが分かります。

3. GlycoWorkbench(糖鎖構造の描画/解析)
4. 実験で検証された糖鎖付加:GlyGen(および GlyConnect)

GlyGen(api.glygen.org)は、現在プログラムから利用できる方法です。 2026-09 に、通常の GET リクエストで JSON が返されることを確認しました。

import requests

def glygen_protein(uniprot_canonical_ac: str) -> dict:
    """Protein record incl. reported glycosylation sites. Accession is canonical, e.g. 'P00533-1'."""
    r = requests.get(f"https://api.glygen.org/protein/detail/{uniprot_canonical_ac}/", timeout=30)
    return r.json() if r.ok else {}

def glygen_glycan(glytoucan_ac: str) -> dict:
    """Glycan record: mass, monosaccharide count, IUPAC/WURCS, cross-references."""
    r = requests.get(f"https://api.glygen.org/glycan/detail/{glytoucan_ac}/", timeout=30)
    return r.json() if r.ok else {}

egfr = glygen_protein("P00533-1")

GlyConnect(https://glyconnect.expasy.org/)は、閲覧するための優れたキュレーションリソースとして引き続き利用できますが、公開 REST エンドポイントは不安定です。2026-09 時点で、/api/proteins/uniprot/{acc} は HTTP 500 を返し、Swagger 仕様は 404 になります。GlyConnect にはウェブインターフェースを、スクリプトからのアクセスには GlyGen を使用してください。

5. UniCarbKB(糖鎖構造データベース)
  • URL: https://www.unicarbkb.org/(`unicarbkb.org` のルートはここにリダイレクトされます)
  • 用途: 糖鎖構造の閲覧、質量または組成による検索
  • 形式: GlycoCT または IUPAC 表記法

主な糖鎖工学戦略

治療用抗体の場合
目標戦略備考
ADCC の増強Fc Asn297 の脱フコース化非フコシル化 IgG1 は FcγRIIIa への結合が約 50 倍向上します
免疫原性の低減非ヒト型糖鎖の除去α-Gal、NGNA エピトープを除去します
PK 半減期の延長シアル酸付加シアル酸付加糖鎖は半減期を延長します
炎症の低減高度シアル酸付加IVIG の抗炎症作用機序です
糖鎖シールドの作成表面への N-糖鎖付加部位の追加脆弱なエピトープを覆います(ワクチン設計)
よく使われる変異
変異効果
N297A/Q(IgG1)Fc の糖鎖付加を除去します(非糖鎖付加型)
N297D(IgG1)Fc の糖鎖付加を除去します
S298A/E333A/K334AFcγRIIIa への結合を増強します
F243L(IgG1)脱フコース化を促進します
T299AFc の糖鎖付加を除去します

糖鎖表記法

IUPAC 縮約表記法(単糖の略号)
記号正式名称種類
Glcグルコースヘキソース
GlcNAcN-アセチルグルコサミンHexNAc
Manマンノースヘキソース
Galガラクトースヘキソース
Fucフコースデオキシヘキソース
Neu5AcN-アセチルノイラミン酸(シアル酸)シアル酸
GalNAcN-アセチルガラクトサミンHexNAc
複合型 N-結合型糖鎖構造
Typical complex biantennary N-glycan:
Neu5Ac-Gal-GlcNAc-Man\
                       Man-GlcNAc-GlcNAc-[Asn]
Neu5Ac-Gal-GlcNAc-Man/
(±Core Fuc at innermost GlcNAc)

ベストプラクティス

  • 計算による予測には NetNGlyc/NetOGlyc から始めます。実験的検証の前に使用してください
  • 質量分析で検証します:部位特異的な糖鎖プロファイリングには、糖タンパク質オミクス(Byonic、Mascot)を使用します
  • 部位の状況を考慮します:予測されたシーケノンがすべて実際に糖鎖付加されるわけではありません(アクセス可能性、細胞種、タンパク質の立体構造)
  • 抗体の場合:Fc N297 糖鎖は重要です。この部位を必ず最初に解析してください
  • GlyConnect を使用して、目的のタンパク質に実験で検証された糖鎖付加データがあるか確認します

追加リソース

AlterLab Academic Skills スイートの一部です。

コメント