Skip to main content
Summary

예측이 끝난 뒤, 진짜 작업이 시작된다

AlphaFold나 ColabFold가 구조 예측을 끝내면 화면에는 그럴듯한 단백질 그림이 나타난다. 나선은 매끈하게 감겨 있고, 베타 가닥은 가지런히 누워 있으며, 색깔까지 입혀져 있다. 이 순간 가장 위험한 착각이 생긴다. "구조가 나왔으니 이제 끝났다."

실제로는 반대다. 예측이 끝난 직후부터 과학자의 일이 시작된다. 결과 폴더 안에는 구조 파일, 신뢰도 파일, MSA 파일, 실행 로그, 시간 기록, 때로는 그림 파일과 중간 계산 파일이 함께 들어 있다. 이 파일들을 읽을 줄 알아야 예측 구조가 단순한 이미지에서 연구 데이터로 바뀐다.

AlphaFold 2 계열의 기본 출력은 예측 구조와 신뢰도 지표다. 구조는 보통 PDB 또는 mmCIF 형식으로 저장되고, pLDDT 같은 국소 신뢰도는 구조 파일 안의 B-factor 필드에 들어간다. PAE는 별도의 JSON 파일이나 pickle 파일에 저장되어 후속 분석과 시각화에 쓰인다.1 ColabFold도 이 흐름을 이어받지만, 버전과 실행 방식에 따라 파일 이름이 조금씩 다르다. 그러므로 이 장에서는 "파일 이름을 통째로 외우는 법"이 아니라 "파일의 역할을 알아보는 법"을 중심으로 읽어 보자.

AlphaFold 결과 파일과 시각화 도구 읽기

결과 폴더를 처음 열 때의 순서

예측 결과 폴더를 열면 처음에는 파일 이름이 낯설다. ranked_0.pdb, unrelaxed_model_1.pdb, relaxed_model_3.pdb, ranking_debug.json, result_model_2.pkl, features.pkl, timings.json, msas/ 같은 이름이 한꺼번에 보일 수 있다. ColabFold 최신 출력에서는 rank_001, scores, pae, coverage 같은 단어가 섞인 이름이 나올 수도 있다. AlphaFold Server나 AlphaFold 3 로컬 실행 결과는 PDB 대신 mmCIF, 즉 .cif 파일을 중심으로 구성된다.2

처음에는 다음 순서로 보면 된다.

  1. 먼저 ranked_0 또는 rank_001 구조를 연다. 이것이 프로그램이 가장 신뢰한다고 판단한 대표 모델이다.

  2. 그다음 ranking_debug.json이나 ranking_scores.csv, summary_confidences.json을 열어 왜 이 모델이 1등인지 확인한다.

  3. 이어서 pLDDT 색상, PAE plot, MSA coverage plot을 함께 본다.

  4. 마지막으로 로그와 입력 파일을 확인해 실행 조건, 오류, 재현 가능성을 점검한다.

여기서 중요한 원칙은 하나다. 구조 그림만 보지 말고, 구조를 만든 근거와 신뢰도 파일을 함께 읽어야 한다. AlphaFold 결과 폴더는 단백질 모형 하나를 담은 폴더가 아니라, 예측 과정 전체의 작은 실험 노트에 가깝다.

ranked_0부터 ranked_4까지: 1등 모델은 어떻게 정해질까

AlphaFold 2와 ColabFold는 보통 여러 개의 모델을 만든다. 기본 설정에서는 다섯 개 모델이 생성되는 경우가 많고, 이들이 ranked_0.pdb부터 ranked_4.pdb까지 정렬되어 저장된다. 이름만 보면 ranked_4가 더 좋아 보일 수도 있지만, 실제로는 반대다. ranked_0이 가장 높은 순위이고, ranked_4가 다섯 모델 중 가장 낮은 순위다.

이때 순위는 "실험적으로 맞았다"는 뜻이 아니다. AlphaFold가 자기 예측에 대해 계산한 신뢰도 점수를 기준으로 정렬한 것이다. 단일 단백질 모델에서는 평균 pLDDT 또는 pTM 계열 점수가 주로 쓰이고, 복합체 예측에서는 사슬 사이 배치를 평가하는 ipTM이 더 중요한 비중을 갖는다. AlphaFold-Multimer 계열에서는 흔히 0.8 × ipTM + 0.2 × pTM 방식의 ranking confidence가 쓰인다. AlphaFold 3와 AlphaFold Server에서는 pTM, ipTM뿐 아니라 원자 충돌과 무질서 영역 관련 항까지 포함한 ranking_score로 샘플을 정렬한다.3

그래서 ranked_0을 열었다고 해서 곧바로 "정답 구조"를 얻은 것은 아니다. 더 정확히 말하면 "프로그램이 출력한 후보 중 가장 설득력 있어 보이는 후보"를 연 것이다. 단백질이 유연하거나, 도메인 사이 배치가 흔들리거나, 복합체 인터페이스가 애매한 경우에는 ranked_1, ranked_2가 생물학적으로 더 그럴듯한 힌트를 줄 때도 있다.

이때 반드시 확인해야 하는 파일이 ranking_debug.json이다. 이 파일에는 모델별 점수와 순위가 들어 있다. 예를 들어 AlphaFold 2 계열 결과에서는 다음과 비슷한 정보가 보일 수 있다.

{
  "plddts": {
    "model_1": 86.2,
    "model_2": 82.7,
    "model_3": 79.4,
    "model_4": 88.1,
    "model_5": 75.9
  },
  "order": ["model_4", "model_1", "model_2", "model_3", "model_5"]
}

이 경우 ranked_0.pdb는 원래 이름으로는 model_4에 해당한다. 즉, ranked_0이라는 이름은 "정렬된 뒤의 이름"이고, model_4는 "모델 네트워크 또는 원래 후보의 이름"이다. 후속 분석에서 특정 모델을 추적해야 한다면 이 대응 관계를 놓치면 안 된다.

복합체 예측에서는 더 조심해야 한다. ranked_0이 전체 복합체 점수로는 1등이지만, 내가 관심 있는 특정 사슬 A-B 인터페이스만 놓고 보면 다른 모델이 더 나을 수 있다. 예를 들어 항체-항원 복합체를 예측했는데 전체 점수는 높아도 항원 결합 부위의 PAE가 높다면, 그 모델을 그대로 결합 모드의 근거로 쓰기 어렵다. 이 문제는 다음 장에서 pLDDT, PAE, pTM, ipTM을 해석할 때 더 깊게 다룬다.

unrelaxed와 relaxed: 예측과 다듬기의 차이

결과 폴더에서 자주 만나는 두 단어가 unrelaxed와 relaxed다. 처음 보면 relaxed가 더 과학적이고, unrelaxed는 덜 완성된 파일처럼 느껴진다. 어느 정도 맞지만, 그 차이를 정확히 알아야 한다.

unrelaxed_model_*.pdb는 신경망이 직접 내놓은 원래 예측 구조다. AlphaFold의 핵심 예측 결과는 여기에 가깝다. 반면 relaxed_model_*.pdb는 이 구조를 AMBER force field로 짧게 에너지 최소화한 결과다. AMBER relaxation은 원자 사이의 너무 가까운 충돌, 비현실적인 결합 길이와 각도, 일부 곁사슬 배치를 물리적으로 더 자연스럽게 다듬는 과정이다.4

쉽게 비유하면 이렇다. AlphaFold가 접힌 종이 모형을 만들었다면, Amber relaxation은 모서리를 살짝 눌러 어긋난 부분을 정리하는 손질이다. 종이를 완전히 새로 접지는 않는다. 따라서 relaxation은 다음과 같은 일을 잘한다.

  • 너무 가까이 겹친 원자 충돌을 줄인다.

  • 곁사슬의 기하 구조를 조금 더 자연스럽게 만든다.

  • 분자 시각화와 일부 후속 계산에서 어색한 원자 배치를 완화한다.

하지만 다음과 같은 일은 해주지 못한다.

  • 틀린 도메인 배치를 맞는 배치로 바꾸지 못한다.

  • 낮은 pLDDT 영역을 신뢰도 높은 구조로 만들어 주지 못한다.

  • 잘못 예측된 복합체 인터페이스를 실험적으로 검증된 결합 모드로 바꾸지 못한다.

따라서 relaxed 구조를 볼 때는 "더 예쁜 구조"가 아니라 "기하학적으로 조금 다듬어진 구조"라고 생각하는 편이 안전하다. 연구 그림을 만들거나 도킹, 분자동역학, 돌연변이 모델링의 출발점으로 삼을 때는 relaxed 구조가 편리할 수 있다. 그러나 AlphaFold가 실제로 얼마나 확신했는지 판단할 때는 relaxation 여부보다 pLDDT, PAE, pTM, ipTM 같은 신뢰도 지표가 더 중요하다.

ColabFold에서는 옵션에 따라 relaxation을 아예 하지 않을 수도 있고, 상위 1개 모델만 relaxation할 수도 있으며, 모든 모델을 relaxation할 수도 있다. 그러므로 결과 폴더에 relaxed 파일이 없다고 해서 예측이 실패한 것은 아니다. 실행 옵션에서 Amber relaxation을 껐거나, 시간 절약을 위해 생략했을 가능성이 크다.

PDB와 mmCIF: 구조 파일의 두 언어

AlphaFold 2와 ColabFold 결과에서 가장 익숙한 구조 파일은 .pdb다. PDB는 오래된 구조생물학 표준 형식이고, PyMOL, ChimeraX, VMD 같은 거의 모든 분자 시각화 프로그램에서 잘 열린다. 다만 PDB 형식은 오래된 만큼 표현할 수 있는 정보에 제한이 있다. 원자 수가 많거나 사슬이 많거나 복잡한 화학 성분이 들어가는 구조에서는 mmCIF가 더 적합하다.

AlphaFold 3는 기본적으로 예측 구조를 mmCIF, 즉 .cif 형식으로 출력한다. AlphaFold 3는 단백질뿐 아니라 핵산, 리간드, 이온, 화학적 변형까지 다룰 수 있기 때문에 PDB보다 유연한 mmCIF가 자연스럽다.5 AlphaFold Server에서 내려받은 결과도 .cif 구조 파일과 JSON 신뢰도 파일로 구성된다.6

실무에서는 이렇게 생각하면 된다. 단일 단백질이나 간단한 단백질 복합체를 볼 때는 PDB가 편하다. 여러 사슬, 리간드, DNA/RNA, 변형 잔기까지 포함된 복합체라면 mmCIF를 우선 사용하자. 만약 어떤 프로그램이 .cif를 잘 열지 못한다면 ChimeraX나 PyMOL에서 먼저 열고 PDB로 내보내는 방법도 있다. 단, 변환 과정에서 긴 사슬 ID, 리간드 정보, 일부 메타데이터가 손실될 수 있으므로 원본 .cif는 반드시 보관해야 한다.

pLDDT 색으로 구조를 보는 법

AlphaFold 구조 파일을 일반 PDB처럼 열면 회색 리본만 보일 수도 있다. 이 상태로는 가장 중요한 정보가 빠져 있다. AlphaFold 구조에서 색은 장식이 아니다. pLDDT 색상은 "어디를 믿고, 어디를 조심해야 하는지" 알려주는 지도다.

AlphaFold 2 계열에서는 pLDDT가 PDB 또는 mmCIF 파일의 B-factor 필드에 저장된다.1 원래 B-factor는 실험 구조에서 원자의 열적 흔들림이나 위치 불확실성과 관련된 값이지만, AlphaFold 예측 구조에서는 그 자리에 pLDDT가 들어간다. 그래서 분자 시각화 프로그램에서 "B-factor로 색칠하기" 기능을 사용하면 pLDDT 색상 지도를 만들 수 있다.

일반적으로 많이 쓰는 해석은 다음과 같다.

pLDDT 범위흔한 색상해석
90 이상진한 파랑매우 높은 국소 신뢰도
70–90하늘색대체로 신뢰할 수 있음
50–70노랑낮은 신뢰도, 주의 필요
50 미만주황 또는 빨강매우 낮은 신뢰도, 유연하거나 무질서할 수 있음

여기서 "국소"라는 말을 꼭 기억하자. pLDDT는 각 잔기 또는 원자 주변의 짧은 거리 구조가 얼마나 믿을 만한지를 말한다. 즉, 어느 알파 나선이 잘 접혔는지, 어느 루프가 불확실한지 보는 데 좋다. 하지만 두 도메인이 서로 어떤 각도로 붙어 있는지, 두 단백질 사슬이 정말 결합하는지 판단하는 데는 pLDDT만으로 부족하다. 그런 질문에는 PAE와 ipTM을 함께 봐야 한다.

PyMOL에서 pLDDT 색상으로 보기

PyMOL은 AlphaFold 구조를 빠르게 확인하기 좋은 도구다. 가장 단순한 흐름은 파일을 열고, cartoon 형태로 바꾼 뒤, B-factor 값으로 색칠하는 것이다.

load ranked_0.pdb
hide everything
show cartoon
spectrum b, red_yellow_cyan_blue, minimum=0, maximum=100
orient

이 명령은 B-factor 값, 즉 AlphaFold 구조에서는 pLDDT 값에 따라 색을 입힌다. 낮은 값은 붉은색 또는 노란색에 가깝고, 높은 값은 파란색에 가깝게 표시된다. 색상 구간을 더 명확히 나누고 싶다면 직접 색을 지정할 수도 있다.

set_color af_orange, [1.0, 0.5, 0.0]
set_color af_yellow, [1.0, 0.85, 0.0]
set_color af_cyan, [0.0, 0.8, 1.0]
set_color af_blue, [0.0, 0.1, 1.0]

color af_orange, b < 50
color af_yellow, b >= 50 and b < 70
color af_cyan, b >= 70 and b < 90
color af_blue, b >= 90

이렇게 보면 단백질의 "확신 있는 뼈대"와 "조심해야 할 말랑한 부분"이 한눈에 들어온다. 예를 들어 단백질 중심 도메인은 파랗고, N-말단 40개 잔기만 주황색으로 길게 늘어져 있다면, 그 N-말단은 실제로도 고정된 구조가 없는 intrinsically disordered region일 수 있다. 반대로 활성 부위 주변 루프가 노랗다면, 그 루프의 정확한 위치를 근거로 강한 결론을 내리면 곤란하다.

PyMOL에서 mmCIF 파일도 열 수 있다.

load my_model.cif
show cartoon
spectrum b, red_yellow_cyan_blue, minimum=0, maximum=100

다만 리간드나 핵산이 포함된 AlphaFold 3 결과에서는 단백질, 핵산, 리간드를 따로 표시하는 편이 좋다. 전체를 한꺼번에 cartoon으로 보면 작은 분자가 사라져 보일 수 있기 때문이다.

ChimeraX에서 열고 색칠하기

ChimeraX는 큰 복합체와 mmCIF 파일을 다루기 좋다. AlphaFold DB와도 잘 연결되어 있고, 사슬별 표시, 표면 표시, 거리 측정, 구조 정렬이 편리하다. 특히 AlphaFold 3 결과처럼 여러 분자 종류가 섞인 .cif 파일을 볼 때 유용하다.

기본 흐름은 다음과 같다.

open ranked_0.pdb
cartoon
color bfactor palette alphafold

또는 .cif 파일을 열 때는 다음처럼 하면 된다.

open my_model.cif
cartoon protein
color bfactor palette alphafold

만약 사용 중인 ChimeraX 버전에서 palette alphafold가 동작하지 않는다면, 메뉴에서 Tools → Depiction 또는 Structure Analysis 계열의 색상/속성 렌더링 기능을 찾아 B-factor 기준으로 색칠하면 된다. 핵심은 명령어 자체가 아니라 "B-factor 필드에 들어 있는 pLDDT를 색으로 변환한다"는 원리다.

ChimeraX에서 복합체를 볼 때는 사슬별 색상과 pLDDT 색상을 번갈아 보는 습관이 좋다. 사슬별 색상은 "누가 누구와 닿아 있는지"를 보여 주고, pLDDT 색상은 "그 접촉 부위를 얼마나 믿을 수 있는지"를 보여 준다. 둘을 함께 봐야 한다.

예를 들어 체인 A와 B가 넓게 맞닿아 있지만, 그 인터페이스 주변이 온통 노란색과 주황색이라면 결합 모드를 강하게 주장하기 어렵다. 반대로 인터페이스 잔기들이 파랗고, PAE에서도 A-B 사이 오차가 낮다면 훨씬 설득력 있는 후보가 된다.

VMD에서 Beta 값으로 보기

VMD는 분자동역학을 하는 연구자에게 익숙한 도구다. AlphaFold 구조를 VMD에서 볼 때도 원리는 같다. PDB의 B-factor 필드는 VMD에서 보통 Beta로 읽힌다. 따라서 pLDDT 색상을 보려면 Coloring Method를 Beta로 설정하면 된다.

GUI에서는 대략 다음 순서로 진행한다.

  1. File → New Molecule에서 ranked_0.pdb 또는 변환된 PDB 파일을 연다.

  2. Graphics → Representations로 들어간다.

  3. Drawing Method를 NewCartoon 또는 Cartoon으로 바꾼다.

  4. Coloring Method를 Beta로 선택한다.

  5. 필요하면 Graphics → Colors → Color Scale에서 색상 스케일을 조정한다.

명령어로는 다음과 비슷하게 시작할 수 있다.

mol new ranked_0.pdb
mol modselect 0 0 protein
mol modstyle 0 0 NewCartoon
mol modcolor 0 0 Beta

VMD에서 mmCIF를 직접 여는 것은 환경과 플러그인에 따라 차이가 날 수 있다. 잘 열리지 않는다면 ChimeraX나 PyMOL에서 PDB로 변환한 뒤 VMD로 가져오는 편이 빠르다. 단, 앞에서 말했듯이 변환 과정에서 정보가 줄어들 수 있으므로 원본 mmCIF는 따로 보관해야 한다.

MSA coverage plot: 예측의 연료가 충분했는지 보는 그림

AlphaFold는 단백질 서열 하나만 보고 구조를 상상하는 도구처럼 보이지만, AlphaFold 2 계열의 강력함은 대부분 MSA에서 나온다. MSA, 즉 multiple sequence alignment는 비슷한 단백질 서열들을 줄 맞춰 놓은 표다. 진화 과정에서 함께 변한 잔기쌍은 공간적으로 가까울 가능성이 있고, AlphaFold는 이런 공진화 신호를 구조 예측에 활용한다.

ColabFold 결과에서 자주 보이는 coverage 그림은 이 MSA가 얼마나 풍부하고 균일한지 보여 준다. 보통 x축은 query 단백질의 잔기 위치이고, y축은 MSA에 들어간 유사 서열들이다. 색은 query와의 sequence identity, 즉 입력 서열과 얼마나 비슷한지를 나타낸다. 검은 선은 각 위치를 덮고 있는 유사 서열의 수를 보여 주는 경우가 많다.7

이 그림을 읽을 때는 먼저 검은 선을 본다. 검은 선이 전체 길이에 걸쳐 높고 비교적 평평하다면, 단백질 전 구간에 걸쳐 유사 서열이 잘 모였다는 뜻이다. 이런 경우에는 MSA 기반 신호가 안정적으로 들어갔을 가능성이 크다. 반대로 특정 구간에서 검은 선이 푹 꺼진다면, 그 위치를 덮는 유사 서열이 적다는 뜻이다. 그 구간은 예측 신뢰도가 낮아질 수 있다.

다음으로 색을 본다. 색이 query와 매우 비슷한 서열에만 몰려 있다면 가까운 친척은 많지만 진화적 다양성은 부족할 수 있다. 반대로 너무 먼 서열만 많고 정렬 품질이 나쁘면 엉뚱한 신호가 섞일 수 있다. 좋은 MSA는 단순히 "많은 서열"이 아니라 "적절히 다양한 서열"을 담고 있어야 한다.

MSA coverage plot에서 흔히 볼 수 있는 패턴은 다음과 같다.

패턴가능한 의미해석할 때의 주의점
전 구간 coverage가 높음전체적으로 유사 서열이 풍부함그래도 PAE와 pLDDT 확인 필요
N-말단 또는 C-말단만 coverage가 낮음말단이 유연하거나 종마다 길이가 다름낮은 pLDDT와 함께 나타나면 무질서 영역 가능성
중간 구간이 뚝 끊김삽입 도메인, 저복잡도 영역, 종 특이적 영역 가능도메인 경계와 기능 주석 확인 필요
특정 도메인만 coverage가 높음보존된 도메인만 잘 잡힘도메인 밖 구조는 과해석 금지
복합체에서 체인별 coverage 차이가 큼한 사슬은 정보가 많고 다른 사슬은 부족함인터페이스 예측 신뢰도 별도 확인 필요

특히 흥미로운 경우는 pLDDT와 MSA coverage가 서로 어긋날 때다. coverage가 낮고 pLDDT도 낮다면 해석은 비교적 쉽다. 정보가 부족하거나 실제로 유연한 구간일 수 있다. 그런데 coverage는 높은데 pLDDT가 낮다면, 그 구간은 여러 구조 상태를 오가거나 본질적으로 무질서할 가능성을 생각해야 한다. 반대로 coverage는 낮지만 pLDDT가 높다면, AlphaFold가 단백질 언어 모델과 구조적 패턴만으로도 꽤 자신 있게 접힘을 예측했을 수 있다. 이럴 때는 비슷한 구조 도메인이 있는지, 템플릿이 쓰였는지, 다른 seed에서도 같은 구조가 반복되는지 확인하면 좋다.

PAE plot은 구조 그림의 그림자다

이 장의 중심은 파일과 시각화 도구이므로 PAE 해석을 깊게 들어가지는 않겠다. 하지만 결과 폴더를 읽을 때 PAE 파일을 그냥 지나치면 안 된다. PAE, predicted aligned error는 두 잔기 또는 두 토큰 사이의 상대적 위치를 AlphaFold가 얼마나 확신하는지 보여 준다. 값이 낮을수록 상대 배치가 믿을 만하고, 값이 높을수록 두 부분의 위치 관계가 불확실하다.1

PAE plot은 보통 정사각형 heatmap으로 나타난다. x축과 y축은 모두 잔기 위치다. 대각선 근처가 낮은 값으로 보이는 것은 자연스럽다. 같은 도메인 내부의 잔기들은 서로 상대 위치가 잘 정해지기 때문이다. 반면 도메인 A와 도메인 B 사이 영역이 높은 PAE를 보이면, 두 도메인 자체는 잘 접혔더라도 서로 어떤 각도로 붙는지는 불확실하다는 뜻이다.

이 점은 구조 해석에서 결정적이다. pLDDT로 보면 두 도메인이 모두 파랗게 보일 수 있다. 그래서 "전체 구조가 매우 정확하다"고 착각하기 쉽다. 그러나 PAE가 두 도메인 사이에서 높다면, 각 도메인의 내부 구조는 믿을 만해도 도메인 간 배치는 믿기 어렵다. 단백질 기능이 도메인 간 운동에 의해 조절되는 경우라면, 바로 이 차이가 연구 결론을 바꾼다.

ranking_debug.json: 후보 모델의 성적표

ranking_debug.json은 작지만 매우 중요한 파일이다. 사람이 보는 예쁜 그림은 아니지만, 어떤 모델이 어떤 기준으로 1등이 되었는지 알려 준다. AlphaFold 2 계열에서는 모델별 pLDDT, pTM, ipTM 또는 ranking confidence가 들어 있고, 정렬 순서도 함께 기록된다. 파일 이름은 실행 방식에 따라 다를 수 있지만, "ranking"이라는 단어가 들어간 JSON 또는 CSV는 반드시 열어 봐야 한다.

이 파일을 읽을 때는 세 가지를 확인하자.

첫째, ranked_0과 원래 모델 이름의 대응 관계다. ranked_0.pdb가 model_1인지 model_3인지 알아야 후속 result_model_*.pkl 또는 scores JSON과 연결할 수 있다.

둘째, 1등과 2등의 점수 차이다. ranked_0의 점수가 0.86이고 ranked_1이 0.85라면 사실상 비슷한 후보일 수 있다. 이때는 두 모델의 구조 차이를 직접 겹쳐 보고, 관심 부위가 얼마나 달라지는지 확인해야 한다. 반대로 1등이 0.89이고 나머지가 0.55 근처라면 1등 모델이 훨씬 안정적인 후보일 가능성이 크다.

셋째, 복합체에서는 어떤 지표가 순위에 영향을 주었는지 확인해야 한다. ipTM이 높아서 1등이 된 모델인지, pTM은 높지만 ipTM이 낮은 모델인지에 따라 해석이 달라진다. 단일 사슬 구조가 목적이면 pTM과 pLDDT가 중요하고, 단백질-단백질 결합 모드가 목적이면 ipTM과 inter-chain PAE가 중요하다.

confidence JSON과 PAE JSON: 후속 분석의 재료

ColabFold와 AlphaFold Server, AlphaFold 3 결과에는 다양한 JSON 파일이 포함될 수 있다. JSON은 사람이 읽을 수도 있고, Python 같은 언어로 쉽게 처리할 수도 있는 텍스트 기반 형식이다. 단백질 구조 파일이 "좌표"를 담고 있다면, confidence JSON은 "그 좌표를 얼마나 믿을지"에 대한 숫자를 담고 있다.

AlphaFold Server 결과를 예로 들면, 각 예측 샘플에 대해 요약 신뢰도 JSON과 상세 데이터 JSON이 제공된다. 요약 파일에는 ptm, iptm, ranking_score, chain_ptm, chain_iptm, chain_pair_iptm, chain_pair_pae_min, fraction_disordered, has_clash 같은 값이 들어갈 수 있다. 상세 파일에는 atom_plddts, pae, contact_probs 같은 큰 배열 데이터가 들어간다.6

AlphaFold 3 로컬 실행에서도 top-ranking prediction의 mmCIF, confidence JSON, summary confidence JSON, 입력 데이터 JSON, ranking score CSV가 출력된다. seed와 sample을 여러 개 돌리면 각 sample 하위 폴더에도 모델과 신뢰도 파일이 따로 저장된다.5

AlphaFold 2나 ColabFold 결과에서는 버전에 따라 .pkl 파일에 pLDDT, PAE, distogram 같은 값이 들어 있기도 하고, 별도의 scores_*.json, pae_*.json, predicted_aligned_error*.json 파일이 만들어지기도 한다. 여기서 중요한 파일을 기능별로 정리하면 다음과 같다.

파일 또는 이름 패턴역할언제 중요한가
ranking_debug.json모델별 점수와 순위ranked_0이 왜 1등인지 확인할 때
*_scores*.jsonpLDDT, pTM, ipTM 등 모델 점수ColabFold 결과를 자동 분석할 때
*_pae*.json 또는 predicted_aligned_error*.jsonPAE 행렬도메인 배치와 체인 간 상대 위치를 볼 때
*_confidences.json상세 신뢰도 배열AlphaFold 3 결과를 후속 분석할 때
*_summary_confidences.json요약 신뢰도여러 sample을 빠르게 비교할 때
ranking_scores.csvAlphaFold 3 sample 순위seed/sample이 많은 결과를 정렬할 때

PAE JSON은 특히 유용하다. 구조 그림에서는 두 도메인이 가까이 붙어 있어도, PAE JSON을 그려 보면 그 배치가 불확실하다는 사실이 드러날 수 있다. RCSB에서도 AlphaFold computed structure model을 해석할 때 PAE JSON을 내려받아 프로그램이나 시각화 도구로 읽을 수 있도록 제공한다.8

후속 분석을 계획한다면 JSON 파일을 지우지 말자. PDB나 CIF만 남기고 JSON을 삭제하면 나중에 신뢰도 heatmap을 다시 그리거나, 특정 체인쌍의 ipTM을 비교하거나, 여러 seed의 모델을 자동으로 정렬하기 어려워진다.

features.pkl, result_model_*.pkl, MSA 파일은 버려도 될까

AlphaFold 2 원본 실행 결과에는 .pkl 파일이 많이 생긴다. features.pkl은 입력 서열, MSA, template 관련 정보를 포함한 전처리 feature를 담고 있다. result_model_*.pkl은 모델이 직접 출력한 여러 배열, 예를 들어 pLDDT, PAE, predicted TM-score, distogram 등을 담을 수 있다.9

pickle 파일은 일반 텍스트가 아니라 Python 객체를 저장한 바이너리 형식이다. 더블클릭해도 사람이 읽기 어렵다. 하지만 후속 분석에서는 매우 강력한 원본 재료가 된다. 예를 들어 기본 실행에서 그림 파일이 생성되지 않았다면, result_model_*.pkl에서 pLDDT와 PAE를 꺼내 직접 plot을 만들 수 있다. HPC 환경에서 AlphaFold를 돌린 뒤 별도 시각화 스크립트로 pLDDT, PAE, MSA coverage 이미지를 만드는 워크플로도 이런 파일을 활용한다.7

그렇다면 이 파일들을 모두 보관해야 할까? 답은 연구 목적과 저장 공간에 따라 다르다. .pkl 파일과 MSA 파일은 용량이 클 수 있다. 긴 단백질에서는 몇 GB까지 커질 수 있다. 그래도 논문, 보고서, 협업 프로젝트처럼 재현성이 중요한 작업이라면 최소한 다음 파일은 보관하는 것이 좋다.

  • 최종 구조 파일: ranked_0.pdb, 관련 relaxed 또는 .cif

  • 순위와 신뢰도 파일: ranking_debug.json, scores*.json, pae*.json, summary_confidences.json

  • 입력 파일: FASTA, ColabFold 입력, AlphaFold 3 job request JSON

  • 실행 조건: 로그, 설정 파일, 사용한 seed, recycles, model type, MSA mode

  • 가능하다면 MSA 파일: .a3m, .sto 등

저장 공간이 매우 부족하다면 모든 중간 .pkl을 영구 보관하기는 어렵다. 그러나 삭제하기 전에 pLDDT plot, PAE plot, coverage plot, 모델별 점수 표를 반드시 만들어 두자. 데이터는 지웠는데 나중에 "왜 이 모델을 골랐지?"라는 질문에 답하지 못하면, 구조 파일 하나만 남은 예측은 연구 기록으로서 힘을 잃는다.

timings.json과 로그: 실패한 예측도 정보를 남긴다

timings.json은 각 단계가 얼마나 걸렸는지 기록한 파일이다. MSA 검색, template 검색, 모델 추론, relaxation 등 어느 단계에서 시간이 많이 쓰였는지 알 수 있다. 얼핏 사소해 보이지만, 여러 단백질을 대량으로 예측할 때는 중요한 최적화 자료가 된다. 예를 들어 대부분 시간이 MSA 생성에 쓰인다면, custom MSA를 재사용하거나 MSA mode를 조정하는 전략을 생각할 수 있다.

로그 파일도 중요하다. ColabFold notebook에서는 셀 출력과 실행 로그가, 로컬 실행에서는 터미널 로그가, HPC에서는 .out 또는 .err 파일이 남을 수 있다. 이 파일에는 단순한 진행 상황뿐 아니라 경고와 오류가 들어 있다. VIB의 AlphaFold HPC 교육 자료도 실행 후 output/error 파일과 실제 AlphaFold 결과 폴더를 구분해 확인하도록 안내한다.10

로그에서 특히 찾아볼 만한 단어는 다음과 같다.

  • error, failed, exception: 실행 실패 또는 일부 단계 실패

  • out of memory, OOM: GPU 또는 RAM 부족

  • relaxation failed: Amber relaxation 실패

  • No hits, low coverage: MSA 검색 결과 부족

  • template: 템플릿 검색과 사용 여부

  • recycle: 실제 recycle 수행 정보

  • seed: 재현성 확인에 필요한 난수 seed

실패한 예측도 그냥 버리지 말자. 로그를 보면 왜 실패했는지 알 수 있고, 다음 실행에서 어떤 옵션을 바꿔야 할지 단서가 나온다. 예측이 잘된 경우에도 로그는 중요하다. 같은 결과를 나중에 다시 만들려면 어떤 버전, 어떤 옵션, 어떤 seed로 실행했는지 알아야 하기 때문이다.

AlphaFold 3와 AlphaFold Server 결과는 무엇이 다른가

이 책의 앞 장들에서는 ColabFold와 AlphaFold 2 계열을 중심으로 첫 예측을 실행했다. 하지만 앞으로는 AlphaFold 3와 AlphaFold Server 결과도 자주 만나게 된다. 그래서 여기서 차이를 간단히 정리해 두자.

AlphaFold Server는 한 작업에 대해 보통 다섯 개 예측을 제공하고, 가장 높은 순위의 예측을 결과 페이지에 보여 준다. 다운로드한 zip 안에는 순위가 붙은 .cif 구조 파일, 요약 confidence JSON, full data JSON, job request JSON, terms of use 파일이 들어 있다. 구조는 model_0부터 model_4처럼 순위가 붙으며, 0이 가장 높은 순위다.6

AlphaFold 3 로컬 실행 결과는 job 이름으로 된 폴더 아래에 seed와 sample별 하위 폴더를 만들 수 있다. top-ranking 모델은 루트 폴더에도 따로 복사되며, ranking_scores.csv로 전체 sample의 순위를 확인할 수 있다. 구조 파일은 PDB가 아니라 mmCIF다.5

AlphaFold 2/ColabFold와 AlphaFold 3의 가장 큰 차이는 "다루는 대상"이다. AlphaFold 2는 주로 단백질 단일체와 단백질 복합체를 다룬다. AlphaFold 3는 단백질, DNA, RNA, 리간드, 이온, 변형 잔기 등 더 다양한 생체분자 복합체를 예측한다. 그래서 confidence JSON도 더 복잡하다. atom_plddts처럼 원자 단위 pLDDT가 나오고, chain-pair 지표도 작은 분자와 핵산까지 포함해 계산될 수 있다.

그래도 기본 원칙은 같다. 구조 파일을 열고, 순위 파일을 확인하고, confidence JSON을 읽고, PAE와 pLDDT를 함께 본다. 도구가 바뀌어도 결과 폴더를 읽는 눈은 크게 바뀌지 않는다.

여러 모델을 한 화면에서 비교하기

실무에서는 ranked_0 하나만 보는 것으로 충분하지 않은 경우가 많다. 특히 도메인 사이가 유연한 단백질, 긴 linker가 있는 단백질, 복합체, 낮은 MSA coverage를 가진 단백질은 상위 모델 몇 개를 함께 비교해야 한다.

PyMOL에서는 여러 구조를 함께 열고 정렬할 수 있다.

load ranked_0.pdb, r0
load ranked_1.pdb, r1
load ranked_2.pdb, r2
align r1, r0
align r2, r0

이렇게 겹쳐 보면 어느 부분은 거의 같은 위치에 있고, 어느 부분은 모델마다 크게 흔들리는지 보인다. 모든 모델에서 같은 알파 나선 다발이 반복된다면 그 접힘은 비교적 안정적인 신호일 가능성이 크다. 반대로 어떤 도메인은 모델마다 다른 방향을 향한다면, 도메인 내부 구조는 믿을 수 있어도 도메인 배치는 조심해야 한다.

ChimeraX에서도 여러 모델을 열고 matchmaker 또는 구조 정렬 기능을 사용할 수 있다. 다만 긴 무질서 꼬리나 낮은 pLDDT 영역까지 포함해 전체를 정렬하면 정렬이 왜곡될 수 있다. 이런 경우에는 신뢰도 높은 도메인만 선택해서 정렬하는 편이 좋다.

이 비교 과정에서 중요한 질문은 "어느 모델이 가장 예쁜가?"가 아니다. 더 좋은 질문은 이것이다. 내가 연구하려는 결론에 중요한 부분이 모델들 사이에서 안정적인가? 활성 부위가 안정적인지, 결합 인터페이스가 반복되는지, 도메인 배치가 일관적인지, 낮은 신뢰도 꼬리가 결론에 영향을 주는지 살펴야 한다.

구조 파일 이름을 바꿀 때의 원칙

결과 파일을 정리하다 보면 ranked_0.pdb 같은 이름이 너무 일반적이라 바꾸고 싶어진다. 파일 이름을 바꾸는 것은 괜찮지만, 원래 이름과 대응 관계를 잃으면 안 된다. 여러 단백질을 예측하다 보면 ranked_0.pdb가 수십 개 생기기 때문이다.

추천하는 방식은 단백질 이름, 서열 범위, 모델 순위, relaxation 여부, 날짜를 파일 이름에 넣는 것이다.

MYPROT_45-312_ranked0_relaxed_2026-05-11.pdb
MYPROT_45-312_ranked0_unrelaxed_2026-05-11.pdb
MYPROT_45-312_pae_ranked0.json
MYPROT_45-312_ranking_debug.json

이름을 바꿨다면 README.txt나 분석 노트에 원본 파일명을 함께 적어 두자. 예를 들어 "MYPROT_45-312_ranked0_relaxed_2026-05-11.pdb는 ColabFold 출력의 ranked_0.pdb이며, 원래 모델은 model_3_seed_0"처럼 기록한다. 사소해 보이지만, 몇 달 뒤 논문 그림을 다시 만들 때 이런 기록이 시간을 구한다.

결과 폴더를 연구 데이터로 바꾸는 최소 체크리스트

AlphaFold 결과를 받았을 때 다음 질문에 답할 수 있으면, 단순히 구조를 "본" 것이 아니라 결과를 "읽은" 것이다.

  • ranked_0은 어떤 점수 기준으로 1등이 되었는가?

  • ranked_0과 ranked_1의 점수 차이는 충분히 큰가?

  • 내가 보는 구조는 unrelaxed인가, relaxed인가?

  • pLDDT가 낮은 구간은 어디이며, 그 구간이 내 결론에 중요한가?

  • MSA coverage가 낮은 위치와 pLDDT가 낮은 위치가 겹치는가?

  • PAE에서 도메인 간 또는 체인 간 상대 배치는 신뢰할 만한가?

  • confidence JSON, PAE JSON, ranking 파일을 보관했는가?

  • 실행 옵션, seed, model type, recycles, MSA mode를 기록했는가?

  • 로그에 오류나 경고가 없었는가?

이 체크리스트를 통과한 구조는 이제 연구의 출발점이 될 수 있다. 반대로 이 질문에 답하지 못한다면, 아무리 그림이 아름다워도 아직은 "분석 전 이미지"에 가깝다.

다음 장으로 가기 전에

이 장에서는 결과 폴더의 지도를 익혔다. ranked_0은 가장 높은 순위의 후보이고, unrelaxed는 원래 예측, relaxed는 Amber로 기하학적으로 다듬은 구조다. PDB와 mmCIF는 구조 좌표의 형식이고, PyMOL·ChimeraX·VMD에서는 B-factor 또는 Beta 값으로 pLDDT 색상을 볼 수 있다. MSA coverage plot은 예측에 들어간 진화적 정보의 밀도와 균일성을 보여 준다. JSON과 로그는 후속 분석과 재현성을 지키는 핵심 기록이다.

이제 남은 질문은 더 날카롭다. pLDDT가 82라면 믿어도 될까? PAE가 높다는 것은 구조가 틀렸다는 뜻일까? pTM과 ipTM은 언제 결정적인 근거가 되고, 언제 오해를 부를까? 다음 장에서는 AlphaFold 결과 해석의 핵심 언어인 pLDDT, PAE, pTM, ipTM을 본격적으로 읽어 보자.

참고

1AlphaFold2 inputs and outputs – Recap, EMBL-EBI Training

2AlphaFold 3 Output Format, DeepMind AlphaFold 3 documentation

3Interpreting results from AlphaFold Server, EMBL-EBI Training

4Explained: how to plot the prediction quality metrics with AlphaFold2, MindWalk

5AlphaFold 3 Output, google-deepmind/alphafold3

6Interpreting results from AlphaFold Server, EMBL-EBI Training

7AlphaFold outputs, E-Learning@VIB

8Download PAE JSON Files for AlphaFold Models, RCSB PDB

9AlphaFold Output, Introduction to AlphaFold2

10AlphaFold outputs, E-Learning@VIB

책 목록

AlphaFold 실전 사용법: 서열 준비부터 구조 해석, AlphaFold 3와 재현 가능한 보고까지

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기