iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
AI & Data

我們的基因體時代-AI, Data和生物資訊系列 第 4

我們的基因體時代-AI, Data和生物資訊 Day04- 深度學習在基因體學的建模架構01

上一篇我們的基因體時代-AI, Data和生物資訊 Day03- 基因醫學的數據問題介紹了基因醫學中的數據問題,實際上面對DNA的序列ATCG,我們是在想什麼問題,以及去解析這樣的資料背後所牽涉的複雜架構,我們舉BRCA1這個鼎鼎有名的基因為例,實際去把它的序列部分顯示出來,接者則把目前此領域的專家是如何去處理背後問題,以及基因是由外顯子和內顯子所構成(簡化來說),另外,也分享目前人類兩萬多個基因,其實只有不到十個是人們常探究的,大部分的基因直到目前都還是空白的狀態!

以單一個基因內兩個相鄰外顯子是否會剪接

今天我們繼續接者往下深入,為了能把生物問題有效的建構成學習問題,這邊再往下分享一些分子生物學的知識,才會知道我們到底該怎麼利用深度學習來回答這領域的問題。上一篇有分享了一個基因的序列可以分為外顯子(Exon)和內顯子(Intron),本質上這些外顯子是會轉換成蛋白質的序列,一個基因可以經由排列組合不同的外顯子順序和數量,而產生不同的mRNA,進而產生不同的蛋白質,這個現象稱作剪接(splicing),如下圖所示:

https://ithelp.ithome.com.tw/upload/images/20210904/20103989fyCFyxpKhv.png

那一個基因中特定的外顯子是否會被剪接呢?就可以把它變成是一個學習問題,而且是一個監督學習(supervised learning)如下:
https://ithelp.ithome.com.tw/upload/images/20210904/20103989a0TQqwHpJz.png
基本上,監督學習的目的是建立一個模型,這個模型有輸入(features),然後會有個輸出(target),在這個問題下,輸入可以是這個外顯子區域的序列,輸出可以是1(剪接)和0(不剪接),而訓練機器模型其實就是在學習他的參數,這過程會最小化所謂的Loss function,這樣才能避免overfitting,也就是能對沒有預測過的資料有較好的結果。

一個基因的外顯子會如何剪接,其實外顯子和內顯子的序列可能會有所影響,如下面這張圖所表示的:
https://ithelp.ithome.com.tw/upload/images/20210904/20103989vlC8yNByuH.png
從上圖中,很清楚地展示了外顯子和內顯子交界處會有特徵,另外,兩個外顯子中的內顯子序列,會有個一個區域的序列是會影響剪接的,換句話說,這些都可以轉換成所謂的特徵,來變成輸入的資料。

複雜的資料關聯恰好可以用深度學習的架構來處理,大部分的監督學習的輸入都是表格的資料,也就是一行為一筆資料料,每個欄位是關於這個資料的特徵(feature),當然也有這個資料的標籤,以上面這個預測一個基因上的兩個外顯子會怎麼剪接來說,其區域上的ATCG頻率和內顯子中間區域的ATCG頻率都可以變成輸入表格中的一個欄位,在DNA的序列上,有一個提取特徵的概念叫做k-mer,簡單而言,就是在說一個DNA序列中,在特定長度下去切割這個序列,會產生幾種排列組合,再將這些資訊拿來做進一步的計畫。下面這個就是wiki上面k-mer範例:
https://ithelp.ithome.com.tw/upload/images/20210904/20103989AEb4gXsZpn.png

所以簡單來做,我們要將一個分子生物的問題,轉換乘下面這個資料架構,接者就可以來建模:
https://ithelp.ithome.com.tw/upload/images/20210904/20103989pAtBQRthV0.png
從左邊往右邊來看,左邊是大部分建模前的資料型態,就是一個大表,在監督式學習下,每筆資料都會有個標籤(就是target),通常會把資料切成訓練以及驗證的兩組資料。在以前,建立完建模的資料後,還必須撰寫很複雜的運算,但如今有超多寫得非常簡易的框架,可以直接用,比如下面就是用Python的keras來建立神經網絡的架構:

# this code were from 2019. Deep learning: new computational modelling techniques for genomics. Nature Review Genetics
import keras.layers as kl
from keras.models import Sequential

# Fully connected model architecture 
model = Sequential([
    k1.Dense(3, activation='relu', input_shape=(2,)),
    k1.Dense(2, activation='relu'),
    k1.Dense(1, activation='sigmoid')
])
# Specify optimizer, loss and evaluation metric
model.compile(optimizer='adam',
    loss='binary_crossentropy',
    metrics=['accuracy'])
# Load the dataset
x, y = load_dataset(...)

# Train the model for 10 epochs
model.fit(x,y, epochs=10)

從上面keras的代碼,可以感覺整個撰寫的感受非常好,基本上就像是在寫算式一樣,不太有碼農的味道,反而像是數學式,所以現在這樣的技能快要變成是一種基本配備,這個主題會再往下展開,實在是很有趣,但也很複雜,因為需要理解分子生物學目前已知的現象,然後才有辦法來定義問題,反而問題定義好後,建模的程式代碼已經變得非常親民!


這個月的規劃貼在這篇文章中我們的基因體時代-AI, Data和生物資訊 Overview,也會持續調整!我們的基因體時代是我經營的部落格,如有對於生物資訊、檢驗醫學、資料視覺化、R語言有興趣的話,可以來交流交流!

目前許多深度學習的相關資源:

  • 雲端平台:
    • Fabrik
    • FloydHub
    • PaperSpace
    • Valohai
    • Google CloudML
    • Azure ML
  • 軟體
    • Keras
    • TensorFlow
    • PyTorch
  • 專門用在基因體問題的深度學習軟體
    • DragoNN
    • Kipoi
  • 相關線上課程

閱讀參考:

  • Deep learning: new computational modelling techniques for genomics. Nature Reviews Genetics(2019)
  • A primer on deep learning in genomics. Nature Reviews Genetics(2019)
  • Deep learning for computational biology. Mol. Syst. Biol. 12, 878 (2016).
  • Deep learning in bioinformatics. Brief. Bioinform. 18, 851–869 (2017).
  • Computational biology: deep learning. Emerg. Top. Life Sci. 1, 257–274 (2017).
  • Deep learning in biomedicine. Nat. Biotechnol. 36, 829–838 (2018).
  • Opportunities and obstacles for deep learning in biology and medicine. J. R. Soc. Interface 15, 20170387 (2018).

上一篇
我們的基因體時代-AI, Data和生物資訊 Day03- 基因醫學的數據問題
下一篇
我們的基因體時代-AI, Data和生物資訊 Day05- 深度學習在基因體學的建模架構02
系列文
我們的基因體時代-AI, Data和生物資訊30

尚未有邦友留言

立即登入留言