演算法集錦(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
- 商業合作請註明事宜哦
http://weixin.qq.com/r/AC91bd-EloLprZsO93oS (二維碼自動識別)
推薦閱讀:
TAG:機器學習 | 深度學習DeepLearning | 基因檢測 |