알파폴드가 공개된 이후에 신약개발 분야에서 사람들이 주로 관심 가지는 질문이 두 가지 있습니다.
하나는 알파폴드가 예측한 구조가 얼마나 정확한 것인가?이고, 다른 하나는 구조 예측한 결과를 신약개발에 사용할 수 있는가입니다.
이 질문을 따로 대답하기는 좀 어렵습니다. 왜냐하면 그 얼마 나라는 것이 수치적인 점수를 묻는 것이 아니기 때문입니다. 수치적인 점수라면 캐스프에서 보여준 대로 실험 구조와 상당히 유사합니다.
단백질 구조예측 분야에서 머신러닝 방법이건, 컴퓨터 시뮬레이션이건 메서드를 개발할 때, 특정 데이터에 대해서 파라미터 최적화 과정을 거칩니다. 성능 평가를 할 때는 학습에 사용하는 데이터 이외에 별개의 데이터셋을 준비해두고, 여기에 대해서 평가를 하는 것이 일반적입니다. 좀 더 엄밀하고 공정한 평가를 위해서, 트레이닝 셋에 있는 단백질과 (서열 및 구조적) 유사도가 낮은 단백질들을 테스트 셋으로 사용합니다. 보통은 단백질을 클러스터링 한 후, 그중 일부는 테스트 셋, 일부는 트레이닝 셋으로 사용합니다. (데이터를 줄이기 위해 클러스터 대표만 사용하는 경우가 많았습니다.) template free modeling에 사용할 메서드를 개발할 때는 서열 유사성(sequeuce identity, SI)에서 cutoff는 보통 0.2, 큰 경우에도 0.35 정도 값을 사용합니다.
그런데 이게 가장 현실과 유사한 테스트 조건은 아닙니다. 이것은 단지 메서드 개발과 성능 평가를 위한 방법이고, 현실에서 단백질 구조 예측을 하라고 한다면 어떻게든 좋은 결과를 내는 것이 중요할 것입니다. 즉, 특정 시간에, 그 이전에 나온 사용 가능한 데이터는 전부 사용하는 것이 가장 유리할 것입니다. 쉬운 문제 (학습에 사용한 데이터와 유사한)가 나올지, 어려운 문제가 나올지 알 수 없습니다. 굳이 어려운 문제를 얼마나 잘 풀 수 있는지에 맞춰진 평가 방법만을 사용할 필요는 없습니다. 특정 시간을 기준으로 그 이전에 나온 데이터를 트레이닝 셋으로 사고, 그 시점 이후에 나온 데이터를 테스트 셋으로 사용하는 방법 (temporal split) 이 우리가 현실에서 실제 체감하는 성능에 가깝습니다. CASP의 validation 방법이 여기에 해당됩니다. 대회가 개최될 때쯤 구조가 실험적으로 밝혀진, 혹은 대회 평가기간쯤에 구조가 실험적으로 밝혀질 예정인 단백질들을 대회 평가가 끝날 때까지 비공개하도록 하여 대회에 문제로 내고 구조예측 성능 평가에 사용합니다. 저는 이 방법이 가장 공정하고 객관적이면서도 현실을 반영한 평가 방법이라고 생각합니다. (상대적으로 CASP 방법이 아닌 다른 논문에서 나온 성능은 객관성이 떨어지고 신뢰하기 어렵습니다.) CASP에서 GDT-TS 점수가 나왔다면, 그 수치를 거의 그대로 신뢰해도 된다고 봅니다. (오버 피팅의 여지는 크지 않습니다.)
GDT-TS나 TMscore를 많이 사용하는데,
Yang Zhang의 TMscore 에선 스코어 영역에 따라서
* 0.0 < TM-score < 0.17, random structural similarity *
* 0.5 < TM-score < 1.00, in about the same fold
라고 합니다. GDT-TS는 보통 CASP에서 같은 구조에 대한 값을 TMscore와 비교하면 TMscore보다 약간 작게 나옵니다.
그리고 현재 알파폴드의 점수는 FM 경우에도 대부분 TMscore 0.5 이상이고, 0.9 이상인 것들도 여럿 있습니다.
0.9 이상이면 native 구조들하고 비교해서 눈으로 봐도 별 차이 없습니다.
GDT-TS 스코어에 대해선 다음 페이지에서 자세히 설명을 볼 수 있습니다.
정렬을 했을 때, 모델 구조와 native 구조에서 Calpha 사이의 거리가 1A, 2A, 4A, 8A 안에 들어오는 비율을 가지고 만들어진 스코어입니다.
https://predictioncenter.org/casp14/doc/help.html#GDT_TS
하지만, native 구조를 실험해서 찾지 않고서는 TMscore가 0.9 이상인지 아닌지 얼마나 정확히 알 수 있는가가 문제입니다. 내가 풀어야 할 단백질에 대해서, 그 구조가 얼마나 정확한가 가 문제이지, 평균 점수가 얼마나 나오는가만 가지고는 믿고 사용하긴 어렵죠. 아마도 구조 예측 정확도에 대한 신뢰 값 같은 것을 함께 예측해줄 것 같지만, 어떻게 확인하는지 잘 모르겠네요. 그리고 TMscore나 GDT-TS의 경우는 모든 원자에 대해서 native 구조와 비교하는 것이 아니라 Calpha 만을 비교하는데, side chain에 대한 구조 예측이 중요한 경우도 있습니다. 이 부분은 특히 약물 결합력을 예측할 때 중요할 수 있습니다.
또 생각해야 할 점은, 단백질의 일부 영역은 경직되어있지만, 일부 영역은 유동적이라는 점입니다. 유동적인 부분까지 native와 정확히 일치할 필요는 없습니다.
첫 번째 질문에 대해선, 대회 결과가 현실과 얼마나 유사한지, 그리고 얼마나 객관적인지, 스코어의 값이 어느 정도의 유사성을 의미하는지에 대해서 알아보았습니다.
두 번째 질문에 대해서 이야기해보겠습니다.
최근에 신약개발 스쿨에 등록해서 강의를 들었는데, 거기서 연사님께 알파폴드가 예측한 구조를 사용하실 의향이 있는지 질문이 들어왔고, 연사님은 좀 부정적으로 대답하셨습니다. 그분은 실험 구조가 아니면 믿고 쓰지 못하겠다고 하셨습니다. 저도 제가 지금까지 도킹 시뮬레이션을 해본 경험을 바탕으로 말씀드리면, 그대로 쓰긴 어려울 가능성이 높습니다. (하지만 저는 명색이 컴퓨터 시뮬레이션하는 사람이니 안 쓰겠다는 것은 아닙니다.)
사실 아는 분과 알파폴드 구조를 신약개발에 바로 사용할 수 있는지 테스트를 좀 해보고 있는데, 좀 다른 이유로 테스트에 곤란함이 있습니다. 구조 예측 결과가 너무 정확해서 (TMscore 0.95 이상), 공정한 테스트가 어렵다는 게 문제입니다. 제가 테스트에 사용하려는 단백질들은 리간드 결합 구조가 많이 알려진 단백질이고, temporal split을 하는 게 아니다 보니, 제가 테스트하려는 단백질이 training에 사용한 구조일 수도 있습니다. 답을 알려주고 문제를 내면 안 되겠죠. (물론 그렇게 시험을 봐도 100점 못 맞는 학생은 많습니다.) 알파폴드가 공개된 것은 사람들에게 사용하라고 공개한 것이지, 객관적인 validation을 하라고 공개한 것은 아니라서 공개된 버전으로 validation을 하는 건 쉽지 않네요. 여하튼 그런 이유로 테스트 결과를 직접 보여드리지는 못하고, 원론적인 이야기만 하겠습니다.
실험 구조가 있으면, 포켓에 결합하는 약물을 찾을 수 있는가?라고 질문을 해봅시다. 이게 사실 쉽지 않습니다.
리간드가 결합되지 않은 단백질이 리간드와 결합하면 단백질의 구조가 달라질까?, 리간드는 단백질에 어떻게 결합하는 것일까? 생각을 해봅시다.
enzyme-substrate interaction을 설명하는 모델로 효소와 기질의 구조가 상보적으로 맞아서 결합이 이루어진다는 lock and key 모델과, 결합되기 전에는 정확히 맞지 않지만 결합을 이루면서 구조가 변한다는 induced fit 모델이 있는데, induced fit 모델이 좀 더 현실과 맞습니다. 이 모델은 enzyme-substrate interaction에 대한 모델이지만, 일반적인 단백질-약물 결합에도 적용될 수 있을 것입니다. 즉, 단백질의 unbound form과 bound form의 구조가 다르다는 것입니다.
보통은 docking 시뮬레이션을 할 때 단백질 구조는 바꾸지 않도록 rigid docking을 사용하고, receptor 구조를 선택할 때도, 기존에 알려진 ligand와 결합하는 bound form을 사용합니다. unbound form이나, kinase 같은 경우에는 ADP bound form 은 별로 사용하지 않습니다. unbound form에 도킹할 경우 결합력이 충분히 잘 나오지 않을 수도 있고, 특정 단백질의 경우는 (예: 콜레스테롤 수송 단백질) 포켓이 과도하게 좁아서 아예 분자가 들어갈 틈이 없습니다. 그리고 리간드와 결합한 후 포켓 입구가 닫히는 단백질도 있습니다. 특정 리간드가 결합된 단백질에 다른 리간드를 붙여서 결합 포즈가 정확히 나오는지 평가하는 cross-docking 같은 테스트도 있습니다.
(사실 cross-docking만이 아니고 원래 리간드가 붙어있던 실험 구조에서 그 리간드를 떼어다가 다시 docking 프로그램으로 붙여도 실패하는 경우가 있습니다. 구조에 약간의 크래시가 있어서 그런 경우도 있지만, 다른 이유인 경우도 있습니다. 구조적인 크래시라면 시뮬레이션으로 이를 약간 완화할 수도 있습니다.)
어찌 보면 도킹이라는 시뮬레이션은, 해당 단백질에 붙는 모든 리간드를 식별해내는 것이 아니라, 이미 결합된 리간드와 유사하게 결합할 수 있는 리간드를 찾는 정도의 한계를 지니고 있다고 볼 수도 있습니다.
flexible docking 같은 receptor의 side chain 도 움직이면서 결합을 찾는 방법도 있지만, 계산량이 커서 일반 도킹에 비해서 시간이 몇 배 더 걸립니다. (참고로 슈뢰딩거의 툴 중에서도 induced fit이라는 것이 있습니다.) 계산량을 줄이기 위해서는 일부 리간드에 대해서 flexible docking을 해서 receptor의 bound form을 먼저 찾고, 이 구조를 활용해서 rigid docking을 할 수도 있습니다. 하지만 그렇게 해서 도킹을 했다고 치더라도, 그 결과가 맞는지 얼마나 신뢰할 수 있을지, 무엇을 보고 판단해야 할지 의문입니다. 또한 main chain을 바꿔야 할 경우는 flexible docking만으로는 어렵고, 분자동역학 시뮬레이션이 필요합니다.
보통은 리간드가 결합된 단백질 실험 구조를 가지고 그 리간드를 대체할 다른 리간드를 탐색하는 것이 신약개발에서 많이 사용하는 방법입니다. 이 접근방법에서는 파마코 포어 모델이나, 스케폴드 정렬 같은 기존에 붙어있던 리간드의 정보를 최대한 활용하는 방법들을 사용하기 좋습니다. 새로 찾은 분자가 기존에 붙어있던 분자와 부분적 구조나 파마코 포어가 유사하다면, 그 도킹 결과에 대한 신뢰도가 높겠죠.
분자동역학 같은 시뮬레이션은 정확하다고 알려져 있긴 하지만, 초기 조건으로 도킹 포즈를 사용하기 때문에 올바른 도킹 포즈를 모르고서 시뮬레이션을 한다면 정확도가 떨어지거나 계산시간을 훨씬 길게 잡아야 할 수도 있습니다.
여기에 단백질 구조 예측 결과를 바로 사용하기 어려움이 있습니다. 구조 예측한 단백질이 bound form일지 unbound form일지 사실 모릅니다. template based modeling 방법이라면 차라리 bound form을 템플릿으로 사용할 경우에는 예측된 구조도 bound form과 유사합니다. 만약 template이 주어진 단백질과 family 일 경우라면 상당히 정답과 유사할 가능성이 높습니다. (애초에 패밀리 단백질끼리는 실험적인 결합력, 포즈 자체가 거의 일치합니다.)
알파폴드에서 예측된 결과는 바로 rigid 도킹에 적용하기는 어려울 것 같고, 분자동역학이나 flexible 도킹 같은 시뮬레이션을 거쳐야 할 것으로 보이고, 그 후에도 시뮬레이션이 정확했는지를 판단할 근거가 필요합니다. 이런 것들은 전문가가 연구를 해가면서 찾아야 하는 과정이라서 쉽지 않습니다.
물론 운이 좋으면 그냥 바로 사용해도 결과가 잘 나올 수도 있습니다. 하지만 운이 나쁘면 실험 구조가 있어도 잘 안 되는 게 신약개발이죠.
시뮬레이션 구조를 사용해서 신약개발을 할 수 있다, 없다 같은 결론을 한마디로 내리긴 어렵습니다. 이것은 연구의 영역이고, 연구는 세심하게 정성 들여서 해야 한다.라는 것이 제 결론입니다.
'Drug > Computer-Aided Drug Discovery' 카테고리의 다른 글
분자 SMARTS 문법 및 rdkit에서 SMARTS 탐색 (0) | 2021.09.23 |
---|---|
분자 SMILES 문법 및 변환 (0) | 2021.09.23 |
AutoDock Vina 1.2 가 나왔네요. (0) | 2021.08.13 |
AlphaFold Protein Structure Database (0) | 2021.07.24 |
bioinformatics 적인 관점에서 신약개발 (2) | 2021.07.09 |