使用神经网络的建立与分析遗传基因数据模型(一)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 使用神经网络的建立与分析遗传基因数据模型(一)

DNA双螺旋(已对齐)合并神经网络(黄色)

640.png

我最近进行了有关基因序列的研究工作。我想到的主要问题是:"哪一种最简单的神经网络能与遗传数据最匹配"。经过大量文献回顾,我发现与该主题相关的最接地气却非常有趣的工作是在Yoshua Bengio 教授的实验室中进行的。这篇论文的题目是:"饮食网络:脂肪基因组学的瘦参数",它的主要目标是将基因序列划分为26个种族。我从那篇论文中得到了灵感,在这里我想解释一下建立神经网络来解决这类问题的基本原理。要阅读这篇博客,不需要生物学方面的背景知识;为了直接进入计算部分,我将尝试覆盖大部分必要的部分。

动机

我们目前正面临艰难时刻:SARS-CoV-2病毒使我们对大自然的强大力量束手无策。通过学习新工具,获得有关基因组的数据直觉,并探索哪种机器学习方法可以最佳地概括该数据,我希望我们能够团结一致,为美好的明天做出改变,或者至少使用神经网络做一些除了娱乐自己以外,可以拯救我们的生命和地球的事情。

为什么我发现遗传学如此吸引人?

你的基因不仅揭示你的信息,而且还揭示出祖先的基因组历史,通过这么多年保存下来的显性基因。换句话说,它是你家族的生物进化编码,而且根据达尔文的进化论,所有的有机生物(植物、动物等)都有相同的基因组原理。

直觉

让我们浏览其他类型的数据,例如图像和句子,以了解遗传数据的独特性。一方面,图像是具有相邻关系的二维数据(或三维体),句子是由非监督方式训练的具有句子层次性质的一维向量。另一方面,遗传序列是至少成千上万个值的一维向量(序列),在邻居之间没有明确定义的关系,并且没有具有预先训练的模型集。因此,在图像处理中非常流行的高斯平滑滤波在这里没用,并且视觉中的所有预训练模型(*ImageNet,VGG,ResNet ...)和自然语言处理(Word2Vec,Glove,BERT *...)都被淘汰出局。

为什么这是一个挑战

想想一个包含数千个遗传样本的数据库。您需要找到一种方法,该方法它能很好地概括成千上万个组合的输入数据(准确性超过90%)。在这里使用神经网络可能是一个很好的工具,因为它利用了全连接层的功能,而这种方式在其他"经典"算法(例如PCA,SVM和决策树)中是缺少的,而这些算法无法单独管理数据。构建最简单的网络体系结构需要成功地预测第一层的权值,这将为您留下数千万个自由参数。降维(以避免过多的自由参数)是解决这个问题的一种方法,我们将在本博客后面讨论它。

生物学背景

为了弄清这个问题,同时也不妨碍这个论坛的主要目的,我在这里仅提出本博客所需要的生物学部分的高级观点。不用说,我们非常欢迎您进一步探讨这些生物学主题中的任何一个。

什么是遗传序列?

一个DNA分子是由四种碱基组成的序列,这些碱基由A、C、G、t的字母表示:序列的特定部分(即使位于较远的地方)与表现型相关。例如,最近的一项研究:"一种可能起源于蝙蝠的新型冠状病毒引发的肺炎暴发"表明ACE2基因可能是SARS-CoV-2病毒的宿主受体(表现型)。有趣的是,仅凭你的DNA就能获得多少有价值的信息(罪犯检测、匹配大麻品种、营养和个性化药物)。

什么是SNP基因型?

如今,我们比以往任何时候都更接近于实现几乎完整的人类基因组序列。然而,我们还远远没有涵盖全部。单核苷酸多态性SNPs是基因组序列中特定的基因型位点,一般以RS[数字]表示。不同的种群有不同的序列不变量,但在家族内部可能是相同的(因此亚洲人看起来与欧洲人不同)。对SNP序列的分析将是本博客其余部分的重点。

方法

我将介绍两种主要的网络架构(以及另一种网络,它的参数经过了改进,从而克服了机器学习中的一些主要问题)以及一些技术技巧......

数据

相对于其他数据类型,医疗数据集很难找到,主要是由于隐私限制。针对此,"千人基因组计划"取得了重大突破,公布了一个包含3450个人类DNA样本的公共数据集,每个样本包含全球26种族的315000个snp。下一幅图显示了来自1000个基因组数据的直方图,描绘了每个种群(种族)的个体频率。

640.png

1000个基因组人口分布(种族)

降维

如上所述,减少模型中的自由参数是很必要的(在我们的例子中,我们要处理大约3000万个参数)。为了达到这个目的,所提出的方法是在判别网络的基础上使用另一个辅助网络,该网络的输入是每个类的直方图(一个以无监督方式计算的嵌入矩阵)。该网络的输出初始化了判别网络第一层的权值。嵌入矩阵为每个种群的归一化基因型直方图,大小为SNPsX[4x26],其中4为4个基因型,26为类(种群)数。这种嵌入矩阵的实现如下所述。我的解决方案是通过减少隐藏单元层的数量(参见架构部分),我称这种新架构为改进的模型,它的好处之一是克服了过拟合,稍后的结果部分将对此进行讨论。

结构

我们比较了两个主要网络。这两个网络都包含两个完全连接的隐藏层,后跟一个softmax层,但是第二个网络包含辅助网络,该辅助网络可预测判别网络的自由参数。所述辅助网络以嵌入矩阵为输入,并返回判别网络的权重(图1)。

640.png

图1:两种区分模型,无(上)和有辅助网络(下)

可以在图2中看到该体系结构的详细说明:批处理规范层,然后在每个全连接层之前接一个dropout层。

640.png

目录
相关文章
|
7天前
|
安全 网络安全 数据库
01-Web 网络安全纵观与前景分析
01-Web 网络安全纵观与前景分析
|
7天前
|
机器学习/深度学习 自然语言处理 运维
随机森林填充缺失值、BP神经网络在亚马逊评论、学生成绩分析研究2案例合集2
随机森林填充缺失值、BP神经网络在亚马逊评论、学生成绩分析研究2案例合集
|
7天前
|
机器学习/深度学习 存储 数据采集
随机森林填充缺失值、BP神经网络在亚马逊评论、学生成绩分析研究2案例合集1
随机森林填充缺失值、BP神经网络在亚马逊评论、学生成绩分析研究2案例合集
|
7天前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
7天前
|
机器学习/深度学习 数据可视化 算法
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例1
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
13天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
|
17天前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow、Keras 和 Python 构建神经网络分析鸢尾花iris数据集|代码数据分享
TensorFlow、Keras 和 Python 构建神经网络分析鸢尾花iris数据集|代码数据分享
|
2天前
|
网络协议 Linux 网络架构
|
5天前
|
域名解析 网络协议 Linux
linux网络配置详解
linux网络配置详解
14 0
|
6天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
12 0