템플릿, 커스텀 MSA, seed로 어려운 예측 개선하기
기본 실행이 흔들릴 때, 문제는 '모델'이 아니라 '가설'일 수 있다
AlphaFold를 처음 쓸 때는 대개 한 가지 기대를 품는다. 서열을 넣고 실행하면, 가장 높은 점수의 구조가 "정답"처럼 나올 것이라는 기대다. 많은 단일 도메인 단백질에서는 실제로 그렇게 느껴질 만큼 결과가 좋다. 하지만 조금만 어려운 표적으로 들어가면 분위기가 달라진다. 도메인은 각각 그럴듯한데 서로 엉뚱한 방향을 보고 있거나, 같은 입력을 여러 번 돌렸는데 꼬리와 루프가 매번 다른 곳에 붙거나, 복합체 예측에서 인터페이스가 점수는 좋아 보이지만 생물학적으로는 말이 안 되는 경우가 생긴다.
이 장의 핵심은 간단하다. 어려운 단백질은 한 번의 기본 실행으로 끝내려 하지 말고, 여러 입력 가설과 샘플링 전략을 비교해야 한다. 여기서 가설이란 "이 단백질은 열린 상태일 것이다", "이 도메인 조합은 박테리아 상동체보다 포유류 서열군을 더 잘 반영해야 한다", "이 복합체는 리간드 결합 상태의 템플릿을 참고해야 한다"처럼 예측 전에 세우는 구조적 추정이다.
AlphaFold2와 ColabFold에서는 num_recycles, MSA 깊이, random seed, template 사용 여부 같은 설정을 바꾸어 예측을 조정할 수 있다. EMBL-EBI의 AlphaFold 교육 자료도 이런 조정이 다중 conformation을 가진 단백질처럼 까다로운 표적에서 도움이 될 수 있다고 설명한다1. AlphaFold 3 로컬 버전 역시 JSON 입력에서 protein chain마다 custom MSA와 template, 여러 model seed를 지정할 수 있다2. 즉 고급 사용의 본질은 "옵션을 많이 켜는 것"이 아니라, 어떤 정보를 넣고 어떤 불확실성을 샘플링할지 설계하는 데 있다.

먼저 실패 양상을 진단한다
템플릿을 넣거나 MSA를 바꾸기 전에, 기본 예측이 왜 불안정한지부터 보아야 한다. 증상을 모르면 처방도 흔들린다.
가장 흔한 첫 번째 증상은 전체 pLDDT가 낮은 경우다. 특히 서열 대부분이 낮은 pLDDT로 나오고 구조가 흐물흐물하다면, MSA가 너무 얕거나 표적 자체가 무질서 영역을 많이 포함할 가능성이 있다. pLDDT는 잔기 주변의 국소 구조 신뢰도를 나타내므로, 낮은 pLDDT가 길게 이어진 구간은 "예측이 틀렸다"라기보다 "고정된 구조로 존재하지 않을 수 있다"는 신호일 수 있다.
두 번째 증상은 도메인별 pLDDT는 높은데 PAE가 높은 경우다. 이때 AlphaFold는 각 도메인의 접힘은 잘 맞혔지만, 도메인끼리의 상대적 배치는 확신하지 못한다. 예를 들어 N-말단 도메인과 C-말단 도메인이 각각 멋진 알파 나선 다발로 접혔는데 두 도메인 사이 PAE가 높다면, 그 사이 연결부가 유연하거나 실제로 여러 배치를 오갈 수 있다.
세 번째 증상은 seed를 바꿀 때마다 모델이 갈라지는 경우다. 같은 fold로 모이면 예측이 꽤 안정적이라고 볼 수 있지만, 서로 다른 접힘이나 도메인 배치로 나뉘면 아직 하나의 답을 고를 단계가 아니다. 이때는 "어느 seed가 최고 점수인가"보다 "어떤 구조군들이 반복해서 나타나는가"를 보아야 한다.
네 번째 증상은 복합체에서 인터페이스만 불안정한 경우다. 각 단백질은 잘 접히지만 사슬 사이 PAE가 높고 ipTM이 낮다면, 결합 방식은 아직 믿기 어렵다. 특히 유연한 말단이나 긴 무질서 꼬리가 다른 단백질 표면에 달라붙는 모델은 조심해야 한다. 그것은 실제 결합 부위가 아니라, 모델이 불확실성을 메우기 위해 만든 가짜 접착제일 수 있다.
이 진단이 끝나면 이제 세 가지 레버를 조정한다. 구조 템플릿, custom MSA, 그리고 샘플링 설정이다.
템플릿은 구조적 힌트이자 강한 편향이다
템플릿은 이미 알려진 구조를 예측에 참고시키는 방법이다. 구조가 알려진 유사 단백질이 있고, 그 단백질이 내가 원하는 결합 상태나 conformation을 잘 대표한다면 템플릿은 강력한 힌트가 된다. AlphaFold2 계열에서는 PDB나 mmCIF 형식의 구조 파일을 template로 사용할 수 있으며, ColabFold 노트북도 template_mode에서 none, pdb100, custom 같은 선택지를 제공한다3. custom template를 쓰는 경우 PDB 또는 mmCIF 파일을 업로드해 목표 예측에 반영할 수 있다.
여기서 중요한 단어는 "힌트"다. 템플릿은 정답을 보장하지 않는다. 오히려 잘못된 템플릿은 모델을 그럴듯한 오답으로 고정할 수 있다. 예를 들어 kinase를 예측한다고 하자. 비활성 상태 구조를 template로 넣었는데 실제 관심사는 활성 상태라면, AlphaFold는 activation loop나 helix 배치를 비활성형 쪽으로 끌고 갈 수 있다. transporter처럼 열림·닫힘 상태가 뚜렷한 단백질도 마찬가지다. 바깥쪽으로 열린 outward-facing 구조를 template로 넣고 안쪽으로 열린 inward-facing 상태를 기대하면, 입력 가설 자체가 충돌한다.
템플릿을 고를 때는 서열 유사도만 보지 말고 상태를 보아야 한다. 같은 family라도 ligand 결합 여부, pH, 금속 이온, 인산화 상태, oligomeric state에 따라 구조가 달라질 수 있다. 특히 효소와 수용체에서는 작은 리간드 하나가 루프와 도메인의 위치를 크게 바꾸기도 한다.
실무적으로는 템플릿을 넣기 전에 다음을 확인한다.
목표 서열과 template 서열의 identity와 coverage가 충분한가
template가 목표 단백질의 전체 길이를 덮는가, 아니면 특정 도메인만 덮는가
template의 결합 상태, 리간드 상태, 활성/비활성 상태가 내 질문과 맞는가
template의 chain, residue numbering, missing residue가 입력 서열과 어긋나지 않는가
복합체라면 template의 oligomeric state가 생물학적 assembly와 일치하는가
템플릿이 가장 유용한 경우는 "구조적 상태를 유도하고 싶을 때"다. 예컨대 이미 PDB에 열린 상태 상동체와 닫힌 상태 상동체가 모두 있다면, 두 template를 각각 넣은 예측을 따로 실행해 볼 수 있다. 열린 상태 template run, 닫힌 상태 template run, template 없는 기본 run을 비교하면 단백질이 어느 상태로 더 안정적으로 수렴하는지 볼 수 있다.
반대로 템플릿이 위험한 경우도 있다. template와 목표 단백질이 서열은 비슷하지만 기능이 달라졌거나, 삽입 도메인이 추가되었거나, template가 crystal packing 때문에 비생리적 접촉을 가진 경우다. 이런 구조를 무비판적으로 넣으면 AlphaFold가 실제 생물학보다 template의 기하학을 더 강하게 따를 수 있다. AlphaFold의 예측은 학습 데이터와 알려진 구조의 영향을 받을 수 있으므로, 알려진 구조가 항상 중립적인 힌트는 아니라는 점도 기억해야 한다4.
템플릿과 MSA 깊이는 줄다리기를 한다
템플릿을 넣었는데 결과가 template를 거의 따르지 않는 경우가 있다. 이때 흔한 이유 중 하나는 MSA 신호가 너무 강한 것이다. MSA에는 진화 과정에서 함께 변한 잔기들의 정보가 들어 있다. AlphaFold2는 이 공진화 신호를 이용해 멀리 떨어진 잔기들이 실제 구조에서 가까울 가능성을 추정한다. MSA가 매우 깊고 일관된 신호를 주면, 모델은 template보다 MSA가 말하는 fold를 더 신뢰할 수 있다.
반대로 MSA를 너무 얕게 만들면 template는 잘 따라가지만 전체 예측 confidence가 떨어질 수 있다. EMBL-EBI 자료는 template를 사용할 때 MSA depth를 함께 고려해야 하며, 공진화 신호가 너무 강하면 template가 무시될 수 있고 MSA가 너무 얕으면 confidence가 낮아질 수 있다고 설명한다1. 그래서 template 기반 예측은 보통 "template만 넣고 끝"이 아니라 MSA 깊이까지 함께 조절하는 실험이 된다.
예를 들어 ColabFold에서 max_msa를 기본값으로 둔 run, 512:1024로 제한한 run, 64:128로 얕게 만든 run을 비교할 수 있다. 열린 상태 template를 넣었을 때 기본 MSA에서는 닫힌 상태로 돌아가지만 얕은 MSA에서는 열린 상태가 반복적으로 나온다면, 이 단백질이 여러 상태를 가질 가능성을 의심해 볼 수 있다. 물론 얕은 MSA에서 나온 구조가 곧 생물학적 진실이라는 뜻은 아니다. 그것은 "모델이 탐색할 수 있는 대안 후보"다.
custom MSA는 예측에 들어가는 진화적 기억을 편집하는 일이다
MSA, 즉 multiple sequence alignment는 여러 상동 서열을 줄 맞춘 표다. AlphaFold에게 MSA는 단순한 참고 문헌이 아니라 단백질 family의 진화적 기억에 가깝다. 어떤 위치는 함께 보존되고, 어떤 위치는 서로 보상하듯 변한다. 모델은 이런 패턴에서 접촉과 구조 제약을 읽어낸다.
기본 실행에서는 AlphaFold나 ColabFold가 자동으로 MSA를 만든다. ColabFold는 빠른 MMseqs2 기반 검색으로 접근성을 크게 높였고, 기본 노트북에서도 msa_mode를 통해 mmseqs2_uniref_env, mmseqs2_uniref, single_sequence, custom 등을 선택할 수 있다3. 반면 전통적인 AlphaFold2 로컬 파이프라인은 Jackhmmer 등으로 여러 유전 데이터베이스를 검색해 MSA를 구성한다. 검색 도구와 데이터베이스가 달라지면 MSA의 깊이, 포함되는 종, 도메인 coverage가 달라지고, 결과 구조도 달라질 수 있다.
custom MSA가 필요한 대표 상황은 기본 MSA가 표적 단백질의 생물학을 잘못 반영할 때다. 예를 들어 목표 단백질이 두 도메인의 fusion인데, 자동 MSA가 N-말단 도메인과 C-말단 도메인을 각각 다른 family에서 끌어와 어색하게 정렬할 수 있다. 또는 표적이 포유류 특이 삽입부를 가진 단백질인데, 박테리아 상동체가 지나치게 많이 들어와 중요한 loop가 gap으로 덮일 수 있다. 복합체 예측에서는 같은 종에서 온 상동체끼리 pairing이 잘못되어 interface 신호가 희석될 수도 있다.
custom MSA는 BLAST, Jackhmmer, HHblits, MMseqs2 같은 도구로 만들 수 있다. 어떤 도구가 항상 최고라고 말하기는 어렵다. BLAST는 빠르고 직관적이지만 민감도가 제한될 수 있고, Jackhmmer는 반복 검색으로 먼 상동체를 더 잘 찾을 수 있으며, MMseqs2는 대규모 데이터베이스를 빠르게 훑는 데 강점이 있다. 중요한 것은 도구 이름보다 최종 alignment의 품질이다.
MSA 품질을 볼 때는 다음 기준을 함께 확인한다.
Depth: 충분한 수의 상동 서열이 있는가
Coverage: 각 서열이 목표 단백질의 어느 구간을 덮는가
Gap 비율: 특정 구간이 대부분 gap으로 채워져 있지는 않은가
중복도: 거의 같은 서열이 과도하게 반복되어 있지는 않은가
도메인 경계: 서로 다른 도메인 family가 억지로 한 줄에 붙어 있지는 않은가
분류학적 구성: 내 질문에 중요한 종 또는 clade가 빠져 있지 않은가
여기서 depth는 단순히 "많을수록 좋다"가 아니다. 수천 개의 서열이 있어도 대부분 한쪽 도메인만 덮거나, 특정 세균군에 치우쳐 있거나, 거의 동일한 서열의 복사본이라면 좋은 MSA가 아니다. 반대로 80개밖에 없어도 목표 단백질 전체를 고르게 덮고 기능적으로 가까운 상동체가 잘 포함되어 있다면, 어려운 표적에서는 더 나은 출발점이 될 수 있다.
custom MSA를 만들 때의 실전 흐름
처음부터 완벽한 MSA를 만들려고 하면 금방 지친다. 실무에서는 거친 MSA를 만든 뒤, 문제가 되는 부분을 줄여 나가는 방식이 좋다.
먼저 목표 서열을 도메인 단위로 나누어 본다. Pfam, InterPro, NCBI Conserved Domain 같은 도메인 주석을 참고해도 좋고, AlphaFold 기본 예측에서 높은 pLDDT 도메인이 끊기는 위치를 힌트로 삼아도 된다. 도메인 경계가 보이면 full-length MSA와 domain-wise MSA를 따로 생각할 수 있다. 여러 도메인이 유연한 linker로 연결된 단백질에서는 full-length 상동체가 드물어 MSA가 얕아질 수 있기 때문이다.
그다음 데이터베이스 검색을 수행한다. BLAST나 Jackhmmer를 쓴다면 E-value 기준을 너무 느슨하게 잡아 unrelated sequence가 들어오지 않도록 조심한다. MMseqs2를 쓴다면 빠른 검색의 장점을 활용해 여러 threshold를 시험할 수 있다. 검색 결과를 모은 뒤에는 거의 동일한 서열을 제거한다. 같은 균주의 거의 같은 단백질이 수백 개 들어 있으면 MSA가 깊어 보이지만 실제 정보량은 생각보다 적다.
그다음 coverage와 gap을 본다. 목표 서열의 1–300번은 잘 덮이는데 301–450번은 대부분 gap이라면, C-말단 도메인 신호가 약하다는 뜻이다. 이 상태로 full-length 예측을 돌리면 N-말단은 잘 접히고 C-말단은 흔들릴 수 있다. 이 경우 C-말단 도메인만 따로 검색하거나, C-말단을 잘 덮는 서열군을 별도로 추가하는 것이 낫다.
마지막으로 alignment를 A3M 형식 등 도구가 요구하는 형식으로 저장한다. ColabFold의 custom MSA 모드는 A3M 파일 업로드를 지원한다3. AlphaFold 3 로컬 JSON에서는 protein 항목에 unpairedMsa 또는 unpairedMsaPath로 A3M 형식의 MSA를 지정할 수 있고, version 2 이후에는 외부 MSA 파일 경로 지정도 가능하다2. 다만 custom MSA는 expert option에 가깝다. 형식은 맞아도 생물학적으로 잘못된 alignment라면 결과를 더 나쁘게 만들 수 있기 때문이다.
예시로 AlphaFold 3 입력의 protein 항목은 다음과 같은 형태를 가질 수 있다.
{
"protein": {
"id": "A",
"sequence": "MSEQUENCE...",
"unpairedMsaPath": "msa/target_A.a3m",
"templates": []
}
}이 조각만으로는 완전한 JSON이 아니다. 전체 파일에는 name, modelSeeds, sequences, dialect, version 등이 함께 필요하다. 중요한 점은 MSA가 별도 파일로 관리될 수 있으므로, 어떤 데이터베이스와 threshold로 만들었는지 파일명과 로그에 남겨야 한다는 것이다.
빠른 MSA와 깊은 MSA를 비교한다
ColabFold의 큰 장점은 빠르다는 것이다. MMseqs2 기반 MSA 검색 덕분에 많은 표적을 손쉽게 예측할 수 있다. 그러나 빠른 검색 하나만으로 모든 어려운 표적을 해결할 수 있는 것은 아니다. 일부 경우에는 Jackhmmer 기반의 더 깊은 MSA, 특정 taxon을 강조한 MSA, 도메인별로 다듬은 MSA가 더 나은 신호를 줄 수 있다.
따라서 어려운 표적에서는 MSA를 하나의 정답 입력으로 보지 말고 비교 대상으로 다룬다. 예를 들어 같은 단백질에 대해 다음 네 가지 입력을 만들 수 있다.
ColabFold 기본 MMseqs2 MSA
환경 서열을 포함한 MMseqs2 MSA
Jackhmmer로 만든 깊은 MSA
도메인 경계와 종 구성을 수동으로 다듬은 custom MSA
이 네 가지를 같은 model type, 같은 recycle 수, 여러 seed로 실행한 뒤 결과를 비교한다. 판단 기준은 단순한 평균 pLDDT가 아니다. pLDDT가 조금 낮아도 PAE가 더 일관되고, 기능 잔기가 합리적인 공간에 모이며, seed 반복에서 같은 fold로 수렴한다면 그 입력이 더 타당할 수 있다. 복합체라면 ipTM, 사슬 간 PAE, interface residue의 pLDDT와 함께 알려진 돌연변이·crosslinking·co-IP·효소 활성 자료를 대조해야 한다.
특히 도메인 배치 문제에서는 평균 pLDDT가 거의 도움이 되지 않는 경우가 많다. 두 모델 모두 도메인 내부 pLDDT가 90 이상일 수 있기 때문이다. 이때는 도메인 사이 PAE가 낮아지는지, seed별 구조가 같은 배치로 모이는지, linker 길이가 물리적으로 가능한지, 알려진 결합 부위가 묻히거나 노출되는지 확인한다.
num_recycles는 더 오래 생각하게 하는 설정이다
AlphaFold2는 한 번에 구조를 끝내지 않고, 자신의 중간 출력을 다시 입력으로 넣어 반복적으로 다듬는다. 이것을 recycling이라고 한다. 사람으로 치면 초안을 쓰고 다시 읽으며 고치는 과정이다. num_recycles를 늘리면 이 반복 refinement 횟수가 늘어난다.
recycle 수 증가는 도메인 배치나 장거리 접촉이 천천히 안정화되는 경우 도움이 될 수 있다. EMBL-EBI 자료는 recycle을 늘리는 것이 challenging structure에서 예측 품질을 높이는 효과적인 방법이 될 수 있으며, 보통 3에서 20 정도로 늘리는 접근을 언급한다1. ColabFold 노트북에서도 num_recycles를 3, 6, 12, 24, 48 등으로 조정할 수 있다3.
하지만 recycle은 마법의 품질 버튼이 아니다. 이미 3 recycle에서 구조가 수렴했다면 24 recycle을 돌려도 점수는 거의 오르지 않고 GPU 시간만 늘어날 수 있다. 더 나쁜 경우, 불확실한 가짜 interface가 반복 refinement 과정에서 더 그럴듯하게 고정되어 보일 수도 있다. 이때 높은 confidence처럼 보이는 결과가 실제 생물학적 근거를 대신하지는 못한다.
그래서 recycle 수를 조정할 때는 "최종 점수"만 보지 말고 포화 여부를 본다. 예를 들어 같은 입력에 대해 3, 6, 12, 24 recycle을 실행하고 다음을 비교한다. 6에서 12로 갈 때 pLDDT와 pTM이 조금 오르고 구조 변화가 줄어들며, 12에서 24로는 거의 변하지 않는다면 12 근처에서 수렴했다고 볼 수 있다. 반대로 recycle을 늘릴수록 도메인 배치가 계속 움직이고 PAE도 안정되지 않는다면, 문제는 반복 횟수가 아니라 입력 정보 부족일 가능성이 크다.
실무적으로는 다음처럼 작은 실험표를 만든다.
| 입력 | recycle | seed 수 | 관찰 포인트 |
|---|---|---|---|
| 기본 MSA | 3 | 4 | 기본 fold와 불안정 구간 확인 |
| 기본 MSA | 12 | 4 | 도메인 배치 수렴 여부 확인 |
| custom MSA | 12 | 4 | MSA 변경 효과 확인 |
| template + 얕은 MSA | 12 | 4 | 특정 상태 유도 여부 확인 |
이런 표를 만들어 두면 나중에 결과를 설명할 때도 훨씬 편하다. "좋아 보이는 모델 하나를 골랐다"가 아니라 "입력과 recycle 조건을 비교했고, 이 조건에서만 구조가 반복적으로 수렴했다"고 말할 수 있기 때문이다.
seed는 복권 번호가 아니라 불확실성 탐침이다
Random seed는 예측 과정의 난수 흐름을 정하는 값이다. 같은 코드, 같은 입력, 같은 seed라면 대체로 같은 결과가 재현된다. seed를 바꾸면 출발점이 달라지고, 어려운 표적에서는 다른 구조 후보가 나올 수 있다. AlphaFold 3 논문에서도 평가 시 여러 model seed와 diffusion sample을 사용해 confidence-ranked sample을 고르는 방식이 설명된다5. AlphaFold 3 로컬 입력 형식 역시 modelSeeds에 여러 정수 seed를 지정하면 seed별 예측 구조를 얻을 수 있다2.
중요한 것은 seed를 "언젠가 운 좋게 정답이 나오는 버튼"처럼 쓰지 않는 것이다. seed 반복은 불확실성을 관찰하는 도구다. 안정적인 단백질이라면 seed를 바꾸어도 핵심 fold는 거의 같아야 한다. 반면 flexible loop, domain orientation, weak interface는 seed에 따라 크게 흔들릴 수 있다.
seed 결과를 해석할 때는 구조들을 겹쳐 본다. 전체 RMSD만 보면 유연한 말단 때문에 차이가 과장될 수 있으므로, 먼저 높은 pLDDT 도메인끼리 정렬한다. 그런 다음 도메인 간 상대 위치, 활성 부위의 형상, interface의 반복성, PAE 패턴을 본다. 여러 seed가 같은 fold와 같은 interface로 모이고 사슬 간 PAE도 낮다면 신뢰도가 올라간다. 반대로 상위 점수 모델들이 서로 다른 interface를 만든다면, 그 복합체 예측은 아직 결론 내리기 어렵다.
여기서 ensemble이라는 관점이 중요하다. 단백질은 실제로 하나의 딱딱한 조각이 아니라 여러 conformation을 오갈 수 있다. AlphaFold의 seed별 결과가 서로 다른 구조군으로 갈라진다면, 그것이 단순한 실패일 수도 있지만 실제 대체 상태의 단서일 수도 있다. 판단은 기능적 제약과 실험 정보로 해야 한다. 예를 들어 효소의 catalytic residue가 한 구조군에서만 올바른 거리를 이루고, 알려진 변이 효과도 그 구조군의 interface에 모인다면 그 후보에 더 무게를 둘 수 있다.
dropout은 모델을 일부러 덜 확신하게 만든다
Dropout은 신경망의 일부 연결을 예측 중에 무작위로 꺼서 다양한 출력을 유도하는 기법이다. 일반적으로 모델 학습에서 과적합을 줄이는 데 쓰이지만, ColabFold에서는 샘플링 목적으로 dropout을 활성화할 수 있다. ColabFold 노트북의 sample settings에도 dropout을 켜고 seed 수를 늘려 모델의 불확실성에서 여러 예측을 샘플링할 수 있다는 설명이 있다3.
dropout은 특히 얕은 MSA와 함께 쓸 때 다양한 conformation 후보를 드러낼 수 있다. 공진화 신호가 강하게 하나의 구조를 밀어붙이는 상황에서는 dropout을 켜도 큰 변화가 없을 수 있지만, MSA를 줄이거나 특정 서열군을 제외하면 모델이 대체 배치를 탐색하기 쉬워진다. 이런 접근은 transporter, receptor, enzyme loop, multi-domain protein처럼 여러 상태가 가능한 표적에서 흥미로운 후보를 만든다.
하지만 dropout 결과는 더 엄격하게 보아야 한다. 다양성이 늘어난다는 것은 오답도 늘어난다는 뜻이다. 낮은 pLDDT, 깨진 2차 구조, 비현실적인 꼬임, 묻혀야 할 소수성 잔기의 노출, 말이 안 되는 chain crossing이 나타날 수 있다. 따라서 dropout으로 얻은 구조는 "발견"이 아니라 "후보 생성"으로 취급한다. 이후 template 결과, 다른 MSA 결과, seed 반복성, 기능 잔기, 실험 자료와 교차 검증해야 한다.
MSA를 일부러 줄이면 숨은 상태가 보일 수 있다
초보자에게는 이상하게 들리겠지만, 어려운 예측에서는 MSA depth를 일부러 줄이는 실험이 도움이 될 수 있다. 보통은 MSA가 깊을수록 좋다고 배운다. 실제로 많은 단일 상태 globular protein에서는 그렇다. 하지만 단백질 family가 여러 conformation을 갖고 있고, MSA가 그중 가장 흔한 상태의 신호를 강하게 담고 있다면, 깊은 MSA는 오히려 한 상태로 예측을 고정할 수 있다.
일부 연구들은 MSA를 cluster별로 나누거나 subsampling하여 AlphaFold가 다른 conformation을 샘플링하도록 유도할 수 있음을 보여 주었다고 소개된다1. 원리는 직관적이다. 다양한 종의 서열을 모두 섞으면 평균적인 진화 신호가 강해진다. 반대로 특정 clade만 남기거나 일부 서열을 무작위로 줄이면 신호가 약해지고, 모델이 다른 구조적 해석을 시도할 여지가 생긴다.
예를 들어 bacterial transporter family에서 outward-facing 구조가 많은 clade와 inward-facing 구조가 많은 clade가 섞여 있다고 하자. 전체 MSA를 쓰면 모델이 더 풍부한 쪽의 신호를 따를 수 있다. 이때 clade별 MSA를 따로 만들어 예측하면 서로 다른 상태 후보가 나타날 수 있다. 또는 full MSA, 512개 subsample, 128개 subsample, 32개 subsample을 seed와 dropout 조합으로 실행해 구조군이 어떻게 갈라지는지 볼 수 있다.
다만 MSA를 줄이는 실험은 양날의 칼이다. 공진화 신호가 약해지면 대체 conformation을 탐색할 수 있지만, 동시에 예측 안정성과 물리적 타당성도 떨어진다. 따라서 얕은 MSA에서만 나타난 멋진 구조를 곧바로 믿어서는 안 된다. 최소한 같은 조건의 여러 seed에서 반복되는지, template로도 유도되는지, 알려진 돌연변이와 기능 잔기를 설명하는지 확인해야 한다.
복합체에서는 custom MSA와 pairing을 더 조심한다
단일 단백질보다 복합체 예측이 더 어려운 이유는 단순하다. 각 단백질이 어떻게 접히는지뿐 아니라, 어떤 파트너와 어떤 방향으로 만나는지도 맞혀야 하기 때문이다. 복합체에서 MSA는 두 층의 정보를 가진다. 각 chain 자체의 진화 정보와, 같은 종 또는 같은 유전체에서 함께 진화한 chain들의 pairing 정보다.
ColabFold에서는 complex 입력에서 chain을 :로 구분하고, pair_mode나 pairing strategy를 조정할 수 있다. 예를 들어 unpaired_paired는 같은 species에서 온 서열을 pairing하면서 unpaired MSA도 함께 쓰는 방식이고, paired는 paired sequence만 사용하는 방식이다3. 이 설정은 interface 예측에 직접 영향을 줄 수 있다.
문제는 pairing이 항상 깔끔하지 않다는 것이다. paralog가 많은 family에서는 A 단백질의 homolog와 B 단백질의 homolog가 같은 종에 여러 개씩 있을 수 있다. 이때 잘못 pairing하면 실제로 함께 작동하지 않는 단백질쌍의 공진화 신호가 섞인다. 그 결과 모델은 그럴듯하지만 엉뚱한 interface를 만들 수 있다.
AlphaFold 3의 custom MSA 입력에서도 paired MSA는 신중히 다루어야 한다. 공식 입력 문서는 protein chain에 unpairedMsa, pairedMsa, 그리고 각각의 path 필드를 제공하지만, pairing 목적에는 unpairedMsa 사용을 권장하는 설명과 함께 세부 형식 주의사항을 제시한다2. 복합체 custom MSA는 형식만 맞추는 문제가 아니라 생물학적 orthology 판단이 들어가는 작업이다.
복합체에서 여러 MSA 전략을 비교할 때는 평균 pLDDT보다 interface를 중심으로 본다. 좋은 후보는 보통 다음 특징을 보인다. seed를 바꾸어도 interface가 유지되고, 사슬 간 PAE가 낮으며, ipTM이 상대적으로 높고, interface 잔기가 알려진 변이나 보존성 정보와 맞아떨어진다. 반대로 한두 seed에서만 나타나는 넓은 interface, 무질서 꼬리가 만든 접촉, 전하와 소수성 패턴이 어색한 접촉은 버리는 편이 낫다.
어려운 표적을 위한 비교 실험 설계
이제 실제로 어떻게 실행할지 하나의 흐름으로 묶어 보자. 목표는 최고 점수 모델 하나를 뽑는 것이 아니라, 입력 가설별로 구조가 어떻게 달라지는지 이해하는 것이다.
첫 단계는 baseline이다. template 없이 기본 MSA로 실행하고, seed를 최소 4개 정도 사용한다. 이 결과에서 안정적인 도메인, 불안정한 linker, seed에 따라 갈라지는 부분, PAE가 높은 영역을 표시한다. 이 baseline은 이후 모든 조정의 기준점이다.
두 번째 단계는 MSA 비교다. ColabFold 기본 MSA, 환경 서열 포함 MSA, 더 깊은 Jackhmmer 기반 MSA, 수동 정제 custom MSA를 가능하면 같은 조건으로 비교한다. 여기서 구조가 크게 달라지는 구간은 MSA 구성에 민감한 부분이다. 그 구간이 기능적으로 중요한 영역이라면 더 깊이 조사해야 한다.
세 번째 단계는 template 실험이다. 구조가 알려진 유사 단백질이 있다면 상태별 template를 나누어 실행한다. 열린 상태 template, 닫힌 상태 template, ligand-bound template, apo template를 구분한다. MSA가 너무 강해 template 효과가 보이지 않으면 MSA depth를 낮춘 조건도 함께 본다.
네 번째 단계는 recycle과 seed grid다. 가장 유망한 MSA와 template 조건을 골라 recycle 3, 6, 12, 24 정도를 비교하고, 각 조건에서 여러 seed를 실행한다. 결과가 특정 recycle 이후 포화되는지, seed별 구조군이 하나로 모이는지 확인한다.
다섯 번째 단계는 dropout과 MSA thinning이다. baseline과 template 실험으로도 설명되지 않는 대체 상태가 의심될 때만 사용한다. dropout과 얕은 MSA는 후보를 넓히는 도구이지, 최종 증거가 아니다. 여기서 나온 구조는 반드시 다른 조건과 실험 정보로 교차 검증한다.
마지막 단계는 모델 선택이 아니라 모델 분류다. 결과를 하나의 순위표로만 보지 말고 구조군으로 나눈다. 예를 들어 "닫힌 상태군", "열린 상태군", "불안정한 interface군", "도메인만 안정적인 군"처럼 분류한다. 그다음 각 군에 대해 pLDDT, PAE, pTM/ipTM, RMSD, 기능 잔기 배치, 실험 근거를 붙인다.
결과를 비교할 때 보는 지표
여러 조건을 돌리면 파일이 빠르게 늘어난다. 이때 기준이 없으면 가장 예쁜 그림이나 가장 높은 평균 pLDDT에 끌리기 쉽다. 하지만 어려운 예측에서는 예쁜 모델이 가장 위험할 때가 있다.
단일 단백질에서는 먼저 높은 pLDDT 영역을 기준으로 구조를 정렬한다. 전체 RMSD보다 domain-wise RMSD가 더 유용할 때가 많다. 도메인 내부 fold가 같은지, domain orientation이 다른지, 긴 loop가 seed별로 흔들리는지 분리해서 보아야 한다. PAE plot에서는 도메인 내부 블록이 낮은지, 도메인 사이 영역이 낮아지는지 확인한다.
복합체에서는 chain별 pLDDT와 함께 사슬 간 PAE를 본다. interface residue의 pLDDT가 높고, chain A와 chain B 사이의 PAE가 낮으며, 여러 seed에서 같은 interface가 반복되면 신뢰도가 올라간다. pTM은 전체 fold와 domain arrangement에, ipTM은 interface 신뢰도에 더 직접적으로 관련된다. 단, 숫자 하나로 판정하지 말고 구조 그림과 함께 보아야 한다.
대체 conformation 후보를 비교할 때는 기능적 제약이 결정적이다. ATP 결합 단백질이라면 Walker motif나 catalytic residue의 상대 위치를 본다. DNA 결합 단백질이라면 recognition helix가 DNA major groove를 향할 수 있는지 본다. 수용체라면 ligand-binding pocket이 열려 있는지, 막단백질이라면 transmembrane helix의 방향과 막 평면이 말이 되는지 본다. AlphaFold의 confidence metric은 모델 내부의 확신을 말해 줄 뿐, 내 생물학적 질문의 답을 자동으로 보장하지 않는다.
보고서에는 '최고 모델'보다 '비교 과정'을 남긴다
고급 옵션을 사용한 예측은 재현성이 특히 중요하다. 누군가 같은 서열을 기본값으로 돌렸는데 전혀 다른 구조가 나온다면, 왜 내 모델을 선택했는지 설명할 수 있어야 한다. 따라서 결과 보고서에는 최소한 입력 서열 버전, 사용 도구와 버전, MSA 생성 방법, template PDB/mmCIF 파일, seed 목록, recycle 수, dropout 여부, model type, ranking 기준을 남긴다.
특히 custom MSA는 반드시 출처를 남겨야 한다. 어떤 데이터베이스를 어떤 날짜에 검색했는지, E-value나 coverage cutoff는 무엇이었는지, 중복 제거 기준은 무엇이었는지, 수동으로 제외한 서열군이 있는지 기록한다. template도 마찬가지다. PDB ID만 적지 말고 chain, residue range, 결합 상태, 사용한 전처리 내용을 남긴다.
결론 문장도 조심스럽게 써야 한다. "AlphaFold가 이 구조를 예측했으므로 이 상태가 맞다"보다는 "여러 MSA와 seed 조건에서 이 fold가 반복적으로 수렴했고, template 및 기능 잔기 제약과도 일치한다"가 더 좋은 표현이다. 대체 상태가 남아 있다면 "열린 상태와 닫힌 상태 후보가 모두 관찰되며, 현재 입력만으로는 우열을 확정하기 어렵다"고 쓰는 편이 정직하다.
작은 예: 두 도메인 효소의 열린 상태와 닫힌 상태
가상의 두 도메인 효소를 생각해 보자. 기본 ColabFold 예측에서는 각 도메인의 pLDDT가 90 이상이지만, 두 도메인 사이 PAE가 높다. seed 1에서는 활성 부위가 닫히고, seed 2에서는 열린다. 평균 pLDDT만 보면 둘 다 좋아 보인다.
이때 먼저 도메인 경계를 확인하고 full-length MSA를 살펴본다. 알고 보니 대부분의 상동체가 N-말단 도메인만 덮고 있고, C-말단 도메인은 gap이 많다. 그래서 C-말단을 잘 덮는 서열군을 추가해 custom MSA를 만든다. 이 MSA로 돌리자 두 도메인 사이 PAE가 조금 낮아지고 seed들이 닫힌 상태로 더 자주 모인다.
다음으로 PDB에서 같은 family의 ligand-bound closed template와 apo open template를 찾는다. closed template를 넣은 run은 catalytic residue가 기질 결합에 맞게 모이고, open template run은 domain interface가 벌어진다. MSA depth를 줄이면 open 상태도 안정적으로 나오지만, full MSA에서는 closed 상태가 더 반복된다.
이 상황에서 결론은 하나가 아니다. 만약 실험 조건이 기질 또는 inhibitor가 있는 상태라면 closed model을 주요 후보로 제시할 수 있다. 반대로 apo 상태의 SAXS나 cryo-EM envelope가 열린 구조와 맞는다면 open model에 무게를 둘 수 있다. AlphaFold 실험의 목적은 "모델 하나를 고르는 것"이 아니라, 가능한 구조 상태와 그 근거를 정리하는 것이다.
이번 장의 핵심 정리
템플릿, custom MSA, seed, dropout, recycle은 모두 강력한 도구다. 하지만 이 도구들은 결과를 자동으로 좋게 만드는 스위치가 아니다. 각각은 예측에 다른 종류의 편향과 불확실성을 넣는다. 템플릿은 구조적 상태를 밀어 주지만 잘못된 상태를 고정할 수 있다. custom MSA는 진화 신호를 정교하게 만들지만 편집자의 판단을 반영한다. recycle은 반복 refinement를 늘리지만 수렴한 예측에서는 시간만 늘릴 수 있다. seed와 dropout은 ensemble을 보여 주지만 오답 후보도 함께 만든다. MSA thinning은 숨은 conformation을 열어 줄 수 있지만 안정성을 희생한다.
어려운 단백질을 다룰 때 가장 좋은 태도는 탐정에 가깝다. 한 증거에 매달리지 말고, 여러 조건에서 반복되는 패턴을 찾는다. pLDDT가 말하는 국소 확신, PAE가 말하는 상대 배치의 불확실성, pTM과 ipTM이 말하는 전역 구조와 interface 신뢰도, 그리고 생물학적 맥락을 함께 놓고 판단한다. 그렇게 할 때 AlphaFold는 단순한 구조 생성기가 아니라, 구조 가설을 시험하는 강력한 실험대가 된다.
참고
1Customising AlphaFold2 structure predictions
2AlphaFold 3 input documentation
3ColabFold AlphaFold2 notebook tutorial
4Improved AlphaFold modeling with implicit experimental information
5Accurate structure prediction of biomolecular interactions with AlphaFold 3
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.