구조 두 개가 생겼습니다. 야생형과 변이형. 이제 얼마나 다른가를 숫자 하나로 말해야 합니다.
그 숫자가 RMSD(Root Mean Square Deviation) 입니다. 이름을 뒤에서부터 읽으면 그대로 계산식입니다.
Deviation(차이) → Square(제곱) → Mean(평균) → Root(제곱근)
대응하는 원자 쌍이 N 개 있을 때
RMSD = √( Σᵢ |aᵢ − bᵢ|² / N )
aᵢ 는 첫 구조의 i 번째 원자 위치, bᵢ 는 둘째 구조의 같은 원자 위치입니다.
단위는 길이 그대로 — 이 이야기에서는 옹스트롬(Å).
그냥 평균 어긋난 거리입니다. 제곱을 거치기 때문에 크게 어긋난 원자가 훨씬 크게 반영됩니다.
Cα 만 쓰는 이유
wt_atoms = [a for a in wt_struct.get_atoms() if a.name == "CA"]
아미노산 하나에는 원자가 십여 개 있습니다. 그중 Cα(알파 탄소)는
사슬의 등뼈에 해당하는 원자로, 아미노산마다 정확히 하나씩 있습니다.
Cα 만 쓸 때
잔기당 원자 하나 — 사슬이 어디로 지나가는가만 봅니다.
곁사슬이 흔들리는 잡음에 휘둘리지 않습니다. 구조 비교의 표준입니다.
모든 원자를 쓸 때
곁사슬 방향까지 봅니다. 값이 항상 더 크게 나옵니다.
같은 두 구조라도 all-atom RMSD 와 Cα RMSD 는 다릅니다 — 섞어 비교하면 안 됩니다.
두 구조를 직접 겹쳐 보세요. 어느 구간을 기준으로 겹치느냐에 따라 숫자가 어떻게 달라지는지 나옵니다.
Loading…
전체 RMSD 는 작고 루프만 큽니다. 이야기의 0.41 Å 과 3.87 Å 이 정확히 이 모양입니다.
PythonRuns in your browser
이야기의 두 숫자를 다시 읽는다
전체 RMSD: 0.41 A (전체 구조는 거의 동일)
활성화 루프 RMSD: 3.87 A (<- 이 부분만 완전히 다름)
📏
0.41 Å 은 얼마나 작나
탄소–탄소 결합 길이의 1/4. 같은 단백질을 두 번 예측해도 이만큼은 나옵니다.
차이가 없다는 뜻입니다
🚩
3.87 Å 은 얼마나 큰가
결합 두세 개 길이. 잔기 25개가 통째로 다른 쪽을 보고 있다는 뜻입니다
평균이 거짓말하는 방식이 여기 다 들어 있습니다.
355개 잔기 중 25개만 크게 움직였습니다. 제곱 평균을 355로 나누면 그 25개가 상당히 묻힙니다.
전체 RMSD 는 "어디가" 를 절대 알려 주지 않는다
그런데 이 두 숫자를 산수로 끝까지 따져 보면 한 가지가 더 나옵니다.
RMSD 는 제곱의 평균이라 구간별로 그냥 더해집니다.
RMSD²전체 = (n루프·RMSD²루프 + n나머지·RMSD²나머지) ÷ n전체
루프 26잔기가 3.87 Å 어긋났다면, 나머지 329잔기가 정확히 0 이어도
√(26 × 3.87² ÷ 355) = 1.05 Å
전체 RMSD 가 이보다 작아질 수학적 방법이 없습니다.
그래서 실제 분석에서는 늘 두 가지를 함께 봅니다 —
구간을 나눠서 각각 재거나, 잔기마다 따로 재서 그래프로 그리거나.
후자를 RMSF 라고 부르고 /dock 강의에서 다룹니다.
🤔 Check yourself
전체 RMSD 0.41 Å 와 활성화 루프 RMSD 3.87 Å 를 산수로 따져 보면 무엇을 알 수 있나요?
Answer RMSD² 는 구간별로 더해집니다. √(26 × 3.87² ÷ 355) = 1.05 Å 이 바닥값이라
0.41 Å 은 같은 겹치기에서 나올 수 없습니다.
실제로 이야기의 코드는 set_atoms 를 두 번 부릅니다 —
3.87 Å 은 루프끼리 따로 겹친 뒤 남은 차이입니다.
틀린 게 아니라 다른 물음에 대한 답입니다.
🤔 Check yourself
논문 A 는 'RMSD 1.2 Å', 논문 B 는 'RMSD 2.8 Å' 이라고 적었습니다. B 의 구조가 더 많이 달라졌다고 결론 내려도 될까요?
Answer RMSD 는 규약이 정해진 값이 아닙니다. Cα 만 썼는지 전체 원자를 썼는지,
전체를 겹쳤는지 도메인만 겹쳤는지, 잔기가 50개인지 500개인지에 따라 값이 몇 배씩 달라집니다.
숫자를 비교하려면 같은 방식으로 다시 계산해야 합니다.