리비전을 매우 힘들게 진행하고 있습니다.
핵심 알고리즘은 크게 바뀐건 아니지만, 여기저기 많이 뜯어 고치고 리팩토링까지 해버렸습니다.
하다보니 성능도 좀 향상된 것 같고...
너무 피곤해서 잠시 일을 쉬고 글이나 쓰려고 합니다.
제가 AI를 보면서 느낀것은, AI는 사람이 잘하는 일을 잘한다는 것이었습니다.
AI의 알고리즘은, 인간의 생물학적인 구조와 인간의 학문들... 인지 심리학 등의 요소를 많이 포함하고 있습니다.
대부분의 과학이 그렇지만, 좋은 AI 알고리즘을 개발하는 방법은 있는것에서 배우는 것입니다. 자연에서.. 혹은 인간의 학문에서... 수억년의 과정 동안 생명체는 최적화가 되기 마련입니다. 인간의 학문도 수천년간 많은 시행착오를 거치며 발전해왔습니다.
그래서 제가 추구하는 연구 AI는 전문가의 방법론을 AI로 구현하는 것, 혹은 전문가의 방법과 AI의 자율화 자동화를 연결하는 것입니다.
FragDockRL은 이런 관점하에서 개발되었습니다. 사실 이것을 처음 만들려고 한 시점은 2019년... 처음 신약개발을 시작하고 얼마 지나지 않았을 때입니다. 그런데 완성까지 정말 심하게 오래걸렸습니다. 시간에 비해 완성도가 높은것도 아닙니다만, 제 개인적인 사정으로 늦어졌습니다.
아무튼 2019년의 저는 이것을 만들기엔 너무 부족했습니다. 그때부터 의약화학자들과 이야기하고, 의약화학책을 읽으면서 약물 설계를 어떻게 하는지 배웠습니다. 뭐 제기 실제로 합성 실험을 할 수 있는건 아니고, 그것을 알고리즘화 하는 방향으로 고민했습니다만..
FragDockRL는 fragment (core, buildingblock), docking, RL 등의 요소를 융합하여 만들어졌습니다. 그리고 각각은 의약화학 교과서의 개념을 충실히 따르려고 노력하였습니다.
약은 적절한 작용기를 가져야하며, 작용기는 단백질과의 결합에서 적절한 위치에 결합하여야 합니다. pdb에서 많은 단백질-리간드의 결합 구조를 정렬해보면 신기할 정도로 동일한 위치에 유사한 구조들이 잘 정렬됩니다. 굳이 작용기가 아니라도, 어떤 뼈대로서 중요한 위치에 자주 등장하기도 합니다만... 이것은 단백질에 결합할 수 있는 약물의 코어 구조는 생각보다 한정적이거나, 어떠한 규칙을 가지고 있고, 단백질-약물 결합의 절반 정도는 이 코어 구조의 기여에 의한 것이라 해석할 수 있습니다. ( lead optimization 과정에서 동일한 연구자에 의해 개발되어 바이어스된 면도 있습니다만...) fragment based drug design의 기본적인 관점입니다.
그래서 저는 core 구조로부터 분자 생성을 시작하도록 하였습니다. 그리고 거기에 합성 용이성을 높히기 위해서 구매가능한 building block 들 중에서 알려진 합성 반응이 일어날 수 있는 것들을 붙이는 시도를 하도록 하였습니다. 이렇게 가상 합성 기반으로 building block 조합에 의해 분자가 성장합니다. 그다음에 도킹을 진행하는데, core구조가 단백질-분자 결합에서 고정된 위치에 오도록 하기 위해서 tethered docking을 진행합니다.
구조기반 신약개발의 관점에서 R1, R2등 사이드 그룹이 바뀌어도 단백질과의 결합에서 코어의 위치는 크게 바귀지 않아야 결합력이 유지될 가능성이 높습니다. 물론 예외도 있지만, 그 예외조차도 코어 구조와 관련이 있습니다. 새로 추가된 R2가 코어와 유사하게 생겨서 그것이 코어가 된다거나... 아무튼 pdb나 ChEMBL의 분자들을 유심히 살펴보면 코어 구조가 얼마나 자주 등장하는지 확인할 수 있고, 그것을 분석하면 단백질의 어느 포켓에 붙는지도 대략 추정이 가능합니다. 이러한 이유로 tethered docking을 사용하였습니다.
그리고 이 docking score가 향상되는 새로운 빌딩블록 조합이 선택되도록 하기 위해 강화학습을 사용하였습니다.
매 상태에서 각 빌딩블록을 선택하는 것이 얼마나 가치있는가를 책정하기 위해서 Q 러닝 방식을 사용하였습니다.
그리고 정책은 볼츠만 팩터를 사용하여 Q로부터 온도 인자가 고려되어 각 빌딩블록이 선택될 확률을 계산하게 됩니다.
사실 저는 볼츠만 팩터를 매우 좋아합니다. 만약 물리학자가 적자생존의 원리를 수식으로 적는다면, 볼츠만 팩터로 적게 될 것입니다. 0과 1이 아니라, 온도를 이용해서 확률값으로 표현하는 점도 매력적입니다. 이런 관점에선 적자만 생존하는것이 아니고 적합할수록 생존확률이 향상된다 라고 해석할 수 있습니다.
음... 의약화학을 알고리즘으로 구현하려고 나름 열심히 고민하고 노력했지만, 여전히 부족한점이 많이 보입니다.
만약 제가 이 분야의 연구를 계속 한다면 꾸준히 개선하고 싶습니다.
그건 그렇고 리비전 너무 힘듭니다. 이거 말고도 하는 일이 몇개가 더 있다보니 너무 피곤하네요.
'Physics and Informatics' 카테고리의 다른 글
| 소재 개발에 AI를 활용하면 효율적일까? (2) | 2025.11.06 |
|---|---|
| 태풍을 수확할 수 없을까... (0) | 2025.11.05 |
| 기초과학과 응용과학, 기술 (0) | 2025.10.15 |
| 상보성 원리: 대립적인 것은 상호 보완적이다. (1) | 2023.08.25 |
| Protein bioinformatics: 구조-기능-진화와 머신 러닝 (0) | 2023.02.09 |