Drug/Computer-Aided Drug Discovery 60

인공지능 신약개발 여름학교, 겨울학교

저는 고등과학원에 3년 10개월 (박사 후 연구원) + 6개월(학생인턴) 있었습니다. 당시 여름에는 병렬 컴퓨팅 여름학교, 겨울에는 단백질 구조 겨울학교 행사가 있었습니다. 그 외에도 정기적인, 혹은 수시로 학술행사에 많이 참여했지만... 정말 이벤트가 많은 곳이었습니다. 고등과학원 스쿨의 특징은, 수업만 하는 것이 아니라, 참가자가 스쿨 기간 동안 팀을 만들고 프로젝트도 진행한다는 점입니다. 3~5일 정도 기간이다 보니 상당히 힘들었습니다. 아침 9시부터 저녁 10시 넘어서까지 수업과 프로젝트라니.. 게다가 리조트에서 하는 경우는 중간에 2시간 정도 스키도 타고... 프로젝트하다가 조원끼리 싸우고 결별한 조도 있었습니다... (팀원 한 명이 아예 방에 들어가서 문 잠그고 안 나오고... 정작 그 조가 ..

인공지능과 분자의 bio activity, IC 50에 대해서

인공지능 신약개발을 공부할 때 곤란한 점들 중 하나는 생물학, 화학적 수치들에 대해 이해하기 어렵다는 점입니다. 특히나 개별 논문에서 수치가 어떻게 정의되었는지 확인하는 것이 아니라, ChEMBL이나 DB나 DUD-E 같은 데이터셋에서 가져온 경우 이런 수치들을 그대로 인공지능 학습에 사용해도 되는지 의문이 듭니다. 결론부터 말씀드리면, 확인 안 하고 사용하면 안 됩니다. IC 50 같은 경우도 실험마다 다르게 정의될 수 있습니다. 그것이 꼭 셀 실험과 엔자임 실험인지에 따라서만 나눠지는 것은 아닙니다. 엔자임(효소) 중에서도 ATP를 기질로 하는 kinase도 있지만, peptide를 기질로 하는 peptidase 도 있습니다. 그리고 같은 단백질에 대한 IC 50이라 할지라도, ATP의 농도에 따라서..

Marvin JS demo를 사용해서 분자 SMILES, SMARTS 얻기

이전에 SMILES와 SMARTS에 대해 포스팅을 했습니다. 직접 SMILES과 SMARTS를 만드는 건 좀 번거롭고 어렵기에 보통은 분자 그림을 변환 툴을 사용합니다. chemaxon의 marvin을 이용해서 SMILES와 SMARTS를 얻을 수 있습니다. demo 버전에서도 작동합니다. https://marvinjs-demo.chemaxon.com/latest/ Marvin JS marvinjs-demo.chemaxon.com Marvin JS demo를 사용해보겠습니다. 창에다 분자를 그려넣고, export 버튼 (디스켓 모양)을 누릅니다. format에서 SMILES를 선택하면 SMILES를 얻을 수 있고, SMARTS를 선택하면 SMARTS를 얻을 수 있습니다. Kekule form 대신 aro..

유용한 cheminfomatics 툴들

많은 툴들이 있지만, 제가 사용하는 것들 위주로 올립니다. python 모듈: rdkit - python cheminformatics 모듈입니다. openbabal - cheminformatics 프로그램입니다. python module (pybel)로도 사용할 수 있습니다. 분자 그림 그리는 툴: marvin JS: marvin Sketch의 웹버전 정도로 생각할 수 있습니다. https://marvinjs-demo.chemaxon.com/latest/index.html ChemDraw: 비슷한 툴인데, 합성 하시는 분들이 많이 쓴다고 합니다. https://chemdrawdirect.perkinelmer.cloud/js/sample/index.html SMILES 을 붙여넣어서 입력할 수도 있고, 그..

단백질-약물 결합을 분석할 때 중요한 요소

CADD 하는 사람들이 의약화학자에게 도킹 구조를 보여주면서, "이게 약이 될 것 같아요?" 라고 묻는 것은 아마 다들 경험해본적이 있을 것입니다. 의약화학자들이 어떠한 관점에서 이 문제에 대하여 답을 하는지 이해한다면, 좋은 CADD 툴을 만들 수 있을 것입니다. 많은 경우 생물학의 문제들에 대한 적절한 답은, "그때그때 달라요."입니다. 단백질-약물 결합에서도 마찬가지입니다. 주어진 타깃에 대해서 다를 것입니다. 그래도 제가 경험적으로, 그리고 많은 데이터로부터 알게 된 것에 대해 이야기하겠습니다. 저는 단백질-약물 결합에 어떠한 원리가 있는지 의문을 가지고 있습니다. 생물학에서 원리라는 것은 경험적이고, 물리학에서의 원리에 비하면 약한 것이겠지만, 그래도 좀 더 보편적으로 이해할 수 있는 무언가가 ..

분자 가상합성: moleculer building block assembly

인공지능 신약개발을 처음 공부할 때, 정작 기존까지 신약개발에 사용되는 방법들을 제대로 몰랐습니다. 기존 방식이 무엇인지, 장점이 무엇이고 왜 그런 방법을 사용하고 있는지, 무슨 문제가 있는지... 이런것들을 전혀 모르고 시작하다보니 참 답답한 생각이 많이 들었습니다. 그중 하나가 실제로 합성하는 사람들은 분자를 어떻게 합성하는지 궁금했습니다. 유기합성하시는 분을 처음 만났을 때 그 의문이 풀렸습니다. 합성할 분자를 3~4조각 정도로 쪼개서, 그 조각들이 판매되는 building block 라이브러리에 있는지 확인하고, 있다면 그 조각들을 구매해서 합성하는 것이었습니다. 완성된 분자를 거꾸로 빌딩블록 단위로 쪼개서 합성 경로를 추정하는 것을 역합성 (retrosynthesis) 이라고 합니다. 당연히 합..

pybel: openbabel python interface, 수소 추가, protonation state

openbabel 은 콘솔에서 직접 명렁어로 실행할 수도 있지만 (obabel 등) python interface로 모듈을 불러올 수도 있습니다. rdkit과 비슷한 기능을 하긴 하는데, 사용법이 더 어렵고, 메뉴얼이 불편합니다. 그래도 나름 장점도 있어서 openbabel을 사용해야 하는 경우도 있습니다. openbabel 을 설치하기 위해선 일단 openbabel을 설치합니다. openbabel2와 openbabel3의 구조가 조금 다릅니다. 예를들면 pybel 모듈이나 openbabel module을 import하기 위해서 버전 3에선 다음과 같이 입력합니다. from openbabel import pybel from openbabel import openbabel 하지만 버전 2에선 import ..

신약개발에 활용되는 인공지능의 해석 가능성

머신러닝 결과를 해석하는 것은 쉬운 일은 아니지만, 불가능하진 않습니다. 기본적으로 머신러닝은 통계분석의 응용이기에 주어진 데이터를 학습하고, 새로운 데이터를 예측할 때, 학습 데이터 중에서 주어진 데이터와 유사한 것이 있다면 그 영향을 크게 받습니다. 하지만 유사성이라는 것은 그리 간단한 것이 아닙니다. 입력 공간상의 거리(distance)와 임베딩 된 공간상에서의 거리는 다릅니다. 적절한 공간 변환을 일으키고, 유사성을 최적화하는 것이 딥러닝의 핵심입니다. 즉, 입력 공간에서 별로 유사해 보이지 않는 데이터가 임베딩 된 공간에선 한 곳에 모을 수 있습니다. 이것이 왜 중요한지 생각해봅시다. 우리는 굳이 딥러닝을 사용하지 않더라도, 분자의 fingerprint를 만들고, Tanimoto 같은 simil..

인공지능 신약개발에서 데이터 생산의 중요성

기계학습은 당연히 데이터가 있어야 할 수 있습니다. 공공 데이터는 적은 것은 아니지만, 여러 문제가 있습니다. 원하는 타겟에 대한 데이터는 많지 않고, ChEMBL처럼 active위주로 수집이 되어있거나, 저는 학계에서 인공지능 신약개발 연구를 하다가, 공공데이터에만 의존하고 자체적인 데이터가 없이는 어렵다는 생각이 들어서 인공지능 신약개발 회사로 이직했습니다. 회사는 돈 벌기 위해서 연구하는 곳이니까, 아무래도 돈을 들여서 데이터를 많이 만들 줄 알았죠. 회사에서 돈 들여서 데이터를 만들거나, 파트너로부터 데이터를 얻어서, 그 데이터를 학습하고 분자를 선별하고 그것을 다시 학습에 활용하고, 이 과정을 반복해나가면서 신약개발을 할 거라 생각했지만, 전혀 그런 것 하지 않더군요. 그냥 공공데이터 가지고 학..

Enrichment Factor

Enrichment factor (EF)는 약물 가상 탐색에서 성능 평가를 할 때 사용하기 적절한 지표입니다. 약물의 유효성을 예측하여 스코어를 주는 메서드가 있을 때, Enrichment Factor는 다음과 같습니다. $$EF=\frac{\text{precision}}{\text{active rate}}$$ 이때, \(\text{precision}=\frac{\text{True Positive}}{\text{Positive}}\), \(\text{active rate}=\frac{\text{Active}}{\text{Total Number}}\) 입니다. 즉, Enrichment factor는 전체 분자 중에서 active의 비율에 비해서 선별된 분자들 중에서 active의 비율이 얼마나 증가하는가를..