| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- 오류역전파
- 이항분포
- BLaST
- 단백질 구조 예측
- 바이오파이썬
- COVID
- 생명정보학
- 생물정보학
- 인공지능
- 로제타폴드
- 딥러닝
- 시그모이드
- 서열정렬
- 바이오인포매틱스
- RNN
- 인공지능 수학
- AP
- 알파폴드
- 결정트리
- Kaggle
- 자바
- SVM
- bioinformatics
- 인공신경망
- 캐글
- CNN
- ncbi
- 파이썬
- Java
- AP Computer Science A
- Today
- Total
데이터 과학
ColabFold와 RoseTTAFold를 이용한 단백질 구조 예측 본문
ColabFold와 RoseTTAFold를 이용한 단백질 구조 예측 비교 실험
최근 인공지능 기술의 발전은 생명과학 연구의 방법에도 많은 변화를 가져오고 있습니다. 그중에서도 단백질 구조 예측은 인공지능이 생명과학 분야에서 실제 연구 방법을 크게 변화시킨 대표적인 사례라고 할 수 있습니다.
단백질은 여러 개의 아미노산이 연결된 사슬로 만들어집니다. 하지만 단백질의 기능은 단순히 어떤 아미노산이 연결되어 있는지만으로 결정되는 것이 아니라, 이 사슬이 실제 공간에서 어떻게 접혀 3차원 구조를 형성하는가와 밀접하게 관련되어 있습니다.
과거에는 단백질의 구조를 알아내기 위해 X선 결정학, NMR, Cryo-EM과 같은 실험적 방법이 주로 사용되었습니다. 이러한 방법으로 밝혀진 구조는 Protein Data Bank에 축적되어 있으며, 현재도 전 세계 연구자들이 자유롭게 이용하고 있습니다.
RCSB Protein Data Bank
https://www.rcsb.org/
RCSB PDB: Homepage
As a member of the wwPDB, the RCSB PDB curates and annotates PDB data according to agreed upon standards. The RCSB PDB also provides a variety of tools and resources. Users can perform simple and advanced searches based on annotations relating to sequence,
www.rcsb.org
RCSB PDB에서는 단백질 이름이나 PDB ID뿐 아니라 단백질 서열을 이용한 검색도 가능합니다. 따라서 이번 실험에서는 인공지능이 예측한 구조만 살펴보는 것이 아니라, 가능하다면 PDB에서 실제 실험으로 밝혀진 구조를 찾아 함께 비교해 보는 것도 좋습니다.
1. 단백질 서열만으로 구조를 알아낼 수 있을까?
이번 실험에서 가장 먼저 생각해 볼 문제는 아주 간단합니다.
단백질의 아미노산 서열만 알고 있을 때 그 단백질의 3차원 구조를 얼마나 정확하게 예측할 수 있을까?
예를 들어 다음과 같은 아미노산 서열이 있다고 생각해 보겠습니다.
MKWVTFISLLLLFSSAYSRGVFRRDTHKSEIAHRFKDLGE...
컴퓨터가 보는 입력 자료는 기본적으로 이러한 문자들의 배열입니다. 각각의 문자는 하나의 아미노산을 의미합니다.
하지만 실제 단백질은 직선 형태로 존재하지 않습니다. 아미노산 사이의 여러 상호작용에 의해 접히면서 α-helix, β-sheet, loop와 같은 구조를 만들고 최종적으로 복잡한 3차원 형태를 갖게 됩니다.
AlphaFold와 RoseTTAFold가 해결하려는 중요한 문제가 바로 여기에 있습니다.
이번 실험에서는 같은 아미노산 서열을 두 종류의 인공지능 구조 예측 방법에 입력해 보겠습니다.
첫 번째는 AlphaFold2를 기반으로 하는 ColabFold이고, 두 번째는 RoseTTAFold입니다.
두 프로그램에 동일한 단백질 서열을 입력한 뒤 각각의 구조를 예측하고, 마지막에는 PyMOL을 이용하여 두 구조를 직접 겹쳐 보겠습니다.
2. ColabFold란 무엇인가?
AlphaFold2는 단백질 구조 예측 분야에 큰 변화를 가져온 인공지능 모델입니다. 하지만 AlphaFold2를 개인 컴퓨터에 직접 설치하여 실행하려면 상당한 계산 자원과 데이터베이스가 필요합니다.
이러한 문제를 해결하면서 AlphaFold2를 보다 쉽게 사용할 수 있도록 만들어진 도구가 ColabFold입니다.
ColabFold는 AlphaFold2의 구조 예측 기능과 MMseqs2를 결합하여 단백질 구조 예측을 보다 쉽게 수행할 수 있도록 만들어졌습니다. 공식 ColabFold 노트북에서는 MMseqs2를 이용하여 sequence alignment를 생성하고 AlphaFold2 또는 AlphaFold2-Multimer를 이용하여 단백질 구조를 예측할 수 있습니다.
특히 Google Colab에서 실행할 수 있기 때문에 별도의 Linux 서버를 구축하지 않아도 됩니다.
ColabFold 실험 사이트
Google Colab에서 다음 주소로 접속합니다.
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb
ColabFold 공식 GitHub는 다음과 같습니다.
https://github.com/sokrypton/ColabFold
ColabFold AlphaFold2 노트북은 Google Colab의 GPU 환경에서 실행할 수 있도록 구성되어 있습니다. 단백질 서열을 입력하면 MMseqs2를 이용하여 관련 서열을 검색하고 MSA를 생성한 뒤 이를 이용하여 AlphaFold2 구조 예측을 수행합니다.
3. MSA는 왜 필요한가?
ColabFold를 실행하면 단순히 입력한 단백질 하나만 분석하는 것이 아닙니다.
먼저 입력한 단백질과 유사한 단백질 서열들을 데이터베이스에서 찾습니다. 그리고 여러 단백질의 아미노산 서열을 서로 정렬합니다.
이 과정을 Multiple Sequence Alignment, MSA라고 합니다.
MSA를 살펴보면 진화 과정에서 잘 변하지 않는 아미노산과 서로 연관되어 변화하는 아미노산을 찾을 수 있습니다.
예를 들어 단백질의 서로 멀리 떨어져 있는 두 위치의 아미노산이 진화 과정에서 함께 변화하는 경향이 나타난다면, 실제 3차원 구조에서는 이 두 위치가 가까이 있을 가능성을 생각해 볼 수 있습니다.
ColabFold에서는 이러한 MSA 생성 과정에 MMseqs2를 활용합니다.
따라서 학생들은 ColabFold를 단순히 단백질 그림을 만들어 주는 프로그램으로 이해하기보다,
아미노산 서열 → 유사 서열 탐색 → MSA → 구조적 관계 추론 → 3차원 구조 예측
이라는 과정으로 이해하는 것이 중요합니다.
4. ColabFold 실험하기
먼저 비교적 크기가 작은 단백질을 하나 선택합니다.
처음 실험한다면 Lysozyme과 같이 구조가 잘 알려져 있고 크기가 비교적 작은 단백질을 선택하는 것이 좋습니다.
단백질의 아미노산 서열은 FASTA 형식으로 준비합니다.
예를 들어 다음과 같은 형태입니다.
>protein
KVFGRCELAAAMKRHGLDNYRGYSLGNWVCAAKFESNFNTQATNRNTDG
STDYGILQINSRWWCNDGRTPGSRNLCNIPCSALLSSDITASVNCAKKIV
SDGNGMNAWVAWRNRCKGTDVQAWIRGCRL
ColabFold 노트북을 실행하고 query_sequence 부분에 이 서열을 입력합니다.
이후 노트북의 셀을 순서대로 실행합니다.
처음 실행할 때는 필요한 프로그램과 라이브러리를 설치하기 때문에 시간이 조금 걸릴 수 있습니다.
계산이 시작되면 MSA가 만들어지고 이를 바탕으로 AlphaFold2가 단백질의 구조를 예측합니다.
5. ColabFold 결과에서 무엇을 봐야 할까?
구조 예측이 끝나면 가장 먼저 3차원 단백질 구조가 나타납니다.
하지만 단순히 구조가 그럴듯하게 보인다고 해서 예측 결과가 정확하다고 판단해서는 안 됩니다.
중요하게 살펴볼 값 가운데 하나가 pLDDT입니다.
pLDDT는 AlphaFold 계열 모델이 각 잔기의 위치를 얼마나 신뢰하고 있는지를 나타내는 지표입니다.
일반적으로 높은 pLDDT 값을 가지는 부분은 모델이 해당 구조를 비교적 높은 신뢰도로 예측했다는 의미이고, 낮은 값을 가지는 부분은 구조 해석에 주의가 필요합니다.
단백질의 말단이나 유연한 loop 부분에서는 상대적으로 낮은 신뢰도가 나타날 수 있습니다.
또 하나 살펴볼 자료는 PAE, Predicted Aligned Error입니다.
PAE는 단백질 내부의 서로 다른 영역이나 도메인 사이의 상대적인 위치 관계를 모델이 얼마나 신뢰하는지를 살펴보는 데 유용합니다.
따라서 ColabFold 결과에서는 단순히 가장 예쁜 구조를 선택하기보다는
3차원 구조 + pLDDT + PAE
를 함께 살펴보는 것이 좋습니다.
6. RoseTTAFold로 예측해 보자
이제 같은 단백질 서열을 RoseTTAFold에 입력해 보겠습니다.
RoseTTAFold는 University of Washington의 연구진이 개발한 단백질 구조 예측 모델입니다.
초기의 RoseTTAFold에서 특히 중요한 특징은 3-track neural network입니다.
단백질의 1차원 서열 정보, 아미노산 잔기 사이의 2차원 관계, 그리고 3차원 좌표 정보를 서로 연결하면서 구조를 학습하는 방식입니다. 공식 RoseTTAFold 저장소에서도 이를 3-track network를 이용한 단백질 구조와 상호작용 예측 모델로 설명하고 있습니다.
RoseTTAFold의 전체 프로그램을 직접 설치할 수도 있습니다.
RoseTTAFold 공식 프로그램
https://github.com/RosettaCommons/RoseTTAFold
GitHub - RosettaCommons/RoseTTAFold: This package contains deep learning models and related scripts for RoseTTAFold
This package contains deep learning models and related scripts for RoseTTAFold - RosettaCommons/RoseTTAFold
github.com
직접 설치하려면 환경 설정이나 데이터베이스 준비 과정이 상당히 복잡할 수 있습니다만
아래 링크를 따라서 설치해서 실험할 수 있습니다.
https://tsyoon.tistory.com/274
Ubuntu 24.04에 RoseTTAFold-All-Atom 설치하기
RTX 5060 , SSD 2TB 환경 기준RoseTTAFold-All-Atom은 단백질뿐 아니라 DNA, RNA, 작은 분자, 금속 이온을 포함한 복합체 구조를 예측할 수 있는 인공지능 기반 구조 예측 도구입니다.기존 RoseTTAFold가 주로 단
tsyoon.tistory.com
처음 비교 실험을 한다면 Google Colab에서 실행할 수 있는 버전을 이용하는 것이 편리합니다.
7. RoseTTAFold Google Colab 실험
RoseTTAFold를 간단하게 경험할 수 있는 Colab 노트북을 실행할 수 있습니다.
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/RoseTTAFold.ipynb
RoseTTAFold.ipynb
Run, share, and edit Python notebooks
colab.research.google.com
이 방법은 RoseTTAFold를 Google Colab에서 실험할 수 있도록 구성한 버전입니다.
다만 중요한 점이 하나 있습니다.
Colab 노트북은 전체 RoseTTAFold 파이프라인과 완전히 동일한 환경은 아닙니다. 해당 노트북에서도 template 및 PyRosetta 등 전체 파이프라인의 일부 기능이 비활성화되어 있다고 설명하고 있습니다. 따라서 교육용 실습에는 편리하지만 전문적인 연구 결과와 동일한 조건이라고 생각해서는 안 됩니다.
이번 실험의 목적은 두 모델의 절대적인 성능 순위를 정하는 것이 아니라,
동일한 단백질 서열을 서로 다른 딥러닝 구조 예측 모델에 입력했을 때 어떤 결과가 만들어지는가
를 관찰하는 데 있습니다.
8. RoseTTAFold2도 사용할 수 있다
조금 더 확장된 실험을 하고 싶다면 RoseTTAFold2를 이용할 수도 있습니다.
현재 ColabFold 프로젝트에서는 RoseTTAFold2를 실행할 수 있는 별도의 Google Colab 노트북도 제공하고 있습니다.
RoseTTAFold2 Google Colab
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/RoseTTAFold2.ipynb
RoseTTAFold2.ipynb
Run, share, and edit Python notebooks
colab.research.google.com
현재 ColabFold 공식 안내에서는 RoseTTAFold2 노트북을 BETA, in development 항목으로 안내하고 있습니다.
처음 실험에서는 RoseTTAFold Colab을 이용하고, 이후 심화 활동에서 RoseTTAFold2를 추가하여 결과가 어떻게 달라지는지 살펴보는 방법도 가능합니다.
9. 동일한 서열을 입력하는 것이 중요하다
두 프로그램에 정확히 같은 FASTA 서열을 입력하여 비교 실험을 시작해 봅시다.
예를 들어 Lysozyme을 실험한다면 하나의 FASTA 서열을 준비하여 ColabFold에도 동일한 서열을 입력하고, RoseTTAFold에도 동일한 서열을 입력합니다.
이렇게 해야 두 모델에서 나타나는 구조 차이를 모델의 차이라는 관점에서 살펴볼 수 있습니다.
각각의 계산이 완료되면 예측된 단백질 구조 파일을 저장합니다.
파일 이름도 알아보기 쉽게 변경해 두는 것이 좋습니다.
colabfold.pdb
rosettafold.pdb
10. 두 구조를 눈으로 비교해 보자
두 개의 PDB 파일을 얻었다면 먼저 각각의 구조를 관찰합니다.
이때 다음과 같은 부분을 살펴봅니다.
1. 전체적인 단백질의 모양은 비슷한가?
2. α-helix의 위치와 길이는 비슷한가?
4. β-sheet의 위치는 동일한가?
5. loop 부분에서는 차이가 나타나는가?
6. N-terminal과 C-terminal 부분의 방향은 같은가?
단백질의 중심 부분과 바깥 부분 가운데 어느 부분에서 더 큰 차이가 나타나는가?
대부분의 경우 구조를 단순히 눈으로 보는 것만으로는 차이를 정확하게 판단하기 어렵습니다.
따라서 두 구조를 실제로 겹쳐 보는 과정이 필요합니다.
11. PyMOL에서 두 구조 겹쳐 보기
PyMOL을 실행하고 ColabFold와 RoseTTAFold에서 얻은 두 개의 PDB 파일을 불러옵니다.
PyMOL 명령창에서 다음과 같이 입력합니다.
load colabfold.pdb, colabfold
load rosettafold.pdb, rosettafold
단백질의 2차 구조를 보기 쉽게 cartoon 형태로 표현합니다.
hide everything
show cartoon
이제 두 구조를 정렬합니다.
align rosettafold, colabfold
그러면 PyMOL이 두 단백질 구조를 가능한 한 잘 겹치도록 정렬합니다.
이 과정에서 RMSD 값을 확인할 수 있습니다.
12. RMSD는 무엇을 의미할까?
RMSD는 Root Mean Square Deviation의 약자로 두 구조에서 대응되는 원자들의 위치가 평균적으로 얼마나 차이가 나는지를 나타내는 값입니다.
두 구조가 거의 동일하다면 RMSD가 작게 나타나고, 구조 차이가 커질수록 RMSD도 커지는 경향이 있습니다.
ColabFold 구조 ↔ RoseTTAFold 구조
를 정렬하고 RMSD를 구하면 두 인공지능 모델이 예측한 구조가 어느 정도 비슷한지 수치로 표현할 수 있습니다.
하지만 RMSD 하나만 보고 어느 모델이 더 정확하다고 판단하는 것은 적절하지 않습니다.
두 모델의 결과가 서로 비슷하다는 것과 실제 단백질 구조에 가깝다는 것은 서로 다른 문제이기 때문입니다.
13. 그렇다면 어느 모델이 더 정확할까?
이 질문에 답하려면 세 번째 구조가 필요합니다.
바로 실험을 통해 밝혀진 실제 단백질 구조입니다.
실험 구조는 RCSB Protein Data Bank에서 찾을 수 있습니다.
RCSB PDB에는 X선 결정학, NMR, Cryo-EM 등을 통해 결정된 생체분자의 3차원 구조가 축적되어 있습니다.
따라서 우리가 선택한 단백질의 실험 구조가 PDB에 존재한다면 이를 다운로드하여 비교할 수 있습니다.
다음과 같이 세 개의 파일을 준비합시다.
experimental.pdb
colabfold.pdb
rosettafold.pdb
실험 구조
↓
┌──────────────┐
↓ ↓
ColabFold RoseTTAFold
예측 구조 예측 구조
ColabFold와 RoseTTAFold가 서로 얼마나 비슷한지를 비교하는 것에서 한 단계 더 나아가 각 모델이 실제 실험 구조를 얼마나 잘 예측했는지를 확인할 수 있습니다.
14. PyMOL에서 실제 구조와 비교하기
세 구조를 모두 불러옵니다.
load experimental.pdb, experimental
load colabfold.pdb, colabfold
load rosettafold.pdb, rosettafold
먼저 ColabFold 구조를 실제 구조와 비교합니다.
align colabfold, experimental
RMSD 값을 기록합니다.
이번에는 RoseTTAFold 구조를 실제 구조와 비교합니다.
align rosettafold, experimental
역시 RMSD 값을 기록합니다.
이렇게 하면 단순히 그림을 보고 판단하는 것이 아니라 구조 차이를 수치로 비교할 수 있습니다.
15. 결과를 조금 더 깊게 살펴보자
실험이 끝났다면 단순히
ColabFold의 RMSD가 더 작았다.
or
RoseTTAFold의 구조가 더 비슷했다.
정도로 끝내지 않는 것이 좋습니다.
구조의 어느 부분에서 차이가 발생했는지를 살펴보는 것이 더 중요합니다.
예를 들어 ColabFold의 pLDDT가 높은 영역에서는 실제 PDB 구조와 매우 비슷하지만 pLDDT가 낮은 부분에서는 구조가 크게 달라질 수도 있습니다.
그렇다면 다음과 같은 질문을 생각해 볼 수 있습니다.
인공지능이 스스로 자신 없다고 판단한 영역은 실제 구조와도 차이가 많이 나타나는가?
α-helix와 β-sheet처럼 비교적 안정적인 2차 구조에서는 두 모델의 예측이 비슷하지만 유연성이 높은 loop나 단백질 말단에서는 서로 다른 구조를 예측할 수도 있습니다.
이러한 차이가 왜 발생했는지 생각해 보는 과정이 이번 실험에서 매우 중요합니다.
16. 이번 실험에서 생각해 볼 문제
실험을 마친 뒤에는 다음과 같은 문제를 중심으로 결과를 정리해 볼 수 있습니다.
1. ColabFold와 RoseTTAFold가 예측한 전체 단백질 구조는 어느 정도 비슷했는가?
2. α-helix와 β-sheet는 두 모델에서 비슷한 위치에 형성되었는가?
3. 가장 큰 구조적 차이가 나타난 부분은 어디인가?
4. 단백질의 중심부와 말단 가운데 어느 부분에서 차이가 더 크게 나타났는가?
5. ColabFold에서 pLDDT가 낮게 나타난 부분은 실제 PDB 구조와도 차이가 크게 나타났는가?
6. 두 예측 구조의 RMSD는 얼마인가?
7. 실제 PDB 구조를 기준으로 했을 때 ColabFold와 RoseTTAFold 가운데 어느 모델의 RMSD가 더 작았는가?
8. 두 모델이 서로 다른 구조를 예측한 이유는 무엇이라고 생각하는가?
17. 단백질 구조 예측에서 중요한 것은 결과보다 과정이다
ColabFold나 RoseTTAFold를 처음 실행하면 가장 눈에 들어오는 것은 화려한 단백질의 3차원 구조입니다.
이번 실험에서 중요한 것은 단백질 그림을 만드는 것 자체가 아닙니다.
우리가 살펴봐야 하는 것은
단백질 서열에 들어 있는 정보가 어떻게 인공지능을 통해 공간적인 구조 정보로 변환되는가
하는 과정입니다.
하나의 아미노산 서열에서 출발했지만 ColabFold와 RoseTTAFold라는 서로 다른 인공지능 모델을 사용하면 세부적으로 다른 구조가 만들어질 수 있습니다.
예측 결과를 실제 실험 구조와 비교해 보면 인공지능이 상당히 정확한 구조를 예측하는 영역도 있지만 여전히 불확실성이 존재하는 영역도 있다는 것을 확인할 수 있습니다.
그렇기에 단백질 구조 예측 결과를 사용할 때는 인공지능이 만들어 낸 구조를 무조건 정답으로 받아들이기보다는 예측 신뢰도와 실제 실험 자료를 함께 살펴보는 태도가 필요합니다.
18. 실험 사이트 정리
ColabFold AlphaFold2
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb
ColabFold 공식 프로젝트
https://github.com/sokrypton/ColabFold
RoseTTAFold Google Colab
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/RoseTTAFold.ipynb
RoseTTAFold2 Google Colab
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/RoseTTAFold2.ipynb
RoseTTAFold 공식 프로그램
https://github.com/RosettaCommons/RoseTTAFold
Protein Data Bank
19. 실험의 전체 흐름
이번 실험의 전체 과정을 정리하면 다음과 같습니다.
단백질 선정
↓
FASTA 아미노산 서열 준비
↓
┌─────────────────────┐
│ │
↓ ↓
ColabFold RoseTTAFold
AlphaFold2 구조 예측
구조 예측
│ │
↓ ↓
PDB 파일 PDB 파일
│ │
└──────────┬──────────┘
↓
PyMOL
↓
두 구조 중첩
↓
RMSD 계산
↓
구조 차이 분석
↓
RCSB PDB 구조 검색
↓
실제 실험 구조와 비교
↓
ColabFold ↔ 실제 구조 ↔ RoseTTAFold
↓
예측 정확도와
신뢰도 비교 분석
결국 이번 활동은 단순한 프로그램 사용 실습이라기보다 하나의 단백질 서열을 두 종류의 인공지능 모델이 어떻게 해석하는지를 비교하는 실험입니다.
여기에 실제 PDB 구조까지 추가하면 아미노산 서열, 딥러닝, 단백질 3차원 구조, 모델의 신뢰도, 실제 실험 결과를 하나의 과정으로 연결해서 이해할 수 있습니다.
ColabFold의 pLDDT와 PAE, PyMOL의 구조 중첩과 RMSD를 함께 분석한다면 단순히 인공지능을 사용하는 수준을 넘어 인공지능이 제시한 결과를 검증하고 해석하는 생명정보학 실험으로 발전할 수 있습니다.
'생명정보학 & 화학정보학 > 알파폴드와 단백질 구조 예측' 카테고리의 다른 글
| Docker 설치 - 알파폴드3 구축 관련 (0) | 2026.08.26 |
|---|---|
| 단백질 구조 예측 시스템 구축에서의 문제점 (0) | 2026.08.24 |
| AlphaFold 3 , RoseTTAFold-All-Atom 서버 접속 및 사용 방법 (0) | 2026.08.13 |
| AlphaFold 3 설치 및 데이터베이스 구축하기 (0) | 2026.08.12 |
| 로제타폴드에 데이터베이스를 더 추가하면 좀 더 정확해 질까? (0) | 2026.08.12 |
