关于 alterlab-glycoengineering
alterlab-glycoengineering 是关于蛋白质糖基化分析与工程设计的技能指南,面向治疗性蛋白、抗体和疫苗研究。内容包括 N-糖基化位点扫描、O-糖基化热点启发式预测,以及相关数据库和外部工具的使用。
主要功能
- 01扫描 N-糖基化序列基序
- 02启发式预测 O-糖基化热点
- 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 ≠ 脯氨酸;发生于 ER/Golgi
- O-糖基化:连接到丝氨酸(S)或苏氨酸(T)上;没有严格的共识基序;主要由 GalNAc 起始
适用场景
在以下情况下使用此技能:
- 抗体工程:优化 Fc 糖基化,以增强 ADCC、CDC 或降低免疫原性
- 治疗性蛋白设计:识别会影响半衰期、稳定性或免疫原性的糖基化位点
- 疫苗抗原设计:设计聚糖屏蔽层,使免疫反应聚焦于保守表位
- 生物类似药表征:比较参照药与生物类似药之间的聚糖模式
- 药物靶点分析:糖基化是否会影响受体的靶点结合?
- 蛋白质稳定性:N-聚糖通常可稳定蛋白质;识别可用于稳定性突变的位点
不适用场景
| 场景 | 请改用 |
|---|---|
| 聚糖/碳水化合物化学信息学(结构、描述符、SMILES) | alterlab-rdkit |
| 从质谱原始数据中识别糖肽 | alterlab-pyopenms |
| 预测糖蛋白本身的 3D 结构 | alterlab-alphafold、alterlab-boltz |
| 对聚糖屏蔽层进行 MD 模拟(设置、力场、轨迹) | alterlab-molecular-dynamics |
| 在 UniProt 中查找蛋白质经过整理的序列特征 | alterlab-uniprot |
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 = []
# 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 位点的 Web 服务:
- URL:https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/
- 输入:FASTA 蛋白质序列
- 输出:各残基的 O-糖基化概率评分
- 方法:使用经过实验验证的 O-GalNAc 位点训练的神经网络
NetOGlyc 4.0 没有稳定的公共 REST API——CGI 提交端点及其表单参数会随 Web 服务版本更新而变化。要获得可靠结果,请在 Web 界面提交 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)。请按照项目自身的 README,从项目的 GitLab 仓库安装;README 还说明了所需输入:糖蛋白拓扑结构(PDB)、轨迹,以及要视为屏蔽层的聚糖残基名称。输出为各残基的屏蔽比例,可映射到蛋白质表面上——这个数值能告诉你聚糖实际遮挡了哪些表位。
3. GlycoWorkbench(聚糖结构绘制/分析)
- URL:https://github.com/glycoinfo/eurocarbdb
- 用途:绘制聚糖结构、计算质量、注释质谱
- 格式: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 功能糖组学:http://www.functionalglycomics.org/
- DTU Health Tech 服务(NetNGlyc、NetOGlyc):https://services.healthtech.dtu.dk/
- GlycoWorkbench:https://glycoworkbench.software.informer.com/
- 综述:Apweiler R 等(1999)Biochim Biophys Acta。PMID: 10580125
- 治疗性糖工程综述:Jefferis R(2009)Nature Reviews Drug Discovery。PMID: 19247305
属于 AlterLab Academic Skills 套件。