Major Study./Bioinformatics

deep learning for the life sciences

sosal 2022. 6. 12. 03:03
반응형

요즘, 책을 사기만 하고 리뷰를 통 못했는데,

2년 전에 나온, 그것도 번역서지만 이런 책을 왜 이제서야 발견했을까?

놀라움에 얼른 집어 구매하고, 카페에 와서 간단하게 인덱스, 내용들을 리뷰해봤다.

 

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161754420&orderClick=LAG&Kc= 

 

생명과학을 위한 딥러닝 - 교보문고

생물학, 유전체학, 신약 개발에 적용하는 실무 딥러닝 | 로봇 공학의 발전으로 수많은 생명과학 실험들은 자동화돼 엄청난 양의 데이터를 만들어 낸다. 현대 생명 과학자들은 거대한 데이터 속

www.kyobobook.co.kr

 

인덱스는 다음과 같다.

 

1장. 왜 생명과학인가?
2장. 딥러닝 소개
3장. DeepChem을 이용한 머신러닝
4장. 분자 수준 데이터 다루기
5장. 생물물리학과 머신러닝
6장. 유전학과 딥러닝
7장. 현미경을 위한 딥러닝
8장. 의료 체계를 위한 딥러닝
9장. 생성 모델
10장. 딥러닝 모델의 해석
11장. 가상 선별검사
12장. 딥러닝의 미래와 전망

 

Medical imaging으로 논문들을 많이 우려먹었는데,

막상 내가 제일 좋아하고 공부하던 생명과학, Bioinformatics 에서는 그렇게 유용하게 활용해본 적이 없다.

가끔 나오는 논문들만 키워드로 follow-up 해왔지만, 막상 학교를 떠나오니

손이 안가게된다.. ㅠㅠ

 

책 한권을 천천히 읽을 시간은 없어, 빠르게 목차별로 내가 눈에 띈 내용만 정리해봤다.

 

 

 

1장. 왜 생명과학인가?

Biology는 매우 복잡한 생명 현상을 다루고 있고, 기술의 발전으로 high-throughput 데이터를 생산함으로써 빅데이터가 필수적인 분야가 되어가고 있다. 이 책에서는 분자데이터, 그리고 DNA, RNA 등의 유전체 데이터, 그리고 이미지 데이터, 약물과 단백질의 상호작용, 그리고 GAN을 통한 생성모델까지 다루고 있다.

 

 

 

2장. 딥러닝 소개

수준이 높진 않지만, 전형적인 머신러닝의 기초부터 CNN, RNN을 간단하게 글로 설명한다.

 

 

 

3장. DeepChem을 이용한 머신러닝

DeepChem 이라는 것은 사실 나도 처음들어보는데, 생명과학에 초점을 맞춘 Deep learning framework 정도로 이해했다.

https://github.com/deepchem/deepchem

 

GitHub - deepchem/deepchem: Democratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology

Democratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology - GitHub - deepchem/deepchem: Democratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Mat...

github.com

이부분에서, Vector를 input으로 받는 모델 (독성분자 예측), 그리고 mnist 필기체 숫자데이터를 예측하는 정도의 간단한 실습이 포함된다.

 

 


4장. 분자 수준 데이터 다루기

Chemical informatics는 경험이 거의 없지만, 여기서 몇가지 featurization을 제시한다.

(Chemical descriptor vector, 2-dim graph, 3-dim eletrostatic grid, orbital basis function 등)

 

분자를 featurization을 하는 것에 있어서도 많은 아이디어가 제시될 수 있을 것 같은데,

대부분 라이브러리화 되어 쉽게 활용할 수 있을 것 처럼 책에 제시되어있다.

SMILES (Simplified Molecular-Input Line-Entry System) 은 대학원 수업에서도 한번 사용해봤던 것 같다.

오픈소스 RDKit을 활용해서 분자구조 (예: OCCc1c(C)[n+]Cc2cnc(C)nc2N' = 비타민 B1) 등을

머신러닝 모델이 이해할 수 있는 방향으로 표현하는 것을 설명한다.

 

또한 Graph Neural Network를 제시하여, 컴퓨터가 스스로 graph 기반의 input data를 받아 featurization을 할 수 있다는 내용을 전달한다. (GNN은 특히 내가 한번도 제대로 사용해본 적 없지만, 커뮤니티에서 너무 핫하여 좀 배우고싶은 마음에 여러 컨퍼런스를 다니다가 실망을 거듭했던 분야기도 하다)

 

아래 4가지 모델을 예로 들었는데, 많이 인용되고 사용되는 모델들은 아닌 듯 하다. 

GraphConvModel (Tejera, Eduardo, et al. "Drugs repurposing using QSAR, docking and molecular dynamics for possible inhibitors of the SARS-CoV-2 Mpro protease." Molecules 25.21 (2020): 5172.)

DTNNModel (Schütt, Kristof T., et al. "Quantum-chemical insights from deep tensor neural networks." Nature communications 8.1 (2017): 1-8.)

WeaveModel, MPNNModel

 

특히 DTNNModel을 인용한 논문들을 쫓아가보면, 재미있는 논문들이 끝이 없는듯 쏟아져나오는데,,

사실 chemical 관련 내용들에 대한 지식이 없어서 제목만 읽고 넘기게된다 ㅠ.ㅠ

 

 

 

5장. 생물물리학과 머신러닝

Protein sequence, structure에 대한 이야기, Protein-Ligand interaction에 대한 내용들에 대해 서술한다.

 

단백질 3차원 구조 예측 등에 대한 얘기도 나오는데,

2019년 첫 작성된 책이라, alphafold 내용이 없어서 조금 아쉽다.

Jumper, John, et al. "Highly accurate protein structure prediction with AlphaFold." Nature 596.7873 (2021): 583-589.

 

PDB 공개데이터를 기반으로 간단하게 RandomForest를 기반으로

protein-ligand 결합을 예측하는 모델을 학습하는 예제를 다룬다.

 

 

 

6장. 유전학과 딥러닝

이 부분은 특히 내가 전공을 했던 부분이라, 더 흥미롭게 읽었다.

아주 간결하고 짧게 적혀있지만, 저자들이 이 분야에도 많은 지식을 가지고 있음을 확신했다.

유전체학의 기본적인 내용을 알차게 다루고 있다.

 

게다가 Transcription factor의 결합을 예측하는 모델을 Deep neural network를 활용하여 예측하는 예를 제공한다.

2012년 학부연구 시절 이러한 연구를 수행할 때, C++이란 언어로 데이터처리 하나 하는데만 온갖 고생을 다했는데,

아주 간단하게 그시절보다 아주 고퀄리티의 예시를 제공한다.

 

확실히 Python, R 등의 스크립트 언어의 발전으로 이런 연구가 너무너무 쉬워진것을 한 번 더 체감한다.

염색체의 각 부분이 외부 분자에 얼마나 쉽게 접근할 수 있는지를 나타내는 염색질 접근성 (Chromatin accessibility)을 예측하는 예제도 다룬다.

사실 대학원생 입장에서 이런 데이터를 다루고 모델을 만드는 것이 어떤 의미가 있겠나 싶긴 한데..

뭐랄까 유전체학의 기본중의 기본을 다루는 느낌이라, 간단하게 읽는 것만으로도 흥미로웠다.

 

또한 RNA interference 을 다루기도 하는데, siRNA가 상보적인 mRNA 서열에 결합해서 mRNA가 단백질로 번역을 막는 현상에 대한 예제도 다루고 있다.

 

 

 

7장. 현미경을 위한 딥러닝

이 장의 앞부분은 현미경에 대한 내용을 무척 자세하게 서술하고 있다.

심지어 현미경 시료부터 형광체, 현광표지 등 까지 다루고있으며,

 

갑자기 U-Net을 활용한 Segmentation 예제까지 제공한다.

그리고 실행 가능한 소스까지 제공한다..

대단하다! 이런 내용이 2019년도에 담겨있다니..

 

 

 

8장. 의료 체계를 위한 딥러닝

이 장에서 CAD (Computer-aided diagnostic system)를 다룬다.

Electronic Health Record과 ICD-10코드를 다루면서 조금 더 Medical informatics에 관한 내용을 다룬다.

또한 CT, MRI, Xray 등의 Medical imaging을 활용한 딥러닝 연구에 대해서도 소개한다.

 

당뇨망막병증 데이터셋을 통해 이미징 딥러닝 예제도 실행한다.

예제 코드는 DeepChem에서 제공하는 무언가를 활용하는데,

어떤 Back-bone model을 활용하는지, 등등 methodology의 서술이 조금 아쉽다.

 

 

 

9장. 생성 모델

VAE (Variational Auto-Encoder)와 GAN (Generative Adversarial Network)를 다룬다.

사실 생성모델이 Biomedical informatics 분야에서 어떤 역할을 할 수 있을지 크게 기대가 안되었기 때문이었는지,

고민해본적도, 찾아본적도 없는 것 같다.

 

책에서 제시하는 생성모델의 역할을 나열하면 다음과 같다.

1. 신약 후보 물질 찾기

2. 단백질 엔지니어링 (예: 때를 분해하는 단백질을 찬물에서도 잘 동작하도록 엔지니어링 하여 세제에 첨가)

3. 과학적 발견을 위한 도구..

 

그리고 SMILE 문자열을 출력하는 예제를 다루는데, 뭔가 글에 주어가 많이 빠져있어서 이해하기 어렵지만,

나한테 그렇게 흥미로운 내용은 아니라서 간단히 pass..

 

 

 

10장. 딥러닝 모델의 해석

Explainable AI; XAI는 뭐 당연, 데이터 분석의 최종 목표인 Decision making에 있어서 매우 중요한 분야이다.

책에서는 이미지를 다루는 CNN 모델에서 Saliency map을 언급한다.

보통 Class activation map, heatmap 정도로 표현하는데, 예제도 썩 마음에 안들지만

최대한 코드를 간결하게 하기 위함으로 생각된다.

 

Sequence에서 Position weight matrix를 활용하여 중요도를 표기하는 방법 또한 언급한다.

또한 Uncertainty에서도 간단하게 다룬다.

 

 

 

11장. 가상 선별검사

선별검사는 신약 후보 물질의 약리 활성 및 독성을 평가하는 방법인데,

구조기반 선별, 그리고 리간드 기반 선별을 이야기한다.

 

구조기반 가상 선별검사는 단백질의 결합 부위에 최적으로 결합하는 분자 구조를 찾는다.

리간드 기반 가상 선별검사는 이미 알려진 약물과 유사한 분자를 찾아, 기능을 향상시키거나 부작용을 줄인다.

 

 

 

 

12장. 딥러닝의 미래와 전망

질병 진단, 맞춤의학, 신약 개발, 생물학 연구 등에 대하여 저자의 생각을 얘기한다.

 

 

 

 

###

저자가 DeepChem 라이브러리의 개발자라 이를 통한 예제를 많이 다룬 듯 하다.

각 챕터는 매우매우 기초적인 내용만 다루고 있으므로, 학부생이나 석사 학생들에게 추천한다.

 

다만, 예제에서 사용하는 데이터는 자세하게 볼 만 하지만,

여기서 다루고 있는 DeepChem 라이브러리를 쓰는 예제들을 활용하는 것은 비추천한다.

이 정도 데이터의 경우 단순 XGBoost, Random Forest 등을 활용해도 충분한 성능이 나오니,

R, Python의 대표적인 라이브러리를 사용하기를 바란다.