论文解读:DeepZ:一种用于Z-DNA预测的深度学习方法

news2024/11/24 6:44:36

标题 DeepZ: A Deep Learning Approach for Z-DNA Prediction.

DOI 10.1007/978-1-0716-3084-6_15

期刊 Methods in molecular biology

作者 Nazar Beknazarov; Maria Poptsova

出版日期 2023-01-01

Github:https://github.com/Nazar1997/Sparse-vector

网址 https://doi.org/10.1007/978-1-0716-3084-6_15

摘要

在这里,我们描述了一种使用深度学习神经网络(如CNN和RNN)从DNA序列中聚合信息的方法;核苷酸的物理、化学和结构特性;组蛋白修饰、甲基化、染色质可及性和转录因子结合位点的组学数据以及其他可用NGS实验的数据。我们解释了如何使用训练的模型对Z-DNA区域进行全基因组注释和特征重要性分析,以确定功能Z-DNA区域的关键决定因素。

数据

        输入数据取自ChIP-seq实验,通常以区间的形式表示(通常以.dad格式)。在我们描述DeepZ模型的原始研究[10]中,我们使用了两个Z-DNA数据集:一个来自ChIP-seq实验,报告了391个Z-DNA区域[4],第二个数据集由Wu等人[11]和Kouzine等人[12]的数据组成。应该从ENCODE黑名单区域中清除数据集[13]。通常,对于深度学习方法的使用,感兴趣的区域是居中的,并调整到相同的宽度,并被视为正类的对象。在我们的方法中,由于正类中的项目数量较少,我们提出了一种不同的方法。代替间隔,我们考虑核苷酸的水平,其中整个基因组由布尔阵列表示,其中1被分配给Z-DNA区域中的核苷酸,而0被分配给其他区域。通过这种方法,一个小类将包含足够的元素用于机器学习模型(例如,来自ChIP-seq实验的380个Z-DNA区域的位点约150000个,每个位点约400bp长)。第二类是由基因组中的随机位置组成的。

与序列一起,该模型允许合并任何附加信息。这可以是关于二核苷酸的物理、化学或结构性质的信息,以及来自NGS实验的任何组学数据。我们还在DeepZ模型中纳入了最初用于Z-Hunt的B–Z跃迁能(见[14]中的表2),以及关于组蛋白标记(HM)、DNA酶I超敏位点(DNA酶seq)、转录因子(TF)和RNA聚合酶(RNAP)结合位点的额外信息。甲基化变化图取自[15]。

事实上,任何基因组轨迹都可以作为信息层添加(见图1)。在最初的DeepZ出版物中,总的一组包括1058个标记,其中有100个组蛋白标记、947个转录因子结合位点、10个RNA聚合酶结合位点和DNA酶I超敏位点。功能的完整列表可以在[10]中的补充表S1中找到

每个特征都被标准化为区间[0,1]。将整个基因组映射到大小为L×N的矩阵中,其中L是基因组的大小,N是模型中使用的特征数量。人类基因组的总大小超过3×109个核苷酸,需要3 TB的RAM来存储整个矩阵,每个值由4字节的浮点编码。

为了克服这个问题,我们建议使用稀疏向量方法对数据进行压缩。该方法的基本思想是用两个向量对数据进行编码。第一数据矢量直接存储编码矢量的值;第二矢量存储编码矢量中的值的索引。该向量支持以下操作:(1)返回给定切片[i,j]的标准向量值;(2)更改给定切片[i,j]上的向量值。

在真实数据组蛋白数据标签上,压缩级别超过100。因此,大约100兆字节将解决该任务,而不是1兆字节。

对于[10]中描述的具有1058个标记的DeepZ模型,人类基因组的所有数据仅占用约200兆字节。

因此,所有输入数据都可以永久地在RAM中运行。这个包是在Python 3中使用NumPy库实现的,可以在存储库中获得https://github.com/Nazar1997/稀疏矢量。

方法

流程图

 图1用于Z-DNA预测的深度学习模型的一般模式。

(a) 基于CNN的深度模型架构。

(b) 用于Z-DNA预测的基于RNN的深度模型架构。第二个LSTM单元采用相反的数据顺序,然后将结果与具有原始顺序的第一个LSTM单元格连接,以提高性能

CNN-Based Architecture

这种类型的DL模型仅由CNN和FC层块组成(图1)。尝试了在CNN层之间具有ReLU激活的一个和两个CNN层。卷积核的数量和核的大小从1到17不等。Stride设置为1;填充被设置为(内核大小-1)/2,以保持输出的大小相同。每个卷积核都有1D构象。将CNN块的输出发送到FC块,在FC块中进行最终预测。

RNN-Based Architecture

这种类型的DL模型仅由RNN和FC块组成(图1)。未接触的输入被发送到RNN块。RNN块由具有不同超参数的LSTM网络组成。我们测试了一层和两层LSTM,一层和具有各种隐藏大小的双向LSTM。RNN块的输出被发送到进行最终预测的FC块。

RNN-Based Architecture

这种类型的DL模型由无线网络、有线电视网络和FC块组成。输入首先被发送到CNN块,然后被发送到RNN块,并且在FC块中进行最终预测。搜索每个块的超参数与上述相同。

在最初的DeepZ出版物中,所有模型都是通过反向传播使用RMSprop进行训练的(RMSprop是Geoff Hinton提出的未发表的自适应学习率方法)。

代替全梯度计算,在训练集的子集上计算梯度,并且在每次梯度计算之后相应地更新模型参数。

每个染色体都被分成一组子序列。我们建议避免基于Z-DNA的位点生成子序列的边界,因为当功能元件位于该区域中心时会发生这种情况(见注释1)。每一条染色体都被均匀地切成长度为5000个核苷酸的片段。对于训练集和测试集,我们包括了所有包含Z-DNA的子序列和不包含Z-DNA(从整个基因组中随机选择)的背景序列。随机分组的重复性是固定的。非Z-DNA序列的数量是含Z-DNA序列数量的三倍。训练集和测试集被分层,并以4:1的比例进行划分。分层是基于Z-DNA的存在和染色体数量

一旦模型经过训练,就可以用来预测新的功能性Z-DNA区域。训练DeepZ模型的问题是在开发DeepZ模式时缺乏实验Z-DNA数据。为了最大限度地减少对可用训练集的偏见,我们实施了类似于五倍交叉验证的程序。我们将对此进行进一步详细描述。整个数据集,即整个基因组,被分为5个大小相等的折叠,每个折叠根据染色体数量和Z-DNA存在/不存在的指示(1或0)进行分层。在接下来的每个步骤中,从5个折叠中选择一个用于测试集,并在剩余的4个折叠上训练DeepZ模型。该程序重复进行五次。总共训练了五个DeepZ模型。五个模型中的每一个都用于预测训练集之外的基因组区域。最终预测计算为所有五个模型预测的平均值,这些是核苷酸属于Z-DNA区域的概率。因此,来自每个染色体的每个核苷酸都有可能属于Z-DNA形成区。如果预测的概率高于阈值,我们将核苷酸分配为属于Z-DNA区域。建议选择阈值作为所有5个折叠的组合集上F1得分最大的值(见注2)。

这种方法可以将短DNA区域分配为Z-DNA,这些短DNA区域可以位于彼此短距离处。为了避免片段化,我们将短区域组合成较长的区域,这是基于这样的规则,即考虑到11bp是DNA螺旋的一圈长度,所有间隙小于11bp的间隔都可以连接在一起(见注释3)。

机器学习方法的一个重要方面是所构建模型的可解释性。机器学习模型的价值取决于是否有可能提取有助于模型性能的重要特征。由于RNN架构不适合解释,我们使用了最佳的CNN模型,其性能仅略低于最佳的RNN模型。我们采用了不同的解释方法,并分别进行了描述。

CNN最初是为图像识别而开发的,其中图像以具有像素值的矩阵的形式提供。CNN模型应用不同的滤波器(小矩阵)来揭示图像中的重要元素,而不管它们在图像中的位置如何。在这里,基因组数据被数字化并表示为具有真实值的矩阵,类似于具有像素值的图像表示。应用不同滤波器的想法与图像相同,但这里的重要滤波器对应于循环序列基序。这种从CNN中提取重要过滤器的方法被成功应用于许多工作,包括预测DNA结合位点[16]和其他[8,17]。该方法仅使用转换为感兴趣区域的DNA序列基序特征的序列信息(见注释4)。

从DeepZ模型中获得特征重要性的第二种方法是从组学数据和DNA的物理、化学或结构特性中量化每个特征的积极和消极贡献。为了获得这些值,CNN模型应该单独训练,并具有较高的正则化惩罚。

对于图像分类任务,所提出的方法计算类别分数相对于输入图像的梯度[18]。我们的方法类似,不同之处在于输入是核苷酸序列的1D图像。CNN模型的训练是通过在损失函数中添加10-3(或10-2)个L1正则化的权重来完成的。L1正则化具有使所有不必要的模型权重无效的性质,并且在第一卷积层中具有零权重的所有特征被进一步忽略。模型的非零权重被冻结,可训练的输入再次传递给该模型。该模型的结构允许将可训练的输入长度限制为九个核苷酸(图2)。第二层的最远过滤器位于两个核苷酸的距离处;而最远的核苷酸位于距离侧滤器两个核苷酸的距离处。因此,对靶核苷酸的依赖性将不超过向左和向右四个核苷酸。九个元素的序列将完全定义训练后的CNN模型的一个输出,如图2所示。

 结论

然而,与神经网络不同,其权重可以取任何实数,该输入的值只能取0到1之间的值。为了找到从模型的角度增加Z-DNA形成概率的特征,将值的范围设置为-1到1。通过这种方式,我们可以量化具有积极和消极贡献的特征。靶函数使成为中心核苷酸的Z-DNA位点的预测概率最大化。使用学习率为10-2的RMSprop进行输入学习。在每次学习迭代之后,将输入值映射到区间[-1,1]。

在找到使CNN的输出最大化的输入之后,很难找到与其最大输出相对应的DNA序列,因为序列本身是通过单热编码方法编码的。这意味着所有四个输入特征都相互依赖,它们的独立最大化可能会给出与其他特征不同的错误答案。为了找到这样的序列,对编码的序列进行了单独的最大化,但有额外的限制。每个核苷酸的四个特征之和等于一个。有了这些限制,这个问题不是通过普通的梯度下降来解决的,而是通过序列最小二乘规划来解决的。输出是权重矩阵,可以解释为Z-DNA概率(见注释5)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一篇文章了解 Java IO 流

一:IO 流的概述 1. 什么是 IO 流? 存储和读取数据的解决方法 I:input O:output 流:像水流一样传输数据 2. IO 流的作用? 用于读写数据(本地文件,网络) 3. IO 流按…

linux系统 数组 的运用

这里写目录标题 数组数组的定义数组的定义方式输出数组的方式数组包括的数据类型数组的删除与追加数组的删除数组的追加 数组切片与替换切片替换 冒泡排序 数组 数组的定义 数组是存放相同类型数据的集合,在内存中开辟了连续的空间,通常配合循环使用 …

爬虫逆向——某建筑市场监管平台的滑块验证码分析

目录 网址链接: 正文: 一、思路分析 二、图片处理 三、完整代码 网址链接: aHR0cHM6Ly9nY3htLmh1bmFuanMuZ292LmNuL2RhdGFzZXJ2aWNlLmh0bWw (bs64解密可见) 正文: 注:分步的代码为示例…

C语言中数据结构——带头双向循环链表

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,数据结构 🔥座右铭:“不要等到什么都没…

如何删除打印机任务?三种快速删除打印机任务的方法

打印机用户可能会经常遇到添加错的打印任务,或是一不小心重复选择过多的打印任务,环保人人有责,杜绝纸张浪费,驱动人生就为大家带来快速删除打印任务的方法。 方法一:使用Windows自带的清理功能 在Windows操作系统中…

谷歌全线反击!PaLM 2部分性能已经超越GPT-4

ChatGPT横空出世,所有人都能够明确感知到AI的惊人潜力,瞬间改变了整个AI行业的节奏,不紧不慢的谷歌也开始紧张了。 ChatGPT舆论热潮仍未消退,红色警报又拉响 北京时间5月11日凌晨1点,Google I/O 2023开发者大会上发布…

C++ | 深拷贝和浅拷贝

C 深拷贝和浅拷贝 当类的函数成员存在__指针成员__时会产生深拷贝和浅拷贝和问题。 在进行对象拷贝时会使用默认拷贝构造函数,默认进行浅拷贝,即只会拷贝指针的值,新拷贝的指针与原来的指针指向同一内存; 浅拷贝带来的问题是&…

stm32裸机开发下利用MultiTimer多任务时间片询

stm32裸机开发下利用MultiTimer多任务时间片询 📌MultiTimerGithub地址:https://github.com/0x1abin/MultiTimer ✨这是一个类似Arduino平台上的Ticker库,如需阅读懂源码,起码需要有链表知识的储备,如果仅仅只是拿来使…

docker学习笔记(二)

目录 启动Docker ​编辑 建立 Docker 用户 ​编辑 测试 Docker 是否正常工作 卸载Docker Docker镜像加速器配置 配置镜像 检查加速器是否生效 如何在Linux中的.json文件下保存并退出 如果我是使用vi操作进来的,我该如何保存并退出呢? 如何在Li…

3 步集成 Terraform + 极狐GitLab CI ,实现基础设施自动化管理

本文来自:极狐GitLab 开发者社区 作者:KaliArch 利用极狐GitLab CI 实现基础设施编排自动化后,用户就可以使用极狐GitLab 进行基础设施管理:提交基础设施变更后,会触发 MR 进行极狐GitLab CI 流水线执行,从…

电视盒子什么牌子好?数码小编分享2023热销电视盒子排行榜

整理私信的时候有朋友希望我能分享电视盒子排行榜,对不了解电视盒子什么牌子好的朋友们来说,选购电视盒子时很容易踩雷,因此我根据各大电商平台的销量数据整理了最新热销电视盒子排行榜,对电视盒子感兴趣的朋友们可以了解一下。 ●…

时序预测 | Python实现AR、ARMA、ARIMA时间序列预测

时序预测 | MATLAB实现VAR和GARCH时间序列预测 目录 时序预测 | MATLAB实现VAR和GARCH时间序列预测预测效果基本介绍模型原理程序设计参考资料预测效果 基本介绍 Python实现AR、ARMA、ARIMA时间序列预测 模型原理 AR、ARMA、ARIMA都是常用的时间序列预测方法,它们的主要区别在…

功能优化升级,添加更丰富的刷题练习设置|会员权益、答题后显示数据、切题按钮、进入小组必设昵称、小组统计筛选条件、考试排行榜、优化缓存机制

土著刷题微信小程序v1.14,主要是针对用户在使用期间提的一些优化建议,经过评估后进行优化升级的一次版本,下面将逐条介绍一下这一版的优化点。 01 会员权益页面 通过对用户提出的问题进行归纳总结,部分用户在购买VIP时&#xff0c…

【git】修改作者和提交者信息

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 修改git作者和提交者信息 1. 正文 1.1 前提 1.1.1 作者和提交者 作者就是我们git log看到的信息,如下: 其修改方式参考&…

linux应用编程

项目内容 开发板内部使用c语言调用硬件驱动实现各种测试功能,保存测试结果。 外部程序通过socket接口使用tcp协议与开发板通信进行信息传输, 最后使用python GUI构造一个界面按照测试顺序逐步显示出各个模块的测试结果 测试包括:485-232uart、…

(十四)地理数据库创建——进一步定义数据库②

(十四)地理数据库创建——进一步定义数据库② 目录(接上篇) (十四)地理数据库创建——进一步定义数据库② 4.创建注释类4.1建立注释类4.2产生连接要素注释 5.创建几何网络5.1几何网络概述5.2建立几何网络 6…

亿级大表毫秒关联,荔枝微课基于Apache Doris 统一实时数仓建设实践

本文导读: Apache Doris 助力荔枝微课构建了规范的、计算统一的实时数仓平台,目前 Apache Doris 已经支撑了荔枝微课内部 90% 以上的业务场景,整体可达到毫秒级的查询响应,数据时效性完成 T1 到分钟级的提升,开发效率更…

设备树的相关概念

.dts相当于.c DTS的源码文件 DTC工具相当于gcc编译器 将dts 编译成 dtb dtb相当于bin文件 或可执行文件 编译dtb 文件的方法 在linux内核文件夹中 make imx6ull-alientek-emmc.dtb在执行上述代码之前 要把 imx6ull-alientek-emmc.dtb删除 否则会提示已经存在 dts的结构 层层…

【Python文本处理】基于GPX文件的心率、速度、时间等参数更改

【Python文本处理】基于GPX文件的心率、速度、时间等参数更改 GPX文件本身其实就是坐标、海拔、时间、心率等综合性的xml文件 如图: 海拔:ele 时间:time 心率:heartrate 在不改变坐标和距离的情况下 缩短时间即可提高速度&#…

使用rsync和inotify实时备份CentOS服务器数据(详解)

简介 在日常运维中,确保服务器上的数据安全是至关重要的。数据丢失或损坏可能会导致灾难性后果,因此定期备份数据是一个明智的做法。本文LZ将向您展示如何使用 rsync 和 inotify-tools 工具在 CentOS 系统上设置实时备份,以确保您的数据始终…