CHAPTER 08 AI 비밀 ⏱ 약 14분

⚙️ 로제타폴드 안에서 무슨 일이 벌어지나

3-track network를 그림으로 풀어봅니다

📋이전 챕터에서 뭐 했죠?

제7장 — MSA — 진화 정보의 마법

MSA(다중서열정렬)가 알파폴드/로제타폴드의 비밀병기라는 걸 봤어요. 비슷한 단백질 수천 개를 가로로 정렬해서 공진화 패턴을 찾으면, "어떤 두 잔기가 3D 공간에서 가깝다"는 강력한 단서가 됩니다.

이제 RoseTTAFold라는 박스 안을 좀 들여다볼 차례예요. MSA가 들어가서 3D 좌표가 나오기까지, 중간에 어떤 일이 벌어지는지. 딥러닝 수식 같은 건 하나도 안 나옵니다. 정보가 어떤 형태로, 어떻게 흘러가는지만 그림으로 잡고 가요.

큰 그림 한 장

입력 FASTA 시퀀스 + MSA (찾은 친구들) "MGLSDGEW…" 3-track network (반복하면서 셋이 같이 정확해짐) 1D Track 시퀀스 + MSA 정보 2D Track 두 잔기 쌍 사이 거리/접촉 3D Track 실제 x, y, z 좌표 셋이 양방향으로 정보 교환 (N번 반복) 출력 PDB 파일 (3D 좌표) + pLDDT 신뢰도 한 줄로 정리하면 "시퀀스 정보 + 잔기 쌍 거리 행렬 + 3D 좌표 서로 주고받으면서 점점 정확해지게 만든다."
RoseTTAFold의 전체 흐름 — 입력에서 출력까지

1D Track — "각 잔기는 어떤 아미노산?"

1D 트랙은 시퀀스 자체를 다루는 곳이에요. 길이 N의 단백질이면 N개 아미노산 정보를 가지고 있고, 거기에 MSA 정보까지 같이 들어갑니다.

정확히는 1D 트랙이 다루는 표가 N행 × K열이에요. N은 단백질 길이, K는 MSA로 찾은 비슷한 시퀀스 개수. 즉 "1번 위치에서 사람은 M, 고래는 M, 말도 M, 쥐도 M…"이라는 식의 정보가 표로 들어갑니다.

모델은 이 표에서 "어떤 위치가 보존되어 있나", "어떤 위치가 자유롭게 바뀌나"를 학습해요. 보존된 위치는 보통 단백질 코어, 자유로운 위치는 보통 단백질 표면입니다.

2D Track — "두 잔기 사이 거리는 얼마?"

이게 진짜 핵심이에요. 2D 트랙은 N×N 행렬을 다룹니다. 각 칸 (i, j)에 들어가는 정보는:

  • i번째 잔기와 j번째 잔기가 얼마나 가까운가? (예: 4Å 이하면 직접 접촉)
  • 두 잔기 사이 거리의 확률 분포는?
  • 각도는 어떻게 되는가?
📐
Å(옹스트롬)은 1 / 10,000,000,000 미터입니다. 원자 크기 단위예요. 두 아미노산이 3D 공간에서 8Å 이내면 "가깝다", 4Å 이내면 "직접 접촉한다"고 봅니다.

이 N×N 행렬을 contact map(접촉 지도)이라고도 부릅니다. 단백질이 3D로 어떻게 접혔는지의 2D 청사진이에요.

공진화 패턴(이전 챕터 참고)이 바로 이 2D 트랙에 직접 영향을 줍니다. "잔기 15와 잔기 42가 같이 변하더라" → "그러니까 2D 행렬에서 (15, 42) 위치는 가까운 확률이 높다" 이런 식으로 변환되는 거죠.

3D Track — "각 원자는 어디에 있나?"

드디어 진짜 좌표. 3D 트랙은 모든 잔기의 x, y, z 위치를 직접 다룹니다. 초기엔 무작위 위치에서 시작해서, 점점 다듬어져 가요.

2D 트랙에서 "잔기 15와 42가 가깝다"고 알려주면, 3D 트랙은 그 둘의 좌표를 점점 가까워지게 옮깁니다. 반대로 3D 트랙에서 "이 단백질이 이런 모양이 됐다"고 보고하면, 2D 트랙도 "그럼 다른 쌍들의 거리도 다시 계산하자"라며 업데이트합니다.

핵심 아이디어: 세 트랙이 서로 회의함

🧠 회의실 비유

세 명의 동료가 같이 일하는 그림이에요.

  • 1D 박사: "내가 보기엔 이 잔기들이 중요해. MSA에서 보존도가 높아."
  • 2D 박사: "내 거리 행렬로는 잔기 15와 42, 23과 78이 가까이 있어야 해."
  • 3D 박사: "그럼 좌표를 이렇게 배치하면 어떨까?"

그러고 나면 다시 1D 박사가 "그 좌표로 보면 보존도가 이상한데?"하고 의문을 던지고, 2D 박사가 "거리 행렬 다시 계산해볼게"라며 응답하고… 이걸 수십~수백 번 반복합니다. 매번 셋이 합의에 가까워지면서, 최종적으로 매우 정확한 3D 구조에 도달해요.

알파폴드2와 다른 점

알파폴드2는 사실 1D + 2D 두 트랙 위주(Evoformer)이고, 3D 좌표는 마지막에 한 번에 만듭니다(Structure module). 로제타폴드는 처음부터 1D + 2D + 3D 셋이 동시에 돌아가요. 그래서 3-track입니다.

이 차이가 만드는 효과가 있어요. 로제타폴드는 메모리 사용량이 적고, 단백질 디자인 같은 응용에서 유리합니다. "3D 좌표를 처음부터 고려"하니까 좌표 자체에 제약을 걸기 쉽거든요.

출력: PDB 파일 + pLDDT

모델이 답을 내면 두 가지가 나옵니다.

1. PDB 파일 — 실제 좌표

모든 원자의 (x, y, z) 좌표가 적힌 텍스트 파일이에요. 다음 차수에서 PDB 포맷을 자세히 봅니다.

2. pLDDT — "이 잔기 위치, 얼마나 자신 있어?"

pLDDT predicted Local Distance Difference Test. AI가 자기 예측에 대해 잔기마다 "얼마나 자신 있는지" 점수를 매긴 것 (0~100).

잔기마다 점수가 다릅니다. 단백질의 코어(내부)는 pLDDT 90+ 같이 매우 자신 있게 예측하고, 유연한 loop 영역은 pLDDT 50 정도로 자신감이 떨어지기도 해요.

🎨
색깔로 표현: 단백질 시각화 때 보통 pLDDT 점수를 색깔로 그립니다. 파랑(90+) = 매우 자신 있음, 시안(70~90) = 자신 있음, 노랑(50~70) = 보통, 주황(50 미만) = 자신 없음. 다음 차수에서 직접 색칠된 단백질 보게 됩니다.

한 번 체크하고 가요

체크 1/3 Q1.

로제타폴드의 3개 트랙 사이의 정보 흐름은 어떻게 작동할까요?

체크 2/3 Q2.

2D 트랙이 다루는 핵심 정보는?

체크 3/3 Q3.

로제타폴드의 출력은 무엇일까요?

다음 챕터로 가기 전에

이론은 충분! 이제 실전 준비물 챙기러 갑시다

다음 챕터에서는 본격적으로 단백질 구조 예측을 돌리기 전에 뭐가 필요한지, 어떤 시퀀스로 첫 실습을 하면 좋은지 정리합니다. 실전 직전 마지막 점검이에요.