糖基工程 是做什么的?
概述
糖基化是蛋白质最常见且最复杂的翻译后修饰(PTM),影响超过50%的人类蛋白质。聚糖调节蛋白质的折叠、稳定性、免疫识别、受体相互作用以及治疗性蛋白质的药代动力学。糖基工程涉及合理修改糖基化模式,以提高治疗功效、稳定性或免疫逃逸能力。
两种主要的糖基化类型:
- N-糖基化:附着于天冬酰胺(N)的序列基序N-X-[S/T]上,其中X≠脯氨酸;发生在内质网/高尔基体中
- O-糖基化:附着于丝氨酸(S)或苏氨酸(T)上;无严格共有基序;主要是GalNAc起始
何时使用此技能
在以下情况下使用此技能:
- 抗体工程:优化Fc糖基化以增强ADCC、CDC或降低免疫原性
- 治疗性蛋白质设计:识别影响半衰期、稳定性或免疫原性的糖基化位点
- 疫苗抗原设计:工程改造聚糖屏蔽,使免疫反应集中于保守表位
- 生物类似药表征:比较参考药和生物类似药之间的聚糖模式
- 药物靶点分析:糖基化是否影响受体的靶点结合?
- 蛋白质稳定性: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]:
"""
扫描蛋白质序列以寻找规范的N-连接糖基化序列基序。
基序:N-X-[S/T],其中X≠脯氨酸。
参数:
sequence: 单字母氨基酸序列
返回:
包含位置(1-based)、基序和上下文的字典列表
"""
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残基上下文
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:
"""生成N-糖基化位点的研究日志摘要。"""
sequons = find_n_glycosylation_sequons(sequence)
lines = [f"# N-糖基化序列基序分析:{protein_name or '蛋白质'}"]
lines.append(f"序列长度:{len(sequence)}")
lines.append(f"总N-糖基化序列基序数:{len(sequons)}")
if sequons:
lines.append(f"\nN-X-S位点:{sum(1 for s in sequons if s['sequon_type'] == 'NXS')}")
lines.append(f"N-X-T位点:{sum(1 for s in sequons if s['sequon_type'] == 'NXT')}")
lines.append(f"\n位点详情:")
for s in sequons:
lines.append(f" 位置 {s['position']}:{s['motif']}(上下文:...{s['context']}...)")
else:
lines.append("未检测到规范N-糖基化序列基序。")
return "\n".join(lines)
# 示例:IgG1 Fc区
fc_sequence = "APELLGGPSVFLFPPKPKDTLMISRTPEVTCVVVDVSHEDPEVKFNWYVDGVEVHNAKTKPREEQYNSTYRVVSVLTVLHQDWLNGKEYKCKVSNKALPAPIEKTISKAKGQPREPQVYTLPPSREEMTKNQVSLTCLVKGFYPSDIAVEWESNGQPENNYKTTPPVLDSDGSFFLYSKLTVDKSRWQQGNVFSCSVMHEALHNHYTQKSLSLSPGK"
print(summarize_glycosylation_sites(fc_sequence, "IgG1 Fc"))
突变N-糖基化位点
def eliminate_glycosite(sequence: str, position: int, replacement: str = "Q") -> str:
"""
通过将天冬酰胺替换为谷氨酰胺(保守突变)来消除N-糖基化位点。
参数:
sequence: 蛋白质序列
position: 待突变天冬酰胺的1-based位置
replacement: 替换的氨基酸(默认Q=Gln;大小相似,不被糖基化)
返回:
突变后的序列
"""
seq = list(sequence.upper())
idx = position - 1
assert seq[idx] == 'N', f"位置 {position} 是 '{seq[idx]}',不是 'N'"
seq[idx] = replacement.upper()
return ''.join(seq)
def add_glycosite(sequence: str, position: int, flanking_context: str = "S") -> str:
"""
通过将一个残基突变为天冬酰胺,并确保X≠脯氨酸且+2位为S/T,来引入N-糖基化位点。
参数:
position: 引入天冬酰胺的1-based位置
flanking_context: 位置+2处的'S'或'T'(如果需要修改)
"""
seq = list(sequence.upper())
idx = position - 1
# 突变为天冬酰胺
seq[idx] = 'N'
# 确保X+1不是脯氨酸(必要时突变为丙氨酸)
if idx + 1 < len(seq) and seq[idx + 1] == 'P':
seq[idx + 1] = 'A'
# 确保X+2 = S或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]:
"""
基于局部S/T密度的启发式O-糖基化热点评分。
不能替代NetOGlyc;用作快速基线。
规则:
- O-GalNAc糖基化聚集在富含Ser/Thr的片段上
- 标记富含S/T的窗口中的Ser/Thr残基
- 避免紧接在脯氨酸之后的S/T(TP/SP基序抑制GalNAc-T)
参数:
window: 用于局部S/T密度的奇数窗口大小
min_st_fraction: 窗口中标记位点的最小S/T分数
"""
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位点训练的神经网络
import requests
def submit_netoglycv4(fasta_sequence: str) -> str:
"""
向NetOGlyc 4.0网络服务提交序列。
返回用于结果检索的作业URL。
注意:这使用DTU Health Tech网络服务。结果大约需要1-5分钟。
"""
url = "https://services.healthtech.dtu.dk/cgi-bin/webface2.cgi"
# NetOGlyc提交(参数可能因网络服务版本而异)
# 建议在大多数情况下直接使用网络界面
print("提交序列至:https://services.healthtech.dtu.dk/services/NetOGlyc-4.0/")
return url
# 另外:NetNGlyc用于N-糖基化预测
# URL:https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
2. GlycoSHIELD(聚糖屏蔽分析)
GlycoSHIELD 将预模拟的聚糖构象体库移植到静态蛋白质结构上,并评分聚糖屏蔽了多少蛋白质表面,无需运行新的分子动力学模拟(Tsai 等人,Cell 2024, doi:10.1016/j.cell.2024.01.034):
- URL:https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md/(网络应用:https://glycoshield.eu)
- 用途:在糖蛋白上建模聚糖屏蔽并绘制每个残基的屏蔽图
- 输出:每个位点的糖基化PDB/XTC系综、每个残基的屏蔽图、在B因子列中包含屏蔽信息的PDB文件
GlycoSHIELD 不在PyPI上 — uv pip install glycoshield 会失败。它以三个脚本的形式提供,位于一个小型 glycoshield 包之上(需要 numpy, scipy, matplotlib, MDAnalysis;GlycoSASA.py 还需要 PATH 上的 gmx 来自GROMACS)。从检出的仓库安装:
# 安装(GPL-3.0)。聚糖构象体库需单独下载 —
# 请参见 glycan_library_downloader.py 和仓库中的 GLYCAN_LIBRARY/ 目录。
git clone https://gitlab.mpcdf.mpg.de/dioscuri-biophysics/glycoshield-md.git
cd glycoshield-md
uv pip install -e .
# 1. 将聚糖构象体移植到输入文件中列出的每个序列基序上。
# 每行一个位点:<链> <残基-1,残基,残基+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. 跨移植系综的每个残基屏蔽分数(探针半径以nm为单位)
python GlycoSASA.py --pdblist A_463.pdb,A_492.pdb --xtclist A_463.xtc,A_492.xtc \
--probelist 0.14,0.25 --plottrace
说明:这些标志来自脚本的argparse定义和上游教程(具有Man5聚糖的N-钙黏蛋白EC5);此处未实际运行。--mode CG 仅检查与Cα原子的冲突,并与 --threshold 3.5 配对;--mode All 配合 --threshold 0.7 是全原子设置。
3. GlycoWorkbench(聚糖结构绘制/分析)
- URL:https://www.eurocarbdb.org/project/glycoworkbench
- 用途:绘制聚糖结构,计算质量,注释质谱图
- 格式:GlycoCT,IUPAC紧缩聚糖表示法
4. GlyConnect(聚糖-蛋白质数据库)
- URL:https://glyconnect.expasy.org/
- 用途:查找实验验证的糖蛋白和糖基化位点
- 查询方式:按蛋白质(UniProt ID)、聚糖结构或组织查询
import requests
def query_glyconnect(uniprot_id: str) -> dict:
"""查询GlyConnect以获取蛋白质的糖基化数据。"""
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 {}
# 示例:查询EGFR糖基化
egfr_glyco = query_glyconnect("P00533")
5. UniCarbKB(聚糖结构数据库)
- URL:https://unicarbkb.org/
- 用途:浏览聚糖结构,按质量或组成搜索
- 格式:GlycoCT 或 IUPAC 表示法
关键的糖基工程策略
对于治疗性抗体
| 目标 | 策略 | 备注 |
|---|---|---|
| 增强ADCC | Fc Asn297位点去岩藻糖基化 | 非岩藻糖基化的IgG1对FcγRIIIa的结合力增强约50倍 |
| 降低免疫原性 | 去除非人源聚糖 | 消除α-Gal、NGNA表位 |
| 改善药代动力学半衰期 | 唾液酸化 | 唾液酸化的聚糖可延长半衰期 |
| 减少炎症 | 高度唾液酸化 | 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-聚糖结构
典型的复杂双天线N-聚糖:
Neu5Ac-Gal-GlcNAc-Man\
Man-GlcNAc-GlcNAc-[Asn]
Neu5Ac-Gal-GlcNAc-Man/
(最内侧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 等人(1999)Biochim Biophys Acta. PMID: 10564035
- 治疗性糖基工程综述:Jefferis R(2009)Nature Reviews Drug Discovery. PMID: 19448661