CN112183486B - 基于深度网络快速识别单分子纳米孔测序碱基方法 - Google Patents
基于深度网络快速识别单分子纳米孔测序碱基方法 Download PDFInfo
- Publication number
- CN112183486B CN112183486B CN202011205178.1A CN202011205178A CN112183486B CN 112183486 B CN112183486 B CN 112183486B CN 202011205178 A CN202011205178 A CN 202011205178A CN 112183486 B CN112183486 B CN 112183486B
- Authority
- CN
- China
- Prior art keywords
- matrix
- sequence
- signal
- depth network
- base
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2218/00—Aspects of pattern recognition specially adapted for signal processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2218/00—Aspects of pattern recognition specially adapted for signal processing
- G06F2218/08—Feature extraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2218/00—Aspects of pattern recognition specially adapted for signal processing
- G06F2218/12—Classification; Matching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公开了一种基于深度网络快速识别单分子纳米孔测序碱基方法,所述的方法包括步骤如下:S1:从测序原始数据中提取电信号序列,对电信号序列进行第一预处理,得到信号矩阵;S2:构建深度网络模型,对深度网络模型进行训练,直至损失函数达到设定阈值或迭代次数达到设定步数;S3:将步骤S1中得到的信号矩阵输入编码器中提取高维特征信息,输出特征信息矩阵;S4:将步骤S3中得到的特征信息矩阵通过全连接网络层映射生成对应于碱基字符表的概率矩阵;S5:采用基于束搜索算法的连接时序分类模块作为解码器对步骤S4得到的概率矩阵进行束搜索,得到若干个碱基序列,选择其中得分最高的碱基序列作为输出结果。
Description
技术领域
本发明涉及第三代测序碱基技术领域,更具体的,涉及基于深度网络快速识别单分子纳米孔测序碱基方法。
背景技术
由Oxford Nanopore Technologies(ONT)公司开发的MinION测序仪是第一款便携式的DNA测序设备。测序仪内部具有嵌入在膜阵列的特殊纳米孔,膜的两端存在电压差,通过纳米孔的单链DNA分子的核苷酸会产生不同的电阻,从而短暂地影响通过纳米孔的电流强度,最后通过检测电流信号随时间的变化可以识别出对应的碱基,测序得到的序列数据也称为读取。将复杂的电流信号转化为对应碱基序列的过程就称为碱基识别。碱基识别过程是影响测序序列质量的关键,对后续的基因组下游分析具有重要的影响。
但是,当前纳米孔测序序列依然存在高于10%的较高错误率。这主要来自两个方面的原因,首先是测序原始数据本身存在的噪音信号和随机序列,另一方面则是现有的碱基识别软件准确率的限制。测序时一次性通过孔的通常有5个碱基,因此存在大量的可能状态,而且由于碱基修饰的存在,会导致情况更加复杂,这些都增加了碱基识别的难度。除此以外,MinION测序仪每秒可以产生150~200万个电信号,远远超过现有的大多数碱基识别软件生成碱基的速度,若采用现有软件的快速版本来提高速度,就不得不以牺牲准确率为代价。因此,设计和实现一种准确和快速识别纳米孔测序碱基的方法是一项亟待解决的关键技术问题。
随着深度神经网络的发展,越来越多的领域都开始采用神经网络技术解决问题,如今的碱基识别软件也基本采用深度神经网络实现。Transformer是一个包含多头注意力机制和前馈神经网络层(FFN)的模型,在自然语言处理领域中被广泛应用,并且表现出了优越的性能。
在近年提出的碱基识别方法SACall中,Transformer被首次应用于碱基识别任务,但是SACall的准确率和速度都有待进一步提高。2020年Wu等人发表的文章“LiteTransformer with Long-Short Range Attention”表明传统的注意力机制过分关注局部依赖关系而一定程度削弱了全局依赖。又如中国专利公开号:CN 109952382 A,公开日:2019.06.28,公开了一种随机测序方法的碱基识别,其提供了处理测序单元中随时间从核酸测量的信号值的方法。信号值可用于创建直方从该直方图确定不同状态(例如,每个对应于不同核苷酸)的概率函数。每个概率函数(例如,如使用混合模型确定的)可以指定对应于特定核苷酸的信号的发射概率。
不仅如此,传统的前馈网络层输入通道维度经历了先膨胀再缩小的过程,使得不承担特征提取的功能的前馈网络层实际上占据了大部分的计算量。上述问题在一定程度上限制了传统Transformer模型在碱基识别任务中的性能表现。
发明内容
本发明为了解决现有的单分子纳米孔测序碱基方法无法对碱基快速识别的同时保持高准确率的问题,提供了一种基于深度网络快速识别单分子纳米孔测序碱基方法,其具体提高识别速度的同时,也能保证准确率高的特点。
为实现上述本发明目的,采用的技术方案如下:一种基于深度网络快速识别单分子纳米孔测序碱基方法,所述的方法包括步骤如下:
S1:从测序原始数据中提取电信号序列,对电信号序列进行第一预处理,得到信号矩阵;
S2:构建深度网络模型,对深度网络模型进行训练,直至损失函数达到设定阈值或迭代次数达到设定步数;其中所述的深度网络模型依次连接有编码器、全连接网络层、连接时序分类解码器;
S3:将步骤S1中得到的信号矩阵输入编码器中提取高维特征信息,输出特征信息矩阵;
S4:将步骤S3中得到的特征信息矩阵通过全连接网络层映射生成对应于碱基字符表的概率矩阵;
S5:采用基于束搜索算法的连接时序分类模块作为解码器对步骤S4得到的概率矩阵进行束搜索,得到若干个碱基序列,选择其中得分最高的碱基序列作为输出结果。
优选地,步骤S1中,对测序原始数据提取的电信号序列进行第一预处理,具体过程包括:
S101:纳米孔测序原始文件以fast5形式存储,提取每个fast5文件中的电信号序列进行绝对中位差标准化:
S102:将标准化处理后的电信号序列按照大小为2048的滑动窗口切成信号片段,得到由若干信号片段组成的信号矩阵,矩阵中每一行向量即为一个长为2048的信号片段,若长度不足2048,则用-10补足。
进一步地,步骤S2中,训练深度网络模型的步骤包括:
S201:对训练数据进行第二预处理,获取信号矩阵和标签矩阵;
S202:采用数据并行策略,根据可用GPU的数量n将训练集划分为不相交的n个子集,每个GPU独立运行一个进程,对应于一个独立的训练过程;
S203:每个进程处理对应的子集,每一次迭代中各个进程计算CTC损失函数,然后调用各进程的优化器对损失函数求导计算深度网络模型参数的梯度,由0号进程汇总n个进程的梯度,并求梯度均值;然后再由0号进程将得到的梯度均值广播给其他进程,各个进程用该梯度独立地更新参数;其中所述的优化器采用Adam优化器,优化器的参数都采用默认参数;训练过程中学习率lr采用warmup策略,随训练步数逐渐增大:
lr=dmodel -0.5·min(step-0.5,step·warmup-1.5)
其中,dmodel=512是输入信号矩阵的通道维度,step表示训练步数,warmup=104;
S204:重复步骤S203直至损失函数值低于设定阈值,或迭代次数达到设定步数。
再进一步地,步骤S201,对训练数据进行第二预处理的步骤包括:
D1:对纳米孔测序得到的原始fast5文件,基于电信号对其两端进行修剪,去掉两端低方差的开孔信号,然后再从读取序列的头部和尾部分别去除2000个信号值,丢弃信号数少于50000的短读序列;
D2:对修剪过的电信号进行识别,得到初始的错误率较高的读取;
D3:将步骤D2得到的读取与对应的参考基因组序列进行比对,根据比对的结果进一步过滤掉低质量的读取,所述的低质量的读取是指读取识别得到的碱基数少于5000,或其中不匹配的碱基数超过30,或插入缺失的比例超过0.8;
D4:对过滤后剩余的读取进行处理,纠正不匹配的碱基,从fast5文件中重新提取信号序列和对应的碱基序列,并将碱基序列作为标签序列;
D5:将步骤D4中提取得到的信号序列按照大小为2048的信号窗口切片,所述的标签序列按照大小为300的标签窗口切片,得到信号矩阵和标签矩阵。
再进一步地,所述的信号矩阵中若标签片段的实际长度不足2048,则用-10补足;标签矩阵中,每个信号片段中的碱基字符根据字典{′A′:1,′T′:2,′C′:3,′G′:4}转化为对应的数字,若标签片段实际长度不足300,则用5补足。
再进一步地,所述的编码器包括下采样模块、长短距离注意力模块、扁平化前馈网络层;其中所述的下采样模块包括卷积层;所述的长短距离注意力模块包括动态分组卷积层、多头注意力层。
再进一步地,步骤S3,所述的编码器提取高维特征信息的具体步骤如下:
S301:将步骤S1得到的信号矩阵输入下采样模块,经过下采样后信号矩阵中每个信号片段长度由2048减小至L=512;
S302:对通过下采样处理后的信号矩阵进行正余弦位置编码,将编码得到的位置矩阵和信号矩阵相加,得到输入矩阵;
S303:沿着输入矩阵的通道维度dmodel将输入矩阵分为两部分,其中一部分由长短距离注意力模块中的动态卷积层提取局部特征信息矩阵,另一部分由长短距离注意力向量中的多头注意力层提取全局特征信息矩阵;
S304:将步骤S303得到的局部特征信息矩阵、全局特征信息矩阵沿着通道维度连接,并与步骤S302得到的输入矩阵进行残差连接后输入扁平化前馈网络层,得到长短距离注意力矩阵;
S305:重复步骤S303、步骤S304若干次,得到最终的特征信息矩阵。
再进一步地,步骤S4,具体步骤如下:
S401:步骤S3得到的特征信息矩阵的维度是L×dmodel,L=512表示时间步维度,dmodel=512表示通道维度。通道维度dmodel经过全连接网络层降至6,分别对应于字符集{‘∈’,‘A’,‘T’,‘C’,‘G’,‘’}中每个字符的概率大小,其中,∈标识用于CTC解码过程中间隔重复字符,在最终的输出中∈会被删除;A、T、C、G分别对应于最终预测的DNA序列中的四种碱基字符;字符集内最后一个元素对应输出为空;
S402:对全连接层输出结果进行归一化处理,并计算对数概率,得到对应碱基字符表的概率矩阵,全连接层输出的概率矩阵的维度为L×6;所述的对数概率公式如下:
式中,oi表示全连接层在时间步维度第i个位置的输出结果,其中i=0,1,2,…,L-1;j对应于字符集{‘∈’,‘A’,‘T’,‘C’,‘G’,‘’}中的字符,最终生成维度L×6的概率矩阵,其中第i行向量表示时间步i的输出对应于6种字符的概率向量。
再进一步地,步骤S5,具体步骤如下:
S501:i=0,选取步骤S4得到的概率向量中分数最高的w个字符作为预测序列初始前缀,得到w个长度为1的前缀序列;
S502:0<i<L-1,将当前w个前缀序列作为解码器的输入,用所有可能的字符扩展每个前缀序列,从中选取分数最高的前w个扩展序列作为候选前缀集;
S503:对步骤S502得到的每个候选前缀序列,合并序列中的相邻重复字符并删除∈符号,生成第i+1步的前缀集;
S504:重复步骤S502、S503直至遍历完所有时间步,生成w个的前缀序列,选择其中分数最高的序列作为最终的预测碱基序列。
本发明还提供了一种基于深度网络快速识别单分子纳米孔测序碱基方法,所述的方法包括步骤如下:
Q1:从测序原始数据中提取电信号序列,对电信号序列进行第一预处理,得到信号矩阵,将所有经过预处理的信号矩阵保存作为待测数据集;
Q2:构建深度网络模型,对深度网络模型进行训练,直至损失函数达到设定阈值或迭代次数达到设定步数;其中所述的深度网络模型依次连接有编码器、全连接网络层、连接时序分类解码器;
Q3:将步骤Q1得到的待测数据集,根据可用GPU的数量n2划分为n2个不相交的子集;
Q4:主进程开启n2个运行于各个GPU的子进程其中i1=0,1,...,n2-1,每个子进程加载训练深度网络模型至对应的GPU,并执行如权利要求1~9任一项所述的方法中的步骤S3、S4、S5;
Q5:每当子进程的读取数量到达设定的数目时,则将编码后的若干特征矩阵打包放入待解码队列Decode_Queue;
Q6:创建包含q个子进程的进程池,每个子进程独立运行CTC解码过程,其中,j1=0,1,...,q-1;
Q7:步骤Q6的执行完解码过程后将预测序列写入fasta文件,对fasta文件加锁避免多进程同时写入,当所有Encoder和Decoder执行完毕后将fasta文件作为模型最终的输出。
本发明的有益效果如下:
1、本发明的编码器基于长短距离注意力机制实现,结合了动态分组卷积层和多头注意力层,可以分别提取测序信号的局部特征信息和全局特征信息,与现有方法相比本发明的碱基识别结果具有更高的准确率。
2、本发明采用扁平化前馈网络层,输入通道维度在扁平化前馈网络层中保持不变,与传统Transformer模型采用的前馈网络层相比计算量减少4倍,从而支持更大容量的长短距离注意力模块用于提取更多特征信息。
3、本发明是一种端到端的碱基识别方法,用户可以直接使用训练好的深度网络模型识别得到碱基序列或者用本发明提供的训练接口训练自定义数据集。为了提升训练效率,本发明还提供了一个并行训练接口,用户可以方便地使用单机多GPU或多机多GPU进行分布式训练和混合精度训练。
4、本发明支持使用半精度预测,在不降低预测准确率的情况下进一步提升预测速度。在单GPU模式下碱基识别速度达到SACall的将近4倍。此外,本发明还支持单机多GPU环境运行,在四个GPU上相对SACall的加速比可以达到10倍以上。
附图说明
图1为本发明实施例方法的预测流程图。
其中,Conv表示一维卷积,BatchNormb表示批标准化,Positional Embedding表示位置编码层,LayerNorm表示层标准化,GLU代表门控线性单元,Dynamic Conv表示用于提取局部特征的动态分组卷积层,Linear表示全连接网络层,Attention表示用于全局特征提取的多头注意力层,Flattened FFN表示扁平化前馈网络层,CTC Decoder表示连接时序分类解码器。
图2为本发明实例方法在单机多GPU环境的运行流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做详细描述。
实施例1
如图1所示,一种基于深度网络快速识别单分子纳米孔测序碱基方法,所述的方法包括步骤如下:
S1:从测序原始数据中提取电信号序列,对电信号序列进行第一预处理,得到信号矩阵;
S2:构建深度网络模型,对深度网络模型进行训练,直至损失函数达到设定阈值或迭代次数达到设定步数;其中所述的深度网络模型依次连接有编码器、全连接网络层、连接时序分类解码器;
S3:将步骤S1中得到的信号矩阵输入编码器中提取高维特征信息,输出特征信息矩阵;
S4:将步骤S3中得到的特征信息矩阵通过全连接网络层映射生成对应于碱基字符表的概率矩阵;
S5:采用基于束搜索算法的连接时序分类模块作为解码器对步骤S4得到的概率矩阵进行束搜索,得到若干个碱基序列,选择其中得分最高的碱基序列作为输出结果。
在一个具体的实施例中,步骤S1中,对测序原始数据提取的电信号序列进行第一预处理,具体过程包括:
S101:纳米孔测序原始文件以fast5形式存储,提取每个fast5文件中的电信号序列进行绝对中位差标准化,所述的绝对中位差标准化的计算公式为:
其中,Signalraw为原始电信号值,median表示信号值的中位数,MAD表示绝对中位偏差,Signalnorm为标准化处理后的电信号序列。
S102:将标准化处理后的电信号序列按照大小为2048的滑动窗口切成信号片段,得到由若干信号片段组成的信号矩阵,矩阵中每一行向量即为一个长为2048的信号片段,若长度不足2048,则用-10补足。
在一个具体的实施例中,步骤S2中,对深度网络模型进行训练,具体训练采用的训练集是2019年Ryan R.Wick等人开源的肺炎克雷伯氏菌数据集,该数据集包含50个不同的基因组,来自30种肺炎克雷伯氏菌,10种肠科杆菌和10种变形杆菌。从每个基因组中分出20个读取加入验证集,再从每个基因组随机选择1/10加入训练集。为提升模型的训练效率,采用NVIDIA APEX深度学习加速库实现训练过程的并行加速,训练过程运行在NVIDIA TeslaV100 GPU之上。具体训练深度网络模型的步骤包括:
S201:对训练数据进行第二预处理,获取信号矩阵和标签矩阵;
S202:采用数据并行策略,根据可用GPU的数量n将训练集划分为不相交的n个子集,每个GPU独立运行一个进程,对应于一个独立的训练过程;
S203:每个进程处理对应的子集,每一次迭代中各个进程计算CTC损失函数,然后调用各进程的优化器对损失函数求导计算深度网络模型参数的梯度,由0号进程汇总n个进程的梯度,并求n个进程的梯度均值;然后再由0号进程将得到的梯度均值广播给其他进程,各个进程用该梯度独立地更新参数;
其中所述的优化器采用Adam优化器,优化器的参数都采用默认参数。训练过程中学习率lr采用warmup策略,随训练步数逐渐增大:
lr=dmodel -0.5·min(step-0.5,step·warmup-1.5)
其中,dmodel=512是输入信号矩阵的通道维度,step表示训练步数,warmup=104。
S204:重复步骤S203直至损失函数值低于设定阈值,或迭代次数达到设定步数。本实施例中设定的迭代次数epoch=200。
在一个具体的实施例中,步骤S201,对训练数据进行第二预处理的步骤包括:
D1:对纳米孔测序得到的原始fast5文件,基于电信号对其两端进行修剪,去掉两端低方差的开孔信号,然后再从读取序列的头部和尾部分别去除2000个信号值,丢弃信号数少于50000的短读序列;
D2:使用纳米孔技术公司的官方碱基识别工具Guppy或者其他可用工具对修剪过的电信号进行识别,得到初始的错误率较高的读取;
D3:利用比对工具minimap2将步骤D2得到的读取与对应的参考基因组序列进行比对,根据比对的结果进一步过滤掉低质量的读取,所述的低质量的读取是指读取识别得到的碱基数少于5000,或其中不匹配的碱基数超过30,或插入缺失的比例超过0.8;
D4:利用纳米孔信号分析工具Tombo的re-squiggle模块对过滤后剩余的读取进行处理,纠正不匹配的碱基,从Tombo处理过的fast5文件中重新提取信号序列和对应的碱基序列,并将碱基序列作为标签序列;
D5:将步骤D4中提取得到的信号序列按照大小为2048的信号窗口切片,所述的标签序列按照大小为300的标签窗口切片,得到信号矩阵和标签矩阵。
在一个具体的实施例中,所述的信号矩阵中,若标签片段的实际长度不足2048,则用-10补足;所述的标签矩阵中,每个信号片段中的碱基字符根据字典{′A′:1,′T′:2,′C′:3,′G′:4}转化为对应的数字,若标签片段实际长度不足300,则用5补足。进行CTC解码时,序列中相邻的重复字符会被合并为一个字符,为确保解码器的正常运行,信号片段的实际长度应大于标签片段的实际长度加上标签序列中可合并字符个数。
在一个具体的实施例中,所述的编码器包括下采样模块、长短距离注意力模块、扁平化前馈网络层;其中所述的下采样模块包括卷积层;所述的长短距离注意力模块包括动态分组卷积层、多头注意力层。
在一个具体的实施例中,步骤S3,所述的编码器提取高维特征信息的具体步骤如下:
S301:将步骤S1得到的信号矩阵输入下采样模块;所述的下采样模块包括两个卷积层。每个卷积层都包括常规1维卷积操作、批标准化以及RELU激活函数。1维卷积操作的卷积核kernel=3,步长stride=2,padding=1,每经过一次卷积,信号长度减小之经过下采样模块后信号矩阵中每个信号片段长度由2048减小至L=512,信号的通道维度由1扩大至dmodel=512;
S302:对通过下采样处理后的信号矩阵进行正余弦位置编码,其中正余弦位置编码具体计算公式如下:
其中,pos表示信号序列中信号的位置,i表示通道维度中第i个通道。
将编码得到的位置矩阵和信号矩阵相加,得到最终输入矩阵;
S303:沿着输入矩阵的通道维度dmodel将输入矩阵分为两部分,其中一部分由长短距离注意力模块中的动态卷积层提取局部特征信息矩阵,另一部分由长短距离注意力向量中的多头注意力层提取全局特征信息矩阵;
传统的多头注意力机制由Vaswani等人于2017年提出,具体计算公式如下:
MultiHead(Q,K,V)=Concat(head1,...,headh)WO
其中,MultiHead(Q,K,V)是多头注意力层的输出结果,多头注意力机制并行计算hattn个head的结果,并将其拼接映射到最后的输出;i3表示head(i3=1,2,...,hattn),/>
每个head执行scaled-dot attention机制:
其中,Q,K,V分别由输入信号矩阵执行三种线性映射得到。
输入信号矩阵的另一部分通道维度由动态卷积层提取局部特征信息矩阵,输入首先经过门控线性单元(GLU),再由动态卷积层处理,最后经过一个线性映射层。动态卷积和轻量化卷积操作都是由Wu等人在2019年的论文“Pay Less Attention with Lightweightand Dynamic Convolutions”中提出的。轻量化卷积建立在深度可分离卷积的基础上,将通道分成hconv组,同一组内的通道共享参数:
其中,d=dmodel/2,i4表示信号序列中的第i4个元素,即时间步维度第i4个位置。k是卷积核尺寸,c对应于通道维度。动态卷积在轻量化卷积的基础上改进,每个时间步中,通过函数f:动态生成卷积核:
其中,h=0,1,2,...,hconv-1。
在本实施例中6个长短距离注意力层中的卷积核大小分别是[3,5,7,31×3],动态卷积通道组数等于注意力模块中的head数hconv=hattn。
S304:将步骤S303得到的局部特征信息矩阵、全局特征信息矩阵沿着通道维度连接,并与步骤S302得到的输入矩阵进行残差连接后输入扁平化前馈网络层,得到长短距离注意力矩阵;
其中所述的扁平化前馈网络层的计算公式为:
其中,linear1:dmodel=dff=512。
S305:重复步骤S303、步骤S304一共6次,得到最终的特征信息矩阵。
在一个具体的实施例中,步骤S4,具体步骤如下:
S401:步骤S3得到的特征信息矩阵的维度是L×dmodel,L=512表示时间步维度,dmodel=512表示通道维度;通道维度dmodel经过全连接网络层降至6,分别对应于字符集{‘∈’,‘A’,‘T’,‘C’,‘G’,‘’}中每个字符的概率大小,其中∈标识用于CTC解码过程中间隔重复字符,在最终的输出中∈会被删除。A、T、C、G分别对应于最终预测的DNA序列中的四种碱基字符。字符集内最后一个元素对应输出为空。
S402:对全连接层输出结果用softmax函数进行归一化处理,并计算对数概率,得到对应碱基字符表的概率矩阵:计算对数概率具体如下:
式中,oi表示全连接层在时间步维度第i个位置的输出结果,其中i=0,1,2,...,L-l,j对应于字符集{‘∈’,‘A’,‘T’,‘C’,‘G’,‘’}中的字符,最终生成维度L×6的概率矩阵,其中第i行向量表示时间步i的输出对应于6种字符的概率向量。
在一个具体的实施例中,步骤S5,具体步骤如下:
S501:i=0,选取步骤S4得到的概率向量中分数最高的w个字符作为预测序列初始前缀,得到w个长度为1的前缀序列;本实施例设置w=3
S502∶0<i<L-1,将当前w个前缀序列作为CTC解码器的输入,用所有可能的字符扩展每个前缀序列,从中选取分数最高的前w个扩展序列作为候选前缀集;
S503:对步骤S502得到的每个候选前缀序列,合并序列中的重复字符并删除∈符号,生成第i+1步的前缀集;
S504:重复步骤S502、S503直至遍历完所有时间步,生成w个的前缀序列,选择其中分数最高的序列作为最终的预测碱基序列。
本实施例在9个独立的测试集上对读取准确率进行了评估,表1对比了CATCaller和其他先进方法(牛津纳米孔技术公司官方工具Guppy、Albacore,最近提出的基于传统Transformer模型的SACall以及采用相同训练集训练的模型Guppy-KP)在这9个测试集上的性能表现。CATCaller在9个测试集上都取得了高于SACall、Albacore以及Guppy-KP的读取准确率,当采用半精度浮点进行预测时,读取准确率几乎没有降低。虽然Guppy在Acinetobacter pittii和Staphylococcus aureus数据集上准确率更高,尤其是后者,表现出了远高于其他测试集的准确率,这可能是由于其训练集的偏向性造成的,当计算9个数据集的平均读取准确率时,CATCaller的表现最好(91.522%)。
表1 CATCaller在9个测试集的读取准确率
genome | CATCallerf32 | CATCallerf16 | SACall | Guppy-KP | Guppy | Albabore |
Klebsiella | 91.511 | 91.507 | 91.243 | 89.384 | 89.468 | 87.105 |
Klebsiella Pneumoniae KSB2 | 90.974 | 90.974 | 90.583 | 88.229 | 89.009 | 86.548 |
Klebsiella Pnemoniae | 91.181 | 91.179 | 90.852 | 88.510 | 89.399 | 86.881 |
Shigella Sonnei | 91.247 | 91.245 | 90.787 | 88.346 | 90.628 | 88.015 |
Serratia Marcescens | 91.156 | 91.156 | 90.917 | 88.615 | 91.120 | 87.053 |
Haemophilus Haemolyticus | 92.614 | 92.620 | 92.308 | 89.678 | 92.233 | 88.502 |
Stenotrophomonas | 90.704 | 90.704 | 90.507 | 88.741 | 89.393 | 87.195 |
Acinetobacter Pittii | 91.324 | 91.326 | 90.890 | 88.623 | 92.354 | 87.995 |
Staphylococcus Aureus | 92.984 | 92.984 | 91.962 | 90.692 | 94.638 | 90.989 |
average | 91.522 | 91.522 | 91.117 | 88.980 | 90.916 | 87.809 |
其中,f32表示数据和模型采用32位浮点数表示,f16表示数据和模型采用16位浮点数进行表示,Guppy和Albacore是牛津纳米孔技术公司官方提供的碱基识别工具,Guppy-KP是Guppy采用和CATCaller相同的训练集训练得到的模型,SACall是最近推出的利用传统Transformer模型进行碱基识别的方法。
实施例2
基于实施例1所述的方法,本实施例还提供了一种基于深度网络快速识别单分子纳米孔测序碱基方法,所述的方法包括步骤如下:
Q1:从测序原始数据中提取电信号序列,对电信号序列进行第一预处理,得到信号矩阵,将所有经过预处理的信号矩阵保存作为待测数据集;
Q2:构建深度网络模型,对深度网络模型进行训练,直至损失函数达到设定阈值或迭代次数达到设定步数;其中所述的深度网络模型依次连接有编码器、全连接网络层、连接时序分类解码器;
Q3:将步骤Q1得到的待测数据集,根据可用GPU的数量n2划分为n2个不相交的子集;
Q4:主进程开启n2个运行于各个GPU的子进程其中i1=0,1,...,n2-1,每个子进程加载训练深度网络模型至对应的GPU,并执行如权利要求1~9任一项所述的方法中的步骤S3、S4、S5;
所述的深度网络模型的参数用半精度浮点数FP16表示。对应于一个独立的编码过程,从对应的子集中读取信号数据并将信号值转化为半精度浮点数FP16计算。
Q5:每当子进程的读取数量到达设定的数目N时,则将编码后的N个特征矩阵打包放入待解码队列Decode_Queue;本实施例中N=50。
Q6:创建包含q个子进程的进程池,每个子进程独立运行CTC解码过程;只要检测到Decode_Queue中存在未解码的内容,则运行一个Decoder子进程从队列中提取一块特征矩阵进行解码,从而使编码过程与解码过程重叠执行,减少等待时间。
Q7:步骤Q6的执行完解码过程后将预测序列写入fasta文件,对fasta文件加锁避免多进程同时写入,当所有Encoder和Decoder执行完毕后将fasta文件作为模型最终的输出。
本实施例对比了CATCaller与传统Transformer模型SACall的速度,运行环境为Intel(R)Xeon(R)Gold 6132CPU@2.60GHz以及NVIDIA Tesla V100 GPU。结果如表2所示,SACall只能运行于单个GPU,每秒可处理512573个信号样本,CATCaller使用32位浮点计算可以取得2.27倍的加速比,当采用16位浮点计算时,加速比可提升至接近4倍。同时,CATCaller支持多GPU扩展,当运行于具有4个GPU的节点时,加速比达到13.25。
表2 CATCaller和SACall的速率对比
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (9)
1.一种基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:所述的方法包括步骤如下:
S1:从测序原始数据中提取电信号序列,对电信号序列进行第一预处理,得到信号矩阵;
S2:构建深度网络模型,对深度网络模型进行训练,直至损失函数达到设定阈值或迭代次数达到设定步数;其中所述的深度网络模型依次连接有编码器、全连接网络层、连接时序分类解码器;
S3:将步骤S1中得到的信号矩阵输入编码器中提取高维特征信息,输出特征信息矩阵;
S4:将步骤S3中得到的特征信息矩阵通过全连接网络层映射生成对应于碱基字符表的概率矩阵;
S5:采用基于束搜索算法的连接时序分类模块作为解码器对步骤S4得到的概率矩阵进行束搜索,得到若干个碱基序列,选择其中得分最高的碱基序列作为输出结果;
步骤S4,具体步骤如下:
S401:步骤S3得到的特征信息矩阵的维度是L×dmodel,L=512表示时间步维度,dmodel=512表示通道维度;通道维度dmodel经过全连接网络层降至6,分别对应于字符集{‘∈’,‘A’,‘T’,‘C’,‘G’,‘’}中每个字符的概率大小,其中,∈标识用于CTC解码过程中间隔重复字符,在最终的输出中∈会被删除;A、T、C、G分别对应于最终预测的DNA序列中的四种碱基字符;字符集内最后一个元素对应输出为空;
S402:对全连接层输出结果进行归一化处理,并计算对数概率,得到对应碱基字符表的概率矩阵,全连接层输出的概率矩阵的维度为L×6:
式中,oi表示全连接层在时间步维度第i个位置的输出结果,其中i=0,1,2,…,L-1;j对应于字符集{‘∈’,‘A’,‘T’,‘C’,‘G’,‘’}中的字符,最终生成维度L×6的概率矩阵,其中第i行向量表示时间步i的输出对应于6种字符的概率向量。
2.根据权利要求1所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:步骤S1中,对测序原始数据提取的电信号序列进行第一预处理,具体过程包括:
S101:纳米孔测序原始文件以fast5形式存储,提取每个fast5文件中的电信号序列进行绝对中位差标准化:
S102:将标准化处理后的电信号序列按照大小为2048的滑动窗口切成信号片段,得到由若干信号片段组成的信号矩阵,矩阵中每一行向量即为一个长为2048的信号片段,若长度不足2048,则用-10补足。
3.根据权利要求1所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:步骤S2中,训练深度网络模型的步骤包括:
S201:对训练数据进行第二预处理,获取信号矩阵和标签矩阵;
S202:采用数据并行策略,根据GPU的数量n1将训练集划分为不相交的n1个子集,每个GPU独立运行一个进程,对应于一个独立的训练过程;
S203:每个进程处理对应的子集,每一次迭代中各个进程计算CTC损失函数,然后调用各进程的优化器对损失函数求导计算深度网络模型参数的梯度,由0号进程汇总n个进程的梯度,并求梯度均值;然后再由0号进程将得到的梯度均值广播给其他进程,各个进程用该梯度独立地更新参数;
S204:重复步骤S203直至损失函数值低于设定阈值,或迭代次数达到设定步数。
4.根据权利要求3所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:步骤S201,对训练数据进行第二预处理的步骤包括:
D1:对纳米孔测序得到的原始fast5文件,基于电信号对其两端进行修剪,去掉两端低方差的开孔信号,然后再从读取序列的头部和尾部分别去除2000个信号值,丢弃信号数少于50000的短读序列;
D2:对修剪过的电信号进行识别,得到初始的错误率的读取;
D3:将步骤D2得到的读取与对应的参考基因组序列进行比对,根据比对的结果进一步过滤掉低质量的读取;所述的低质量的读取是指读取识别得到的碱基数少于5000,或其中不匹配的碱基数超过30,或插入缺失的比例超过0.8;
D4:对过滤后剩余的读取进行处理,纠正不匹配的碱基,从fast5文件中重新提取信号序列和对应的碱基序列,并将碱基序列作为标签序列;
D5:将步骤D4中提取得到的信号序列按照大小为2048的信号窗口切片,和标签序列按照大小为300的标签窗口切片,得到信号矩阵和标签矩阵。
5.根据权利要求4所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:信号矩阵中若标签片段的实际长度不足2048,则用-10补足;标签矩阵中,每个信号片段中的碱基字符根据字典{′A′:1,′T′:2,′C′:3,′G′:4}转化为对应的数字,若标签片段实际长度不足300,则用5补足。
6.根据权利要求5所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:所述的编码器包括下采样模块、长短距离注意力模块、扁平化前馈网络层;其中所述的下采样模块包括卷积层;所述的长短距离注意力模块包括动态分组卷积层、多头注意力层。
7.根据权利要求6所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:步骤S3,所述的编码器提取高维特征信息的具体步骤如下:
S301:将步骤S1得到的信号矩阵输入下采样模块,经过下采样后信号矩阵中每个信号片段长度由2048减小至L=512;
S302:对通过下采样处理后的信号矩阵进行正余弦位置编码,将编码得到的位置矩阵和信号矩阵相加,得到输入矩阵;
S303:沿着输入矩阵的通道维度dmodel将输入矩阵分为两部分,其中一部分由长短距离注意力模块中的动态卷积层提取局部特征信息矩阵,另一部分由长短距离注意力向量中的多头注意力层提取全局特征信息矩阵;
S304:将步骤S303得到的局部特征信息矩阵、全局特征信息矩阵沿着通道维度连接,并与步骤S302得到的输入矩阵进行残差连接后输入扁平化前馈网络层,得到长短距离注意力矩阵;
S305:重复步骤S303、步骤S304若干次,得到特征信息矩阵。
8.根据权利要求1所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:步骤S5,具体步骤如下:
S501:i=0,选取步骤S4得到的概率向量中分数最高的w个字符作为预测序列初始前缀,得到w个长度为1的前缀序列;
S502:0<i<L-1,将当前w个前缀序列作为解码器的输入,用字符扩展每个前缀序列,从中选取分数最高的前w个扩展序列作为候选前缀集;
S503:对步骤S502得到的每个候选前缀序列,合并序列中的相邻重复字符,并删除∈符号,生成第i+1步的前缀集;
S504:重复步骤S502、S503直至遍历完所有时间步,生成w个的前缀序列,选择其中分数最高的序列作为最终的预测碱基序列。
9.根据权利要求1所述的基于深度网络快速识别单分子纳米孔测序碱基方法,其特征在于:所述的方法包括步骤如下:
Q1:从测序原始数据中提取电信号序列,对电信号序列进行第一预处理,得到信号矩阵,将所有经过预处理的信号矩阵保存作为待测数据集;
Q2:构建深度网络模型,对深度网络模型进行训练,直至损失函数达到设定阈值或迭代次数达到设定步数;其中所述的深度网络模型依次连接有编码器、全连接网络层、连接时序分类解码器;
Q3:将步骤Q1得到的待测数据集,根据GPU的数量n2划分为n2个不相交的子集;
Q4:主进程开启n2个运行于各个GPU的子进程其中i1=0,1,…,n2-1,每个子进程加载训练深度网络模型至对应的GPU,并执行如权利要求1~8任一项所述的方法中的步骤S3、S4、S5;
Q5:每当子进程的读取数量到达设定的数目时,则将编码后的若干特征矩阵打包放入待解码队列Decode_Queue;
Q6:创建包含q个子进程的进程池,每个子进程独立运行CTC解码过程,其中j1=0,1,…,q-1;
Q7:步骤Q6的执行完解码过程后将得到的预测序列写入fasta文件,对fasta文件加锁避免多进程同时写入,当所有Encoder和Decoder执行完毕后将fasta文件作为模型最终的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011205178.1A CN112183486B (zh) | 2020-11-02 | 2020-11-02 | 基于深度网络快速识别单分子纳米孔测序碱基方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011205178.1A CN112183486B (zh) | 2020-11-02 | 2020-11-02 | 基于深度网络快速识别单分子纳米孔测序碱基方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112183486A CN112183486A (zh) | 2021-01-05 |
CN112183486B true CN112183486B (zh) | 2023-08-01 |
Family
ID=73917026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011205178.1A Active CN112183486B (zh) | 2020-11-02 | 2020-11-02 | 基于深度网络快速识别单分子纳米孔测序碱基方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112183486B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112652356B (zh) * | 2021-01-19 | 2024-01-26 | 深圳市儒瀚科技有限公司 | 一种dna甲基化表观修饰的识别方法、识别设备及存储介质 |
CN113393900B (zh) * | 2021-06-09 | 2022-08-02 | 吉林大学 | 基于改进Transformer模型的RNA状态推断研究方法 |
CN113535899B (zh) * | 2021-07-07 | 2024-02-27 | 西安康奈网络科技有限公司 | 一种针对互联网信息情感倾向性的自动研判方法 |
CN113723337A (zh) * | 2021-09-07 | 2021-11-30 | 武汉东智科技股份有限公司 | 基于ddt深度神经模型结构的监控图像地点信息识别方法 |
CN113837036A (zh) * | 2021-09-09 | 2021-12-24 | 成都齐碳科技有限公司 | 生物聚合物的表征方法、装置、设备及计算机存储介质 |
CN113870949B (zh) * | 2021-10-08 | 2022-05-17 | 东北林业大学 | 基于深度学习的nanopore测序数据碱基识别方法 |
CN116486910B (zh) * | 2022-10-17 | 2023-12-22 | 北京普译生物科技有限公司 | 纳米孔测序碱基识别的深度学习训练集建立方法及其应用 |
CN117744748B (zh) * | 2024-02-20 | 2024-04-30 | 北京普译生物科技有限公司 | 一种神经网络模型训练、碱基识别方法及装置、电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027562A (zh) * | 2019-12-06 | 2020-04-17 | 中电健康云科技有限公司 | 基于多尺度cnn和结合注意力机制的rnn的光学字符识别方法 |
CN111243674A (zh) * | 2020-01-08 | 2020-06-05 | 华南理工大学 | 一种碱基序列的识别方法、装置和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336916B (zh) * | 2013-07-05 | 2016-04-06 | 中国科学院数学与系统科学研究院 | 一种测序序列映射方法及系统 |
AU2019206709B2 (en) * | 2018-01-15 | 2021-09-09 | Illumina Cambridge Limited | Deep learning-based variant classifier |
-
2020
- 2020-11-02 CN CN202011205178.1A patent/CN112183486B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027562A (zh) * | 2019-12-06 | 2020-04-17 | 中电健康云科技有限公司 | 基于多尺度cnn和结合注意力机制的rnn的光学字符识别方法 |
CN111243674A (zh) * | 2020-01-08 | 2020-06-05 | 华南理工大学 | 一种碱基序列的识别方法、装置和存储介质 |
Non-Patent Citations (1)
Title |
---|
High-Scalable Collaborated Parallel Framework for Large-Scale Molecular Dynamic Simulation on Tianhe-2 Supercomputer;Shaoliang Peng 等;《IEEE/ACM TRANSACTIONS ON COMPUTATIONAL BIOLOGY AND BIOINFORMATICS》;第17卷(第3期);第804-816页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112183486A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112183486B (zh) | 基于深度网络快速识别单分子纳米孔测序碱基方法 | |
CN112464641B (zh) | 基于bert的机器阅读理解方法、装置、设备及存储介质 | |
CN110196894B (zh) | 语言模型的训练方法和预测方法 | |
CN111814466A (zh) | 基于机器阅读理解的信息抽取方法、及其相关设备 | |
CN100356392C (zh) | 一种字符识别的后处理方法 | |
CN112801010A (zh) | 一种针对实际ocr场景下的视觉富文档信息抽取方法 | |
CN106033426A (zh) | 一种基于潜在语义最小哈希的图像检索方法 | |
CN113064586B (zh) | 一种基于抽象语法树增广图模型的代码补全方法 | |
CN112732864B (zh) | 一种基于稠密伪查询向量表示的文档检索方法 | |
CN109753647B (zh) | 段落的划分方法及装置 | |
CN112380319A (zh) | 一种模型训练的方法及相关装置 | |
CN112256727B (zh) | 基于人工智能技术的数据库查询处理及优化方法 | |
CN114220496A (zh) | 一种基于深度学习的逆合成预测方法、装置、介质及设备 | |
CN117351940B (zh) | 基于语音大模型的合成语音检测方法及装置 | |
CN113870949B (zh) | 基于深度学习的nanopore测序数据碱基识别方法 | |
CN113553847A (zh) | 用于对地址文本进行解析的方法、装置、系统和存储介质 | |
WO2019092868A1 (ja) | 情報処理装置、情報処理方法及びコンピュータ読み取り可能な記録媒体 | |
Huang et al. | An attention-based neural network basecaller for Oxford Nanopore sequencing data | |
CN109902162B (zh) | 基于数字指纹的文本相似性的识别方法、存储介质及装置 | |
CN115994204A (zh) | 适用于少样本场景的国防科技文本结构化语义分析方法 | |
CN115203206A (zh) | 数据内容搜索方法、装置、计算机设备及可读存储介质 | |
CN115019319A (zh) | 一种基于动态特征提取的结构化图片内容识别方法 | |
WO2001026044A1 (en) | A method of comparing the closeness of a target tree to other trees using noisy subsequence tree processing | |
CN112530414B (zh) | 迭代式大规模发音词典构建方法及装置 | |
CN115101119B (zh) | 基于网络嵌入的isoform功能预测系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Yang Yuedong Inventor after: Lu Yutong Inventor after: Chen Zhiguang Inventor before: Yang Yuedong Inventor before: Lu Yutong Inventor before: Chen Zhiguang Inventor before: Xiao Nong |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |