본문 바로가기
데이터 사이언스

LAIDD 인공지능 & 파이썬 프로그래밍 역량강화 교육과정과 함께하는 신약개발

by 빛나는존재 2024. 8. 25.

최근LAIDD 사이트에서 신약개발 관련 강의를 들으면서 알게 된 내용을 아래와 같이 정리해봄.

 

출처:

LAIDD 인공지능 & 파이썬 프로그래밍 역량강화 교육과정

 

https://colab.research.google.com/github/StillWork/AIDD-LAIDD/blob/main/z4_DeepLearning.ipynb#scrollTo=-AQRftuEqGqx

 

z4_DeepLearning.ipynb

Run, share, and edit Python notebooks

colab.research.google.com

 

https://deepchem.readthedocs.io/en/latest/api_reference/moleculenet.html

 

신약개발에 deep learning 이 쓰이게 된 계기

  • 2012년 MErch Molecular Activity chanllenge 에서 deep learning 이 기존 머신러닝 방법보다 우수한 성능 보임
  • 이를 시작으로 QSAR, ADME 예측 등에 deep learning 이 시작

Deep chem 이란?

MoleculeNet 이라는게 있는데 여기서 사용될 dataset 을 DeepChem에 저장해놨다.

사용자들이 분석 목적에 따라 특정 dataset 을 사용할 수 있도록 table 형태로 dataset 이름, 설명, datasize, 출처등을 표기해 놓은것이 아래 site 에 있다. https://deepchem.readthedocs.io/en/latest/api_reference/moleculenet.html

그 중 tox21이란 dataset 이 있는데 이는 분자의 독성을 예측한 data이다. 이 데이터를 활용하면 특정 화합물이 독성을 가지는지 안가지는 지를 binary 로 예측할 수 있다.

tasks, datasets = dc.molnet.load_tox21(featurizer='ECFP')

여기서 deepchem library (dc) 로부터 tox21 data를 load 한다.

featurerizer = ‘ECFP’ 는 ECFP 형태에 해당하는 fingerprint 형식으로 분자 형태를 나타내겠다는 뜻

여기서 2개의 변수 가 return 된다.

  1. tasks: prediction task 의 list. 여기서는 12개의 biological receptor의 이름이나 cell pathway 등의 이름이 1개의 list 로 들어가있다.
  2. datasets: train, validation, test dataset 으로 구성된 tuple

traindata에서 ECFP 형식으로 분자 형태를 나타내면 column 이 1024개가 되고 샘플 수는 6264 이기 때문에 data shape 이 6264 * 1024 가 된다. y값의 column 수는 tasks 수에 해당 하는 12개. 즉, inputlayer 에 분자의 fingerprint 가 들어오면 그에 대한 출력값이 12개가 된다는 것. 12개 receptor/cell pathway에서의 독성을 각각 예측하는 모델을 만든다는 것. 예를 들어 특정 분자가 NR-AR 에서 독성이 없다 (0) or 있다(1) 를 예측 하는 것.

weight 는 독성이 있고 없고의 비율이 imbalance 하게 되어있기 때문에 서로 비중이 다른 것을 보상해주기 위해 가중치를 다르게 둠. weight 가 0 인 것은 해당 값은 결측치. 손실함수 등 계산할때에는 계산 되지 않게 함. 적게 발생하는 데이터에 비중을 더 주는 방향으로 weight를 더 준다.

MultitaskClassifer 라는 함수를 사용하면 input, hidden layer 개수, output 개수를 지정하여 쉽게 모델을 만들 수 있다.

반응형