基于门控循环单元神经网络的冠状病毒序列识别方法转让专利

申请号 : CN202010537286.2

文献号 : CN111785328B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 应晓敏何振卢康胡朔枫

申请人 : 中国人民解放军军事科学院军事医学研究院

摘要 :

本发明涉及基于门控循环单元神经网络的冠状病毒序列识别方法,其包括如下步骤:S1:进行数据收集;S2:对所收集的数据进行预处理,从原始训练样本中进行数据抽取得到训练集、验证集和测试集;建立基于冠状病毒序列的独立测试集;S3:对S2中获得各数据集进行编码,建立训练冠状病毒序列的分类模型;S4:对该模型进行修正;S5:统计该模型对将冠状病毒序列与人的基因组序列合并以后的测试集的每条序列的输出分值;S6:并根据该输出分值的分布情况设置拒识区间,以便减少误差;S7:当输出分值≥拒识区间的上限阈值时,判断序列为冠状病毒序列;当输出分值≤拒识区间的下限阈值时,判断序列为人基因组序列。

权利要求 :

1.一种基于门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,其包括如下步骤:

S1:进行数据收集;

S2:对所收集的数据进行预处理,从原始训练样本中进行数据抽取得到训练集、验证集和测试集;建立基于冠状病毒序列的独立测试集;

S3:对S2中获得各数据集进行编码,在冠状病毒样本高通量测序模拟数据集上,把每一个碱基作为一个特征,每条序列包含150个特征,然后对每个特征进行one‑hot编码,使每条序列向量化;

进行编码的对象包括S2中最终得到的训练集、验证集、测试集以及独立测试集中的每一条序列;

建立训练冠状病毒序列的分类模型;

对序列中每一个碱基进行one‑hot编码后,最终每条序列变成包含150个碱基编码的向量,其中one‑hot表示如下:其中: ;

表示one‑hot向量,表示类别的总数,表示向量 中第 个元素,为狄拉克函数,表示第 类;

所述分类模型如下所示, 

其中, 表示权重,表示第 个,表示时间,表示Sigmoid函数,表示哈达玛积,表示偏置,tanh是tanh函数,表示隐层的状态,表示输入, 分别是重置门,更新门,表示循环神经网络中的一个中间状态,表示 时刻重置门的状态, 表示第 个重置门 的权重,表示 时刻的输入, 表示第 个重置门 的偏置, 表示第 个隐层状态重置门 的权重,表示 时刻隐层的状态, 表示第 个隐层状态重置门 的偏置,表示 时刻更新门的状态, 表示第 个更新门 的权重, 表示第 个更新门 的偏置, 表示第 个隐层状态更新门 的权重, 表示第 个隐层状态更新门 的偏置, 表示 时刻的中间状态, 表示第 个中间状态 的权重, 表示第个中间状态 的偏置, 表示第 个隐层状态中间状态的权重, 表示第 个隐层状态中间状态 的偏置, 表示 时刻隐层的状态;

S4:对该模型进行修正;

S5:统计该模型对将冠状病毒序列与人的基因组序列合并以后的测试集的每条序列的输出分值;

S6:并根据该输出分值的分布情况设置拒识区间,以便减少误差;

S7:当输出分值≥拒识区间的上限阈值时,判断序列为冠状病毒序列;当输出分值≤拒识区间的下限阈值时,判断序列为人基因组序列。

2.一种如权利要求1所述的基于门控循环的单元神经网络的冠状病毒序列识别方法,其特征在于,其具体步骤如下:

S1:进行冠状病毒全基因组序列的数据收集;S2:对所收集的数据进行预处理,从原始训练样本中进行数据抽取得到训练集、验证集和测试集;建立基于冠状病毒序列的独立测试集,并对该独立测试集中的数据进行预处理;

S3:对最终用于模型的训练集、验证集和测试集进行编码,使每条序列向量化;建立训练冠状病毒序列的分类模型;并对独立测试集进行编码处理,使序列向量化;

S4:对S3中所建立的模型进行修正;

当其交叉熵小于第一阈值停止训练,或训练集的准确率达到第二阈值并且验证集的准确率分别能够达到第三阈值时停止训练;

S5:统计该模型对将冠状病毒序列与人的基因组序列合并以后的测试集的每条序列的输出分值;

S6:并根据该输出分值的分布情况设置拒识区间,以便减少误差;

S7:当输出分值≥拒识区间的上限阈值时,判断序列为冠状病毒序列;当输出分值≤拒识区间的下限阈值时,判断序列为人基因组序列。

3.如权利要求2所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,S2中,对冠状病毒全基因组序列的数据预处理方法具体包括如下步骤:步骤一、对S1中所获得的冠状病毒全基因组序列按照预设比例进行划分;

步骤二、设置训练集、验证集以及测试集内的冠状病毒序列片段的片段长度,将冠状病毒训练集中的数据转化成连续的子序列,获取多个样本子集,其中,冠状病毒序列片段的片段长度设置为150个碱基,步长为1,分别在冠状病毒训练集、验证集和测试集的序列上连续滑动取值,每个数据集内均获得多个长度为150个碱基的核酸序列,使其与模拟测序数据的序列长度相等;

步骤三、将步骤二中所获得的冠状病毒的各个数据集进行去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性;所述数据集为冠状病毒的训练集、冠状病毒的验证集以及冠状病毒的测试集;

步骤四、冠状病毒训练集、冠状病毒验证集和冠状病毒测试集中,含有“N”的序列片段舍去;

步骤五、设置人的参考基因组片段的片段长度,建立人的参考基因组序列的第一片段集、第二片段集和第三片段集,使得来自于人参考基因组的核酸片段数目分别与冠状病毒的训练集、冠状病毒的验证集和冠状病毒的测试集的核酸片段数目保持一致;第一片段集为人的参考基因组序列的训练集,第二片段集为人的参考基因组序列的验证集,第三片段集为人的参考基因组序列的测试集;

步骤六、将步骤五中所获得的人参考基因组序列各片段集去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性;

步骤七、舍弃人参考基因组序列各片段集中含有“N”的片段,提高模型最终的准确率、敏感性和特异性;

步骤八、将分别来自冠状病毒的训练集 和人参考基因组的训练集 合并为新的训练集、分别来自冠状病毒的验证集 和人的验证集 合并为新的验证集 、分别来自冠状病毒的测试集 和人的测试集 合并为新的训练集 ,得到最终的训练集 、验证集 和测试集,分别用于模型的训练、验证和测试。

4.如权利要求3所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,人参考基因组的核酸片段数目分别与冠状病毒训练集、验证集和测试集的核酸片段数目保持一致。

5.如权利要求4所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,人参考基因组序列片段中每条序列的第一个碱基开始,保持取值大小为150个碱基的长度不变,步长为1,依次取值至最后一个碱基,形成人的参考基因组片段集。

6.如权利要求5所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,S2中,所述独立测试集中的数据进行预处理,其具体包括如下步骤:步骤A:建立冠状病毒独立测试集;

步骤B:设置独立测试集的冠状病毒序列片段的片段长度,将冠状病毒独立测试集的数据转化成连续的子序列,获取多个样本子集;

步骤C:将步骤B中所获得的冠状病毒的样本子集进行去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性;

步骤D、舍弃冠状病毒全基因组序列中含有“N”的片段,得到冠状病毒独立测试集。

7.如权利要求6所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,分类模型包括核酸序列单元、one‑hot编码单元、GRU单元、线性层、以及Sigmoid函数层;所述分类模型从左到右依次为核酸序列、one‑hot编码、GRU单元、线性层、以及Sigmoid函数层,在GRU单元的后面设置线性层,通过该线性层将GRU计算单元的高维输出转换为低维,最后通过Sigmoid函数将线性层的输出映射到[0,1]之间,将结果大于0.5的序列判断为冠状病毒序列。

8.如权利要求7所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,将GRU隐层单元数的范围设置为[128,512]。

9.如权利要求8中所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,拒识区间为[0.2, 0.8]。

10.如权利要求9所述的门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,S7中,当输出分值≥0.8时,判断序列为冠状病毒序列;当输出分值≤0.2时,判断序列为人基因组序列,当输出分值>0.2并且<0.8时,判断序列为其他物种序列。

说明书 :

基于门控循环单元神经网络的冠状病毒序列识别方法

技术领域

[0001] 本发明涉及神经网络、数据处理以及计算机模拟技术领域,更为具体地是涉及一种基于门控循环单元神经网络的冠状病毒序列识别方法。

背景技术

[0002] 冠状病毒(Coronavirus,CoV)是一类具有包膜的单股正链RNA病毒,该病毒在哺乳动物和鸟类中引起多种疾病。部分冠状病毒在人类中具有很高的传染性、致病性和致死率,
对国民健康、社会稳定和国家经济发展有着巨大的负面影响。
[0003] 实时逆转录聚合酶链式反应(Real‑time Reverse‑transcription Polymerase Chain Reaction,RT‑PCR)扩增方法是检测冠状病毒的首选方法。该方法具有实时监测、敏
感度高、特异性高等优点,但也存在一些缺点,例如无法对新型和高变异株冠状病毒进行检
测,对引物要求高,需要实验人员掌握相应实验操作技能等。
[0004] 对新发和高变异株冠状病毒,通常处理为分离出病毒,然后利用电子显微镜在细胞培养物中鉴定病毒。这在技术层面上要求很高,同时耗时长、敏感性低。
[0005] 而高通量测序数据分析的传统方法是序列比对,尽管已经有不少针对高通量测序序列特点的序列比对算法,但这些序列比对算法具有计算时间长、对计算资源要求高等缺
点。

发明内容

[0006] 针对现有技术中存在的问题,本发明的目的在于提供一种基于门控循环单元神经网络的冠状病毒序列识别方法,其从NCBI中获得冠状病毒和人基因组数据。对收集到的序
列进行数据预处理,构建冠状病毒感染者样品高通量测序模拟数据集,将其划分为训练集、
验证集和测试集,在训练集上训练循环神经网络,在验证集和测试集上测试效果,并收集新
型冠状病毒2019‑nCoV基因组数据作为独立测试集。该循环神经网络模型能够灵敏、快速地
从高通量测序数据中检测出冠状病毒序列,同时具有很好的泛化能力,能够对新发和高变
异株冠状病毒序列进行准确地检测,为新发和高变异株冠状病毒的鉴定提供了新思路。
[0007] 本发明的本质在于提高对冠状病毒识别的准确率,即提高判断的精度,虽然本模型本质是对核酸序列进行分类,但是其结果不是为了获得诊断结果或健康状况,而只是一
种获取作为中间结果的信息的方法,其中涉及对信息的处理方法。
[0008] 根据现有技术中的医学知识和本申请中公开的内容从所获得信息本身不能够直接得出疾病的诊断结果或健康状况,也就是说,其并不能直接用于对疾病的诊断。
[0009] 具体地,该模型只能对病毒样本测序的结果进行分类,但是测序样品结果的准确性会受到测序实验过程的影响,具有不稳定的因素。即使病毒样本中含有冠状病毒的序列,
但是并不代表该病人已经患病,因为人体自身的免疫系统会抵抗病毒的入侵。另外,该模型
的结果只能作为一种中间信息,知晓该模型的分类结果并不能直接获得疾病的诊断结果。
疾病的诊断需要医生结合病人多方面的表现和结果,比如临床表现和测试化验结果。
[0010] 本发明的技术方案如下:
[0011] 一种基于门控循环单元神经网络的冠状病毒序列识别方法,其特征在于,其包括如下步骤:
[0012] S1:进行数据收集;所收集的数据包括冠状病毒序列和人的参考基因组序列;
[0013] S2:对所收集的数据进行预处理:首先,基于S1中所收集的冠状病毒序列和人的参考基因组序列得到冠状病毒序列与人的参考基因组序列合并后的训练集 、验证集 和测
试集 ,其中该测试集 用于在训练过程中模型效果的测试;其次,基于S1中所收集的冠状
病毒序列,建立基于冠状病毒序列的独立测试集 ,所述独立测试集 用于建立模型后对模
型的效果进行验证;
[0014] S3:对S2中获得各数据集进行编码,建立冠状病毒序列的分类模型;
[0015] S4:对该模型进行修正;
[0016] S5:统计该模型对将冠状病毒序列与人的参考基因组序列合并后的测试集的每条序列的输出分值;
[0017] S6:并根据该输出分值的分布情况设置拒识区间,以便减少误差;
[0018] S7:当输出分值≥拒识区间的上限阈值时,判断序列为冠状病毒序列;当输出分值≤拒识区间的下限阈值时,判断序列为人的参考基因组序列。
[0019] 具体地,一种基于门控循环单元神经网络的冠状病毒序列识别方法,其具体包括如下步骤:
[0020] S1:进行数据收集,所收集的数据包括冠状病毒序列和人的参考基因组序列;
[0021] S2:对所收集的数据进行预处理,首先,基于S1中所收集的冠状病毒序列和人的参考基因组序列得到冠状病毒序列与人的参考基因组序列合并后的训练集 、验证集 和测
试集 ,其中该测试集 用于在训练过程中模型效果的测试;其次,基于S1中所收集的冠状
病毒序列,建立基于冠状病毒序列的独立测试集 ,所述独立测试集 用于建立模型后对模
型的效果进行验证,并对该独立测试集中的数据进行预处理;
[0022] S3:对最终用于模型的训练集 、验证集 和测试集 进行编码,使每条序列向量化;建立冠状病毒序列的分类模型;并对独立测试集进行编码处理,使序列向量化;
[0023] S4:对S3中所建立的模型进行修正;
[0024] 当其交叉熵小于第一阈值停止训练,或训练集的准确率达到第二阈值并且验证集的准确率能够达到第三阈值时停止训练;
[0025] 具体地,当其交叉熵小于0.001时停止训练,或训练集的准确率达到99.99%和验证集的准确率能够达到99.90%停止训练;
[0026] 更进一步地,当其交叉熵小于0.001时或训练集和验证集的准确率分别能够达到99.99%和99.90%以及验证集的敏感性和特异性分别达到99.92%和99.88%时,停止训练;也
就是说,交叉熵小于0.001时停止训练。并列地,训练集的准确率达到99.99%和验证集的准
确率能够达到99.90%时,停止训练;更进一步地,交叉熵小于0.001时停止训练,并列地,训
练集的准确率达到99.99%和验证集的准确率能够达到99.90%时以及验证集的敏感性达到
99.92%且和验证集的特异性达到99.88%停止训练;
[0027] S5:统计该模型对将冠状病毒序列与人的参考基因组序列合并以后的测试集的每条序列的输出分值;
[0028] S6:并根据该输出分值的分布情况设置拒识区间,以便减少误差;
[0029] S7:当输出分值≥拒识区间的上限阈值时,判断序列为冠状病毒序列;当输出分值≤拒识区间的下限阈值时,判断序列为人的参考基因组序列;
[0030] S8:在独立测试集上对训练完毕的模型和拒识区间进行验证。
[0031] 优选地,所述数据为冠状病毒完整的全基因组序列。
[0032] 优选地,所述数据还包括人的hg38参考基因组序列,由此构建冠状病毒感染者样本的模拟高通量测序数据。
[0033] 优选地,所述训练集、验证集和测试集的数据均包括冠状病毒序列片段和和人hg38基因组序列片段。
[0034] 优选地,S2中,获得冠状病毒序列与人的参考基因组序列合并后的训练集、验证集和测试集的方法步骤如下:
[0035] 步骤一、对S1中所获得的冠状病毒全基因组序列按照预设比例进行划分;
[0036] 步骤二、设置冠状病毒的训练集、冠状病毒的验证集以及冠状病毒的测试集内的冠状病毒序列片段的片段长度,将冠状病毒的训练集中的数据转化成连续的子序列,其中,
冠状病毒序列片段的片段长度设置为150个碱基,步长为1,分别在冠状病毒的训练集、冠状
病毒的验证集和冠状病毒的测试集的序列上连续滑动取值,每个数据集内均获得多个长度
为150个碱基的核酸序列,使其与模拟测序数据的序列长度相等;
[0037] 步骤三、将步骤二中所获得的冠状病毒的各个数据集进行去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性;所述数据集为冠状病
毒的训练集、冠状病毒的验证集以及冠状病毒的测试集;
[0038] 步骤四、冠状病毒的训练集、冠状病毒的验证集和冠状病毒的测试集中,含有“N”的序列片段舍去;
[0039] 步骤五、设置人的参考基因组序列片段的片段长度,建立人的参考基因组序列的第一片段集、第二片段集和第三片段集,使得来自于人参考基因组的核酸片段数目分别与
冠状病毒的训练集、冠状病毒的验证集和冠状病毒的测试集的核酸片段数目保持一致;第
一片段集为人的参考基因组序列的训练集,第二片段集为人的参考基因组序列的验证集,
第三片段集为人的参考基因组序列的测试集;
[0040] 步骤六、将步骤五中所获得的人的参考基因组序列各片段集去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性;
[0041] 步骤七、舍弃人的参考基因组序列各片段集中含有“N”的片段,提高模型最终的准确率、敏感性和特异性;
[0042] 步骤八、将分别来自冠状病毒的训练集  和人的参考基因组序列的训练集 合并为新的训练集 、分别来自冠状病毒的验证集 和人的参考基因组序列的验证集 合并为
新的验证集 、分别来自冠状病毒的测试集 和人的参考基因组序列的测试集 合并为新
的测试集 ,得到最终的训练集 、验证集 和测试集 ,分别用于模型的训练、验证和测
试。
[0043] 优选地,将冠状病毒全基因组序列的数量按照90:5:5的比例随机划分为训练集 、验证集 和测试集 。
[0044] 优选地,人参考基因组的核酸片段数目分别与冠状病毒训练集、验证集和测试集的核酸片段数目保持一致。
[0045] 优选地,在步骤五中,在人的参考基因组序列中随机选取位点,保持150个碱基长度不变,进行取值。例如,可以从人的参考基因组序列片段中每条序列的第一个碱基开始,
保持取值大小为150个碱基的长度不变,步长为1,依次取值至最后一个碱基,形成人的参考
基因组片段集。
[0046] 优选地,S2中,建立基于冠状病毒序列的独立测试集 的具体步骤如下:
[0047] 步骤A:建立冠状病毒的原始独立测试集;
[0048] 步骤B:设置原始独立测试集的冠状病毒序列片段的片段长度,将冠状病毒独立测试集的数据转化成连续的子序列,构成基于冠状病毒序列的一个样本子集;
[0049] 步骤C:将步骤B中所获得的冠状病毒的样本子集进行去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性;
[0050] 步骤四、舍弃所得到的冠状病毒序列中含有“N”的片段,得到基于冠状病毒序列的独立测试集 ;
[0051] 优选地,对逐个的子样本集进行测试,如果发现“N”就舍弃,没有“N”就保留,由此,将各个数据集中含有“N”的序列片段舍去。
[0052] 优选地,在冠状病毒样本高通量测序模拟数据集上,把每一个碱基作为一个特征,每条序列包含150个特征,然后对每个特征进行one‑hot编码,使每条序列向量化。
[0053] 优选地,需要进行编码的对象包括S2中最终得到的训练集、验证集、测试集以及独立测试集中的每一条序列。
[0054] 优选地,所述分类模型包括核酸序列单元、one‑hot编码单元、GRU单元、线性层、以及Sigmoid函数层;所述分类模型从左到右依次为核酸序列单元、one‑hot编码单元、GRU单
元、线性层、以及Sigmoid函数层,在GRU单元的后面设置线性层,通过该线性层将GRU单元的
高维输出转换为低维,最后通过Sigmoid函数将线性层的输出映射到[0,1]之间。
[0055] 优选地,对序列中每一个碱基进行one‑hot编码后,最终每条序列变成包含150个碱基编码的向量,其中one‑hot表示如下:
[0056]
[0057] 其中: ;
[0058] 表示one‑hot向量,表示类别的总数,表示向量中第个元素,为狄拉克函数,表示第 类。
[0059] 优选地,所述分类模型如下所示,
[0060]
[0061]
[0062]
[0063] 其中,表示权重,表示第个,表示时间,表示Sigmoid函数,表示哈达玛积,表示偏置,tanh是tanh函数,表示隐层的状态,表示输入, 分别是重置门,更新门,r是重
置门,z是更新门,表示循环神经网络中的一个中间状态。表示时刻重置门的状态, 表
示第个重置门 的权重,表示时刻的输入, 表示第个重置门 的偏置, 表示第 个隐
层状态重置门 的权重, 表示 时刻隐层的状态, 表示第 个隐层状态重置门 的
偏置,表示时刻更新门的状态, 表示第 个更新门 的权重, 表示第个更新门 的偏
置, 表示第 个隐层状态更新门 的权重, 表示第 个隐层状态更新门 的偏置,表示
时刻的中间状态, 表示第个中间状态 的权重, 表示第个中间状态 的偏置, 表示
第 个隐层状态中间状态 的权重, 表示第 个隐层状态中间状态 的偏置,表示时刻
隐层的状态;
[0064] 线性层:
[0065]
[0066] 其中x为分类模型输出的集合,y为集合转换的数值,w为权重,b为偏置。
[0067] Sigmoid函数层:
[0068]
[0069] 其中,y为线性层的输出,为该序列的最终得分。
[0070] 优选地,保证每个特征向量与其他特征向量之间的距离相同,避免特征与特征之间出现人为的误差。
[0071] 优选地,将GRU隐层单元数的范围设置为[128,512]。
[0072] 优选地,将GRU隐层的单元数设置为256,以便极大的缩小训练时间,最终通过网格搜索策略。
[0073] 优选地,S4中,所述模型中的参数每迭代一次后,该模型都会对训练集中的样本数据输出模型预测的结果,根据模型预测结果与实际结果的交叉熵,更新GRU模型中的参数
,即,每个一个神经元的权重不断循环这个过程,直到找到局部最优解。
[0074] 优选地,所述交叉熵的表达如下:
[0075]
[0076]
[0077]
[0078] 其中, 表示交叉熵损失, 表示真实标签, 表示预测标签, 表示序列的最终得分。
[0079] 优选地,拒识区间为(0.2,0.8),优选地,为了避免通过二分类模型对冠状病毒序列做出“非此即彼”的判断,计算该模型对测试集中每条序列的输出分值。
[0080] 优选地,对该输出分值进行统计分析,图3A至图3D中给出了测试集中序列的得分分布情况,从图3A至图3D可知,99.78%的测试集冠状病毒序列得分≥0.9,而99.28%的测试
集人基因组片段得分≤0.1。
[0081] 优选地,S7中,当输出分值≥0.8时,判断序列为冠状病毒序列;当输出分值≤0.2时,判断序列为人基因组序列。当输出分值>0.2并且<0.8时,即当0.2<输出分值<0.8
时,判断序列为其他物种序列。
[0082] 与现有技术相比,本发明的有益效果在于:
[0083] 本发明的基于门控循环单元神经网络的冠状病毒序列识别方法,其为一种冠状病毒序列判别工具,其研究对象具有高度复杂性,其中四种碱基的前后顺序非常重要,四种碱
基的不同排列顺序代表多种信息;因此,为了更好的利用本发明的冠状病毒序列的序列信
息,建立基于门控循环单元(Gated Recurrent Unit,GRU)的循环神经网络(Recurrent 
Neural Network,RNN)模型,其能够更好地处理具有前后顺序特征的数据,能够提高其对样
本高通量测序数据中新型和高变异株冠状病毒序列的检测效率和性能。同时我们设计的数
据预处理方式可以保证不同数据集内部两类样本的平衡性,避免失衡带来的误差,提升GRU
模型的性能。本发明所建立的模型参数少,收敛速度快,能够快速从患者样品中鉴定出冠状
病毒,尤其是新发和高变异株冠状病毒,对于冠状病毒疫情的防控和诊疗有着重要的意义。

附图说明

[0084] 本发明上述和/或附加方面的优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0085] 图1是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法的流程图。
[0086] 图2是根据分发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法的神经网络模型结构示意图。
[0087] 图3A是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法中训练集的准确率与迭代次数的拟合曲线.
[0088] 图3B是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法中验证集的准确率与迭代次数的拟合曲线。
[0089] 图3C是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法中验证集的敏感性与迭代次数的拟合曲线。
[0090] 图3D是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法中验证集的特异性与迭代次数的拟合曲线。
[0091] 图4是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法的测试集中序列的得分分布示意图。
[0092] 图5是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法与其他对比模型对独立测试集的敏感性的比较结果图。
[0093] 图6是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法与其他对比模型的计算速度比较。
[0094] 图7是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法中冠状病毒数据全基因组序列预处理的流程图。
[0095] 图8是根据本发明实施例的基于门控循环单元神经网络的冠状病毒序列识别方法中独立测试集的数据预处理流程图。

具体实施方式

[0096] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施
例及实施例中的特征可以相互组合。
[0097] 根据本发明的基于门控循环单元神经网络的冠状病毒序列识别方法,如图1所示,其具体包括如下步骤:
[0098] S1:进行冠状病毒全基因组序列的数据收集;
[0099] 优选地,所述数据为冠状病毒完整的全基因组序列,其表达式如下所示,D={M1,M2,...,Mi,...,M2621};
[0100] 其中,D表示冠状病毒完整的全基因组序列数据集,M表示一条冠状病毒完整的全基因组序列,表示第个Mi,表示第条冠状病毒完整的全基因组序列。
[0101] 优选地,所述数据包括冠状病毒完整的全基因组序列以及人的hg38参考基因组序列,由此构建冠状病毒感染者样本的模拟高通量测序数据。其中冠状病毒完整的全基因组
序列以下简称冠状病毒全基因组序列,即冠状病毒序列。人的hg38参考基因序列以下简称
人的参考基因组序列。
[0102] 具体地,其所收集的数据为从NCBI中下载所有冠状病毒的全基因组序列。截止到2019年12月16日,收集了2621条序列。同时,从NCBI Genomic Data Commons(GDC)下载人的
参考基因组序列hg38。另外,从国家基因组科学中心(National Genomics Data Center,
NGDC)的2019新冠病毒信息数据库中下载了2019‑nCoV全基因组序列,截止到2020年2月19
日,共获得50条序列。
[0103] S2:对所收集的数据进行预处理,从原始训练样本中进行数据抽取得到训练集、验证集和测试集;建立独立测试集 ,并对所述独立测试集中的数据进行预处理;
[0104] 优选地,所述训练集配置用于训练模型,根据各次迭代的结果进而提高模型的准确性、敏感性和特异性;所述验证集配置用于模型每次迭代后的效果与性能;所述测试集用
于测试所建立模型的最终效果和最终性能;所述训练集、验证集和测试集的数据均包括冠
状病毒序列片段和和人hg38基因组序列片段。
[0105] 具体地,对冠状病毒全基因组序列的数据预处理方法,其具体包括如下步骤:
[0106] 步骤一、对S1中所获得的冠状病毒全基因组序列按照预设比例进行划分。
[0107] 优选地,将冠状病毒全基因组序列的数量按照90:5:5的比例随机划分为训练集 、验证集 和测试集 。
[0108] 步骤二、设置训练集、验证集以及测试集内的冠状病毒序列片段的片段长度,将冠状病毒训练集中的数据转化成连续的子序列,获取多个样本子集。将滑动窗口的长度,即,
冠状病毒序列片段的片段长度设置为150个碱基,步长为1,分别在冠状病毒训练集、验证集
和测试集的序列上连续滑动取值,每个数据集内均获得多个长度为150个碱基的核酸序列。
[0109] 优选地,由于目前的高通量测序一般采用PE150测序,每个读长为150个碱基,为了使得本发明中用于训练的模型能够适用于PE150高通量测序数据,在冠状病毒的训练集内,
将冠状病毒序列片段的片段长度设置为150个碱基,使其与模拟测序数据的序列长度相等。
[0110] 优选地,将冠状病毒训练集中的数据转化成连续的子序列,获取多个样本子集。具体地,从冠状病毒训练集中每条序列的第一个碱基开始,保持取值大小为150个碱基的长度
不变,步长为1,依次取值至最后一个碱基,形成冠状病毒的训练集,
[0111]
[0112] 表示冠状病毒的训练集,表示冠状病毒的训练集中核酸序列片段,表示第个,表示第个冠状病毒的训练集中核酸序列片段。
[0113] 优选地,将冠状病毒验证集中的数据转化成连续的子序列,获取多个样本子集。具体地,从冠状病毒验证集中每条序列的第一个碱基开始,保持取值大小为150个碱基的长度
不变,步长为1,依次取值至最后一个碱基,形成冠状病毒的验证集,
[0114]
[0115] 表示冠状病毒的验证集,表示冠状病毒的验证集中核酸序列片段,表示第个,表示第个冠状病毒的验证集中核酸序列片段。
[0116] 优选地,将冠状病毒测试集中的数据转化成连续的子序列,获取多个样本子集。具体地,从冠状病毒测试集中每条序列的第一个碱基开始,保持取值大小为150个碱基的长度
不变,步长为1,依次取值至最后一个碱基,形成冠状病毒的测试集,
[0117]
[0118] 表示冠状病毒的测试集,表示冠状病毒的测试集中核酸序列片段,表示第个,表示第个冠状病毒的测试集中核酸序列片段。
[0119] 步骤三、将步骤二中所获得的冠状病毒的各个数据集进行去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性。所述数据集为冠状病
毒的训练集、冠状病毒的验证集以及冠状病毒的测试集。
[0120] 例如,冠状病毒的训练集内去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性,同时能够减少训练量,减少训练误差。
[0121] 步骤四、舍弃冠状病毒全基因组序列中含有“N”的片段。
[0122] 优选地,由于冠状病毒全基因组序列中除了“A”、“T”、“C”、“G”四种碱基外,还有代表该位置碱基种类不确定的“N”,在数据预处理的过程中舍弃含有“N”的片段。“N”的出现是
由于测序错误导致的,删除“N”的以提高模型最终的准确率、敏感性和特异性。
[0123] 本申请文件中将各个数据集,例如,冠状病毒训练集、冠状病毒验证集和冠状病毒测试集中,含有“N”的序列片段舍去。
[0124] 对人的参考基因组序列的数据预处理方法为,步骤五、设置人的参考基因组片段的片段长度,建立人的参考基因组序列的第一片段集、第二片段集和第三片段集,使得来自
于人参考基因组的核酸片段数目分别与冠状病毒的训练集、冠状病毒的验证集和冠状病毒
的测试集的核酸片段数目保持一致;第一片段集为人的参考基因组序列的训练集,第二片
段集为人的参考基因组序列的验证集,第三片段集为人的参考基因组序列的测试集。
[0125] 优选地,由于人的hg38参考基因组长度远远大于收集到的所有冠状病毒的核酸序列长度总和,为了保证两类数据量的平衡性,采用150个碱基长度的窗口在人参考基因组,
例如,人的hg38参考基因组序列上随机选取150个碱基长的片段,使得来自于人的参考基因
组序列的核酸片段数目分别与冠状病毒训练集、验证集和测试集的核酸片段数目保持一
致。
[0126] 具体地,将人的参考基因组序列中的数据转化成连续的子序列,获取多个样本子集。具体地,人的参考基因组序列片段中每条序列的第一个碱基开始,保持取值大小为150
个碱基的长度不变,步长为1,依次取值至最后一个碱基,形成人的参考基因组片段集,上下
文中人参考基因组即为人的参考基因组序列。
[0127]
[0128] 表示人参考基因组的训练集,表示人参考基因组的训练集中核酸序列片段,表示第个,表示第个人参考基因组的训练集中核酸序列片段。
[0129]
[0130] 表示人参考基因组的验证集,表示人参考基因组的验证集中核酸序列片段,表示第个,表示第个人参考基因组的验证集中核酸序列片段。
[0131]
[0132] 表示人参考基因组的测试集,表示人参考基因组的测试集中核酸序列片段,表示第个,表示第个人参考基因组的测试集中核酸序列片段。
[0133] 步骤六、将步骤五中所获得的人的参考基因组序列各片段集去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性。
[0134] 例如,人的参考基因组序列各片段集内去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性,同时能够减少训练量,减少训练误差。
[0135] 步骤七、舍弃人的参考基因组序列各片段集中含有“N”的片段。
[0136] 优选地,由于人的参考基因组序列中除了“A”、“T”、“C”、“G”四种碱基外,还有代表该位置碱基种类不确定的“N”,在数据预处理的过程中舍弃含有“N”的片段。“N”的出现是由
于测序错误导致的,删除“N”的以提高模型最终的准确率、敏感性和特异性。
[0137] 步骤八、将分别来自冠状病毒的训练集 和人参考基因组的训练集 合并为新的训练集 、分别来自冠状病毒的验证集 和人的验证集 合并为新的验证集 、分别来自冠
状病毒的测试集 和人的测试集 合并为新的测试集 ,得到最终的训练集 、验证集 和
测试集 ,分别用于模型的训练、验证和测试。
[0138] 优选地,所述最终的训练集、验证集和测试集中均包括冠状病毒序列片段和人的参考基因组序列片段。
[0139] 所述训练集配置用于模型的训练,所述验证集配置用于验证每次迭代完成后模型的效果,所述测试集配置用于衡量该最优模型的性能和分类能力。
[0140] 建立基于冠状病毒序列的独立测试集 的具体步骤如下:
[0141] 步骤A:建立冠状病毒的原始独立测试集;
[0142] 步骤B:设置原始独立测试集的冠状病毒序列片段的片段长度,将冠状病毒独立测试集的数据转化成连续的子序列,获取一个样本子集。
[0143] 优选地,将滑动窗口的长度,即,冠状病毒序列片段的片段长度设置为150个碱基,步长为1,在独立测试集内的冠状病毒序列上连续滑动取值,获得多个长度为150个碱基的
核酸序列,使其与模拟测序数据的序列长度相等。
[0144] 步骤C:将步骤B中所获得的冠状病毒的样本子集进行去重处理以去掉重复序列,避免序列之间不平衡,避免某一类占比过大会影响预测的准确性。
[0145] 步骤D、舍弃冠状病毒全基因组序列中含有“N”的片段,得到冠状病毒独立测试集。
[0146] 优选地,由于冠状病毒全基因组序列中除了“A”、“T”、“C”、“G”四种碱基外,还有代表该位置碱基种类不确定的“N”,在数据预处理的过程中舍弃含有“N”的片段。“N”的出现是
由于测序错误导致的,删除“N”的以提高模型最终的准确率、敏感性和特异性。
[0147] 优选地,对逐个的子样本集进行测试,如果发现“N”就舍弃,没有“N”就保留,由此,将各个数据集中含有“N”的序列片段舍去。
[0148] 具体地,针对2019‑nCoV序列,将滑动窗口长度设置为150个碱基,步长为1,在2019‑nCoV的序列上连续滑动取值,获得多个长度为150个碱基的核酸序列。
[0149] S3:对最终用于模型的训练集、验证集和测试集进行编码,使每条序列向量化;建立训练冠状病毒序列的分类模型;并对独立测试集进行编码处理,使序列向量化。
[0150] 进一步地,在冠状病毒样本高通量测序模拟数据集上,把每一个碱基作为一个特征,每条序列包含150个特征,然后对每个特征进行one‑hot编码,使每条序列向量化。
[0151] 优选地,需要进行编码的对象包括S2中最终得到的训练集、验证集、测试集以及独立测试集中的每一条序列。
[0152] 优选地,所述分类训练模型包括核酸序列单元、one‑hot编码单元、GRU单元、线性层、以及Sigmoid函数层。优选地,所述分类训练模型从左到右依次为核酸序列单元、one‑
hot编码单元、GRU单元、线性层、以及Sigmoid函数层,其具体结构如图2所示。
[0153] 优选地,对训练集 、验证集 、测试集 和独立测试集 中每条序列中每一个碱基进行one‑hot编码后,最终训练集 、验证集 、测试集 和独立测试集 中每条序列变成包
含150个碱基编码的向量,其中one‑hot表示如下:
[0154]
[0155]
[0156] ,小写字母o表示 向量中每一维度只能选0或者是1;
[0157]
[0158]
[0159]
[0160] 表示训练集 、验证集 、测试集 或独立测试集 中每条序列的集合,表示集合 中第个向量,是四维向量,表示向量的第 维,表示第 维的数值,为狄拉克函数,
表示第 类碱基。
[0161] 优选地,所述分类模型如下所示,
[0162]
[0163]
[0164]
[0165] 其中,表示权重,表示第个,表示时间,表示Sigmoid函数,表示哈达玛积,表示偏置,tanh是tanh函数,表示隐层的状态,表示输入, 分别是重置门,更新门,表示
循环神经网络中的一个中间状态。表示时刻重置门的状态, 表示第个重置门 的权重,
表示时刻的输入, 表示第个重置门 的偏置, 表示第 个隐层状态重置门 的权重,
表示 时刻隐层的状态, 表示第 个隐层状态重置门 的偏置,表示时刻更新门
的状态, 表示第个更新门 的权重, 表示第个更新门 的偏置, 表示第 个隐层状态
更新门 的权重, 表示第 个隐层状态更新门 的偏置,表示时刻的中间状态, 表示
第个中间状态 的权重, 表示第个中间状态 的偏置, 表示第 个隐层状态中间状态
的权重, 表示第 个隐层状态中间状态 的偏置,表示时刻隐层的状态;
[0166] 线性层:
[0167]
[0168] 其中x为分类模型输出的集合,y为集合转换的数值,w为权重,b为偏置。
[0169] Sigmoid函数层:
[0170]
[0171] 其中,y为线性层的输出,为该序列的最终得分。
[0172] 优选地,保证每个特征向量与其他特征向量之间的距离相同,避免特征与特征之间出现人为的误差。
[0173] 根据每条序列包含150个特征,以及既往的经验,因此将GRU隐层单元数的范围设置为[128,512],通过选定范围,可以极大的缩小训练时间,最终通过网格搜索策略,将GRU
隐层的单元数设置为256。在GRU单元的后面设置线性层,通过该线性层将GRU计算单元的高
维输出转换为低维,最后通过Sigmoid函数将线性层的输出映射到[0,1]之间。
[0174] S4:对S3中所建立的模型进行修正;
[0175] 优选地,GRU模型中的参数每迭代一次后,该模型都会对训练集中的样本数据输出模型预测的结果,得到模型预测结果与实际结果的交叉熵,
[0176] 具体地,当其交叉熵小于0.001时或训练集和验证集的准确率分别能够达到99.99%和99.90%以及验证集的敏感性和特异性分别达到99.92%和99.88%时,停止训练。
[0177] 优选地,通过Adam算法更新GRU模型中的参数 ,即,每个一个神经元的权重。不断循环这个过程,直到找到局部最优解。
[0178] 具体地,交叉熵损失L的表示如下:
[0179]
[0180]
[0181]
[0182] 其中, 表示交叉熵损失, 表示真实标签, 表示预测标签, 表示序列的最终得分。
[0183] 具体地,由图3A至图3D可知,随着迭代次数的增长,训练集和验证集的准确率分别能够达到99.99%和99.90%,也就是说训练集的准确率能够达到99.99%,验证集的准确率能
够达到99.90%。更近一步地,验证集的敏感性达到99.92%,验证集的特异性99.88%。
[0184] 通过以下公式对模型的准确率(Accuracy,Acc)、敏感性(Sensitivity,Sen)和特异性(Specificity,Spe)进行计算:
[0185]
[0186]
[0187]
[0188] 其中TP表示真阳性(True Positive),TN表示真阴性(True Negative),FP表示假阳性(False Positive),FN表示假阴性(False Negative)。
[0189] S5:统计该模型对测试集,即将冠状病毒序列与人的基因组序列合并以后的测试集,每条序列的输出分值,同时计算每条序列的准确率、敏感性和特异性,验证该模型最终
的效果;并根据该输出分值的分布情况设置拒识区间,以便减少误差;
[0190] 优选地,对该输出分值进行统计分析,图3A至图3D中给出了测试集中序列的得分分布情况,可知,99.78%的测试集冠状病毒序列得分≥0.9,而99.28%的测试集人基因组片
段得分≤0.1。
[0191] 输出分值在0.2‑0.8之间时,判断序列既不是冠状病毒也不是人基因组序列。
[0192] 优选地,拒识区间为(0.2,0.8),优选地,为了避免通过二分类模型对冠状病毒序列做出“非此即彼”的判断,计算该模型对测试集中每条序列的输出分值。
[0193] 图3A的横坐标 表示模型的迭代次数,纵坐标 表示训练集的准确率,其中
[0194]
[0195] 图3B的横坐标 表示模型的迭代次数,纵坐标 表示验证集的准确率,其中
[0196]
[0197] 图3C的横坐标 表示模型的迭代次数,纵坐标 表示验证集的敏感性,其中
[0198]
[0199] 图3D的横坐标 表示模型的迭代次数,纵坐标 表示验证集的特异性,其中
[0200]
[0201] S7:当输出分值≥0.8时,判断序列为冠状病毒序列;当输出分值≤0.2时,判断序列为人基因组序列。
[0202] 实施例1
[0203] (1)冠状病毒感染者样本高通量测序模拟数据集
[0204] 本实例中选择冠状病毒全基因组序列以及人hg38参考基因组序列构建冠状病毒感染者样本的模拟高通量测序数据,再对模型进行训练、验证和测试。我们共获得2621条冠
状病毒全基因组序列(不包含2019‑nCoV)、2779人参考基因组染色体序列以及50条2019‑
nCoV序列,如表1所示。
[0205] 表1冠状病毒和人全基因组序列数量
[0206]
[0207] *不包含2019‑nCoV
[0208] 将冠状病毒基因组序列按照90:5:5比例随机分组后,采用150nt滑窗取序列片段,去除重复,同时在人基因组中随机选取同等数量的150nt片段,去除包含‘N’的序列片段后,
最终得到训练集、验证集、测试集和独立测试集的片段数分别为20,988,873条、3,510,806
条、3,259,979条和142,670条,如表2所示。
[0209] 表2预处理后的序列数量
[0210]
[0211] 在冠状病毒样本高通量测序模拟数据集上,本研究把每一个碱基作为一个特征,因此每条序列包含150个特征,然后对每个特征进行one‑hot编码,使每条序列向量化,保证
每个特征向量与其他特征向量之间的距离相同,避免特征与特征之间出现人为的误差。将
GRU隐层的单元数设置为256。我们在GRU单元的后面加入一个线性层,该层将GRU计算单元
的高维输出转换为低维,最后通过Sigmoid函数将线性层的输出映射到[0,1]之间,将结果
大于0.5的序列判断为冠状病毒序列,如图2所示。同时将数据批处理大小设置为5000。优选
地,由于显存的大小为11GB,因此,将数据批处理大小设置为5000。
[0212] 得到训练集准确率、验证集准确率、验证集敏感性特异性与迭代次数的关系。从图3A至图3D中可以看出,随着迭代次数的增长,训练集和验证集的准确率分别能够达到
99.99%和99.90%。验证集的敏感性和特异性分别达到99.92%和99.88%。随后,用测试集对模
型进行评估。当取输出结果大于0.5的序列为冠状病毒序列时该GRU模型在测试集的准确
率、敏感性和特异性分别为99.89%、99.85%和99.94%,如表3所示。
[0213] 表3模型的性能
[0214]
[0215] 针对构建的是二分类模型,为了避免对序列做出“非此即彼”的判断,设置拒识区间。观测了该模型对测试集每条序列的输出分值。结果显示,99.78%的测试集冠状病毒序列
得分为≥0.9,例如,得分为[0.9,1],而99.28%的测试集人基因组片段得分≤0.1,例如,得
分为[0,0.1],如图4所示。因此,设置该GRU模型的拒识区间为(0.2,0.8),也就是说,当输出
分值≥0.8时,判断序列为冠状病毒序列;当输出分值≤0.2时,判断序列为人基因组序列;
当输出分值在0.2‑0.8之间时,判断序列既不是冠状病毒也不是人基因组序列,具体地,判
断序列为其他物种序列。
[0216] 使用由新型冠状病毒2019‑nCoV构成的独立测试集在分发明的模型、Kraken(Version1.1.1)和Megablast(Version2.9.0)上进行性能比较。Kraken是一个使用k‑mers
精确比对的序列分类软件,能够对宏基因组序列进行分类,是目前用于宏基因组序列分类
的最常用软件之一,也是速度最快的序列分类工具之一。Megablast是经典的序列比对算
法,具有很好的性能,且在序列比对中广泛应用。对于Kraken与Megablast,使用人hg38参考
基因组序列和不包含2019‑nCoV的所有冠状病毒序列构建比对数据库。GRU模型采用(0.2,
0.8)的拒识区间,Kraken和Megablast均使用默认参数,最终得到三个工具在独立测试集上
的结果,GRU模型、Kraken和Megablast的敏感性分别为99.81%、65.80%和74.29%,如图5。
[0217] 将GRU模型对测试集的计算时间与其他几种常见方法进行了比较。如图6所示,Kraken和Megablast的计算速度来源于Wood等人的工作,GRU模型的分类速度与目前宏基因
组序列分类软件“Kraken”相比,提高了约14.4%,同时大幅领先于Megablast。
[0218] 优选地,本发明的配置环境要求如下所示,
[0219] GRU模型在如下的配置中进行计算:
[0220] CPU:Intel(R)Xeon(R)Silver4110CPU@2.10GHz
[0221] RAM:128GBytesMemoriaDDR42666MHz
[0222] HD:4TSATA
[0223] GPU:NVIDIARTX2080Ti11GVideoMemory
[0224] OS:Ubuntu18.04.2LTS
[0225] Kraken和Megablast在如下配置中进行:
[0226] CPU:AMDOpteron6172CPU@2.1GHz×48
[0227] RAM:252GBytes
[0228] HD:NA
[0229] GPU:NA
[0230] OS:RedHatEnterpriseLinux5
[0231] 在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示
所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本
发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重
要性。
[0232] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“连通”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可
以是机械连接,也可以是电连接;可以是直接连通,也可以通过中间媒介间接连通,可以是
两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本
发明中的具体含义。此外,在本发明的描述中,除非另有说明,“至少三个”的含义是两个或
两个以上。
[0233] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。