NCYpred:一个具有注意力机制的双向Lstm网络,用于Y Rna和短的非编码Rna分类

摘要

短链非编码RNA ( sncRNA )参与多种细胞过程,可分为几十类。其中,Y RNA作为脊椎动物DNA复制起始的关键因子,以及潜在的肿瘤生物标志物,受到了越来越多的关注。同系物在线虫和昆虫中也有描述,在细菌中也有相关序列。缺乏能够准确预测Y RNA转录本的方法。在这项工作中,我们开发了一个基于注意力机制的LSTM网络,并构建了一个能够直接从核苷酸序列中分类sncRNAs (包括Y RNA)的分类模型。利用Rfam 14.3构建了一个包含45,447条来自广泛生物的sncRNA序列的数据集。性能评估表明,我们提出的方法NCYPred (非编码/ Y RNA预测)可以准确地预测Y RNA序列及其同源物,以及11个额外的类,取得了与最先进方法相当的结果。我们还证明,将t-SNE应用于学习到的序列表示可以用于序列分析。

对于给定核苷酸序列预测sncRNA类别的任务,GraPPLE 和RNAcon 使用基于SVM的方法从二级结构中构建基于图属性训练的分类模型。NRC (基于结构特征的非编码RNA分类器)使用卷积神经网络( Convolutional Neural Networks,CNN )来构建sncRNAs分类器,在由13个sncRNA类组成的数据集上,在多个评估指标上优于RNAcon。尽管nRC取得了优越的结果,但它仍然依赖于从二级结构中提取的特征。最近,文献中描述了基于深度学习算法的方法,如ncRFP ,ncRDeep ,RNAGCN,ncDLRES 和NCRNA-deep项目。

本文提出了一个端到端的模型,称为NCYPred (非编码/ Y RNA预测),能够预测Y RNA,sbRNA和Y RNA-like序列以及11个sncRNA类,通过使用基于注意力的LSTM直接从序列信息中提取特征。为了开发我们的模型,我们使用了一个由13类45447条sncRNAs序列组成的新数据集。据我们所知,这是第一个能够预测Y RNA (包括sb RNA )和Y RNA - like序列的深度学习模型。

方法

数据集

数据集是由Rfam数据库中存放的sncRNA序列构建而成,release 14.3 。为了减少数据集的不平衡性,从过度表示的类中随机抽取了5000个样本。然后将数据集随机分为70 %的训练集和30 %的验证集。

序列编码

通过步长为1的滑动窗口将序列分解为重叠的3-mers ( 3个核苷酸的子序列),如图1所示。然后,长度< 500个核苷酸的序列用" zeros "填充,直到达到最大长度(补零)。填充来自于需要使一个批次中的所有序列都符合给定的标准长度(相邻批次)。RNNs按顺序处理数据,因此补零可以影响显著短于最大长度的序列的结果,因为它的大部分编码将由重复的零组成。为了解决这个问题,填充被屏蔽,这是一种向序列处理层指示这些时间步应该跳过的方法。每个独特的3-mer被表示为1到64之间的整数,称为tokens,根据它们在训练集中被发现的频率,在一个称为标记化的过程中。之后,将ncRNA序列作为输入传递给Embedding层,Embedding层将每个token映射为训练过程中优化的10维连续向量。每个输入序列的目标类标签被表示为one-hot编码向量。
图1 .序列数据编码过程。输入序列通过步长为1的滑动窗口分解为重叠的3 - mers。然后,对每个3 - mer进行标记化,并对整个序列进行填充,直到达到最大长度( 498 nt )。
(15长的序列被分解为重叠的3-mers,得到13个单元,对其进行标记化,将其填充达到最大长度)

提出的模型架构

图2 .提出的模型架构示意图。一个输入序列(标记化和零填充化)被输入到一个嵌入层,嵌入层将每个token映射成一个10维向量。biLSTM模块从嵌入的序列中提取特征,注意力层为每个序列位置赋予重要性,将其编码为上下文向量,由前馈神经网络用于预测其sncRNA类别。

我们提出的模型的结构如图2所示。一个Embedding层接收作为输入的整数序列,在词法分析和补零之后创建一个核苷酸序列,如前所述。然后,将Embedding层的输出,传递给双向长短期记忆网络( Bidirectional Long Short-Term Memory,biLSTM )。LSTM网络是一种循环神经网络( Recurrent Neural Network,RNN ),旨在解决梯度爆炸/消失问题,以及长期距离依赖问题,已成功用于几种最先进的序列模型,并应用于文本分类和时间序列预测。综上所述,给定一个输入序列X= { x1,x2,..,xT },其中T为序列长度,LSTM网络可以被认为是一个可学习的函数:

它们在时间步长t的输出依赖于输入xt,以及前一个隐状态和细胞状态,分别为ht - 1和st - 1。因此,对于每一个输入序列,LSTM网络( 公式1 )计算一个隐藏状态序列H={ h1,h2,..,hT }。然而,由于标准LSTM以时间顺序处理信息,其输出结果大多依赖于先前的上下文。针对这一局限性的一种解决方案是使用双向LSTM,它同时考虑了前向和后向信息,使得模型能够充分利用后向依赖关系。因此,一个biLSTM网络为每个方向产生一个隐藏状态序列,并将它们串联成一个单一的序列表示。在我们的模型中,生成的表示然后传递给一个Attention层。

双向LSTM,一个是正向去处理输入序列;另一个反向处理序列,处理完成后将两个LSTM的输出拼接起来。

近年来,由于注意力机制的实施,序列模型得到了相当大的改善,它为与预测任务相关的每个位置分配重要性,使模型能够"专注"于输入序列中最相关的部分。在这项工作中,我们使用了Raffel等人描述的加性注意力机制(又称Bahdanau注意)的实现。在这个公式中,注意力层通过计算隐藏状态序列H的加权平均值来产生一个固定大小的上下文向量c:

其中,at是每个时间步的注意力权重,由以下方程计算:

其中f是一个可学习的函数,例如一个前馈神经网络,用于计算每个隐藏状态ht的分数。上下文向量c,由式( 2 )计算得到,然后传递给另一个具有softmax输出的前馈神经网络( Dense层)。该过程与Sønderby等人使用的方法类似,使用带有注意力机制的biLSTM网络来预测蛋白质的亚细胞定位。

我们的模型使用TensorFlow 2.4实现。它由Embedding层、64单元的biLSTM层(前向32例,后向32例)、Attention层(如上所述)、具有40 % Dropout率的128神经元Dense层防止过拟合以及具有softmax输出的Dense层组成。biLSTM和Attention层支持掩蔽。然后,使用argmax函数输出最可能的标签,因此,我们的方法计算多类分类问题的解决方案。

模型训练

由于我们的数据集是高度不平衡的,我们使用分层10折交叉验证的策略来训练我们的模型。将训练集拆分为10个折叠,同时保留每个折叠中每个类的样本百分比。每个模型训练9次,共10个历元,在剩余的1次(测试集)上进行性能评估。这个过程重复进行,直到每一个fold被精确地用作测试集一次。然后,我们的模型在整个训练集上用选择的一组超参数进行训练,在所有的折叠中获得适当的平均结果。在这项工作中,我们使用RMSprop算法作为优化器,学习率为0.008,64个单元的biLSTM层和128个神经元密集层,具有40%的丢弃率。

基于比对的分类

我们还使用HMMER3中的nhmmer将NCYPred这种非比对的方法与基于比对的分类方法进行了比较。采用两种策略进行分类:

I )为了从验证集中对给定的序列进行分类,我们将其与训练集中的每一条序列进行比对(局部比对),每次比对一个序列。然后,选择比对得分(且e值低于)最高的训练序列,并将其标签分配为验证序列的预测标签。我们使用默认参数对来自验证集的所有序列执行该策略。

II )我们使用hmmbuild从对齐的训练序列中为每个sncRNA类建立一个配置文件HMM。配置文件 HMMs利用多序列比对( MSA )构建适用于搜索同源序列的位置特异性评分系统。MSA采用CLUSTAL算法Omega。配置文件 HMMs被应用于在验证集上搜索命中。我们认为e值低于的默认参数是重要的命中点。

T-分布随机邻域嵌入( T-SNE )和主成分分析( PCA )

为了可视化我们模型计算的向量表示,我们使用线性和非线性降维技术,例如 PCA 和 t-SNE,分别对注意力层产生的上下文向量进行降维。综上所述,主成分分析( PCA )是一种统计技术,用于从原始变量的线性组合中寻找新的不相关变量,依次最大化方差,即主成分( PCs )。通过使用更小的、保留了大部分信息的变量集合,每个样本可以用更少的维度来表示,从而使可视化样本之间的相似性和数据集潜在的全局结构成为可能。因此,上下文向量被嵌入到一个2维子空间中,困惑度为5、15、30和50,使用PCA初始化来减轻全局结构的损失。对于PCA,通过奇异值分解( SVD )计算出10个主成分( PC ),并按解释方差的百分比降序排列。所有计算均使用Python 3.7中的Scikit-learn 0.22完成。

相关推荐
新智元2 分钟前
Meta没做的,英伟达做了!全新架构吞吐量狂飙6倍,20万亿Token训练
人工智能·openai
新智元3 分钟前
Hinton 预言成真!AI 接管美国一半白领,牛津哈佛扎堆转行做技工
人工智能·openai
aneasystone本尊14 分钟前
学习 Coze Studio 的知识库入库逻辑
人工智能
然我15 分钟前
从 “只会聊天” 到 “能办实事”:OpenAI Function Call 彻底重构 AI 交互逻辑(附完整接入指南)
前端·javascript·人工智能
岁月宁静22 分钟前
软件开发核心流程全景解析 —— 基于 AI 多模态项目实践
前端·人工智能·后端
wangjiaocheng23 分钟前
软件功能分解输入处理输出递归嵌套模型
人工智能
G等你下课24 分钟前
Function call
前端·人工智能
岁月宁静25 分钟前
MCP 协议应用场景 —— Cursor 连接 Master Go AI
前端·vue.js·人工智能
柠檬味拥抱27 分钟前
融合NLU与NLG的AI Agent语言交互机制研究
人工智能
wydaicls30 分钟前
用函数实现方程函数解题
人工智能·算法·机器学习