배경 및 목적
올해 노벨상을 계기로 단백질 구조 예측에 대한 관심이 크게 높아졌습니다.
그렇다면 신약 개발에서는 AI가 어떤 방식으로 활용될까요?
신약을 개발하려면 먼저 후보물질을 선별한 뒤, 이 물질이 표적 단백질에 얼마나 효과적으로 작용하는지 확인해야 합니다. 이 과정에서 사용되는 방법 중 하나가 바로 분자 도킹 시뮬레이션입니다.
분자 도킹은 간단히 말해, 화합물을 단백질에 결합시키는 가상 실험입니다. 하지만 단순히 결합 여부를 확인하는 데 그치지 않고, 표적 단백질의 어느 부위에 어떤 형태로 결합하는지 구체적으로 분석하는 것이 핵심입니다.
분자 도킹 시뮬레이션에 활용되는 도구는 매우 다양한데, 최근에는 DiffDock이라는 툴이 주목받고 있습니다. NVIDIA에서도 이 방법에 관심을 기울이는 것 같습니다.
DiffDock이 어떤 프로그램인지 몰라서 GPT에서 물어봅시다.
Diffdock으로 단백질과 화합물의 결합을 시뮬레이션해보려고 해. 우선 DiffDock을 간략히 설명해줄래?
ChatGPT의 말:
ChatGPT
DiffDock은 단백질-리간드 결합의 시뮬레이션을 수행하기 위해 설계된 최신 기계 학습 기반 도킹 알고리즘입니다. 이 도구는 특히 딥러닝을 활용하여 결합 모드를 예측하고, 단백질 표면의 리간드 결합 위치 및 결합 자세를 모델링하는 데 뛰어난 성능을 보입니다.
주요 특징
확률론적 접근법: DiffDock은 단순히 단일 최적 결합 모드만 제공하는 것이 아니라, 다양한 가능성을 확률적으로 계산하여 여러 결합 모드를 생성합니다. 이를 통해 구조적 다양성을 고려할 수 있습니다.
Diffusion Model 기반: DiffDock은 확산 모델(Diffusion Model)을 사용하여 리간드의 결합 위치와 자세를 점진적으로 예측합니다. 이는 노이즈 데이터에서 점진적으로 신호를 복원하는 방식으로, 복잡한 구조적 상호작용을 잘 학습할 수 있습니다.
빠른 연산: 기존의 분자동역학(MD) 기반 방법보다 계산 비용이 낮고, 대규모 데이터셋에서도 효율적으로 작동합니다.
높은 예측 정확도: DiffDock은 기존의 도킹 도구들과 비교했을 때 리간드-단백질 결합 자세를 높은 정확도로 예측하는 것으로 알려져 있습니다.
유연한 사용: 단백질의 rigid-body(고정된 구조) 상태뿐만 아니라 유연성을 고려한 모델링도 가능합니다.
DiffDock의 주요 워크플로우
입력 데이터 준비:
단백질 구조(PDB 형식).
리간드 화합물(주로 SMILES 형식).
결합 포켓 예측 (필요시):
DiffDock은 리간드 결합 가능 부위를 미리 알 필요 없이, 단백질 구조 전체를 대상으로 탐색할 수 있음.
결합 자세(docking pose) 생성:
확산 모델을 통해 여러 가능성의 결합 자세를 생성.
결과 분석:
에너지 점수(binding affinity)와 결합 자세를 기반으로 최적 모델 선택.
DiffDock의 활용 예
신약 개발: 특정 단백질 표적에 맞는 잠재적 약물 후보군 선별.
단백질-리간드 상호작용 연구: 기초 연구에서 단백질의 기능과 리간드 효과를 이해하기 위해 사용.
고속 스크리닝: 대규모 화합물 라이브러리에서 빠르게 결합 모드를 탐색.
DiffDock은 특히 생명과학 연구와 약물 설계에서 시간과 비용을 절약하면서 높은 정확도의 결과를 제공할 수 있어, 최근 많이 주목받는 도구 중 하나입니다.
사용을 시작할 준비가 되면 설치 방법이나 사용법도 도와줄게!
네, DiffDock은 디퓨전 모델을 이용해 예측하는 모델이라고 합니다. NVIDIA의 NIM 플랫폼에서는 DiffDock을 활용해 화합물과 단백질 구조를 결합하는 가상 실험을 수행할 수 있는데요. 이번 글에서는 세로토닌 수용체와 Lisuride 유사체를 가지고 시뮬 레이션을 살펴보겠습니다.
활용 툴
https://build.nvidia.com/mit/diffdock
화면 캡쳐가 약간 이상하게 됐는데 왼쪽 단에는 화합물과 단백질의 구조를 설정하고 시뮬레이션 파라미터를 설정할 수 있습니다. 오른쪽 단에는 시뮬레이션 결과가 제공됩니다. 여기서 녹색 글씨로 View Examples라고 된 글씨를 누르면,
3가지 예시가 제공됩니다. 앞서 적은 내용처럼 두 번째 예시를 살펴봅시다.
본격적으로 시뮬레이션을 하기 전에 Lisuride는 어떤 약일까요? GPT-4o에 물어봅니다.
Lisuride는 어떤 약이야?
ChatGPT의 말:
ChatGPT
Lisuride는 도파민 수용체 작용제(Dopamine Receptor Agonist)로, 주로 파킨슨병, 프로락틴 분비 이상(예: 고프로락틴혈증), 그리고 편두통 예방에 사용되는 약물입니다.
주요 특징과 작용 기전:
도파민 수용체 작용제:
Lisuride는 뇌의 도파민 수용체(D2, D3)에 결합하여 도파민의 효과를 모방합니다. 이를 통해 파킨슨병과 같은 도파민 결핍과 관련된 질환의 증상을 완화합니다.세로토닌 수용체에 대한 부분적 작용:
Lisuride는 세로토닌 수용체(특히 5-HT1A 및 5-HT2A)에 부분적으로 작용합니다. 이 특성 덕분에 편두통 예방에 효과적일 수 있습니다.프로락틴 억제:
도파민 수용체를 활성화하여 뇌하수체에서 프로락틴의 분비를 억제합니다. 이로 인해 고프로락틴혈증(과도한 프로락틴 분비로 인한 증상) 치료에 사용됩니다.활용:
파킨슨병: 도파민 작용제를 통해 운동 증상을 완화.
고프로락틴혈증: 프로락틴 분비를 억제해 여성의 무월경, 불임, 유즙 분비 과다 등의 증상을 치료.
편두통 예방: 세로토닌 조절을 통해 두통 빈도를 줄이는 데 도움.
기타 정보:
Lisuride는 에르고타민 유도체로, 다른 에르고타민 계열 약물과 유사한 작용을 합니다.
현재 Lisuride는 일부 국가에서 사용되며, 다른 국가에서는 덜 알려져 있거나 대체 약물(예: 브로모크립틴)이 더 흔히 사용됩니다.
이는 신약 개발과 관련해, Lisuride가 특정 단백질과의 상호작용 연구에 적합한 이유이기도 합니다.
(잘 아시다시피 GPT로 검색한 의료 정보는 검증이 필요합니다. 본 내용을 의료 목적으로 사용하지 마세요. 의사와의 상담이 반드시 필요합니다.)
Lisuride는 도파민 수용체에도 작용하며 세로토닌 수용체에 작용할 수도 있다고 말합니다.
자 이제, 예시를 선택하면 남은건 Run 버튼을 누르는 일만 남았습니다.
결과
잠시 기다리게 되면 아래와 같이 시뮬레이션 결과가 도출됩니다. 약 20가지의 결합 포즈가 예측되었네요.
그 중 Rank1의 결과를 살펴봅시다.
이렇게 Lisuride 유도체와 세로토닌 수용체가 결합하는 포즈를 확인했습니다.
그렇다면 이 유도체가 여기 붙는다고 이해하고 연구를 진행하면 될까요?
Protein Data Bank 데이터베이스에서 유사 구조를 확인해봅니다. PDB는 전 세계에서 실험으로 검증되고 인정받은 단백질 구조를 모아놓는 저장소입니다. 시뮬레이션은 lisuride 유도체로 진행했으니 lisuride로 찾아보면 비슷한게 나올 것만 같습니다.
7WC7 구조에 lisuride가 있고 세로토닌 2A 수용체가 있네요. 한 번 구조를 확인해봅니다.
왼쪽은 DiffDock에서 예측한 lisuride 유도체의 rank1 위치이고 오른쪽은 7WC7에 등록된 lisuride 위치입니다. 둘이 다른 것이 보입니다. 왜죠?
DiffDock으로 시뮬레이션한 결과가 참고구조와 다르게 나오는데 이건 어떻게 설명할 수 있어? 결과를 개선할 수 있는 방법은 뭐야?
ChatGPT의 말:
ChatGPT
DiffDock 시뮬레이션 결과가 참고 구조(reference structure)와 다른 이유는 여러 요인에 기인할 수 있습니다. DiffDock은 딥러닝 기반의 예측 모델로, 실험 데이터를 완벽히 재현하지 못할 수 있지만, 결과를 개선하거나 더 잘 해석하기 위한 방법도 존재합니다.
DiffDock 결과가 참고 구조와 다른 이유
참고 구조와의 실험적 차이:
참고 구조는 일반적으로 X-ray 결정학이나 NMR 같은 실험적 방법으로 얻은 것입니다.
실험적으로 얻은 구조는 결정 환경(온도, 용매 등)에 따라 달라질 수 있습니다.
DiffDock은 이러한 실험 조건을 반영하지 않으므로, 결과가 차이 날 수 있음.
DiffDock의 결합 포즈 예측 한계:
DiffDock은 확률적 모델로, 실험적 데이터와 가장 가까운 결합 자세를 보장하지는 않음.
특히 복잡한 단백질-리간드 시스템에서는 다수의 가능성을 제시하므로, 최적의 자세를 찾기 어려울 수 있음.
단백질 구조의 유연성 고려 부족:
DiffDock은 단백질을 리지드 바디(rigid body)로 간주하는 경우가 많아, 단백질의 구조적 유연성을 제대로 반영하지 못할 수 있음.
실제 단백질은 결합 과정에서 구조가 변화할 수 있음(Induced Fit).
리간드의 초기 입력 데이터 품질:
리간드의 3D 구조 또는 SMILES 표현이 부정확하면, 예측 결과에 오차가 발생할 수 있음.
결합 포켓 예측 오류:
DiffDock은 자동으로 결합 포켓을 탐색하거나, 지정된 결합 포켓에 맞추어 작업함.
결합 포켓이 정확하지 않거나, 실제 결합 포켓을 벗어난 위치에서 결합 자세를 생성한 경우 참고 구조와 다를 수 있음.
결과를 개선하기 위한 방법
결합 포켓 정보 제공:
DiffDock은 결합 포켓의 정보를 미리 제공할 수 있습니다.
정확한 결합 포켓 위치를 지정하면, 리간드가 올바른 영역에서 자세를 생성할 가능성이 높아집니다.
참고 구조에서 결합 포켓 좌표를 추출해 DiffDock에 입력하세요.
리간드 구조 정제:
리간드의 3D 구조가 정확하지 않으면 결과가 왜곡될 수 있습니다.
입력 데이터(SMILES, sdf 파일 등)를 확인하고, 필요하면 RDKit 같은 도구로 구조를 정제하세요.
단백질 구조 유연성 반영:
단백질이 리간드를 결합할 때 구조적으로 변형되는 경우, 리지드 바디 모델링으로는 이를 정확히 반영할 수 없습니다.
가능한 경우, 유연성을 고려한 도킹 도구(예: AutoDock 또는 Rosetta)를 병행하여 사용해보세요.
파라미터 조정:
Generate poses: 더 많은 자세를 생성하여 최적 결합 자세를 탐색.
Diffusion steps와 Diffusion time divisions: 더 세밀한 검색을 위해 단계 수를 늘려 예측 정확도를 높입니다.
상위 Rank 자세 검토:
상위 몇 개의 Rank 자세를 시각적으로 검토하세요.
DiffDock은 다수의 결합 자세를 생성하므로, Rank 1이 아니라도 참고 구조와 유사한 결합 자세가 존재할 수 있습니다.
환경 조건 반영:
DiffDock은 기본적으로 진공 상태를 가정하여 작업합니다.
실제 생리학적 조건(예: 용매화 효과, pH)을 반영하려면, 결합 자세를 생성한 후 추가로 MD 시뮬레이션(Molecular Dynamics)을 실행하여 환경 효과를 평가하세요.
데이터 품질 확인:
입력된 단백질 구조(PDB 파일)가 실험적 데이터와 일치하는지 확인하세요.
결합 포켓에 위치한 중요한 물 분자나 이온이 제거되었는지 점검하십시오. 이를 포함하여 더 실제적인 조건을 반영할 수 있습니다.
결론
DiffDock 결과가 참고 구조와 다른 이유는 모델의 한계나 입력 데이터의 품질 문제일 가능성이 높습니다. 하지만 다음과 같은 전략을 통해 결과를 개선할 수 있습니다:
결합 포켓 정보를 제공하고,
입력 데이터 품질을 개선하며,
더 많은 자세를 생성하고,
MD 시뮬레이션 및 에너지 계산으로 결합 안정성을 평가.
라고 GPT에게 조언을 들었습니다.
시사점
네, 사실 DiffDock으로 예측한 구조는 진짜 예측 결과 입니다. 이 시뮬레이션을 통해서 알 수 있었고 참고할 사항을 다음과 같이 정리할 수 있습니다.
Rank1의 결과가 반드시 정답은 아니다. - 실제로 위 시뮬레이션에서 rank6-11의 위치가 참고구조와 유사한 위치를 보였습니다. 이는 결과를 순위로 판단하는 것의 불완전함을 보여줍니다.
분자 도킹 시뮬레이션을 비교적 간편하게 실행할 수 있었지만 결과는 결코 간편하지 않습니다. 더 많은 시뮬레이션을 거쳐 '해석'을 해야 하고 참고문헌을 탐색하고 실험적으로 검증하는 것이 필수라고 여겨집니다.
그럼에도 불구하고, NVIDIA에서 제공하는 도구로 비교적 쉽게 분자 도킹 시뮬레이션을 체험해볼 수 있었습니다.