관리 메뉴

데이터 과학

Google Colab에서 RoseTTAFold2가 작동하는 원리 본문

생명정보학 & 화학정보학/알파폴드와 단백질 구조 예측

Google Colab에서 RoseTTAFold2가 작동하는 원리

티에스윤 2026. 8. 11. 23:35

로제타 폴드를 구글 코랩과 같이 구현한 내용입니다. 코랩폴드안에 로제타폴드 알고리즘을 덮였다고 해도 될 것 같습니다. 

코랩폴드에서 구현한  로제타폴드2 코랩 노트북에 대한 소개입니다. 

 

코랩폴드에서 단백질 단량체, 복합체 예측이 가능한 프로그램을 작성했습니다. 

 

https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/RoseTTAFold2.ipynb#scrollTo=Eh48KV70rQ03

 

RoseTTAFold2.ipynb

Run, share, and edit Python notebooks

colab.research.google.com

 

 

이에 대한 원리를 알아봅시다.

 

 

RoseTTAFold2 Colab notebook

RoseTTAFold는 단백질의 아미노산 서열을 입력받아 단백질의 3차원 구조를 예측하는 인공지능 기반 단백질 구조 예측 모델입니다. 일반적인 RoseTTAFold 계열 프로그램을 연구용 컴퓨터에 직접 설치하려면 프로그램뿐 아니라 UniRef, BFD, PDB 계열과 같은 대규모 단백질 데이터베이스가 필요하며, 경우에 따라 수백 GB에서 1TB가 넘는 저장 공간과 NVIDIA GPU 환경까지 준비해야 합니다.

그런데 ColabFold 프로젝트에서 제공하는 RoseTTAFold2 Google Colab 노트북은 이러한 대규모 데이터베이스를 개인 컴퓨터에 직접 설치하지 않아도 웹 브라우저에서 단백질 구조를 예측할 수 있습니다.

 

그렇다면 어떻게 수백 GB에 이르는 데이터베이스를 설치하지 않고도 Google Colab에서 RoseTTAFold2가 작동할 수 있을까요?

그 원리를 이해하려면 전체 과정을 크게 다음과 같이 나누어 생각할 필요가 있습니다.

 

아미노산 서열 입력
→ 유사 단백질 검색
→ MSA 생성
→ 진화적 관계 분석
→ 잔기 사이의 관계 추론
→ RoseTTAFold2 신경망 계산
→ 3차원 좌표 생성
→ 단백질 구조 출력

이 과정에서 핵심적인 특징은 대규모 데이터베이스 검색과 인공지능 구조 예측을 서로 다른 시스템에서 처리할 수 있다는 점입니다.

1. RoseTTAFold가 해결하려는 문제

단백질은 20종류의 아미노산이 연결된 긴 사슬로 이루어져 있습니다.

 

예를 들어 어떤 단백질의 서열이 다음과 같다고 하겠습니다.

MKTLLVAVAVATLS...

 

이것은 단백질의 1차 구조, 즉 아미노산의 배열입니다.

 

하지만 실제 생명현상에서 단백질은 단순한 직선 형태로 존재하지 않습니다. 단백질 사슬이 접히면서 복잡한 3차원 구조를 형성합니다.

단백질의 기능은 이 3차원 구조와 밀접하게 관련되어 있습니다. 효소의 활성 부위, 항체와 항원의 결합, 단백질과 단백질의 상호작용, 약물과 단백질의 결합 등은 대부분 단백질의 공간적 구조와 관련되어 있습니다.

따라서 단백질 구조 예측의 핵심 문제는 다음과 같이 표현할 수 있습니다.

 

아미노산 서열

MKTLLVAVAVATLS...

이 서열이 실제 공간에서는 어떤 모양으로 접히는가?

3차원 단백질 구조

RoseTTAFold2는 이러한 문제를 인공지능을 이용하여 해결합니다.

2. 단백질 서열에서 구조 예측 상황

RoseTTAFold의 중요한 특징은 입력된 단백질 서열만 단독으로 분석하는 것이 아니라는 점입니다.

단백질 구조 예측에서는 해당 단백질과 진화적으로 관련된 수많은 단백질 서열을 함께 조사합니다.

 

예를 들어 분석하고자 하는 단백질이 다음과 같다고 하겠습니다.

Query

MKLVAVAGKT...

 

데이터베이스를 검색하면 비슷한 단백질들이 발견될 수 있습니다.

Protein A

MKLVAVAGKT...

Protein B

MKLIAVAGKT...

Protein C

MKLVVVAGKT...

Protein D

MKLVALAGKT...

이러한 유사 서열들을 서로 정렬하는 작업을 MSA(Multiple Sequence Alignment, 다중서열정렬)라고 합니다.

MSA는 RoseTTAFold와 AlphaFold 계열의 단백질 구조 예측에서 매우 중요한 입력 자료입니다.

3. MSA가 중요한 이유

단백질은 생물의 진화 과정에서 돌연변이가 진행됩니다. 

하지만 단백질 구조와 기능을 유지하기 위해 중요한 위치의 아미노산은 아무렇게나 변하지 않습니다.

단백질의 3차원 구조에서 서로 가까운 두 아미노산은 서로 영향을 받을 수 있습니다.

 

예를 들어 35번째 아미노산과 142번째 아미노산이 실제 공간에서 서로 가까이 위치한다고 가정해 보겠습니다.

한쪽 아미노산에 변화가 생기면 단백질 구조를 유지하기 위해 다른 위치에서도 보상적인 변화가 일어날 가능성이 있습니다.

 

예를 들어 여러 생물에서 다음과 같은 변화가 발견될 수 있습니다.

Species A

35번: L
142번: V

Species B

35번: I
142번: L

Species C

35번: V
142번: I

 

이처럼 두 위치가 진화 과정에서 함께 변화하는 현상을 분석하면,

“서열에서는 멀리 떨어져 있지만 실제 단백질 구조에서는 두 위치가 서로 가까이 있을 가능성이 있다.”

라는 정보를 얻을 수 있습니다.

 

이를 일반적으로 공진화(co-evolution) 정보라고 이해할 수 있습니다.

이에 MSA는 단순히 비슷한 단백질을 찾아 나열하는 과정이 아닙니다.

MSA에는 단백질의 3차원 구조를 추론할 수 있는 진화적 정보가 포함되어 있습니다.

4. 그런데 MSA를 만들려면 거대한 데이터베이스가 필요하다

여기에서 중요한 문제가 발생합니다.

좋은 MSA를 만들려면 매우 많은 단백질 서열과 입력 서열을 비교해야 합니다.

전통적인 로컬 RoseTTAFold 환경에서는 이를 위해 여러 대규모 데이터베이스를 직접 다운로드합니다.

대표적으로 다음과 같은 데이터베이스들이 사용될 수 있습니다.

 

UniRef 계열 데이터베이스는 비슷한 단백질 서열들을 군집화하여 제공하는 데이터베이스입니다.

BFD(Big Fantastic Database)는 매우 방대한 단백질 서열 정보를 포함하고 있으며 단백질의 진화적 정보를 찾는 데 활용될 수 있습니다.

 

PDB 기반 데이터베이스는 이미 실험적으로 구조가 밝혀진 단백질 정보를 이용해 구조적 유사성을 찾거나 템플릿을 탐색하는 데 사용할 수 있습니다.

 

이러한 데이터베이스를 로컬 컴퓨터에 모두 설치하면 수백 GB 이상의 저장공간이 필요할 수 있습니다.

그래서 연구용 RoseTTAFold 환경을 구축하면 다음과 같은 구조가 됩니다.

 

사용자 컴퓨터

RoseTTAFold 프로그램
+
모델 Weight
+
UniRef
+
BFD
+
PDB 관련 데이터베이스
+
검색 프로그램
+
CUDA/PyTorch
+
NVIDIA GPU

이러한 구성은 자유도가 높고 연구용으로 매우 유용하지만 설치가 상당히 복잡합니다.

5. Colab에서는 왜 이런 데이터베이스를 설치하지 않아도 되는가?

ColabFold 방식의 중요한 아이디어가 바로 이 부분입니다.

대규모 데이터베이스 검색을 반드시 사용자의 컴퓨터에서 수행할 필요는 없습니다.

검색 작업을 외부 서버가 대신 수행하고 검색 결과인 MSA만 돌려받을 수 있습니다.

 

전체 구조를 단순화하면 다음과 같습니다.

사용자

아미노산 서열 입력

Google Colab

MMseqs2 기반 MSA 검색 요청

외부 데이터베이스 서버

대규모 단백질 데이터베이스 검색

유사 단백질 발견

MSA 생성

MSA 결과 반환

Google Colab

RoseTTAFold2 실행

3차원 단백질 구조 예측

 

따라서 수백 GB의 데이터베이스 전체를 Google Colab으로 가져오는 것이 아닙니다.

필요한 검색은 데이터베이스가 있는 서버에서 수행하고, 구조 예측에 필요한 결과만 가져오는 방식입니다.

이것이 RoseTTAFold2와 같은 구조 예측 프로그램을 Colab에서 비교적 간단하게 실행할 수 있는 핵심 이유 중 하나입니다.

6. MMseqs2는 어떤 역할을 하는가?

ColabFold 환경에서 매우 중요한 프로그램이 MMseqs2입니다.

MMseqs2는 단백질 및 핵산 서열을 매우 빠르게 검색하고 비교할 수 있도록 만들어진 서열 검색 프로그램입니다.

기존의 BLAST도 서열 유사성을 검색하는 대표적인 프로그램이지만, 대규모 단백질 구조 예측에서는 훨씬 많은 서열을 빠르게 검색해야 하기 때문에 MMseqs2와 같은 고속 검색 도구가 매우 유용합니다.

 

Colab 환경에서는 대략 다음과 같은 역할을 수행합니다.

입력 단백질 서열

MMseqs2 검색

관련 단백질 서열 탐색

다중서열정렬

MSA 생성

RoseTTAFold2는 이후 이 MSA를 중요한 입력 정보로 사용합니다.

7. 데이터베이스 서버와 Colab GPU의 역할은 서로 다르다

RoseTTAFold2 Colab의 구조를 이해할 때 가장 중요한 점 중 하나는 CPU 기반 데이터베이스 검색과 GPU 기반 신경망 추론의 역할을 구분하는 것입니다.

 

외부 서버는 주로 다음 작업을 수행합니다.

대규모 단백질 데이터베이스 저장
서열 검색
유사 단백질 탐색
MSA 생성

 

그렇지만, Google Colab에서는 주로 다음과 같은 계산이 이루어집니다.

RoseTTAFold2 모델 로딩
MSA 특징 분석
잔기 간 관계 계산
신경망 추론
3차원 좌표 예측

 

이를 순서대로 나타내면 다음과 같습니다.

 

단백질 서열

외부 MMseqs2 서버

대규모 단백질 DB 검색

MSA

Google Colab

RoseTTAFold2

GPU 신경망 추론

단백질 3차원 구조

 

따라서 Google Colab의 GPU가 수백 GB의 데이터베이스를 모두 검색하는 것은 아닙니다.

GPU는 주로 이미 만들어진 MSA와 관련 입력 데이터를 이용하여 신경망 추론을 수행하는 역할을 합니다.

8. 학습과 추론은 다르다

여기에서 또 하나 중요한 개념은 학습(training)추론(inference)의 차이입니다.

 

RoseTTAFold2 Colab을 실행할 때 사용자가 RoseTTAFold 모델을 처음부터 학습시키는 것은 아닙니다.

RoseTTAFold2는 이미 많은 단백질 데이터를 이용하여 학습이 완료된 모델입니다.

이 과정에서 만들어진 신경망 파라미터를 일반적으로 모델 가중치(model weights)라고 합니다.

 

따라서 Colab에서 수행하는 과정은 처음부터 모델을 학습하는 것이 아니라,

 

이미 학습된 모델에 새로운 단백질 정보를 입력

학습된 패턴을 이용하여 계산

새로운 단백질 구조 예측

과정입니다.

 

이를 인공지능에서는 추론(inference)이라고 합니다.

따라서 Colab GPU에서 수행하는 핵심 작업은 RoseTTAFold2의 재학습이 아니라 이미 학습된 모델을 이용한 구조 예측입니다.

9. RoseTTAFold의 핵심인 Three-Track 구조

RoseTTAFold가 처음 큰 주목을 받은 이유 중 하나는 단백질 정보를 여러 표현 공간에서 동시에 다루는 Three-Track Network 개념입니다.

 

대표적으로 다음 세 종류의 정보를 서로 연결합니다.

 

첫 번째는 1D sequence/MSA information입니다.

단백질의 아미노산 서열과 MSA에서 얻어진 진화적 정보를 처리합니다.

 

두 번째는 2D pair information입니다.

단백질을 구성하는 각 아미노산 잔기 쌍 사이의 관계를 표현합니다.

 

예를 들어 전체 단백질 길이가 300개의 아미노산이라면,

1번과 2번
1번과 3번
1번과 300번
2번과 3번
...

등의 관계를 분석합니다.

 

세 번째는 3D structure information입니다.

실제 공간에서 아미노산들이 어떻게 위치할 가능성이 있는지 계산합니다.

RoseTTAFold의 중요한 특징은 이 세 정보가 독립적으로 계산되는 것이 아니라 서로 정보를 주고받으면서 반복적으로 개선된다는 점입니다.

10. 1D 정보: 단백질 서열과 MSA

첫 번째 단계에서는 단백질 서열 자체와 MSA를 분석합니다.

 

예를 들어 입력 서열이

MKTLLVAV...

라면 각각의 아미노산이 어떤 위치에 있으며 주변 아미노산과 어떤 패턴을 가지고 있는지를 분석합니다.

 

여기에 MSA 정보를 이용하여

어떤 아미노산 위치가 진화적으로 잘 보존되는지

어떤 위치가 자주 변하는지

어떤 두 위치가 함께 변화하는지

등을 파악할 수 있습니다.

이러한 정보는 단백질 구조를 추론하는 매우 중요한 단서가 됩니다.

11. 2D 정보: 잔기와 잔기의 관계

다음 단계에서는 단백질에 포함된 각 아미노산 사이의 관계를 분석합니다.

 

이를 흔히 residue-pair representation이라고 부릅니다.

 

예를 들어 단백질의 길이가 200이라면 200 × 200 형태의 관계를 생각할 수 있습니다.

행과 열은 각각 아미노산 위치를 의미합니다.

그러면

35번째 아미노산과 142번째 아미노산이 관련될 가능성

52번째와 180번째가 가까울 가능성 등을 모델이 학습된 정보와 MSA를 이용해 계산할 수 있습니다.

이 정보는 3차원 구조를 만드는 중요한 중간 단계입니다.

12. 3D 정보: 실제 단백질 구조로 변환

최종적으로 모델은 이러한 정보를 이용하여 각 아미노산이 실제 3차원 공간에서 어느 위치에 존재할지를 계산합니다.

이를 단순하게 표현하면 각각의 원자 또는 잔기에 대해

x 좌표
y 좌표
z 좌표

를 예측하는 과정이라고 이해할 수 있습니다.

예를 들어,

Residue 1 → (x₁, y₁, z₁)

Residue 2 → (x₂, y₂, z₂)

Residue 3 → (x₃, y₃, z₃)

...

와 같이 공간적 위치가 만들어지면서 전체 단백질의 형태가 형성됩니다.

13. 세 가지 정보는 계속 서로 영향을 준다

RoseTTAFold 구조의 핵심은

Sequence → Pair → Structure

와 같이 한 번만 계산하고 끝나는 단순한 구조가 아니라는 것입니다.

 

개념적으로는 다음과 같은 반복적인 정보 교환이 일어납니다.

Sequence/MSA 정보

Pair 정보 개선

3D 구조 추정

추정된 구조 정보가 다시 Pair 정보에 영향을 줌

Sequence 표현 개선

다시 3D 구조 개선

이와 같은 반복 계산을 통하여 단백질 구조가 점차 정교해집니다.

따라서 RoseTTAFold의 구조 예측은 단순히 “MSA를 보고 거리만 계산하는 프로그램”이 아닙니다.

서열, 잔기 관계, 공간 구조에 대한 정보를 신경망 내부에서 반복적으로 교환하면서 최종 구조를 추론하는 시스템입니다.

14. 전체 구조를 다시 정리하면

RoseTTAFold2 Colab의 전체 과정은 다음과 같이 이해할 수 있습니다.

단계 1. 단백질 서열 입력

사용자가 FASTA 형식의 단백질 아미노산 서열을 입력합니다.

예:

Protein_A
MKTLLVAV...

단계 2. 서열 검색

입력된 서열을 MMseqs2 기반 검색 시스템으로 전달합니다.

단계 3. 대규모 데이터베이스 탐색

외부 서버에서 방대한 단백질 데이터베이스를 검색하여 유사한 단백질을 찾습니다.

단계 4. MSA 생성

검색된 단백질을 정렬하여 다중서열정렬을 만듭니다.

단계 5. 진화 정보 분석

RoseTTAFold2가 MSA에서 보존 영역, 변이 패턴 및 공진화 정보를 추출합니다.

단계 6. 잔기 관계 분석

아미노산과 아미노산 사이의 공간적 관계 가능성을 계산합니다.

단계 7. Three-Track Network 계산

Sequence/MSA 정보

Pair 정보

3D structure 정보

사이에 반복적으로 정보를 교환합니다.

단계 8. GPU 추론

Google Colab에서 제공되는 GPU를 이용하여 대규모 행렬 및 신경망 계산을 수행합니다.

단계 9. 구조 생성

최종적으로 단백질을 구성하는 잔기의 3차원 좌표를 예측합니다.

단계 10. 구조 파일 출력

예측된 구조를 PDB 등의 구조 파일로 저장하여 PyMOL이나 ChimeraX와 같은 프로그램에서 확인할 수 있습니다.

15. 왜 GPU가 필요한가?

RoseTTAFold2 내부에서는 매우 많은 행렬 계산이 수행됩니다.

예를 들어 길이가 500인 단백질을 분석한다고 하면 수백 개의 아미노산 사이의 관계를 동시에 계산해야 합니다.

특히 pair representation에서는 단백질 길이가 증가할수록 계산량과 메모리 요구량이 급격하게 증가합니다.

CPU도 이러한 계산을 수행할 수 있지만 신경망 연산에는 시간이 많이 걸립니다.

 

GPU는 수천 개의 연산을 병렬로 처리하는 구조이기 때문에

행렬 곱셈
Tensor 계산
Attention 연산
신경망 추론

과 같은 연산에 매우 적합합니다.

Google Colab의 NVIDIA GPU가 RoseTTAFold2 신경망의 계산을 가속하는 역할을 합니다.

16. Google Colab 자체가 데이터베이스 서버인 것은 아니다

여기에서 흔히 생기는 오해가 있습니다.

“RoseTTAFold가 Colab에서 실행되므로 단백질 데이터베이스도 Google Colab 안에 저장되어 있는 것이 아닌가?”

그렇지 않습니다.

Colab은 기본적으로 Python 프로그램과 GPU 프로그램을 실행할 수 있는 클라우드 컴퓨터 환경입니다.

대규모 단백질 데이터베이스 검색은 별도의 외부 시스템을 사용할 수 있습니다.

따라서 개념적으로

Google Colab = AI 계산 공간

MMseqs2 서버 = 단백질 검색 공간

이라고 구분하여 이해하면 쉽습니다.

17. 로컬 설치 방식과 Colab 방식 비교

로컬 RoseTTAFold 환경에서는 다음과 같은 구조를 구성할 수 있습니다.

Protein FASTA

로컬 UniRef/BFD/PDB 데이터베이스

로컬 검색 프로그램

MSA 및 template 생성

로컬 GPU

RoseTTAFold

Structure

반면 Colab 기반 방식에서는

Protein FASTA

외부 MMseqs2 서버

외부 단백질 데이터베이스

MSA 반환

Colab GPU

RoseTTAFold2

Structure

와 같은 구조를 사용할 수 있습니다.

가장 큰 차이는 데이터베이스가 어디에 존재하는가입니다.

18. 로컬 환경과 Colab 환경의 장단점

Colab 방식의 가장 큰 장점은 설치가 간단하다는 것입니다.

대규모 데이터베이스를 직접 다운로드할 필요가 없으며 NVIDIA GPU가 없는 컴퓨터에서도 웹브라우저를 통해 GPU 기반 구조 예측을 경험할 수 있습니다.

따라서 교육이나 간단한 연구, 단백질 구조 예측 입문 등에 매우 적합합니다.

 

반면 단점도 있습니다.

Colab의 GPU 종류와 메모리는 항상 동일하게 보장되는 것이 아니며 세션 시간이 제한될 수 있습니다.

또한 외부 MSA 서버가 혼잡하거나 서비스 사용 정책이 변경되면 검색 시간이 달라질 수 있습니다.

대량의 단백질을 지속적으로 분석해야 하는 연구 환경에서는 로컬 서버나 연구기관의 GPU 서버가 더 적합할 수 있습니다.

19. RoseTTAFold2와 RoseTTAFold-All-Atom은 구분해야 한다

RoseTTAFold라는 이름이 붙어 있다고 해서 모든 프로그램이 같은 것은 아닙니다.

특히 RoseTTAFold2와 RoseTTAFold-All-Atom은 구분할 필요가 있습니다.

RoseTTAFold2는 단백질의 구조 예측을 중심으로 발전한 RoseTTAFold 계열 모델입니다.

RoseTTAFold-All-Atom은 이름 그대로 단백질뿐 아니라 다양한 분자 구성 요소를 보다 세밀한 all-atom 수준에서 함께 다루기 위해 발전된 모델입니다.

따라서 RoseTTAFold2 Colab이 간단하게 실행된다고 해서 RoseTTAFold-All-Atom의 전체 연구 환경 역시 같은 방식으로 간단하게 구성된다고 볼 수는 없습니다.

RoseTTAFold-All-Atom을 로컬에서 연구용으로 사용하려면 상당한 저장 공간, 데이터베이스, GPU 환경 및 여러 의존성 프로그램이 필요할 수 있습니다.

20. RoseTTAFold2 Colab의 핵심 원리를 한 문장으로 표현하면

RoseTTAFold2 Colab은

“단백질 데이터베이스 검색은 외부 고성능 서버에 맡기고, 그 결과로 생성된 MSA와 단백질 정보를 Google Colab으로 가져와 GPU에서 학습된 RoseTTAFold2 신경망을 실행하여 3차원 단백질 구조를 예측하는 분산형 구조 예측 방식”

이라고 이해할 수 있습니다.

21. 전체 흐름

최종적으로 전체 시스템을 다음과 같이 정리할 수 있습니다.

사용자 FASTA 서열

Google Colab notebook

MMseqs2 검색 요청

대규모 단백질 서열 DB

유사 단백질 검색

MSA 생성

Google Colab으로 반환

RoseTTAFold2

1D Sequence/MSA representation

2D Residue-pair representation

3D Structure representation

반복적 정보 교환

GPU 기반 Neural Network Inference

Residue / Atom 좌표 예측

3D Protein Structure

PDB 등의 구조 결과

22. 단순한 클라우드 실행 프로그램이 아닌 이유

RoseTTAFold2 Colab의 의미는 단순히 “내 컴퓨터 대신 Google 컴퓨터에서 RoseTTAFold를 실행한다”는 것보다 더 큽니다.

전체 단백질 구조 예측 과정을 데이터 검색AI 구조 추론

으로 분리하여 생각할 수 있기 때문입니다.

 

대규모 데이터베이스는 데이터베이스 서버가 담당하고,

대규모 신경망 연산은 GPU 서버가 담당하며,

사용자는 웹 인터페이스를 통해 필요한 단백질 서열을 전달하고 결과를 얻습니다.

 

즉, 현대의 단백질 구조 예측은 하나의 컴퓨터에서 모든 작업을 수행해야 하는 구조에서 벗어나

데이터베이스 서버
고속 서열 검색 시스템
GPU 연산 환경
학습된 AI 모델
웹 인터페이스

가 서로 연결된 형태로 발전하고 있습니다.

23. RoseTTAFold2 Colab을 통해 이해할 수 있는 중요한 개념

RoseTTAFold2 Colab은 단백질 구조 예측 도구이지만 이를 통해 현대 생물정보학과 인공지능 연구의 여러 핵심 원리를 함께 이해할 수 있습니다.

첫째, 단백질 구조 예측은 단순히 한 개의 아미노산 서열을 분석하는 문제가 아닙니다. 방대한 생물학적 데이터에서 진화적 관계를 찾아 활용합니다.

둘째, MSA는 단순한 문자열 정렬 결과가 아니라 수억 년에 걸친 생물 진화 과정에서 축적된 정보를 포함하고 있습니다.

셋째, 인공지능은 이러한 진화 정보를 단백질의 공간적인 관계로 변환합니다.

넷째, 대규모 데이터베이스와 GPU가 반드시 같은 컴퓨터에 존재할 필요는 없습니다.

다섯째, 이미 학습된 거대한 인공지능 모델을 이용하면 개인 연구자도 비교적 작은 컴퓨팅 환경에서 강력한 구조 예측 기능을 사용할 수 있습니다.

24. 결론

RoseTTAFold2가 Google Colab에서 비교적 간단하게 실행되는 이유는 RoseTTAFold의 계산 자체가 가벼워졌기 때문만은 아닙니다.

더 중요한 것은 전체 계산 과정을 효율적으로 분리했기 때문입니다.

대규모 단백질 서열 데이터베이스 검색은 MMseqs2와 같은 고속 검색 시스템과 외부 서버를 활용하고, 구조 예측에 필요한 MSA 등의 결과만 Colab 환경으로 가져옵니다.

그 후 Google Colab의 GPU에서 이미 학습된 RoseTTAFold2 모델을 이용하여 단백질의 sequence 정보, residue-pair 관계, 3차원 구조 정보를 반복적으로 분석합니다.

이를 통해 최종적으로 아미노산 잔기들의 공간적 위치를 추론하고 단백질의 3차원 구조를 생성합니다.

따라서 RoseTTAFold2 Colab은 다음과 같은 세 가지 기술이 결합된 시스템이라고 할 수 있습니다.

대규모 생물정보 데이터베이스

고속 서열 검색과 MSA

GPU 기반 딥러닝 구조 예측

이 세 요소가 인터넷과 클라우드를 통해 연결되면서, 과거에는 대규모 연구 서버에서 수행해야 했던 단백질 구조 예측을 일반 사용자도 웹 브라우저에서 수행할 수 있게 된 것입니다.

 

 

참고:

RoseTTAFold2 Colab
https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/RoseTTAFold2.ipynb

ColabFold 프로젝트
https://github.com/sokrypton/ColabFold

RoseTTAFold
https://github.com/RosettaCommons/RoseTTAFold