Back to List

AlphaFold2가 50년 난제를 이렇게 삼켰다: MSA, Evoformer, 그리고 Triangle Attention

1972년 CASP1 이후 50년간 실험 유일이던 단백질 3D 구조 예측을 DeepMind가 어떻게 통째로 삼켰나. MSA 공진화 정보, Evoformer 48블록, IPA 3D 재구성까지 아키텍처를 뜯어봅니다.

Advanced
|
25min
|
Verified (2026-07-19)
AlphaFoldprotein structureColabFoldEvoformer
Progress0/120 (0%)

왜 이 편이 Fullstack의 진입점인가

BPD의 F1 티어(Foundation Model) 25편은 모두 이 편의 아이디어에서 뻗어 나옵니다. ESMFold도, RoseTTAFold2도, Boltz-2도 결국 AlphaFold2가 열어놓은 문 안에서 이 원리를 다르게 구현한 것입니다. 그러니 F1 첫 스텝은 다른 파운데이션 모델을 어떻게 다루는지가 아니라 AlphaFold2 자체입니다.

한 가지 원칙을 미리 정해봅시다. 우리는 DeepMind 논문을 처음부터 끝까지 옮기지 않습니다. 그건 원문 Nature 596, 583~589 (2021)가 이미 잘 해내고 있습니다. 이 편에서는 어느 지점에서 왜 그 선택이 필요했는가를 재구성해봅시다. 궁금하면 편 마지막 큐레이션 링크에서 정통 강의로 원문을 파고 오면 됩니다.

50년 난제라는 표현이 과장이 아닌 이유

1972년 Christian Anfinsen이 노벨 화학상을 받으며 남긴 문장이 있습니다.

"단백질의 3차원 구조는 그 아미노산 서열 안에 이미 결정되어 있다."

이 문장이 뜨거워 보이지만, "이미 결정되어 있다"와 "우리가 계산할 수 있다"는 완전히 다른 얘기입니다. 아미노산 300개짜리 작은 단백질도 이론적으로 접힘 가능한 구조가 1030010^{300} 개를 넘습니다. 우주 원자 수의 두 배가 넘는 수치입니다. 레빈탈의 역설(Levinthal's paradox) 이라 불렸습니다. 그런데 세포 안에서는 그게 몇 마이크로초 만에 정확히 하나의 안정 구조로 접힙니다.

이 이론적 불가능을 계산하기 위해 반세기 동안 두 캠프가 싸웠습니다.

  • 물리 기반(ab initio): 원자간 힘의 총합 자유에너지를 최소화. 정확하지만 소분자만 가능.
  • 템플릿 기반(homology modeling): 이미 실험으로 풀린 유사 서열의 구조를 뼈대로 활용. 실용적이지만 새 구조는 못 만듦.

CASP(Critical Assessment of Structure Prediction)라는 격년 대회에서 두 캠프의 최고 알고리즘이 겨루었습니다. 2018년 CASP13에서 DeepMind의 AlphaFold1이 처음 등장해 GDT_TS 점수 58점을 냈습니다. 기존 최고가 40점대였으니 놀라운 도약이었지만 실용성은 아직 부족했습니다.

2020년 CASP14에서 AlphaFold2가 등장했습니다. 평균 GDT_TS 92점. 실험 오차와 구별이 안 될 수준입니다. 50년 게임이 끝났습니다.

세 가지 결정적 아이디어

AlphaFold2 아키텍처를 뜯어볼 세 부분으로 자를 수 있습니다.

  1. MSA — 공진화의 정보를 안 잃기
  2. Evoformer — MSA와 pair representation을 교차 학습
  3. Structure module (IPA) — 3D 좌표로 재구성

하나씩 살펴봅시다.

1. MSA — 왜 다중 서열 정렬이 결정적인가

같은 단백질을 여러 종의 게놈에서 뽑아 정렬하면(M25에서 배웠던 MSA), 흥미로운 것이 보입니다. 어떤 두 자리는 항상 같이 변합니다. A 위치가 valine→isoleucine으로 바뀌면 B 위치도 반드시 함께 바뀝니다. 왜일까요? 그 두 자리가 3D에서 물리적으로 접촉하고 있기 때문입니다. 하나가 커지면 상대도 커져야 상호작용이 유지됩니다.

이걸 공진화(coevolution) 라고 부릅니다. MSA에서 통계적으로 이 공진화 시그널을 추출하면, 실험 없이도 어느 잔기가 3D에서 접촉하는지 확률적으로 알 수 있습니다. 이 아이디어 자체는 2011년경부터 EVfold/GREMLIN이 시도했습니다. AlphaFold2의 결정적 차이는, MSA 공진화 시그널을 딥러닝 아키텍처에 통째로 삼켜서 표현학습했다는 점입니다.

첫 단계에서 입력 서열을 대규모 데이터베이스(UniRef, MGnify, BFD)와 매핑해 MSA를 만듭니다. 이게 나중 실무에서 우리를 괴롭힐 병목입니다 — 원 AlphaFold2는 HHblits로 몇 시간, ColabFold는 MMseqs2로 몇 분. 왜 그런지는 실습 파트에서 다룹니다.

2. Evoformer — 아키텍처의 심장

Evoformer 블록은 두 가지 표현을 동시에 다룹니다.

  • MSA representation: s×L×cs \times L \times c (서열 ss개, 위치 LL개, 채널 cc개)
  • Pair representation: L×L×cL \times L \times c (모든 잔기 쌍의 관계)

두 표현이 서로에게 정보를 넘겨줍니다. MSA에서 공진화 시그널이 pair rep로 흘러가고, pair rep의 기하 제약이 MSA로 되돌아옵니다. 이걸 48블록 쌓습니다.

Evoformer의 진짜 트릭은 Triangle Attention입니다. 잔기 i,j,ki, j, k 세 개가 있을 때, 3D 공간에서 ii-jj 거리와 jj-kk 거리와 ii-kk 거리는 삼각 부등식을 만족해야 합니다. d(i,k)d(i,j)+d(j,k)d(i,k) \le d(i,j) + d(j,k). 아키텍처에 삼각 제약을 못 박아 넣기 위해, pair rep의 각 셀 (i,j)(i, j)가 업데이트될 때 세 번째 잔기 kk를 경유하는 정보를 반드시 참조합니다. 이게 결과의 기하학적 일관성을 극적으로 안정화합니다.

Transformer의 self-attention을 변형한 것인데, DryBench에서 다룬 "attention을 쓸 때 어떻게 도메인 지식을 아키텍처에 박아 넣을 수 있는가"의 교과서적 답입니다.

3. IPA (Invariant Point Attention) — 3D 좌표로

Evoformer가 뱉는 것은 여전히 벡터 표현입니다. 이걸 실제 3D 좌표(x, y, z)로 바꿔야 합니다. 여기서 회전·병진 불변성(equivariance)이라는 제약이 결정적입니다. 단백질을 전체적으로 회전하거나 이동해도 접힘 구조는 같아야 합니다. 표준 신경망은 이 성질을 자동으로 만족하지 않습니다.

Structure module의 IPA(Invariant Point Attention)는 각 잔기를 국소 좌표계(주쇄의 3원자 프레임)로 표현하고, attention 계산이 이 프레임 변환에 대해 불변으로 정의됩니다. 결과적으로 회전·병진에 안전한 3D 재구성이 가능합니다.

여기까지가 대략의 큰 그림입니다. 실제 논문은 세부에 훨씬 많은 트릭(recycling, IPA의 대칭, distogram head, MSA row/column attention 등)을 담고 있지만, 위 세 개념만 잡히면 이후 모든 모델(ESMFold, RoseTTAFold2, Boltz-2 등)이 이걸 어떻게 변형했는지 이해할 수 있습니다.

실습 — ColabFold로 인슐린 예측

원 AlphaFold2는 최소 32GB VRAM을 요구하지만, ColabFold(Sergey Ovchinnikov · Milot Mirdita)가 이를 무료 T4에 얹었습니다. 두 트릭이 결정적입니다.

  1. MMseqs2로 MSA 검색을 클라우드에서 대신 — HHblits 몇 시간을 몇 분으로.
  2. Recycling 감소 · 메모리 최적화 — VRAM 15GB에서 단량체 2500aa까지 예측 가능.

Colab 노트북 하나 열고 시작해봅시다.

python
# ColabFold 설치
!pip install -q "colabfold[alphafold-minus-jax] @ git+https://github.com/sokrypton/ColabFold"
!pip install --upgrade dm-haiku
# JAX GPU 버전 (Colab T4 CUDA에 맞게)
!pip install --upgrade "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
from colabfold.batch import run
# 인슐린 사슬 A (21 아미노산). 실제 논문 재현하고 싶으면 사슬 A + B 다이머로.
query_sequences = ["GIVEQCCTSICSLYQLENYCN"]
result = run(
query_sequences,
result_dir="./output",
num_models=5, # 5개 모델 앙상블
num_recycles=3, # recycle 3회
use_msa=True, # MMseqs2로 MSA 검색
use_templates=False, # 템플릿 없이 순수 예측
zip_results=False,
)
print(result)

몇 분 후 output/에 다섯 개의 PDB 파일이 나옵니다. 각 파일 헤더에는 pLDDT 점수(residue-level confidence, 0~100)와 PAE 행렬(pairwise alignment error)이 붙어 있습니다.

  • pLDDT > 90: 매우 높은 신뢰. 실험 구조와 거의 일치.
  • pLDDT 70~90: 좋은 예측. 국소 구조 신뢰 가능.
  • pLDDT 50~70: 조심. 유연 영역일 가능성.
  • pLDDT < 50: 대체로 disordered. 접힘 정보 없음.

Mol* Viewer(molstar.org)에 PDB를 올려 3D를 돌려봅시다. 파란색(고신뢰)이 많으면 예측이 안정적입니다.

자주 만나는 결함과 리스크

  • 다량체(multimer)를 단량체로 예측 — 인슐린 A사슬만 넣으면 실제 활성 구조를 놓칩니다. AlphaFold-Multimer 옵션이 필수입니다.
  • 긴 서열(단량체 2,500aa · 다량체 4,000aa 초과) 시도 — Colab T4에서 즉시 OOM. 서열을 도메인 단위로 자르거나 유료 GPU를 씁시다.
  • 리간드가 붙는 활성 구조 필요 — AlphaFold2는 리간드 없음 상태로 예측합니다. F07의 Boltz-2를 대신 씁시다.
  • AlphaFold DB에 이미 있는데 재예측alphafold.ebi.ac.uk에 이미 약 2억 개 UniProt 모델이 등록돼 있습니다. 검색 먼저.
  • "20억 모델"이라는 인터넷 오정보 — 정확히는 약 2억 개입니다. UniProt 대부분을 덮지만 2,700aa 이상 초대형 단백질은 누락됩니다.

CS 매핑

  • Transformer / Self-Attention: DryBench에서 다룬 Attention Is All You Need가 뿌리입니다. AlphaFold2는 그 위에 도메인 지식(삼각 부등식)을 얹은 산업 응용의 정점입니다.
  • Graph Neural Networks: 잔기 노드 + 접촉 엣지로 보면 GNN. Pair rep가 인접 행렬입니다.
  • Equivariant Neural Networks: 회전·병진 대칭을 아키텍처에 박아 넣는 것. IPA가 바이오 GNN 진화의 결정판입니다.
  • Recycling: 신경망 출력이 다시 입력에 결합되어 세 번 갱신됩니다. RNN의 시간축을 반복 개선으로 재해석한 것입니다.

다음 편으로 이어지는 갈래

  • F03: AlphaFold3 — Pairformer와 Diffusion 아키텍처. 리간드·DNA·RNA를 함께 예측.
  • F04: ColabFold + MMseqs2 실무 심화 — MSA 검색을 사설로 어떻게 최적화하나.
  • F05: 다량체 + 리간드 결합 — AlphaFold-Multimer의 세부.
  • F06: ESMFold — MSA 없이 서열만으로. 대량 처리에 강점.
  • F07: Boltz-2 — 구조와 결합 친화도를 동시에. FEP 대비 1,000배 빠른 신약 스크리닝.

더 깊게 파고 싶다면

본문은 BPD가 자체 재구성한 서술입니다. 원문과 정통 강의로 심화해봅시다.

  • 원 논문: Jumper et al. (2021), Highly accurate protein structure prediction with AlphaFold, Nature 596, 583–589. 아키텍처 세부의 SSoT입니다.
  • EMBL-EBI TrainingAlphaFold: Structural Bioinformatics Revolution (60분, 자막 자동번역 우수). EMBL과 DeepMind가 공동 제작한 정통 강의. Evoformer 블록을 도해로 훑습니다.
  • MIT 6.874 — Manolis Kellis 교수의 AlphaFold and Deep Learning Protein Structure (수동 자막). 딥러닝 관점에서 아키텍처를 깊게 파헤칩니다.
  • Stanford OnlineDeep Learning for Structural Biology (58분, 자막 완비). Equivariant Networks와 IPA의 선형대수학적 배경입니다.
  • Broad Institute MPG PrimerFrom Genetic Variation to Mechanism (AlphaFold3) (68분). AlphaFold3 이후 임상 유전체와의 연결을 다룹니다.
  • 참고 데이터베이스: alphafold.ebi.ac.uk (약 2억 모델), rcsb.org (실험 구조), molstar.org (웹 뷰어).

Colab T4에서 관심 있는 단백질 하나로 예측을 돌려보고, pLDDT와 PAE를 눈으로 확인하는 것이 다음 편 진입 전 최고의 준비입니다. 다음 편(F03)에서는 AlphaFold3가 이 아키텍처를 어떻게 Diffusion 기반으로 확장했는지 뜯어봅시다.

💬 Questions & Comments

0 comments

You can post without signing in. Guest comments cannot be edited or deleted by their author.

0/2000

Loading...