前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法集锦(1)|序列模型|利用深度神经网络进行DNA与蛋白质序列转换

算法集锦(1)|序列模型|利用深度神经网络进行DNA与蛋白质序列转换

作者头像
用户7623498
发布2020-08-04 14:47:45
8420
发布2020-08-04 14:47:45
举报

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序列转换成了蛋白质序列。

代码如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 决策智能与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档