Lesson 11 of 20
OpenMM — 사진 한 장에서 100나노초짜리 영상으로
제7장 「37도씨, 생리적 조건에서 100나노초. DFG-in 94.3%」
여기까지의 결론은 전부 사진 한 장에서 나왔습니다. AlphaFold 가 내놓은 좌표는 움직이지 않습니다.
그런데 단백질은 체온 37 °C 에서 끊임없이 떱니다. 사진에서 열려 있던 루프가, 실제로는 1 나노초 뒤에 도로 닫힐지도 모릅니다.
그걸 확인하는 도구가 분자동역학(Molecular Dynamics, MD) 이고, 이야기에서 쓴 프로그램이 OpenMM 입니다.
MD 가 하는 일은 딱 한 줄이다
F = m a
고등학교 물리 그대로입니다. 원자마다 받는 힘을 계산하고, 그 힘으로 가속도를 얻고, 아주 짧은 시간만큼 움직입니다. 그리고 반복합니다.
| 단계 | 무엇을 하나 |
|---|---|
| 1 | 지금 원자 위치에서 모든 원자쌍의 힘을 계산한다 |
| 2 | F = ma 로 가속도를 얻는다 |
| 3 | Δt 만큼 위치와 속도를 갱신한다 |
| 4 | 1로 돌아간다 |
이야기의 코드에서 Δt = 0.004 ps = 4 펨토초 입니다.
100 ns 를 채우려면 25,000,000 걸음이 필요합니다. 코드에 그대로 적혀 있습니다.
simulation.step(25_000_000) # 4fs x 25M steps = 100ns
이야기의 코드를 한 줄씩
| 코드 | 무슨 뜻 |
|---|---|
ForceField("amber14-all.xml", ...) |
역장(force field). 어떤 원자가 어떤 힘을 주고받는지 적어 놓은 규칙표. 실험과 양자계산으로 맞춰 놓은 근사다 |
tip3pfb.xml |
물 모형. 단백질만 띄워 놓으면 실제와 완전히 다르게 움직인다. 물을 넣어야 한다 |
nonbondedMethod=app.PME |
먼 거리 전기력을 다루는 방법. 없으면 전하가 있는 계에서 결과가 망가진다 |
nonbondedCutoff=1.0 nm |
1 nm 보다 먼 원자끼리는 직접 계산을 생략한다. 안 그러면 계산이 안 끝난다 |
LangevinMiddleIntegrator(310*kelvin, ...) |
310 K = 37 °C. 온도를 유지하면서 무작위 충돌까지 넣는 방식 |
310 K 라는 숫자가 이 시뮬레이션의 요점입니다. "체온에서도 그러한가" 를 묻는 것이니까요. 0 K 에서라면 아무것도 안 움직입니다.
이야기의 3.2 ± 0.4 Å 도 같은 방식입니다 — 프레임마다 잰 값의 평균과 표준편차입니다.
Python
Runs in your browser
그래서 이 시뮬레이션이 무엇을 확인했나
활성화 루프 RMSD 변동: 3.2 +- 0.4 A (WT 대비 지속적 차이 유지)
DFG-in 상태 유지율: 94.3%
D816V 펩타이드 표면 노출: 평균 RSA 0.79 +- 0.08
세 줄이 각각 앞의 세 강을 다시 확인합니다.
| 줄 | 확인한 것 | 원래 어디서 나왔나 |
|---|---|---|
| RMSD 3.2 ± 0.4 Å | 루프 차이가 정지 구조의 착시가 아니었다 | 8강 (3.87 Å) |
| DFG-in 94.3% | 켜진 자세가 계속 유지된다 | 9강 (67.8°) |
| RSA 0.79 ± 0.08 | 표면 노출이 흔들려도 유지된다 | 10강 (0.83) |
여기서 ± 기호가 새로 생긴 것에 주목하세요. 7~10강의 값은 숫자 하나였습니다. MD 를 거치자 숫자와 폭이 되었습니다. 그게 정지 사진과 영상의 차이입니다.
🤔 Check yourself
100 ns 시뮬레이션에서 DFG-in 이 94.3% 유지되었습니다. 이 숫자를 만든 것 중 하나가 아닌 것은?
Answer 94.3% 는 저장된 프레임 중 문턱 아래인 비율입니다.
문턱·저장 간격·버린 구간이 전부 이 숫자를 바꿉니다.
pLDDT 는 시뮬레이션의 출발 구조가 얼마나 믿을 만한지의 문제로,
중요하긴 하지만 94.3% 라는 값을 직접 계산하는 데 들어가지 않습니다.
🤔 Check yourself
MD 시뮬레이션 코드에서
constraints=app.HBonds 를 켜는 실용적 이유는?Answer 가장 빠른 움직임이 시간 간격의 상한을 정합니다.
수소가 붙은 결합의 떨림을 고정해서 없애면 더 큰 걸음을 걸을 수 있습니다.
4 fs 로 늘리면 같은 100 ns 를 절반의 계산으로 채웁니다.
대신 그 떨림 자체는 볼 수 없게 됩니다 — 거의 항상 감수할 만한 거래입니다.