mcpField
G
glycoengineering

glycoengineering

github.com/crazymsnその他2335 回インストール22 週間前に更新
リポジトリ

glycoengineering について

Glycoengineeringは、タンパク質の糖鎖修飾を解析・設計する研究向けスキルです。タンパク質工学や生物医学の研究者を対象に、配列上の部位確認と糖鎖予測、データベース、設計戦略の情報をまとめています。

主な機能

  1. 01N型糖鎖修飾モチーフの検索
  2. 02O型糖鎖修飾ホットスポットの簡易評価
  3. 03外部糖鎖解析ツールの案内
  4. 04抗体の糖鎖工学戦略
  5. 05糖鎖表記のリファレンス

活用シーン

  1. 01治療用タンパク質の糖鎖修飾部位の評価
  2. 02抗体Fc糖鎖設計案の比較
  3. 03ワクチン抗原の糖鎖シールドの検討
  4. 04実験で確認されたタンパク質糖鎖データの検索

インストール

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

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

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

同梱ファイルreferences/glycan_databases.md

詳細

糖鎖工学

概要

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

主な糖鎖付加の種類:

  • N型糖鎖付加:モチーフN-X-[S/T](X ≠ プロリン)において、アスパラギン(N)に付加されます。ER/ゴルジ体で生じます。
  • O型糖鎖付加:セリン(S)またはスレオニン(T)に付加されます。厳密なコンセンサスモチーフはなく、主にGalNAcから開始されます。

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

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

  • 抗体工学:ADCCやCDCの向上、または免疫原性の低減を目的として、Fc糖鎖付加を最適化する
  • 治療用タンパク質の設計:半減期、安定性、または免疫原性に影響する糖鎖付加部位を特定する
  • ワクチン抗原の設計:糖鎖シールドを設計し、保存されたエピトープに免疫応答を集中させる
  • バイオシミラーの特性評価:参照品とバイオシミラーの糖鎖パターンを比較する
  • 創薬ターゲットの解析:糖鎖付加が受容体への標的結合に影響するかを調べる
  • タンパク質の安定性:N型糖鎖はタンパク質を安定化させることが多いため、安定化変異の対象となる部位を特定する

N型糖鎖付加モチーフの解析

N型糖鎖付加部位のスキャン

N型糖鎖付加は、モチーフ N-X-[S/T](X ≠ プロリン)で生じます。

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 = []
    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 residue context
            results.append({
                'position': i + 1,   # 1-based
                '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:
    """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部位予測を行うウェブサービスです。

import requests

def submit_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 cases
    print("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(糖鎖シールド解析)

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

# Installation
pip install glycoshield

# Basic usage: analyze glycan shielding from glycosylated protein MD trajectory
glycoshield \
    --topology glycoprotein.pdb \
    --trajectory glycoprotein.xtc \
    --glycan_resnames BGLCNA FUC \
    --output shielding_analysis/
3. GlycoWorkbench(糖鎖構造の描画/解析)
4. GlyConnect(糖鎖・タンパク質データベース)
  • URL:https://glyconnect.expasy.org/
  • 用途:実験的に検証された糖タンパク質と糖鎖付加部位の検索
  • 検索条件:タンパク質(UniProt ID)、糖鎖構造、または組織
import requests

def query_glyconnect(uniprot_id: str) -> dict:
    """Query GlyConnect for glycosylation data for a protein."""
    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 {}

# Example: query EGFR glycosylation
egfr_glyco = query_glyconnect("P00533")
5. UniCarbKB(糖鎖構造データベース)
  • URL:https://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を使用する:関心のあるタンパク質について、実験で確認された糖鎖修飾データがあるかどうかを確認します

追加リソース

コメント