演算法集錦(1)|序列模型|利用深度神經網路進行DNA與蛋白質序列轉換

更多AI資訊,關註:九三智能控

DNA序列和蛋白質類型,都是很重要的生物數據。今天我們介紹一種可以實現二者高效、準確的轉換的深度學習演算法。

首先,我們來看看DNA和蛋白質序列如何在機器學習演算法中進行表示。

步驟1:獲取DNA和蛋白質表

步驟2:生成DNA和蛋白質序列

可以看到,我們先聲明了一些超參數,它們代表訓練數據的數量或蛋白質序列的長度。我們從步驟1中的表中隨機的抽取蛋白質和DNA匹配對。

步驟3:使用1-4規則編碼DNA

DNA編碼的方法很多,這裡我們選擇1-4規則。也就是說,用(1*4)向量來代表每個DNA序列。下面就是我們生成的DNA序列編碼。

步驟5:確認生成蛋白質序列

我們可以利用上圖來確認生成的蛋白質序列是否正確。

步驟6:建立蛋白質的獨熱編碼(One Hot Encoding)

紅框中是重複的蛋白質A,綠框中的重複的蛋白質T。因為有兩個蛋白質編碼是重複的,所以我們可以用一個(1*8)的向量來代表每一個蛋白質。

接下來,我們將介紹如何建立深度神經網路來實現DNA和蛋白質序列的轉換。

神經網路框架和前饋操作

其中,黑色向量代表編碼的DNA序列;紅色向量代表神經網路層(這裡有4層,每層50個神經元);藍色向量代表用於分類的Softmax層。

箭頭:代表標準前饋操作

以上結構表示的是一個標準的前饋操作。

反向傳播操作

黃色向量:標準的梯度流;

黑色曲線:跨越式(Dilated Connection)的反向傳播,可以使不同層之間的連接更加緊密。

實際訓練結構

上圖:平均準確率的變化;下圖:損失函數的變化

可以看到,經過1201次迭代,訓練的神經網路模型可以達到100%的準確度。

將DNA序列轉換為蛋白質序列的結果如下:

利用步驟5的基因圖表,可以確認神經網路準確的將DNA序列轉換成了蛋白質序列。

代碼如下:

關注公眾號,並點擊閱讀原文,可獲取源代碼,密碼: 853e。


微信群&商業合作:

  • 加入微信群:不定期分享資料,拓展行業人脈請在公眾號留言:「微信號+名字+研究領域/專業/學校/公司」,我們將很快與您聯繫。
  • 投稿(無稿費)請發郵件至:158354995@qq.com

  • 商業合作請註明事宜哦

weixin.qq.com/r/AC91bd- (二維碼自動識別)


推薦閱讀:

TAG:機器學習 | 深度學習DeepLearning | 基因檢測 |