웹사이트 검색

AlphaFold 2와 3을 이용한 분자 구조 예측


소개

2024년 10월, 노벨 화학상은 알파폴드 2의 연구를 인정했습니다. 알파폴드 2는 구글 딥마인드가 개발한 딥러닝 모델로, 단백질의 아미노산 서열만으로 3D 구조를 정확하게 예측합니다. 단백질이 생물학적 과정에서 얼마나 중요한 역할을 하는지, 그리고 단백질의 구조가 기능과 얼마나 밀접하게 연관되어 있는지를 고려할 때, 이 연구가 혁신적이라고 말하는 것은 과소평가처럼 느껴집니다. 역사적으로 연구자들은 X-선 결정학이나 극저온 전자현미경 같은 실험적 방법을 사용하여 단일 단백질의 구조를 해결하는 데 박사 과정 전체 혹은 수년간의 경력을 보냈습니다. 이는 현재 치료법이 없는 수많은 질환에 대한 효과적인 약물 후보를 식별하는 것을 포함하여 생물학 연구의 여러 영역을 지연시키는 원인이 되었습니다.

핵심 내용

  • AlphaFold 2는 실제 실험 기법과 경쟁하기 위해 만들어진 것이 아니라, 단백질 구조 예측에서 연구자들을 안내할 수 있는 검증 가능한 가설을 제공하기 위해 만들어졌습니다. AlphaFold 2는 단백질 데이터 뱅크(Protein Data Bank)의 데이터를 사용하여 훈련되었습니다.

  • AlphaFold 3는 AlphaFold 2를 넘어서는 추가 기능을 갖추고 있으며, 물 분자를 제외한 단백질 데이터 뱅크에 있는 모든 분자 유형을 포함하는 복합체 구조를 예측할 수 있습니다. AlphaFold 3는 다음을 처리할 수 있습니다:

    • DNA, RNA, 소분자 리간드 및 이온과 단백질의 복합체
    • 단백질의 번역 후 변형(글리코실화 포함)을 가진 구조
  • AlphaFold 2와 3 모두 입력으로 MSA(다중 서열 정렬)를 사용하지만, AlphaFold 3는 단백질 외에 RNA 사슬도 사용합니다.

  • AlphaFold 2는 Apache 2.0 라이선스 하에 무료로 사용할 수 있는 반면, AlphaFold 3는 비상업적 용도로만 제한됩니다.

전제 조건

이 글은 분자 구조 예측을 다루고 있기 때문에, 생체 분자 및 관련 생물학 용어(예: 단백질, RNA, 리간드 등)에 대한 이해가 있거나 습득하는 것이 좋습니다. 또한 Alphafold 3 모델을 비상업적으로 사용하려면 Alphafold 3 모델 파라미터를 요청해야 합니다. 접근 권한은 영업일 기준 2-3일 이내에 부여될 수 있습니다.

또한, 배포 지침을 따르기 위해 이 글은 클라우드 인프라(Linux-Console.net GPU Droplets), 명령어 기반 작업(SSH, git), Docker를 이용한 컨테이너화 등 기술 개념에 대한 이해를 전제로 하고 있습니다.

입력 이해하기

다중 서열 정렬

AlphaFold2는 단백질 간의 진화적 관계를 이해하기 위해 다중 서열 정렬(MSA)을 사용합니다. MSA가 효과적인 이유는 서로 접촉하는 아미노산이 변이가 유발될 경우 둘 다 변이를 가질 가능성이 높다는 논리 때문입니다.

모델 아키텍처 (AF2 vs. AF3)

기능알파폴드 2알파폴드 3
주요 프로세서Evoformer: MSA와 쌍 특성을 전반적으로 깊이 통합합니다.Pairformer: MSA 처리를 간소화하고, 쌍 표현에 중점을 둡니다.
3D 출력 엔진구조 모듈: 물리적/기하학적 바이어스(프레임/비틀림)를 사용합니다.확산 모듈: 원자 좌표의 생성적 노이즈 제거.
대칭 제약 조건회전/평행이동 불변성을 엄격하게 적용합니다.더 큰 유연성을 위해 많은 명시적인 기하학적 제약을 제거합니다.
입력 다재다능성주로 아미노산 서열(단백질)에 최적화되어 있습니다.단백질, 핵산 및 소형 리간드를 위한 통합 '토큰' 시스템.

출력 이해하기

신뢰도 지표

AlphaFold는 pLDDT, pTM, PAE와 같은 신뢰도 지표를 제공합니다.

pLDDT

pLDDT(예측된 국소 거리 차이 검정)은 LDDT 값(국소 거리 차이 검정)을 예측하는 것을 의미합니다. 이 값은 잔기별 국소 구조에 대한 신뢰도를 나타내는 척도입니다. 다시 말해, 예측된 구조가 실험 구조와 일치할 것이라는 확신의 정도를 의미합니다. 이 값은 0에서 100까지의 범위로 조정되며, 점수가 높을수록 신뢰도가 높고 일반적으로 더 정확한 예측을 나타냅니다.

pTM 및 ipTM

예측된 템플릿 모델링(pTM) 점수와 인터페이스 예측 템플릿 모델링(ipTM) 점수는 모두 전체 구조의 정확성을 측정하는 템플릿 모델링 점수에서 파생됩니다. pTM 점수가 0.5를 넘으면 예측된 복합체 구조가 실제 구조와 일치할 가능성이 있음을 의미합니다. ipTM은 서브유닛의 상대적 위치 예측을 평가하며, 값이 0.8을 넘으면 높은 신뢰도의 예측을, 0.6 미만은 실패 가능성을, 0.6~0.8은 불확실함을 나타냅니다. 작은 구조나 짧은 사슬(20 토큰 미만)의 경우, TM 점수는 지나치게 엄격해져 pTM 값이 0.05 이하로 나타날 수 있으며, 이 경우 예측 품질을 나타내는 데는 PAE나 pLDDT가 더 적합합니다.

PAE

PAE, 예측 정렬 오차(predicted aligned error)는 AlphaFold 2가 예측 구조에서 두 잔기(토큰)의 상대적 위치와 방향에 대해 얼마나 자신 있는지를 나타내는 척도입니다. 값이 높을수록 예측 오차가 크고 따라서 신뢰도가 낮음을 의미합니다.

알파폴드 2를 사용해야 하나요, 아니면 3을 사용해야 하나요?

AlphaFold 3는 정확도에서 AlphaFold 2를 능가하며 다분자 복합체를 예측할 수 있지만, 라이선스 차이로 인해 많은 사용자에게 여전히 필수적인 서비스입니다. AlphaFold 2는 Apache 2.0 라이선스 하에 학술 및 상업적 용도로 무료로 제공되며, AlphaFold 3는 비상업적 용도로만 제한됩니다; 상업적 연구, 경쟁 머신러닝 모델 학습, 상업적 산출물 생산에 사용할 수 없습니다. 또한 AlphaFold 3의 고분자 신뢰도 점수는 이온이나 리간드와 같은 비고분자 맥락에 크게 영향을 받기 때문에, 단백질-단백질 상호작용과 같은 고분자 전용 연구에서는 신뢰할 수 있는 점수를 얻기 위해 맥락 분자를 추가해야 할 수 있지만, AlphaFold 2는 약간 낮은 정확도로 이 복잡성을 피합니다. 이러한 요인들을 고려할 때, 구글 딥마인드는 연구 및 개발을 위한 귀중한 도구로서 알파폴드 2를 계속 지원하고 있습니다.

Linux-Console.net의 Alphafold 2

AlphaFold 2를 사용하려면 약 2.5TB에 달하는 유전자 데이터베이스(UniRef90, MGnify, BFD 등)를 다운로드해야 합니다. 우리는 유전자 데이터베이스를 저장하기 위해 블록 스토리지 볼륨(AF2의 경우 2.5TB, AF3의 경우 1TB)을 연결해야 합니다.

1단계: 환경 설정 (AF2)

NVIDIA 드라이버와 Docker가 미리 설치되어 있도록 'AI/ML 준비됨' Ubuntu 이미지를 선택하세요.

SSH를 통해 GPU Droplet에 연결하세요:

ssh root@your_droplet_ip

우리 시스템이 최신 상태인지 확인할 필요도 있습니다.

로컬 패키지 인덱스를 업데이트하세요.

sudo apt update && sudo apt upgrade -y

유전 데이터베이스와 모델 매개변수를 다운로드하세요. 이 단계는 다소 시간이 걸릴 수 있습니다.

scripts/download_all_data.sh /path/to/your/storage > download.log 2> download_error.log &

3단계: Docker 이미지를 빌드하고 종속 항목을 설치합니다

docker build -f docker/Dockerfile -t alphafold .
pip3 install -r docker/requirements.txt

단계 4: 모델 실행

python3 docker/run_docker.py \
  --fasta_paths=your_protein.fasta \
  --max_template_date=2022-01-01 \
  --data_dir=$DOWNLOAD_DIR \
  --output_dir=/home/user/absolute_path_to_the_output_dir

Linux-Console.net의 Alphafold 3

또한 GPU 드롭렛을 사용하여 AlphaFold 3를 실행하는 방법도 보여드릴 예정입니다. 이 모델은 비상업적 용도로만 사용 가능하다는 점에 유의하세요. 모델 파라미터에 접근하려면 이 양식을 작성하세요. 권한은 일반적으로 2-3 영업일 내에 부여됩니다.

1단계: 환경 설정 (AF3)

NVIDIA 드라이버와 Docker가 미리 설치되어 있도록 'AI/ML Ready' Ubuntu 이미지를 선택하세요.

SSH를 통해 GPU Droplet에 연결하세요:

ssh root@your_droplet_ip

2단계: 저장소 복제

Git을 설치하고 AlphaFold 3 저장소를 다운로드하세요:

git clone https://github.com/google-deepmind/alphafold3.git
cd alphafold3

3단계: Alphafold 3 모델 실행

docker build -t alphafold3 -f docker/Dockerfile .
docker run -it \
    --volume $HOME/af_input:/root/af_input \
    --volume $HOME/af_output:/root/af_output \
    --volume <MODEL_PARAMETERS_DIR>:/root/models \
    --volume <DB_DIR>:/root/public_databases \
    --gpus all \
    alphafold3 \
    python run_alphafold.py \
    --json_path=/root/af_input/fold_input.json \
    --model_dir=/root/models \
    --output_dir=/root/af_output

자주 묻는 질문

AlphaFold 2와 AlphaFold 3의 주요 차이점은 무엇인가요?

AlphaFold 2가 단백질 구조 예측에 혁신을 가져온 반면, AlphaFold 3는 그 범위를 크게 확장합니다. 주요 차이점은 다음과 같습니다:

  • 분자 범위: AF2는 거의 전적으로 단백질에 집중합니다. AF3는 DNA, RNA, 리간드, 이온이 포함된 복합체를 예측할 수 있습니다.
  • 아키텍처: AF2는 "Evoformer" 모듈을 사용하는 반면, AF3는 더 단순한 "Pairformer"와 확산 기반 헤드를 사용합니다.
  • 라이선스: 이것이 가장 중요한 부분입니다. AF2는 Apache 2.0 라이선스 하에 있어 상업적 사용이 가능하지만, AF3는 현재 비상업적 용도로만 제한되어 있습니다.

AlphaFold 2를 위해 왜 2.5TB의 저장 공간이 필요한가요?

모델 자체는 많은 저장 공간을 필요로 하지 않습니다. 실제로 저장 공간을 많이 차지하는 것은 유전학 데이터베이스입니다. AlphaFold 2는 단백질이 어떻게 진화해 왔는지를 이해하기 위해 다중 서열 정렬(Multiple Sequence Alignment, MSA)에 의존합니다. 이를 위해 UniRef90, MGnify, 그리고 Big Fantastic Database(BFD)와 같은 거대한 라이브러리를 검색해야 합니다.

참고: 저장 공간이 부족한 경우, AlphaFold 3는 전체 AlphaFold 2 스택에 비해 더 작은 데이터베이스 용량(~1TB)을 필요로 합니다.

$pLDDT$ 신뢰도 점수를 어떻게 해석하나요?

pLDDT(예측된 국부 거리 차이 테스트)는 잔기별 신뢰도를 0에서 100까지의 척도로 나타낸 것입니다:

  • <인용문>

    90: 높은 신뢰도; 이 영역들은 정확도가 높을 가능성이 있으며 상세한 구조 분석에 사용할 수 있습니다.

  • 70 - 90: 신뢰도 높음; 기본 구조가 올바를 가능성이 높음.
  • 50 - 70: 신뢰도 낮음; 주의해서 사용하세요.
  • < 50: 매우 낮은 신뢰도; 이러한 영역은 종종 '내재적 무질서(intrinsically disordered)' 상태로, 단독으로는 고정된 3D 구조를 가지지 않음을 의미합니다.

GPU 없이 일반 Droplet에서 AlphaFold를 실행할 수 있나요?

기술적으로 '“폴딩” (추론)'은 CPU에서도 실행할 수 있지만, 매우 느릴 것입니다. 복잡한 구조의 경우 GPU가 몇 분 만에 처리하는 작업을 CPU에서는 며칠 또는 몇 주가 걸릴 수 있습니다. 게다가 AlphaFold Docker 이미지는 NVIDIA의 CUDA 툴킷에 최적화되어 있습니다. 실제 연구를 위해서는 Linux-Console.net GPU Droplet이 사실상 필수입니다.

SMILES 문자열이란 무엇이며, AlphaFold 3가 그것을 필요로 하는 이유는 무엇인가요?

SMILES는 Simplified Molecular-Input Line-Entry System의 약자입니다. 이는 화학 구조를 텍스트 문자열로 표현하는 표기 시스템입니다. AlphaFold 3가 단백질과 소분자 약물(리간드)이 어떻게 상호작용하는지 예측할 수 있기 때문에, 약물 구조를 SMILES 문자열을 통해 제공해야 합니다(예: Aspirin의 경우 CC(=O)OC1=CC=CC=C1C(=O)O).

예측된 구조가 '최종'인가요?

반드시 그런 것은 아닙니다. AlphaFold가 매우 정확하긴 하지만, 그것은 예측 모델일 뿐 실험적 관찰은 아닙니다. 약물 발견이나 분자 생물학에서는 AlphaFold를 사용해 검증 가능한 가설을 만들고 이를 실제 실험으로 확인하는 데 가장 잘 활용할 수 있습니다.

결론

축하합니다. 이제 Alphafold 2와/또는 3을 Linux-Console.net GPU 드롭릿과 Linux-Console.net 볼륨 스토리지에 (성공적으로) 배포하셨습니다. AlphaFold는 구조 생물학을 더 접근하기 쉽게 만들어 전 세계 연구자들이 수년간의 고가 실험 작업이 필요한 통찰을 얻을 수 있도록 도와줍니다. 그러나 일부 연구자들은 특히 약물 발견 분야에서 실험적 검증 없이 AlphaFold에만 의존하는 것은 잘못된 기계적 모델로 이어질 수 있다고 경고하며, 컴퓨터 예측과 실험적 검증을 통합하는 것의 지속적인 중요성을 강조합니다. 직접적인 과학적 영향 외에도, AlphaFold는 인공지능이 복잡한 과학적 문제를 해결할 수 있는 방식을 보여주며, 계산 도구가 자연 세계에 대한 이해를 재편하고 과학적 발견의 긴급한 과제를 해결할 능력을 제공하는 모습을 엿볼 수 있게 합니다.

참고 문헌 및 추가 자료

AlphaFold 2 논문: AlphaFold를 이용한 매우 정확한 단백질 구조 예측

AlphaFold3 논문: AlphaFold 3를 이용한 생체분자 상호작용의 정확한 구조 예측

다중 서열 정렬(MSA): 이는 MSA에 대한 직관을 쌓는 데 아주 좋은 자료입니다.

ColabFold와 AlphaFold2 Colab을 사용한 단백질 구조 예측: 이는 전체 AlphaFold2 소프트웨어를 설치하고 실행하지 않고도 AlphaFold를 실행하는 배경 지식을 제공할 것입니다. 여기서 변경할 수 있는 가장 중요한 매개변수는 다음과 같습니다: 반복 횟수, 다중 서열 정렬(MSA)의 깊이, 예측 초기화를 위해 사용되는 랜덤 시드, 그리고 템플릿 구조를 제공할지 여부. ColabFold의 출력에는 PDB 파일, pLDDT 값/그래프, MSA 파일 등이 포함됩니다.

AlphaFold 서버 FAQ: AlphaFold 서버는 AlphaFold3를 실행하는 또 다른 대안입니다.

Linux-Console.net 커뮤니티와 함께 학습해 주셔서 감사합니다.