Drug/Computer-Aided Drug Discovery

인공지능 신약개발에 대한 이야기

Novelism 2021. 2. 25. 20:33

 

 최근 2~3년 정도 사이에 인공지능 신약개발 관련 연구들이 많이 출판되고, 관련 사업을 하는 회사들도 많이 등장하였습니다. 그러나 그런 연구를 하고 있는 제가 봤을 때 신약개발에 실제로 도움이 될만한 연구, 혹은 써봤는데 잘 된다 좋다. 라고 할만한 메소드는 별로 없었습니다. 저는 이제는 좀 다른 접근방법이 필요하다고 생각합니다.

 

 저는 2013년부터 단백질 관련 컴퓨터 시뮬레이션 연구를 하고 있었는데,

 단백질 구조예측 분야에선 이미 2000년대 초반부터 머신러닝을 사용해왔기 때문에 머신러닝에 대해서도 관심을 가지고 있었습니다.

그러다가 알파고가 등장하고 딥러닝이 대중적으로 유명해지면서 저도 머신러닝 관련 연구를 시작하였습니다.

 한편으론 단백질 구조예측만으론 가치있는 연구를 하기 어렵다는 생각이 들어서 신약개발 연구를 하려는 생각도 하고 있었습니다. 때마침 기회가 되서 인공지능 기반 신약개발 연구를 하는 연구실로 옮겨갔습니다.

 그시기 사람들이 많이 하던 인공지능 신약개발 연구는 분자 가상 생성, 분자의 약학적 특성 예측, 단백질-리간드 결합력 예측 등이 있었습니다. 딥러닝 기반 방법들은 SMILES 형태의 분자 구조식과 NLP 모델을 사용하거나 분자 graph과 graph convolution 을 사용하는 방법들이 많이 등장하였습니다. 그보다 이전 시대에도 머신러닝 기반 방법들은 있었는데, 주로 룰 기반으로 만들어진 분자 Fingerprint를 descriptor 로 사용하던 연구들이었습니다. 

 딥러닝 모델의 장점이자 단점으로 화학에 대한 전문 지식이 부족해도 뭔가 할 수 있을 것처럼 보인다는 점이 있습니다.

 사실 저는 이부분을 매우 유감스럽게 생각합니다.

 

 

 흔히들 이런 이야기를 합니다. 딥러닝 모델을 학습시키기 위해서는 데이터가 많이 필요하다.

 왜 그런지 생각을 해볼 필요가 있습니다.

 파라미터가 많기 때문이라고 말하긴 하는데, 이런 방식의 설명을 원하는 것은 아니고...

 머신러닝이 할 수 있는 일이 무엇인지, 그리고 우리가 실제로 해야하는 일이 무엇인지 좀 생각을 해봐야 합니다.

 아래 이야기는 딱히 실험적 근거는 부족하고, 제 개인의 체험과 의견을 바탕으로 합니다만... 

 

 머신러닝은 어떠한 파라미터들로 구성된 모델이 있을 때, 데이터를 통해서 파라미터를 학습하고, 학습된 데이터를 바탕으로 문제에 대한 예측 결과를 내놓습니다.

 그런데, 머신러닝은 얼마나 새로운 문제를 풀 수 있을까요? 

 저는 머신이 학습에 사용한 데이터와 유사한 문제 밖에 풀지 못하는게 아닌가 의심합니다.

 

 일례로 (학습이 없기 때문에 머신러닝으로 분류되지 않기도 하지만) nearest neighbor 모델을 예로 들어봅시다.

문제가 주어지면 데이터베이스에서 유사한 데이터들을 찾고, 이들 중 가장 유사한 1개 (혹은 여러개) 의 데이터들의 label 을 참고하여 문제에 대한 답을 예측합니다. 당연히 문제와 데이터의 유사도가 낮아질 수록 예측 정확도는 떨어집니다. 저는 딥러닝 학습에 데이터가 많이 필요하다는것이 풀려는 문제와 유사한 데이터가 있어야 예측이 잘 된다는 의미라고 생각합니다.
물론 유사성을 어떻게 측정하는가는 매우 어려운 문제이고, 어떤 공간에선 유사도가 낮은 데이터가 다른 공간에선 유사도가 높게 보일 수도 있기에, 학습 방식에 따라서 얼마나 유사성이 낮아도 예측이 잘 되는가는 다를 수 있습니다. 하지만 근본적으로 참고할 데이터가 없다면 예측 정확도는 보장할 수 없다고 생각합니다.

 

 단순히 데이터가 많다기보다는 데이터의 다양성이 높아서 최대한 넓은 영역을 함하는 데이터가 좋다고 봅니다. .

 데이터 자체의 수는 많은데, 특정 영역에만 국한되어 다양성이 낮은 데이터를 사용한다면 그 데이터와 유사도가 낮은 문제에 대해서 잘 예측할 수 있을까요?

인공지능으로 잘 될 만한 사업들이 있습니다. 인간이 잘 하는 일, 반복적인 일, 데이터에서 특별히 많이 벗어나지 않는 일 들...

그러면 여기서 문제가 발생하는데... 신약개발은 이러한 일에 속할까요?

 신약은 새로운 약입니다. 기본적으로는 기존 실험 결과가 알려진 분자들과 다른 새로운 분자를 만드는 일입니다.

새로운 분자가 기존 분자와 과하게 유사하다면, 특허적인 문제가 발생하거나, 차별성이 부족하다는 문제가 생깁니다.

새로운 분자에 대해, 기존 데이터를 학습해서 만든 모델의 예측이 잘 성립할까요? 저는 그렇지 않다고 생각합니다.


단백질 분야에선 이미 2000년대 초반부터 머신러닝을 사용하고 있었습니다.

이분야의 많은 논문에선 그동안 사람들이 사용해온 validation 방법론을 따를 것이 요구됩니다.

(명시된 규정은 없지만, 선행 연구들에서 사용한 방법을 따릅니다. 따르지 않으면 억셉을 잘 안시켜줍니다.)

여러가지가 있지만, 결국 가장 중요한 것은 트레이닝셋과 테스트셋을 나눌 때, 서로 유사성이 낮아지도록 하는 것입니다.

 새로운 분자(단백질)에 대해 특성을 (혹은 구조를) 예측하는 것이기 때문에, 학습에 사용한 데이터와 유사하지 않은 분자가 제시될지라도 예측을 잘 하는가를 평가하는것이 매우 중요한 요소입니다.

 그런데, 딥러닝 열풍 이후 나온 분자 관련 연구의 상당수는 이런 요건을 만족하지 않고 있습니다.

(몇몇 도메인 지식이 깊은 분들은 (Vijay S. Pande 같은) 트레이닝-테스트셋의 유사성을 낮추는 방식의 데이터셋 분리를 논문에서 보여줬지만, 그 논문들을 인용한 논문들은 단순히 데이터를 랜덤으로 나눌 뿐이었습니다.

그리고 터무니 없이 높은 예측 정확도를 보여주죠...

 

저는 딥러닝 분야의 연구자들이 데이터에 대한 이해가 부족한게 아닌가 생각합니다.
대부분 딥러닝 분야의 인기있는 논문들은 데이터를 직접 가공하지 않습니다. 저명한 대회에서 제시된 데이터를 사용할 뿐입니다. 그리고 주어진 데이터에 대해서 매겨진 점수만을 높히는 것이 목표입니다.
또한 딥러닝이 뜨는 분야들에선 오래전 방법들이 별로 성능이 뛰어나지 않았습니다.
그러다보니 이미 오래전부터 제시된 머신러닝 방법들이 있음에도 불구하고 딥러닝 논문만이 인용될 뿐, 해당 분야의 기초적인 논문들은 무시되는 경향이 있습니다.

자신이 학습에 사용하는 데이터셋을 어떻게 만들었는지 세심하게 논문을 읽는 사람이 얼마나 될지 우려됩니다.

 예를 들자면 DUD-E 라는 데이터셋은 타겟 단백질에 대해서 active와 decoy 데이터들을 모은 것인데, 이는 애초에 docking method 검증용에 가깝습니다. 여기선 데이터의 양을 늘리기 위해서 decoy에 실험적인 inactive 데이터 뿐만 아니라, active 데이터와의 fingerprint의 유사성이 낮은 데이터들을 포함시켰습니다.
이 데이터를 머신러닝을 돌려보면 당연히 성능이 터무니없이 높이 나올수 밖에요. 애초에 머신러닝 학습용으로 부적절한 데이터입니다. 물론 이 데이터도 쓰기 나름 입니다만...

학습에서 점수를 올리는 것만이 제일 중요한 것은 아닙니다. 그것은 마치 우리가 시험을 잘 보기 위해 시험문제만 열심히 공부하는 것과 비슷합니다. 그것은 이미 풀어본 문제와 유사한 문제를 잘 풀게 만들어주지만, 새로운 문제를 풀어야 할 때 좋은 방법은 아닙니다.
그런데...꼭 완전히 새로운 분자에 대한 예측을 해야하나...? 같은 것도 생각해볼 수 있습니다. 신약중에는 기존 약과 구조가 전혀 다르지는 않은 것들도 포함되어 있습니다.  그리고 특허에서 유사성의 기준은 scaffold이지, pharmacophore가 아닙니다. pharmacophore 유사성을 기반으로 한다면, 예측 정확도를 확보하면서도 기존 분자와 scaffold 의 유사성은 낮을 가능성도 있지 않을지..

 중요한 것은 딥러닝으로 된다, 안된다 이런것이 아니라, 자신이 사용하는 메소드가 실제로 하는일이 무엇인지 이해하고, 자신이 해야할 일이 무엇인지 생각하고 메소드가 거기에 적합한지, 혹은 자신의 메소드에 적절한 전략이 무엇인지.. 그런것들을 고민하는 일입니다. 또한 기존의 컴퓨터 기반 접근방법에 딥러닝을 접목할 요소가 많은데, 정작 딥러닝을 공부한 사람들 중 기존의 방법들을 잘 모르는 사람들이 많습니다. 사람들은 딥러닝에 대해서 너무 과도한 기대를 가지고 있는 것 같습니다. 기존 방법들 잘 안되니까 그거 공부할 필요 없고, 그 접근방법의 연장선 같은것도 필요 없고, 그냥 전혀 다른 방법으로 딥러닝으로 하면 될거다 같은 생각을 한게 아닌지...  딥러닝 기반으로 만든 방법들은 정작 쓰려고 하면 원하는 성능이 안나오거나, 용도와 맞지 않는 결과가 나와버립니다.
저는 오히려 기존 방법의 프레임에서 특정 부분들을 딥러닝으로 대체하는 방식으로 하는게 유용하다고 생각합니다.

'Drug > Computer-Aided Drug Discovery' 카테고리의 다른 글

의약화학  (5) 2021.04.29
pharmacophore model  (0) 2021.04.21
합성 가능한 분자 생성  (0) 2021.03.27
단백질 구조예측과 단백질 구조 기반 약물 탐색  (2) 2021.03.11
AutoDock Vina 및 변종 사용법  (21) 2021.02.28