무엇이 그렇게 어려웠나
22년 동안의 정체기를 한 발 떨어져 보자. 도대체 무엇이 그렇게 어려웠을까?
📖 어려움 1 — 탐색 공간이 너무 크다
Levinthal 역설에서 봤듯 가능한 구조의 수가 천문학적.
- 중간 크기 단백질: 약 1040 가능한 구조
- 모든 가능성 탐색 불가능 → 어떤 휴리스틱이 필요
- 그런데 어떤 휴리스틱이 좋은지 알기 어려움
📖 어려움 2 — 에너지 함수의 정확도
"가장 에너지 낮은 구조를 찾는다"는 단순 명제 뒤에 큰 문제.
- 실제 단백질의 에너지를 정확히 계산하는 게 어려움
- force field들은 모두 근사 — 양자 효과, 물 분자 처리 등에 단순화
- 그래서 "에너지 함수의 최저점"이 실제 정답 구조랑 일치 안 할 수도
- "잘못된 구조가 더 낮은 에너지로 평가되는" 함정에 빠짐
📖 어려움 3 — 진화 정보의 활용
같은 단백질을 다양한 종에서 비교하면 진화적 단서가 나온다.
- 한 위치의 아미노산이 종마다 다르면 → 별로 중요하지 않은 위치
- 한 위치가 모든 종에서 같으면 → 매우 중요한 위치 (active site 가능성)
- 두 위치의 변이가 "함께" 일어나면 → 그 두 위치가 3D 공간에서 가까이 있을 가능성
이런 진화 정보를 활용하는 게 핵심인데, 2010년대 초까지는 활용 방법이 미숙했다.
🎯 어려움 4 — 모든 정보를 통합하는 게 어려움
2010년대까지의 접근들은 각자 강점이 있지만 통합이 어려웠다.
- 물리 (ab initio): 정확한 원자 모델 — 하지만 매우 느림
- 비교 (homology): 빠르고 정확 — 하지만 비슷한 템플릿 필요
- fold 인식 (threading): 새로운 단백질에도 적용 — 하지만 점수 함수 부정확
- 진화 정보 (MSA): 강력한 신호 — 하지만 어떻게 구조 예측에 쓸지 불명확
각자 따로 — 통합 시너지 부족.
📖 어려움 5 — 학습 데이터의 부족 vs 풍부함 사이의 미스매치
흥미로운 관찰 — 2010년대 후반 시점:
- 알려진 서열 데이터: 약 1억 5천만 개 (많음)
- 알려진 구조 데이터: 약 13만 개 (적음)
- 비율: 약 0.1%
전통적 방법은 구조 데이터에만 의존했다 — 그래서 학습 데이터가 적었다.
그런데 서열 데이터가 천 배 더 많다. 거기서 정보를 뽑아낼 수 있다면? — 그게 알파폴드의 핵심 통찰 중 하나다.
💡 정리 — 패러다임의 한계
22년간의 정체는 게으름 때문이 아니었다. 각 접근의 본질적 한계 때문이었다.
- 물리 기반 — 너무 느림, force field 부정확
- 비교 기반 — 템플릿 없으면 무력
- fold 인식 — 새 fold에 무력
- 전체적으로 — 서열 데이터의 풍부함 미활용
이 한계를 모두 한 번에 깨려면 — 새로운 패러다임이 필요했다. 그게 딥러닝이었다.
딥러닝이 어떻게 이 한계들을 한 번에 깨는지는 PART 11부터 본격적으로 다룬다.