신약 발굴에서 쓰이는 화합물 선별 모델의 성능은 어떻게 평가하느냐에 따라 3배까지 달라집니다. 공개 스크리닝 데이터로 그 차이를 직접 측정했습니다.
수만 개 화합물 중 어느 것부터 실험할지 정하는 것이 신약 발굴의 첫 단계입니다. 무작위로 100개를 고르면 활성 화합물은 서너 개 나옵니다.
머신러닝 모델을 쓰면 이 숫자를 끌어올릴 수 있다고 알려져 있습니다. 하지만 그 성능이 새로운 구조를 찾아내는 능력인지, 이미 아는 것과 닮은 것을 골라내는 능력인지는 구분해서 보고되지 않는 경우가 많습니다.
이 프로젝트는 그 둘을 나눠서 측정합니다.
- 출처: NCI Drug Therapeutics Program의 AIDS Antiviral Screen
- 화합물 41,127개의 HIV 복제 억제 실험 결과
- 활성 1,443개 (3.51%)
- 사용한 열:
smiles(구조),HIV_active(0/1)
노트북이 실행 시 자동으로 내려받으므로 별도 준비가 필요 없습니다.
- 분자를 Morgan fingerprint(반경 2, 2048비트)로 변환
- 학습용 80% / 검증용 20%로 분할 — 무작위 분할과 스캐폴드 분할 두 가지
- 랜덤 포레스트, MLP, GNN으로 각각 학습
- 검증 세트에서 활성 확률 상위 100개를 선택
- 그 안에 실제 활성이 몇 개인지 측정 → 무작위 선택 대비 배수로 표시
추가로, 검증 세트의 각 분자가 학습 세트와 얼마나 닮았는지(Tanimoto 유사도)를 측정해 유사도 구간별로 성능을 따로 집계했습니다.
| 조건 | 상위 100개 중 활성 | 무작위 대비 |
|---|---|---|
| 무작위 분할 | 70 | 19.9배 |
| 스캐폴드 분할 | 71 | 20.7배 |
| 유사 분자가 없을 때 | 17 | 7.1배 |
스캐폴드 분할로 골격을 완전히 분리했는데도 성능이 유지됐습니다. 원인을 확인해보니, 골격을 갈라도 Tanimoto 0.7 이상으로 닮은 분자가 9.6% 남아 있었고 모델이 정확히 그것들을 골랐습니다. 모델이 선택한 상위 100개의 평균 유사도는 0.726, 검증 세트 전체 평균은 0.470이었습니다.
학습 세트에 닮은 분자가 없는 구간(유사도 0.4 미만, 3,176개)만 떼어놓고 보면 7.1배입니다. 새로운 골격을 찾는 것이 목적이라면 이 값이 실제 기대치입니다.
| 분자 수 | 활성률 | 학습 세트와의 유사도 | 무작위 대비 | |
|---|---|---|---|---|
| 천연물형 | 2,056 | 3.11% | 0.422 | 4.5배 |
| 합성형 | 6,168 | 3.53% | 0.487 | 6.1배 |
NP-likeness 점수 상위 25%를 천연물형으로 분류했습니다. 활성률은 비슷한데 성능은 26% 낮습니다. 스크리닝 라이브러리가 합성 화합물 위주라 참고할 예시가 적기 때문입니다.
천연물이 덜 활성인 것이 아니라, 모델이 천연물을 덜 찾아냅니다.
| 모델 | 전체 | 유사도 0.4 미만 |
|---|---|---|
| 랜덤 포레스트 | 20.7배 | 7.1배 |
| MLP (2048 → 256 → 64 → 1) | 18.4배 | 2.1배 |
| GNN (GCN 3층) | 12.0배 | 3.3배 |
활성이 1,161개뿐인 학습 데이터에 파라미터 53만 개 MLP는 과합니다. 학습 손실은 계속 떨어졌지만 검증 성능은 따라오지 않았습니다.
GNN이 MLP보다 어려운 구간에서 나은 것은 분자 구조를 직접 넣는 것이 지문보다 유리하다는 신호입니다. 다만 GNN은 손실이 1.28에서 1.17로 거의 줄지 않아 학습이 수렴하지 않은 상태입니다.
pip install rdkit pandas numpy scikit-learn matplotlib torch torch_geometric
jupyter notebook Virtual_Screening_Reality_Check.ipynb위에서부터 순서대로 실행하면 됩니다. 난수 시드가 고정되어 있어 같은 결과가 재현됩니다. 전체 실행에 약 20분 걸립니다.
- 타깃 하나(HIV)의 결과입니다. 다른 표적에서 같은 경향이 나올지는 확인하지 않았습니다.
- 하이퍼파라미터는 표준값을 그대로 사용했고 튜닝하지 않았습니다. 검증 세트를 보며 조정하면 이 프로젝트가 지적하는 문제를 스스로 범하게 됩니다.
- GNN은 학습이 충분히 수렴하지 않았습니다. 에폭이나 모델 크기를 늘리면 결과가 달라질 수 있습니다.
- NP-likeness는 천연물 여부의 확정이 아니라 점수입니다. 실제 천연물 데이터베이스와 대조하면 더 정확해집니다.
- 스캐폴드 분할은 Murcko 골격 문자열이 정확히 일치해야 같은 골격으로 판정합니다. 치환기 하나 차이로 다른 골격이 되므로 완전한 통제가 아닙니다.
- 다른 표적 데이터셋에서 같은 경향이 나오는지 확인
- GNN 학습 조건을 늘려 수렴시킨 뒤 재비교
- COCONUT, NPAtlas와 대조해 천연물 판정 정확도 개선
- 천연물만 따로 학습시킨 모델이 천연물 발굴에서 더 나은지 확인
Wu, Z. et al. MoleculeNet: a benchmark for molecular machine learning.
Chemical Science 9, 513-530 (2018).
AIDS Antiviral Screen Data, NCI Drug Therapeutics Program.
https://wiki.nci.nih.gov/display/NCIDTPdata/AIDS+Antiviral+Screen+Data
코드는 MIT License를 따릅니다. LICENSE 참조. 데이터는 NCI 공개 데이터이며 MoleculeNet을 통해 배포됩니다.