글리코엔지니어링
개요
글리코실화는 단백질의 가장 흔하고 복잡한 번역 후 변형(PTM)으로, 모든 인간 단백질의 50% 이상에 영향을 미칩니다. 글리칸은 단백질 접힘, 안정성, 면역 인식, 수용체 상호작용 및 치료용 단백질의 약동학을 조절합니다. 글리코엔지니어링은 치료 효능, 안정성 또는 면역 회피를 개선하기 위해 글리코실화 패턴을 합리적으로 변형하는 것을 포함합니다.
두 가지 주요 글리코실화 유형:
- N-글리코실화: 시퀀온 N-X-S/T에서 아스파라긴(N)에 부착; 소포체/골지체에서 발생
- 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]:
"""
단백질 서열에서 표준 N-연결 글리코실화 시퀀온을 스캔합니다.
모티프: N-X-[S/T], X ≠ 프롤린
Args:
sequence: 단일 문자 아미노산 서열
Returns:
위치(1부터 시작), 모티프 및 컨텍스트가 포함된 dict 목록
"""
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부터 시작
'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:
"""
Asn → Gln(보존적) 치환을 통해 N-글리코실화 부위를 제거합니다.
Args:
sequence: 단백질 서열
position: 돌연변이할 Asn의 1부터 시작하는 위치
replacement: 치환할 아미노산 (기본값 Q = Gln; 유사한 크기, 글리코실화되지 않음)
Returns:
돌연변이된 서열
"""
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:
"""
잔기를 Asn으로 돌연변이시키고, X ≠ Pro 및 +2 = S/T를 보장하여
N-글리코실화 부위를 도입합니다.
Args:
position: Asn을 도입할 1부터 시작하는 위치
flanking_context: 위치+2의 'S' 또는 'T' (수정이 필요한 경우)
"""
seq = list(sequence.upper())
idx = position - 1
# Asn으로 돌연변이
seq[idx] = 'N'
# X+1 != Pro 확인 (필요한 경우 Ala로 돌연변이)
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 바로 뒤에 Pro가 오는 경우(TP/SP 모티프는 GalNAc-T를 억제)를 피합니다.
Args:
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
# 또한: N-글리코실화 예측을 위한 NetNGlyc
# URL: https://services.healthtech.dtu.dk/services/NetNGlyc-1.0/
2. GlycoSHIELD (글리칸 쉴드 분석)
GlycoSHIELD는 미리 시뮬레이션된 글리칸 컴포머의 라이브러리를 정적 단백질 구조에 그래프팅하고 글리칸이 단백질 표면의 얼마나 많은 부분을 쉴드하는지 새로운 MD를 실행하지 않고 점수를 매깁니다 (Tsai et al., 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에 GROMACS의 gmx도 필요). 체크아웃에서 설치:
# 설치 (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. 입력 파일에 나열된 각 시퀀온에 글리칸 컴포머를 그래프팅합니다.
# 부위당 한 줄: <체인> <res-1,res,res+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 정의와 업스트림 튜토리얼(N-카드헤린 EC5 with Man5 글리칸)에서 가져온 것입니다. 여기서 실행되지 않았습니다. --mode CG는 Cα 원자에 대해서만 충돌을 확인하고 --threshold 3.5와 쌍을 이룹니다. --mode All과 --threshold 0.7은 전체 원자 설정입니다.
3. GlycoWorkbench (글리칸 구조 그리기/분석)
- URL: https://www.eurocarbdb.org/project/glycoworkbench
- 용도: 글리칸 구조 그리기, 질량 계산, MS 스펙트럼 주석
- 형식: 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 글리코실화 질의
eggfr_glyco = query_glyconnect("P00533")
5. UniCarbKB (글리칸 구조 데이터베이스)
- URL: https://unicarbkb.org/
- 용도: 글리칸 구조 탐색, 질량 또는 조성별 검색
- 형식: GlycoCT 또는 IUPAC 표기법
주요 글리코엔지니어링 전략
치료용 항체의 경우
| 목표 | 전략 | 참고 사항 |
|---|---|---|
| ADCC 향상 | Fc Asn297 탈푸코실화 | Afucosylated IgG1은 ~50배 더 나은 FcγRIIIa 결합 |
| 면역원성 감소 | 비인간 글리칸 제거 | α-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-글리칸 구조
일반적인 복합 이중안테나 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 기능적 글리코믹스: 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: 10564035
- 치료용 글리코엔지니어링 리뷰: Jefferis R (2009) Nature Reviews Drug Discovery. PMID: 19448661