alterlab-glycoengineering について
alterlab-glycoengineering は、治療用タンパク質、抗体、ワクチン研究向けのタンパク質糖鎖解析・設計ガイドです。N-結合型糖鎖配列の検索、O-結合型糖鎖ホットスポットの経験的予測、関連データベースや外部ツールの利用方法を扱います。
主な機能
- 01N-結合型糖鎖配列モチーフの検索
- 02O-結合型糖鎖ホットスポットの経験的予測
- 03糖鎖予測・解析ツールの紹介
- 04治療用タンパク質の糖鎖設計戦略
- 05糖鎖表記法とデータベースの参照情報
活用シーン
- 01タンパク質配列の N-結合型糖鎖部位の確認
- 02治療用抗体の Fc 糖鎖の評価
- 03ワクチン抗原の糖鎖シールド設計
- 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部位予測を行うウェブサービスです。
- URL: https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
- 入力: FASTA形式のタンパク質配列
- 出力: 残基ごとのO-結合型糖鎖修飾確率スコア
- 手法: 実験で検証されたO-GalNAc部位を用いて学習したニューラルネットワーク
NetOGlyc 4.0には安定した公開REST APIがありません。CGI送信エンドポイントと フォームパラメーターは、ウェブサービスの改訂ごとに変更されます。確実に結果を得るには、 ウェブインターフェースからFASTAを送信し、結果テーブルをダウンロードしてください。
- NetOGlyc 4.0(O-GalNAc):https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
- NetNGlyc 1.0(N-結合型糖鎖修飾):https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
オフライン/バッチ実行向けのスタンドアロンパッケージも、各ページからダウンロードできます。
手早く事前スクリーニングするには、上記のインライン find_n_glycosylation_sequons を使用してください。
2. GlycoShield-MD(糖鎖シールド解析)
GlycoShield-MDは、MDシミュレーション中に糖鎖がタンパク質表面をどのように覆い隠すかを解析します。
- URL: https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md/
- 用途: MD軌跡に沿ったタンパク質表面上の糖鎖シールドをマッピングする
- 出力: 残基ごとのシールド率、可視化
GlycoSHIELDはPyPIにはありません(2026-09に確認済み。pip install glycoshield は404で失敗します)。プロジェクトのGitLabリポジトリからインストールしてください。インストール手順は同リポジトリのREADMEに従ってください。READMEには、必要な入力(糖タンパク質のトポロジー(PDB)、軌跡、シールドとして扱う糖鎖残基名)も記載されています。出力されるのは残基ごとのシールド率で、これを表面にマッピングできます。この値から、糖鎖が実際にどのエピトープを覆い隠すかが分かります。
3. GlycoWorkbench(糖鎖構造の描画/解析)
- URL: https://github.com/glycoinfo/eurocarbdb
- 用途: 糖鎖構造の描画、質量の計算、MS スペクトルの注釈付け
- 形式: GlycoCT、IUPAC 縮約糖鎖表記法
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/K334A | FcγRIIIa への結合を増強します |
| F243L(IgG1) | 脱フコース化を促進します |
| T299A | Fc の糖鎖付加を除去します |
糖鎖表記法
IUPAC 縮約表記法(単糖の略号)
| 記号 | 正式名称 | 種類 |
|---|---|---|
| Glc | グルコース | ヘキソース |
| GlcNAc | N-アセチルグルコサミン | HexNAc |
| Man | マンノース | ヘキソース |
| Gal | ガラクトース | ヘキソース |
| Fuc | フコース | デオキシヘキソース |
| Neu5Ac | N-アセチルノイラミン酸(シアル酸) | シアル酸 |
| GalNAc | N-アセチルガラクトサミン | 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 を使用して、目的のタンパク質に実験で検証された糖鎖付加データがあるか確認します
追加リソース
- GlyTouCan(糖鎖構造リポジトリ):https://glytoucan.org/
- GlyConnect: https://glyconnect.expasy.org/
- CFG Functional Glycomics: http://www.functionalglycomics.org/
- DTU Health Tech サーバー(NetNGlyc、NetOGlyc):https://services.healthtech.dtu.dk/
- GlycoWorkbench: https://glycoworkbench.software.informer.com/
- レビュー:Apweiler R et al. (1999) Biochim Biophys Acta. PMID: 10580125
- 治療用糖鎖工学のレビュー:Jefferis R (2009) Nature Reviews Drug Discovery. PMID: 19247305
AlterLab Academic Skills スイートの一部です。