Skip to main content
Summary

지난 장에서는 ColabFold를 거의 기본값 그대로 실행해 보았다. 처음에는 그 방법이 가장 좋다. AlphaFold 계열 도구는 사용자가 모든 스위치를 만지지 않아도 꽤 훌륭한 구조를 내놓도록 설계되어 있기 때문이다.

하지만 연구는 늘 친절한 단백질만 데려오지 않는다. 유사 서열이 거의 없는 단백질, 여러 상태로 움직이는 수송체, 사슬이 여러 개인 복합체, 낮은 신뢰도와 높은 신뢰도가 한 모델 안에 뒤섞인 결과가 나타난다. 이때부터 ColabFold의 입력 옵션은 단순한 장식이 아니라 '내가 AlphaFold에게 어떤 힌트를 줄 것인가'를 정하는 실험 설계가 된다.

ColabFold 노트북의 핵심 옵션은 크게 MSA를 어떻게 만들지, 어떤 모델을 쓸지, 예측을 몇 번 되풀이해 다듬을지, 그리고 여러 가능한 구조를 얼마나 넓게 탐색할지로 나뉜다.1 이 장에서는 msa_mode, pair_mode, model_type, num_recycles, recycle_early_stop_tolerance, num_seeds, use_dropout, max_msa를 중심으로 살펴본다.

ColabFold 입력 옵션을 제대로 조정하기

기본값은 생각보다 강하다

옵션을 설명하기 전에 먼저 중요한 원칙부터 세우자. 기본값은 실패자의 선택이 아니다. 오히려 대부분의 자연 단백질에서는 기본값이 가장 안전한 출발점이다. ColabFold는 MMseqs2를 이용해 빠르게 유사 서열을 찾고, AlphaFold2 또는 AlphaFold-Multimer 계열 모델에 맞는 입력을 구성한다. 특히 단일 단백질을 처음 예측할 때는 msa_mode = mmseqs2_uniref_env, model_type = auto, num_recycles = 3, num_seeds = 1, use_dropout = False, max_msa = auto 조합만으로도 충분한 경우가 많다.

문제는 기본값이 항상 '내 질문에 맞는 답'을 주지는 않는다는 데 있다. 구조 하나만 빠르게 보고 싶은지, 복합체의 결합면을 보고 싶은지, 가능한 여러 형태를 샘플링하고 싶은지에 따라 같은 단백질도 다른 설정이 필요하다. 좋은 사용자는 모든 옵션을 한꺼번에 올리는 사람이 아니라, 지금 결과가 왜 불안한지 가설을 세우고 그에 맞는 옵션 하나를 조정하는 사람이다.

msa_mode: 진화 정보의 수도꼭지

AlphaFold2가 단백질 구조를 잘 맞히는 큰 이유 중 하나는 MSA, 즉 다중 서열 정렬을 사용하기 때문이다. MSA는 같은 조상을 공유하는 비슷한 단백질 서열들을 한 줄씩 쌓아 놓은 표라고 생각하면 된다. 이 표에서 어떤 두 위치가 진화 과정에서 함께 바뀌는 경향을 보이면, 모델은 두 잔기가 실제 3차원 구조에서 가까울 수 있다고 추정한다.

ColabFold의 msa_mode는 이 MSA를 어디서, 얼마나 넓게 찾을지를 정한다.

옵션의미주로 쓰는 상황
mmseqs2_uniref_envUniRef 계열 서열과 환경 유래 서열까지 넓게 검색한다.기본 추천값. 유사 서열을 최대한 많이 찾고 싶을 때 쓴다.
mmseqs2_unirefUniRef 계열 서열 중심으로 검색한다.조금 더 단순하고 빠른 검색을 원할 때 쓴다. 환경 서열까지 필요 없다고 판단될 때도 선택할 수 있다.
single_sequence유사 서열 검색을 사실상 사용하지 않고 입력 서열 하나만 사용한다.설계 단백질처럼 진화적 친척이 거의 없거나, MSA 없이 모델이 무엇을 하는지 시험할 때 쓴다. 일반적으로 정확도는 낮아질 수 있다.
custom사용자가 직접 준비한 A3M 형식의 MSA를 업로드한다.특정 서열군만 고르거나, MSA를 직접 필터링하거나, 대체 구조 상태를 유도하고 싶을 때 쓴다.

처음에는 mmseqs2_uniref_env가 가장 무난하다. 환경 유래 서열은 배양하지 않은 미생물, 메타게놈 데이터 등에서 온 단백질 서열을 포함하므로, 실험실에서 잘 연구되지 않은 단백질에도 추가 단서를 줄 수 있다. 특히 박테리아, 바이러스, 미생물 유래 단백질처럼 먼 친척이 어딘가에 숨어 있을 가능성이 큰 경우에는 이 옵션이 좋은 출발점이다.

mmseqs2_uniref는 조금 더 보수적인 선택이다. 환경 서열까지 포함하지 않으므로 MSA가 얕아질 수 있지만, 경우에 따라 검색과 처리 부담이 줄어든다. 빠른 사전 확인을 하고 싶거나, 이미 유사 서열이 충분히 많다는 것을 알고 있을 때 사용할 수 있다.

single_sequence는 이름 그대로 '혼자 생각해 보기'에 가깝다. 모델에게 진화적 가족사진을 주지 않고 독사진만 주는 셈이다. 그러니 자연 단백질의 고정밀 예측에는 보통 불리하다. 다만 인공 설계 단백질처럼 애초에 유사 서열이 없거나, MSA가 결과에 어떤 영향을 주는지 비교하고 싶을 때는 의미 있는 대조군이 된다.

custom은 고급 사용자의 강력한 손잡이다. ColabFold에서는 msa_mode를 custom으로 바꾸면 A3M 형식의 MSA를 업로드해 예측에 사용할 수 있다.1 예를 들어 막단백질 수송체가 안쪽 열린 상태와 바깥쪽 열린 상태를 오간다고 하자. 전체 MSA를 그대로 넣으면 평균적인 한 상태만 강하게 예측될 수 있다. 이때 특정 계통의 서열만 모으거나, MSA를 얕게 줄이거나, 유사도별로 클러스터를 나누면 모델이 다른 형태를 탐색할 가능성이 생긴다. 실제로 MSA 깊이와 구성을 조정하는 일은 어려운 단백질, 특히 여러 형태를 가질 수 있는 단백질에서 예측 품질과 다양성에 영향을 줄 수 있다.2

pair_mode: 복합체에서 사슬 사이의 소문을 듣는 법

단일 단백질에서는 MSA가 한 사슬 안의 잔기 사이 관계를 알려준다. 복합체에서는 이야기가 더 흥미로워진다. 사슬 A와 사슬 B가 오랫동안 함께 기능했다면, A의 어떤 잔기가 바뀔 때 B의 맞은편 잔기도 함께 바뀌었을 수 있다. 이것을 사슬 간 공진화 신호라고 부를 수 있다. 쉽게 말해, 두 단백질이 진화의 긴 시간 동안 서로의 변화를 '눈치 보며' 맞춰 온 흔적이다.

ColabFold에서 여러 사슬을 SEQ1:SEQ2처럼 콜론으로 입력하면 복합체 예측이 가능하다. 이때 pair_mode는 각 사슬의 유사 서열을 어떻게 짝지어 MSA를 만들지 정한다.

옵션작동 방식장점과 주의점
unpaired_paired같은 종에서 온 것으로 보이는 서열들을 짝지은 정보와, 각 사슬별 독립 MSA를 함께 사용한다.가장 균형 잡힌 기본 선택이다. 사슬 자체의 접힘 정보와 사슬 간 결합 정보를 함께 제공한다.
paired짝지을 수 있는 서열만 사용한다.결합면 공진화 신호가 선명할 수 있지만, 짝지을 서열이 적으면 MSA가 지나치게 얕아진다.
unpaired사슬별 MSA를 따로 만들고 사슬 간 짝짓기 정보는 사용하지 않는다.각 사슬의 구조는 안정적으로 예측될 수 있지만, 결합 방향이나 계면 예측은 약해질 수 있다.

대부분의 복합체에서는 unpaired_paired부터 시작하는 것이 좋다. 이 옵션은 '각 단백질이 어떻게 접히는가'와 '두 단백질이 어떻게 만나는가'를 동시에 보려는 절충안이다. 만약 짝지어진 서열이 충분하다면 사슬 간 계면 예측에 도움이 되고, 짝지어진 서열이 부족하더라도 사슬별 MSA가 남아 있어 각 단백질의 기본 접힘 정보가 유지된다.

paired는 결합 파트너가 같은 유전체 안에서 함께 발견되는 경우에 빛난다. 예를 들어 박테리아의 두 성분 신호전달 단백질처럼 특정 쌍이 종마다 함께 보존되는 경우, paired MSA는 결합면에 대한 강한 단서를 줄 수 있다. 그러나 현실에서는 이름이 비슷한 단백질이 여러 개 있거나, 한 종에 paralog, 즉 비슷한 유전자 복사본이 많아 정확한 짝을 고르기 어려울 수 있다. 이때 잘못 짝지어진 MSA는 모델을 엉뚱한 계면으로 유도할 수 있다.

unpaired는 복합체 계면보다 각 사슬의 개별 구조가 더 중요할 때 유용하다. 또는 두 사슬이 실제로 결합하는지 확신이 없고, paired 정보가 오히려 잡음이 된다고 의심될 때 대조 실험으로 돌려볼 수 있다. 같은 입력에 대해 unpaired_paired와 unpaired 결과를 비교했을 때 계면이 크게 흔들린다면, 그 복합체 예측은 신뢰도 지표를 더 엄격하게 확인해야 한다.

복합체 입력에서 또 하나 보이는 설정으로 pairing_strategy가 있다. greedy는 세 사슬 이상 복합체에서 가능한 세부 짝을 적극적으로 만들고, complete는 모든 사슬이 한 줄에서 맞아떨어지는 경우를 더 엄격하게 요구한다. 보통은 기본값인 greedy가 실용적이다. 다만 아주 정확한 생물종별 짝짓기가 중요한 분석이라면 두 전략의 차이를 비교해 볼 수 있다.

model_type: auto를 믿되, 이유가 있을 때만 고정하기

model_type은 ColabFold가 어떤 AlphaFold 계열 모델 가중치를 사용할지 정하는 옵션이다. 여기서 가중치란 모델이 학습을 통해 얻은 내부 숫자 묶음이라고 생각하면 된다. 같은 AlphaFold 계열이라도 단일 사슬 예측에 맞춘 모델과 복합체 예측에 맞춘 모델은 훈련 목표와 출력 신뢰도 계산 방식이 다르다.

ColabFold에서 model_type = auto를 선택하면 입력이 단일체인지 복합체인지에 따라 모델을 자동으로 고른다. 단일 사슬이면 보통 alphafold2_ptm, 여러 사슬 복합체이면 alphafold2_multimer_v3가 선택된다.1 ptm은 단백질 전체 배치의 신뢰도를 함께 다루는 단일체 모델이고, multimer_v3는 여러 단백질 사슬 사이의 배치와 계면 예측에 맞춰진 AlphaFold-Multimer 계열 모델이다.

처음 사용하는 독자라면 거의 항상 auto를 유지하자. 수동 선택은 다음과 같은 분명한 이유가 있을 때만 권한다.

목적고려할 수 있는 선택
단일 단백질의 전체 접힘과 도메인 배치를 보고 싶다.auto 또는 alphafold2_ptm
여러 단백질 사슬의 결합 구조를 보고 싶다.auto 또는 alphafold2_multimer_v3
과거 결과와 정확히 비교해야 한다.이전에 쓴 모델 버전으로 고정
벤치마크나 방법 비교를 한다.모델 종류를 명시적으로 고정하고 기록

여기서 흔한 실수는 복합체를 입력해 놓고 단일체 모델로 결과를 해석하거나, 반대로 단일체를 멀티머 모델로 돌린 뒤 결과가 다르다고 당황하는 것이다. ColabFold는 어떤 모델이든 입력에 적용할 수 있게 열어 두지만, 가능하다는 것과 적절하다는 것은 다르다. 연구 노트에는 반드시 model_type을 적어 두자. 나중에 같은 서열을 다시 돌렸는데 결과가 다르다면, 모델 타입 차이가 원인일 수 있다.

num_recycles: 모델이 자기 답안을 다시 보는 횟수

AlphaFold의 recycle은 모델이 예측한 중간 구조 정보를 다시 입력으로 넣어 구조를 반복적으로 다듬는 과정이다. 사람으로 비유하면 초벌 스케치를 그린 뒤, 그 그림을 보고 비율을 고치고, 다시 그림자를 넣고, 다시 선을 정리하는 일이다.

num_recycles를 올리면 모델에게 더 많은 수정 기회를 주는 셈이다. 어려운 단백질에서는 이 반복이 구조를 더 잘 수렴시키는 데 도움이 될 수 있다. ColabFold와 AlphaFold2 활용 가이드에서도 recycle 수를 늘리는 것이 도전적인 예측의 품질을 개선하는 대표적인 조정법으로 소개된다.2

하지만 recycle은 공짜가 아니다. 값을 3에서 12로 올리면, 단순히 말해 모델이 구조를 다듬는 내부 과정을 훨씬 더 많이 수행하므로 실행 시간이 늘어난다. 긴 서열이나 복합체에서는 이 차이가 몇 분이 아니라 수십 분 이상으로 벌어질 수 있다. 또한 recycle을 많이 한다고 틀린 생물학적 가정이 맞아지는 것은 아니다. 잘못된 서열, 잘못된 사슬 조합, 실제로 결합하지 않는 단백질 쌍은 recycle을 48번 해도 마법처럼 진짜 복합체가 되지 않는다.

실전에서는 다음처럼 생각하면 쉽다.

상황권장 출발점
빠른 형태 확인num_recycles = 1 또는 3
일반적인 단일체 예측num_recycles = 3
도메인이 여러 개이거나 MSA가 애매한 단백질num_recycles = 6 또는 12
복합체 계면이 불안정한 경우num_recycles = 12 이상을 시험하되 시간과 함께 판단
대량 스크리닝낮은 recycle로 먼저 거르고, 후보만 높여 재실행

ColabFold 노트북에는 num_recycles = auto 선택지도 있다. 노트북 설정에 따라 auto는 단일체와 멀티머에서 다른 기본값을 적용할 수 있으며, 멀티머 모델에서는 더 많은 recycle을 사용하도록 설정되어 있다.1 따라서 같은 'auto'라도 어떤 모델 타입과 결합되는지 확인해야 한다.

recycle_early_stop_tolerance: 충분히 비슷해졌으면 멈추기

recycle_early_stop_tolerance는 recycle을 언제 조기 종료할지 정하는 기준이다. 반복할 때마다 구조가 거의 변하지 않는다면 더 돌려도 얻는 것이 적을 수 있다. 이 옵션은 그런 순간을 감지해 계산을 멈추게 한다.

값이 낮을수록 엄격하다. 0.0은 사실상 아주 보수적인 설정으로, 구조가 완전히 수렴했다고 보기 전까지 쉽게 멈추지 않는다. 반대로 0.5나 1.0은 변화가 어느 정도 작아지면 일찍 멈출 수 있어 빠르지만, 일부 어려운 경우에는 충분히 다듬기 전에 멈출 가능성도 있다. ColabFold의 auto 설정은 모델 타입에 따라 다른 tolerance를 적용할 수 있으며, 멀티머에서는 더 실용적인 조기 종료 기준을 쓰도록 되어 있다.1

이 옵션은 num_recycles와 함께 읽어야 한다. num_recycles = 48로 높여 놓고 early stop을 켜면, 최대 48번까지 기회를 주되 중간에 충분히 안정되면 멈춘다는 뜻이다. 반대로 num_recycles = 3이면 early stop이 있어도 애초에 반복 횟수가 적으므로 큰 차이가 나지 않을 수 있다.

가장 무난한 전략은 간단하다. 처음에는 기본값을 둔다. 결과가 불안정하고 실행 시간이 허락한다면 num_recycles를 먼저 올린다. 시간이 너무 오래 걸리면 그다음 early stop tolerance를 조정한다. 정확도를 위해 값을 낮추고, 탐색 속도를 위해 값을 높인다.

num_seeds: 같은 문제를 여러 출발점에서 풀게 하기

AlphaFold도 내부적으로 무작위성이 들어가는 지점이 있다. seed는 그 무작위 선택의 시작 번호다. 같은 서열, 같은 옵션이라도 seed가 달라지면 일부 결과가 달라질 수 있다. num_seeds는 이런 출발점을 몇 개 사용할지 정한다.

예를 들어 기본적으로 5개의 모델을 돌리고 num_seeds = 1이면 대략 5개의 후보 구조가 나온다. num_seeds = 4로 올리면 각 seed마다 모델들이 실행되어 훨씬 많은 후보가 생긴다. 실행 시간도 그에 맞춰 늘어난다.

그렇다면 왜 굳이 여러 seed를 써야 할까? 답은 '불확실성의 모양'을 보기 위해서다. 아주 자신 있는 단백질이라면 seed를 바꿔도 핵심 구조가 거의 같게 나온다. 반대로 낮은 신뢰도의 루프, 유연한 링커, 도메인 사이 배치, 복합체 계면은 seed에 따라 흔들릴 수 있다. 이 흔들림은 성가신 잡음이 아니라 정보다. 모델이 어디에서 확신하지 못하는지 보여 주기 때문이다.

단, 여러 seed에서 비슷한 구조가 나왔다고 해서 무조건 참이라는 뜻은 아니다. 같은 잘못된 MSA 신호가 모든 seed에 들어갔다면, 모델은 일관되게 틀릴 수도 있다. seed sampling은 실험 증거가 아니라 계산적 탐색이다. 그래서 결과 해석에서는 다음 장에서 다룰 pLDDT, PAE, pTM, ipTM 같은 신뢰도 지표와 함께 보아야 한다.

use_dropout: 모델에게 일부러 흔들림을 허락하기

Dropout은 신경망의 일부 계산 경로를 무작위로 꺼서 모델이 조금씩 다른 판단을 하도록 만드는 기법이다. 학습 과정에서 과적합을 줄이기 위해 자주 쓰이지만, ColabFold에서는 예측 시점에 dropout을 켜서 모델의 불확실성에서 여러 구조를 샘플링할 수 있다. ColabFold 논문에서도 inference 단계에서 dropout을 활성화하고 여러 seed를 반복하면 모델의 불확실성 또는 MSA 제약의 모호성에서 다양한 구조 예측을 얻을 수 있다고 설명한다.3

일반적인 최종 예측에서는 use_dropout = False가 좋다. 하나의 안정적인 대표 구조가 필요할 때 dropout은 오히려 결과를 흔들 수 있다. 그러나 다음과 같은 질문을 던질 때는 dropout이 유용해진다.

질문dropout 사용 여부
이 단백질이 하나의 안정한 접힘을 가지는지 보고 싶다.보통 끔
유연한 도메인 배치가 여러 가지 가능한지 보고 싶다.켜서 여러 seed와 함께 실행
수송체나 수용체의 대체 형태를 탐색하고 싶다.얕은 MSA, 여러 seed와 함께 시험
논문 그림에 넣을 대표 구조 하나가 필요하다.먼저 끄고 안정적인 결과를 확보

Dropout을 켜면 모델이 '더 창의적'이 된다. 하지만 창의적인 답이 항상 맞는 답은 아니다. 여러 구조가 나왔을 때는 어떤 구조가 생물학적으로 그럴듯한지, 알려진 도메인 위치나 돌연변이 실험, 결합 부위 정보와 맞는지 함께 판단해야 한다.

max_msa: 정보량을 줄이면 불확실성이 보인다

max_msa는 예측에 사용할 MSA의 최대 깊이를 조절한다. ColabFold 노트북에서는 auto, 512:1024, 256:512, 64:128, 32:64, 16:32처럼 보일 수 있다. 앞의 숫자는 주요 MSA 클러스터 수, 뒤의 숫자는 추가 서열 수로 이해하면 된다. 정확한 내부 처리는 모델과 버전에 따라 달라질 수 있지만, 사용자의 관점에서는 '얼마나 많은 유사 서열 정보를 모델에 줄 것인가'를 정하는 손잡이라고 보면 충분하다.

깊은 MSA는 대체로 정확도에 유리하다. 유사 서열이 많으면 공진화 신호가 풍부해지고, 모델은 접촉 관계를 더 자신 있게 추정할 수 있다. 그래서 대표 구조 하나를 얻고 싶을 때는 max_msa = auto가 안전하다.

그런데 때로는 정보가 너무 강해서 문제가 된다. 단백질이 두 가지 상태를 오갈 수 있는데, 깊은 MSA가 한쪽 상태의 평균적인 신호를 너무 강하게 밀어붙이면 다른 상태가 잘 나오지 않을 수 있다. 이럴 때 max_msa를 줄이면 모델의 확신이 약해지고, seed나 dropout에 따라 다양한 구조가 나타날 가능성이 커진다. EBI의 AlphaFold 교육 자료에서도 MSA 깊이 조정, random seed, dropout 조합이 어려운 구조나 여러 형태를 탐색하는 데 쓰일 수 있다고 설명한다.2

하지만 max_msa를 낮추는 것은 브레이크를 푸는 일과 비슷하다. 구조 다양성은 커질 수 있지만 정확도는 내려갈 수 있다. 그러므로 낮은 max_msa에서 나온 구조는 '가능한 후보'로 보아야지, 곧바로 최종 구조로 받아들이면 안 된다.

목적별 설정 레시피

이제 옵션을 조합해 보자. 아래 표는 절대 규칙이 아니라 출발점이다. 단백질마다 최적값은 다르고, ColabFold 버전이나 GPU 자원에 따라서도 실행 시간이 달라질 수 있다.

목적추천 출발 설정해석 포인트
빠르게 대략적인 구조 확인msa_mode = mmseqs2_uniref_env, model_type = auto, num_recycles = 3, num_seeds = 1, use_dropout = False, max_msa = auto대부분의 첫 실행에 적합하다. 결과가 좋으면 굳이 더 복잡하게 만들지 않는다.
일반 단일체를 조금 더 정밀하게기본값에서 num_recycles = 6 또는 12도메인 배치가 안정되는지, 상위 모델들이 서로 비슷해지는지 본다.
유사 서열이 적은 단백질msa_mode = mmseqs2_uniref_env, num_recycles = 6 이상, num_seeds = 4 이상seed에 따른 변동이 크면 결과를 보수적으로 해석한다. 필요하면 template 사용도 고려한다.
대체 구조 상태 탐색max_msa = 64:128 또는 더 낮게, num_seeds = 8 이상, use_dropout = True다양한 구조가 나오는지 본다. 최종 판단에는 생화학적 정보가 필요하다.
이종 복합체 계면 예측콜론으로 사슬 입력, model_type = auto, pair_mode = unpaired_paired, num_recycles = 12 안팎, num_seeds = 4 이상여러 seed에서 같은 계면이 반복되는지, paired 정보가 충분한지 확인한다.
복합체 대조 실험pair_mode = unpaired_paired, paired, unpaired를 각각 비교계면이 pair mode에 따라 크게 바뀌면 사슬 간 공진화 신호가 불안정할 수 있다.
대량 후보 스크리닝낮은 recycle과 seed 1로 1차 실행 후, 후보만 높은 recycle과 여러 seed로 재실행GPU 시간을 아끼면서 유망 후보에 계산을 집중한다.

여기서 중요한 습관은 한 번에 모든 값을 극단으로 올리지 않는 것이다. num_recycles = 48, num_seeds = 16, use_dropout = True, max_msa = 16:32를 한꺼번에 적용하면 결과가 달라졌을 때 원인을 알 수 없다. 좋은 실험은 한 번에 하나의 질문만 바꾼다.

옵션을 바꾸는 순서

실전에서는 다음 순서가 가장 덜 혼란스럽다.

  1. 먼저 기본값으로 실행한다. 이 결과를 기준점으로 저장한다.

  2. MSA coverage와 결과 신뢰도를 확인한다. 유사 서열이 충분한지, 낮은 신뢰도가 특정 영역에 몰려 있는지 본다.

  3. 구조가 덜 수렴한 것 같으면 num_recycles를 올린다. 같은 MSA로 모델이 더 다듬을 여지를 주는 단계다.

  4. 결과가 여전히 흔들리면 num_seeds를 늘린다. 같은 조건에서 가능한 해의 분포를 본다.

  5. 대체 형태가 목적이라면 그때 max_msa를 줄이거나 use_dropout을 켠다.

  6. 복합체라면 pair_mode를 바꿔 대조 실행한다. 계면이 옵션에 얼마나 민감한지 확인한다.

이 순서의 장점은 원인을 분리할 수 있다는 것이다. recycle을 올렸더니 좋아졌다면 '반복 정제가 부족했구나'라고 추정할 수 있다. seed를 늘렸더니 두 종류의 구조가 반복적으로 나온다면 '모델이 두 상태 사이에서 갈라지는구나'라고 볼 수 있다. pair mode를 바꿨더니 계면이 사라졌다면 '사슬 간 공진화 신호가 결과를 강하게 밀고 있었구나'라고 해석할 수 있다.

흔한 상황별 판단법

전체적으로 pLDDT가 낮고 구조가 흐물흐물하다면, 가장 먼저 MSA를 의심한다. mmseqs2_uniref_env를 썼는지 확인하고, coverage plot에서 유사 서열이 충분한지 본다. 유사 서열이 거의 없다면 num_recycles를 늘려도 한계가 있다. 이때는 여러 seed를 써서 일관된 핵심 접힘이 있는지 확인하거나, 알려진 유사 구조가 있다면 template 사용을 검토한다.

각 도메인은 잘 접혔는데 도메인 사이 각도만 seed마다 다르다면, 그것은 실패가 아닐 수 있다. 실제 단백질이 유연한 링커로 연결된 여러 도메인을 가질 때 AlphaFold는 각 도메인의 내부 구조는 자신 있게 예측하지만, 도메인 사이 상대 배치는 불확실하게 둘 수 있다. 이 경우 num_recycles를 무작정 올리기보다 여러 seed 결과와 PAE를 함께 보는 편이 낫다.

복합체에서 각 사슬은 예쁘게 접혔지만 결합면이 매번 바뀐다면, pair_mode와 MSA pairing을 점검한다. unpaired_paired에서만 특정 계면이 강하게 나오고 unpaired에서는 사라진다면, 그 계면은 paired MSA 신호에 의존하고 있을 가능성이 있다. 반대로 어떤 pair mode에서도 같은 계면이 반복되고, 멀티머 신뢰도 지표도 좋다면 더 유망한 후보로 볼 수 있다.

Dropout을 켰더니 구조가 여러 개로 갈라졌다면, 그 자체로 흥미로운 결과다. 다만 '여러 개가 나왔다'는 사실은 '실제로 여러 상태가 존재한다'는 증거가 아니다. 실험 데이터, 문헌, 돌연변이 정보, 리간드 결합 여부와 연결해야 한다. AlphaFold는 현미경이 아니라 매우 영리한 가설 생성기다.

기록하지 않은 옵션은 재현할 수 없다

ColabFold 결과를 연구에 쓰려면 서열과 결과 파일만 저장해서는 부족하다. 최소한 다음 정보는 함께 기록해야 한다.

항목왜 필요한가
ColabFold 버전 또는 실행 날짜데이터베이스와 기본 설정이 바뀔 수 있다.
입력 서열과 사슬 구분콜론 위치 하나가 복합체 정의를 바꾼다.
msa_mode와 custom MSA 파일예측에 들어간 진화 정보가 달라진다.
pair_mode와 model_type복합체 계면 해석에 직접 영향을 준다.
num_recycles, recycle_early_stop_tolerance구조 수렴과 실행 시간에 영향을 준다.
num_seeds, random seed, use_dropout, max_msa결과 다양성과 재현성에 중요하다.

옵션 기록은 귀찮은 행정 절차가 아니다. 나중에 동료가 같은 구조를 재현하거나, 논문 심사자가 계산 조건을 물어보거나, 몇 달 뒤의 내가 왜 이런 결과가 나왔는지 기억해야 할 때 생명줄이 된다.

옵션은 버튼이 아니라 질문이다

ColabFold의 고급 옵션을 배우면 처음에는 유혹이 생긴다. 모든 값을 크게 만들면 더 좋은 결과가 나올 것 같고, dropout과 여러 seed를 켜면 숨겨진 진실이 튀어나올 것 같다. 하지만 좋은 구조 예측은 버튼을 많이 누르는 일이 아니라 질문을 또렷하게 만드는 일이다.

대표 구조 하나가 필요한가? 그렇다면 깊은 MSA, 기본 모델, 적당한 recycle, dropout off가 좋다. 가능한 여러 상태가 궁금한가? 그렇다면 MSA를 줄이고, seed를 늘리고, dropout을 켜서 지형을 탐색한다. 복합체 계면이 핵심인가? 그렇다면 pair_mode를 이해하고, paired 정보가 결과를 어떻게 바꾸는지 비교한다.

기본값은 출발점이다. 옵션은 방향키다. 그리고 최종 판단은 신뢰도 지표와 생물학적 맥락이 함께 해야 한다. 다음 단계에서는 ColabFold가 만들어 낸 결과 파일을 열어 보고, 구조 그림과 그래프가 실제로 무엇을 말하는지 읽어 볼 것이다.

참고

1ColabFold AlphaFold2 notebook

2EMBL-EBI AlphaFold training: Customising AlphaFold2 structure predictions

3Mirdita et al., ColabFold: making protein folding accessible to all

책 목록

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

전체 목차 보기

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

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

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

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

참여하기