FragDockRL 논문이 10월 8일 JCIM에 게재되었습니다.
https://doi.org/10.1021/acs.jcim.6c02851
FragDockRL: A Reinforcement Learning Method for Fragment-Based Ligand Design via Building-Block Assembly and Tethered Docking
Abstract. Efficient exploration of combinatorial chemical space under synthetic constraints remains a central challenge in computational molecular design.
pubs.acs.org
이 일을 하려고 처음 계획했던 것이 2020년이었는데, 드디어 첫번째 논문 FragDockRL과, FragDock 프레임워크 0.5 버전을 정식으로 공개하게 되었습니다.
참 길었지만, 사실 아직도 개발은 진행중입니다.
https://github.com/novelism/FragDock
이 논문과 연결되는 FragDock 버전은 0.5 입니다.
저는 컴퓨터를 활용하여 저분자 화합물 설계하기 위해 의약화학의 접근방법을 구조기반으로 확장하고 컴퓨터 알고리즘화 하는 전략을 선택하였습니다. 그것을 구현한 것이 FragDock Framework입니다.
building block 조합으로 분자를 합성하는 것을 탐색 알고리즘 관점으로 접근하였습니다. 그중에서 FragDockRL은 강화학습을 이용한 탐색 알고리즘 입니다.
또한 약물의 단백질 결합 구조에서 중요한 작용기나 코어구조 정보를 3D 공간 상에서 보존하도록 Tethered docking을 사용합니다.
사실 첫 논문은 컨셉이 제대로 작동하는지 확인하는 수준에서 비교적 간단하게 구현하는 정도로 하려 했지만, 리비전 과정에서 상당한 수정을 거쳐서 프로그램은 완전히 리팩토링 하였습니다.
그러면서 개별 메소드였던 FragDockRL 대신 FragDock Framework로 전환하고 FragDockRL은 그 안으로 넣게 되었습니다.
처음에는 이 문제에서 강화학습이 제대로 작동할지 확신이 가지 않았습니다. 그래서 의도적으로 기능을 축소하고 있었습니다.
FragDock v1.0에서 개선하려고 하는 바는 아래와 같습니다.
1. 분자 생성 및 docking 과정에서 stereochemistry 를 명시적으로 고려
- v0.5에선 rdkit의 conformer 생성 과정에서 임의로 생성되는것을 그대로 사용하고 있습니다.
2. High‑Barrier Conformational‑State Sampling 을 명시적으로 고려
- chair - boat 구조 같은 것을 docking 과정에선 전환하지 못합니다.
- 1번과 같습니다. 이것을 conformers 탐색으로 전환한 후 그들중 몇개를 선택하는 방향으로 전환할 것입니다.
3. Starting Building Block Selection
- v 0.5에선 사용자가 직접 한개의 starting BB를 선택해야 합니다.
처음에는 그냥 여러 starting BB를 각각 학습시키면 되겠다는 생각으로 그렇게 구현했지만, 처음부터 선택 가능하도록 변경하는 거서도 가능합니다. 단, tethered docking은 이 방법론의 핵심 중 하나이기에 tethered docking에서 고정하기 위한 core 구조를 가지고 있다는 제한조건은 붙습니다.
4. 3번의 조건을 더 완화합니다. 때때로 core 구조는 특정 building block의 서브 구조가 아니라, 두개의 building block을 합성하면서 형성되기도 합니다. 그래서 core 구조가 시작 building block에 포함되지 않더라도, 두개의 building block이 반응하여 코어 구조를 형성할 경우도 허용합니다. 처음에는 구현이 상당히 어려울것이라 생각했지만, 다시 생각해보니 그렇게 어려워보이지 않아서 도입하려고 합니다.
5. 동일 reactant 쌍이 여래개의 product를 만들 경우... v0.5 에선 합성 실패로 취급하고 제외해버립니다.
하지만, 사실은 반응 조건 (온도, 촉매 등) 이 다를 경우 product 들을 분리할 수 있기에 굳이 이렇게 할 필요는 없었습니다.
그래서 서로 다른 반응일 경우 합성 실패로 취급하지 않는 쪽으로 전환할 것입니다.
사실 강화학습에서 이부분을 어떻게 처리해야할까 고민하다가 동일 state-action에서의 update는 항상 결정론적으로 가기를 원해서 이렇게 처리했습니다. 하지만, action에 building block 선택 + reaction 선택 까지 포함시키면 문제가 없습니다.
이 외에도 몇가지 생각해둔 것이 있습니다.
이런 기능들을 보완하여 FragDock v1.0 로 업데이트 하는 것이 당장의 (내년 초까지) 목표 입니다.
그 다음에는 그 Framework을 기반으로 다른 탐색 방법들을 더 개발할 것입니다.
'Drug > Computer-Aided Drug Discovery' 카테고리의 다른 글
| FragDock Framework (0) | 2026.05.13 |
|---|---|
| FragDockRL 개발 이야기 1 (6) | 2025.08.14 |
| SMINA를 이용한 tethered docking (2) | 2025.08.13 |
| rdkit, obabel 3d conformer generation 비교 (6) | 2023.08.28 |
| hit와 lead 의 차이 - hit, hit to lead, lead optimazation (2) | 2023.06.17 |