Mid-term project – Deep Learning and Drug Discovery

1. 소개

본 과제는 신약 개발 과정 중 hit discovery 과정에 대해 복습하고, 실제 연구에서 데이터와 deep learning 기반 방법이 어떻게 활용될 수 있는지를 이해하는 것을 목표로 합니다.

특히, 데이터를 수집하고 분석하며, computational 및 AI 기반 방법을 이용해 문제를 해결하는 과정을 직접 경험함으로써 데이터 기반 연구(data-driven research)의 전체 흐름을 이해하는 데 목적이 있습니다.

학생들은 과제 수행을 통해 다음과 같은 내용을 학습하게 됩니다.

  • biological problem을 computational problem으로 변환하는 과정
  • 데이터를 활용하여 가설을 설정하고 검증하는 과정
  • deep learning 및 bioinformatics 방법의 활용 방식
  • modern drug discovery에서 AI 기술의 역할
  • 연구 결과를 해석하고 논리적으로 설명하는 과정

본 과제는 단순히 도구를 사용하는 것에 그치지 않고, 데이터 기반 연구가 실제로 어떻게 수행되는지를 이해하는 데 중점을 둡니다.

1.1. 목표

본 과제는 신약 개발 과정에서 초기 선도물질(hit) 발굴 과정을 직접 계획하고 실습해보는 것을 목표로 합니다. 학생들은 질병 기전 조사, 약물 타겟 선정, 데이터 수집, deep learning 기반 예측 모델 개발, 그리고 후보 화합물 탐색 과정을 수행하면서 AI 기반 신약 개발 연구 흐름을 경험하게 됩니다.

이를 통해 다음과 같은 목표를 달성하고자 합니다.

  1. 신약 개발 과정에 대한 이해 증진
    • 질병 기전 분석부터 hit discovery까지의 전반적인 drug discovery workflow를 이해합니다.
    • 데이터 기반 및 AI 기반 접근법이 현대 신약 개발에서 어떻게 활용되는지 학습합니다.
  2. 전산학적 문제 해결 능력 배양
    • 실제 생물학적 문제를 computational problem으로 변환하는 과정을 경험합니다.
    • 생물학 데이터 수집 및 분석 능력을 익힙니다.
    • Deep learning 및 bioinformatics 방법을 활용하여 문제를 해결하는 능력을 학습합니다.
    • 예측 모델의 결과를 해석하고 biological relevance를 평가하는 능력을 향상시킵니다.

궁극적으로 본 과제는 학생들이 단순한 이론 학습을 넘어, 실제 데이터와 AI 기반 방법을 활용하여 신약 개발 문제를 해결하는 연구 과정을 경험하는 데 목적이 있습니다.

1.2. 수행 내용 요약

학생들은 먼저 문헌 조사를 통해 특정 질병의 발생 기전과 관련된 생물학적 배경을 조사하고, 치료에 활용 가능한 약물 타겟(drug target)을 선정합니다. 이후, 선정한 타겟에 결합하는 화합물 정보를 ChEMBL 데이터베이스에서 수집하여 타겟 결합 화합물 데이터셋을 구축합니다.

구축한 데이터를 기반으로 ligand based drug-target interaction deep learning model을 설계하고 학습시켜, 특정 화합물이 약물 타겟에 결합할 가능성을 예측하는 AI 기반 모델을 개발합니다. 이후, 완성된 예측 모델을 화합물 데이터베이스에 적용하여 새로운 타겟 결합 후보 화합물을 탐색합니다.

최종적으로 학생들은 예측된 후보 화합물의 구조(structure), 기능(function), 그리고 예상되는 biological relevance를 조사하고 정리합니다. 이를 통해 AI 기반 hit discovery 과정의 전체 흐름을 이해하고, 데이터 기반 신약 개발 연구 과정을 경험하게 됩니다.

1.3. 과제 수행 방법

중간고사 이전에 학습한 내용을 바탕으로, 특정 질병 관련 유전자 또는 약물 타겟에 결합할 수 있는 화합물을 예측하는 AI 기반 drug discovery 과제를 수행합니다.

과제는 두 개의 Jupyter Notebook 파일을 작성하는 방식으로 진행됩니다.

1. 연구노트.ipynb

연구를 수행하는 과정에서 조사한 내용, 데이터 수집 과정, 분석 방법, 결과 해석, 그리고 사용한 code를 기록합니다.

연구노트에는 다음과 같은 내용을 포함합니다.

  • 질병 및 약물 타겟 조사 내용
  • 데이터 수집 과정
  • 데이터 전처리 과정 (molecular fingerprint 전환)
  • Deep learning model 구성 및 학습 과정
  • 결과 해석 및 중간 분석 내용
  • 참고 문헌 및 데이터베이스 정보

2. 보고서.ipynb

연구 수행 결과 전체를 정리하여 다른 사람에게 설명하는 형태의 보고서를 작성합니다.

보고서에는 다음과 같은 내용을 포함합니다.

  • 연구 배경 및 목적
  • 질병 및 약물 타겟 소개
  • 데이터셋 구축 방법
  • Deep learning model 소개
  • 예측 결과 및 후보 화합물 분석
  • 연구 결과 해석 및 한계점
  • 결론 및 향후 방향

보고서는 연구 결과를 논리적으로 정리하여 전달하는 데 목적이 있습니다.

1.4. 과제 수행 절차

과제 수행을 위해 과제용 JupyterLab 환경에 접속한 후, terminal에서 제공된 명령어를 실행하여 과제 디렉토리를 생성합니다.

이후, 연구를 수행하면서 과정과 결과를 MidTerm_Project 디렉토리 내의 1. 연구노트.ipynb 파일에 지속적으로 기록합니다. 분석 과정에서 사용한 code 또한 함께 기록해야 합니다.

연구 수행이 완료되면, 2. 보고서.ipynb 파일에 연구의 전체 흐름과 결과를 정리하여 최종 보고서를 작성합니다.

본 과제에서는 단순히 결과만 제시하는 것이 아니라, 연구 과정과 문제 해결 과정을 체계적으로 기록하고 설명하는 것이 중요합니다.

!cp ../shared_data/MidTerm_Project . -r

2. 연구 진행

2.1. 연구 수행 및 기록

연구는 다음의 5단계로 수행하며, 모든 과정은 1. 연구노트.ipynb 파일에 기록합니다.

  1. 질환 선정
  2. 타겟 선정
  3. 데이터 수집
  4. 예측 모델 구성
  5. 신규 화합물 예

연구노트에는 조사한 내용, 사용한 데이터, 분석 과정, 결과 해석, 그리고 사용한 code를 함께 기록합니다. 단순히 결과만 정리하는 것이 아니라, 연구가 어떻게 진행되었는지를 체계적으로 기록하는 것이 중요합니다.

1. 질환 선정

1.1. 질환 선정 자료 조

문헌 조사를 통해 연구 대상으로 사용할 질환(disease)을 선정합니다.

선택한 질환에 관심을 가져야 하는 이유를 조사하고 정리합니다. 예를 들어 다음과 같은 정보를 조사할 수 있습니다.

  • 질환 유병률(prevalence)
  • 질환의 심각성(severity)
  • 사망률 또는 삶의 질 저하
  • 현재 치료 방법의 한계
  • 효과적인 치료제의 부재
  • 사회적·경제적 영향

조사한 자료는 반드시 출처(reference)를 함께 기록하여 정보의 신뢰성을 제시합니다.

참고: 문헌 조사 시 출처의 신뢰도

문헌 조사 시에는 자료의 신뢰도를 고려해야 합니다. 일반적으로 다음과 같은 순서로 신뢰도를 생각할 수 있습니다.

  1. 논문 (peer-reviewed article)
  2. 공공기관 자료 (정부기관, 병원, WHO 등)
  3. 뉴스 기사
  4. 일반 웹 문서

예를 들어 Wikipedia 와 같은 웹 문서도 논문을 출처로 명시하고 있다면 참고 자료로 사용할 수 있습니다. 그러나 가능하면 웹 문서 자체보다는 원 출처인 논문을 직접 참고하는 것이 바람직합니다.

참고: 질환 선정 시 주의사항

Ligand-based DTI (Drug-Target Interaction) 예측을 위해서는 충분한 target-ligand 상호작용 정보가 필요합니다. 따라서 비교적 연구가 많이 진행되어 있으며, 공개된 화합물 데이터가 존재하는 질환 및 타겟을 선택하는 것이 좋습니다.

1.2. 신약 개발 필요성 설명

수집한 자료를 바탕으로 왜 해당 질환에 대한 신약 개발이 필요한지 설명합니다.

예를 들어 다음과 같은 내용을 포함할 수 있습니다.

  • 기존 치료제의 한계
  • 부작용 문제
  • 치료 효과 부족
  • 내성 문제
  • 새로운 치료 전략의 필요성

해당 내용은 최종 보고서의 Introduction 부분에서 질환 선정 이유를 설명하는 데 활용합니다.

2. 타겟 선정

질환 치료의 대상이 될 수 있는 유전자 또는 단백질(target protein)을 선정합니다.

문헌 조사를 통해 다음 내용을 조사합니다.

  • 질환 발생 mechanism
  • 질환 관련 signaling pathway
  • 타겟 단백질의 생물학적 역할
  • 타겟 단백질과 질환의 연관성
  • 기존 약물 개발 사례

특히, 타겟 단백질이 질환 발생에 어떻게 관여하는지에 집중하여 설명합니다.

이 내용은 보고서의 Introduction 부분에서 타겟 선정 이유를 설명하는 데 사용합니다.

3. 데이터 수집

타겟 결합 화합물 정보를 수집하고 데이터 분석을 시작합니다.

ChEMBL 에서 데이터를 수집하고, 이후 machine learning에 사용할 feature 형태로 변환합니다.

3.1. 타겟 결합 화합물 수집

ChEMBL 에서 선택한 타겟에 결합하는 화합물 정보를 검색하고, 결과를 TSV 형식 파일로 저장합니다.

저장한 파일은 MidTerm_Project/data 폴더로 복사(drag & drop)합니다.

이 데이터는 positive dataset으로 사용합니다.

추가 데이터셋

모델 학습에는 positive dataset뿐 아니라 negative dataset도 필요합니다.

다음 파일을 함께 사용합니다.

  • data/negative_dataset.tsv
    • 타겟과 관련 없는 화합물 정
  • data/chemical_library.tsv
    • 신규 화합물 탐색에 사용할 화합물 library
참고

제공된 negative dataset 및 chemical library는 비교적 분자량이 작고 (200–299 Da), 물과 기름에 비슷한 정도로 녹는 특성(AlogP ≈ 0.65)을 가지는 화합물들로 구성되어 있습니다.

3.2. 데이터 로드 (Load data)

TSV 형식의 데이터를 읽고 데이터의 구조를 조사합니다.

Python의 pandas library의 read_csv() 함수를 사용합니다.

예를 들어 다음과 같은 내용을 확인할 수 있습니다.

  • column 이름
  • 데이터 개수
  • 결측값 존재 여부
  • SMILES 정보 존재 여부
3.3. Feature 전환

Positive dataset과 negative dataset의 SMILES 정보를 이용하여 molecular fingerprint feature를 계산합니다.

생성한 molecular fingerprint를 feature 변수 X에 저장합니다.

또한 다음과 같이 label 정보를 구성합니다.

  • positive dataset: 1
  • negative dataset: 0

4. 예측 모델 구성

예측 모델 구성 과정을 설명합니다.

Markdown cell에는 어떤 모델을 사용할지 설명하고, Code cell에는 실제 구현 코드를 작성합니다.

Deep neural network 모델을 구성하고 학습합니다. (이전 실습 code를 참고합니다.)

모델 학습

모델 학습 시 validation_split 옵션을 설정하여 held-out validation을 수행합니다. 아래는 참고 code 입니다.

model.fit(
    X,
    y,
    validation_split=0.2
)
참고

실제로는 cross-validation이 더 바람직할 수 있으나, 본 과제에서는 편의상 held-out validation 방식을 사용합니다.

결과 시각화

학습 결과(loss, accuracy 등)를 그림으로 저장하고 보고서에 활용합니다.

예를 들어 matplotlib의 savefig() 함수를 사용할 수 있습니다.

fig.savefig('figures/sample.png')

5. 타겟 결합 화합물 예측

학습된 모델을 화합물 library에 적용하여 새로운 타겟 결합 후보 화합물을 예측합니다.

5.1. 화합물 library 분석

data/chemical_library.tsv 파일을 pandas.read_csv() 함수로 읽습니다.

이후 SMILES 정보를 molecular fingerprint feature로 변환하여 X_library와 같은 변수에 저장합니다.

5.2. 화합물 결합 예측

딥러닝 모델의 predict() 함수를 이용하여 화합물의 결합 가능성을 예측합니다.

예측 결과는 y_library와 같은 변수에 저장할 수 있습니다.

5.3. 상위 후보 화합물 분석

예측 점수가 가장 높은 화합물 10개를 선택하고 구조를 비교합니다.

이를 위해 제공된 select_top_10_chemicals() 함수를 사용할 수 있습니다.

함수 실행 후 출력되는 표에는 ChEMBL ID가 포함되어 있습니다.

학생들은 ChEMBL 에서 해당 ChEMBL ID를 검색하여:

  • 화합물 구조(structure)
  • 화합물 특성(property)
  • 기존 알려진 기능(function)

등을 조사하고 기록합니다.

from src import util
top10 = util.select_top_10_chemicals(chemical_library, y_library)
top10

3. 평가

3.1. 연구노트 (50%)

  • 과제를 충실히 수행하였는가?
  • 수행 과정 기록의 충실도
  • 수행 결과 기록의 충실도

3.2. 보고서 (50%)

  • 연구 수행 과정 이해도
  • 결과의 체계적 정리 여부
  • 내용 전달력

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top