一种生物序列处理和模型训练方法

文档序号:31084247发布日期:2022-08-09 22:48阅读:72来源:国知局
一种生物序列处理和模型训练方法

1.本发明涉及计算机处理生物学基因序列技术领域,具体涉及一种生物序列处理和模型训练方法。


背景技术:

2.由新型冠状病毒引发的肺炎疫情近段时间以来,一直在威胁着人类的健康安全,其实新冠病毒只是人类历史上所出现的各类病毒中十分常见的一种,目前仍在全球肆虐的病毒包括流感病毒、艾滋病病毒、肝病病毒等。病毒一直存在于世界中,随着人类的发展,它也在不断地进化更新,直到19世纪晚期,人们才首次认识到了这个微小的病原体。这些肉眼看不到的病毒,无时无刻不在影响着人们的身体健康。
3.对于一种新发现的病毒,要想弄清楚它的根源,使用传统的生物学方法需要耗费较大的资源。由于传统方法得出的结果主要是基于与已有数据库内的数据比对得来,对于某些特殊的病毒,如果数据库中不曾有类似的记载,则没有办法分类准确。深度学习拥有广泛的应用场景,诸如计算机视觉、自然语言处理、语音分析等领域。
4.病毒基因数据和文本数据类似,是一串高度序列化的数据,其中包含了一些潜在的特征信息;并且生物的dna序列是双链螺旋结构,这意味着dna双链之间存在一种特殊的碱基互补关系,使得两条链上的碱基能够相互结合在一起。使用自然语言处理的方法来处理病毒基因序列,挖掘出序列内的潜在信息,同时能够很好的利用碱基对之间的互补关系,从而训练模型来处理病毒基因的分类。这是一种可行的方法,和传统的生物学方法相比具有独特的优势。在传统的生物学基因分类识别方法中,最常用且效果最好的方法即blast,它工作原理是基于一个庞大的生物学基因数据库,通过将待分类识别的基因与基因数据库内的数据进行比对,将比对结果中相似度最高的基因和待分类识别的基因归为相同类别。因为需要将待分类识别的基因与数据库内的某些基因进行细致的比对,导致blast方法识别分类基因的时间开销比较大。


技术实现要素:

5.针对现有技术中存在的不足,本发明的第一个目的在于提供一种生物序列处理和模型训练方法。本发明提出的方法能够在和传统基因分类识别方法准确度达到相近水平的基础上节约时间,并且能正确预测部分传统生物学方法无法正确分类的基因。
6.为解决上述技术问题,本发明通过下述技术方案实现:
7.一种生物序列处理和模型训练方法,其特征在于:包括以下步骤:
8.s1、获取生物基因序列的数据并对数据进行整合;
9.s2、对数据进行预处理,对所读取的生物基因序列进行遍历,过滤出符合要求的生物基因序列;
10.s3、构建训练模型所需的数据集,根据数据集内每一类别数据的数目对数据集进行微调,保证各类数据在数据集中的规模大致相等;
11.s4、对数据集的数据进行数据集内各类数据的数量平衡以及基因数据长度平衡处理,得出训练集;
12.s5、利用训练集训练具备反向互补网络的模型。
13.进一步的:所述步骤s1中,获取生物基因序列的genbankid;获取生物基因序列genbankid的方法:设置一个包含若干条生物基因序列的genbankid的文件,根据文件列出的生物基因序列的genbankid在公开的生物基因数据库中查询并下载该条索引对应的生物信息,存储在一个fasta文件中,或者直接获取包含生物基因序列信息的fasta文件。
14.进一步的:读取fasta文件,将fasta文件内包含的信息按照指定格式分别整理到一个表格当中,同一条基因的生物信息排列在表格的同一列,得到一个包含全部所需数据的本地数据库,将本地数据库内的数据去重,并保存为一个csv文件。
15.进一步的:所述步骤s2中,数据的预处理方法:调用csv文件,遍历csv文件内的每一条数据,对数据进行分析,将数据中含有的非常规碱基用碱基n替代;当单条基因序列中n连续出现20次以上或n非连续出现但其数量占据整条基因序列全部碱基5%,对此条基因序列数据进行剔除。
16.进一步的:所述步骤s3中,根据类别平衡的规则构建训练模型所需的数据集:
17.首先确定训练模型的预测任务所需要预测的类别,按这些类别统计各个类别所含的生物基因序列的数量;每一个类别用作组成数据集的序列数量大致相等,因此按照生物基因序列数量最少的那个类所包含的生物基因序列数量来从其他类随机抽取相同数量的生物基因序列;当生物基因序列数量最少的类的生物基因序列数量和其他类的序列生物基因数量的差值大于生物基因序列数量最少的类本身的序列数量,则选择另一个序列数量合适的类作为基准,从其他类提取数据;划分数据集时,当数据量大于一定值的时候,则按照一定比例划分,否则按照训练集数量》测试集数量》验证集数量的规则来划分数据集;
18.训练集数量、测试集、验证集划分完毕后,将三者随机打乱顺序,再将数据及其对应的类别分别写成不同的csv文件,存放在同一个文件夹里提供模型训练时调用。
19.进一步的:所述步骤s4中,
20.(a)对长度小于本地数据库中长度排序位于前5%位置的基因进行复制填充至所需长度:随机选择长度小于本地数据库中长度排序位于前5%位置的的基因上的某一个碱基作为自我复制片段的起始位置,从起始位置到该基因序列的最后一个碱基之间的这段基因序列就是用作自我复制填充的基因序列片段,再将这一基因片段填充到原基因序列的末尾;重复上述操作,直到基因的长度达到所需要的长度;
21.(b)对训练集数据不足的类进行数据集扩充:复制已有的某条生物基因序列的一部分,将其视为一条独立的并能够代表这个类的生物基因序列,从而达到平衡数据集的效果;
22.(c)对完整长度的基因进行切分:采用滑动窗口采样法,每间隔一定的长度采样一个基因片段,该基因片段即作为模型训练时的输入数据,也称为基因序列的子序列,当间隔的长度足够小时,可以采样出充足的基因片段。
23.进一步的:所述步骤s5中,
24.s01:在生物基因序列转化成数字编码的表达上,采用one-hot编码、skip-gram、cbow或elmo模型来对生物基因进行预训练,并输出生物基因各个碱基的向量表示,将其作
为本方法的输入数据;
25.s02:采用序列反向互补处理,在模型训练的同时输入dna链及其互补链到模型内进行训练,并行使用两个独立的分支网络结构来分别处理两条不同的数据,两个网络之间每一对相同的网络层之间共享权值参数,在从最后一层输出数据之前,将两条链的数据合并输出最终的预测结果;
26.s03:训练模型时,根据不同的子序列长度、滑动窗口提取子序列的间隔长度以及训练模型使用的深度学习网络种类,灵活地调整参数并训练不同的模型;在训练过程中,保存性能最佳的模型参数,以供模型测试时调用最佳模型。
27.本发明的第二个目的在于,提供一种电子设备,其特征在于:包括:
28.一个或多个处理器;
29.存储装置,用于存储一个或多个程序,
30.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述中任一所述的方法。
31.本发明的第三个目的在于,提供一种计算机可读介质,其上存储有计算机程序,其特征在于:该程序被处理器执行时实现如上述中任一所述的方法。
32.本发明与现有技术相比,具有以下优点及有益效果:
33.本发明结合了生物序列数据处理、模型训练和生物序列分类,其中扩充数据集可以有效的缓解数据集中某类数据量过小的问题,使得模型对各类别的特征学习都能够在一个较公平的环境下。本发明使用生物序列的子序列代替完整序列来训练模型,可以限制输入模型的序列长度同时增大数据集的规模,同时使用了dna序列的反向互补关系来改善模型的性能,从而可以让模型充分提取基因序列的内含信息,得以更好的开发深度学习模型的潜力。本发明使用深度学习模型来代替传统生物学基因序列分类方法,可以在减小时间成本开销的同时分类准确率有所提升。本发明的模型在不同数据构成的数据集上进行实验均能够达到很好的效果,因此它也能很容易地扩展到其他的生物序列分类任务。
附图说明
34.图1为本发明的总体框架图;
35.图2为本发明中数据预处理的原理图;
36.图3为本发明采用的反向互补网络的结构图;
37.图4为本发明的流程图。
具体实施方式
38.为了使本领域的技术人员更好地理解本发明的技术方案,下面结合具体实施例对本发明的优选实施方案进行描述,但是应当理解,附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。
39.下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
40.如图1至4所示,一种生物序列处理和模型训练方法,包括以下步骤:
41.s1、获取生物基因序列的数据并对数据进行整合;
42.s2、对数据进行预处理,对所读取的生物基因序列进行遍历,过滤出符合要求的生物基因序列;
43.s3、构建训练模型所需的数据集,根据数据集内每一类别数据的数目对数据集进行微调,保证各类数据在数据集中的规模大致相等;
44.s4、对数据集的数据进行数据集内各类数据的数量平衡以及基因数据长度平衡处理,得出训练集;
45.s5、利用训练集训练具备反向互补网络的模型。
46.所述步骤s1中,获取生物基因序列的genbankid;获取生物基因序列genbankid的方法:设置一个包含若干条生物基因序列的genbankid的文件,根据文件列出的生物基因序列的genbankid在公开的生物基因数据库中查询并下载该条索引对应的生物信息,存储在一个fasta文件中,或者直接获取包含生物基因序列信息的fasta文件。
47.所述步骤s1中,根据所需要下载的genbankid去公开的数据库下载基因数据(genbank是一个开放获取的序列数据库,对所有公开可利用的核苷酸序列与其翻译的蛋白质进行收集并注释。此数据库是国际协作核酸序列数据库(insdc)的一部分)。
48.下载渠道包括:登陆ncbi网页,按照网页提示的步骤进行下载;或者使用biopython包内置的api进行下载。其中,下载生物基因序列需要将这些生物序列的genbankid按顺序写在一个txt文件内,每行仅能写一条genbankid,将下载好的基因序列数据存储在一个fasta文件中。在本实施例中,所需要获取的数据集包括甲病毒(alpha virus)数据,黄病毒(flavivirus)数据和新型冠状病毒(covid-19)数据。在本发明中,将病毒数据根据其感染的宿主或传播媒介进行分类,从而可以将甲病毒分为以下几个类别:“巴玛森林病毒”,“基孔肯雅病毒”,“东方马脑炎病毒”,“盖塔病毒”,“马达里亚加病毒”,“马亚罗病毒”,“辛德比斯病毒”,“委内瑞拉马脑炎病毒”和“西方马脑炎病毒”。黄病毒和新冠病毒也可以诸如此法分类。
49.读取fasta文件,将fasta文件内包含的信息按照指定格式分别整理到一个表格当中,同一条基因的生物信息排列在表格的同一列,得到一个包含全部所需数据的本地数据库,本地数据库用作接下来的模型训练和测试;将本地数据库内的数据去重,并保存为一个csv文件,以便于日后调用、查找。另外csv文件也可以作为训练模型数据的备份,方便日后修改模型时修改数据库。
50.所述步骤s2中,数据的预处理方法:调用csv文件,遍历csv文件内的每一条数据,对数据进行分析,如果数据中含有非常规碱基,即a、t、c、g、u和未知碱基n以外的碱基,将数据中含有的非常规碱基用碱基n替代;当单条基因序列中n连续出现20次以上或n非连续出现20次以上但其数量占据整条基因序列全部碱基5%,则认为该条数据不适合用来进行模型的训练。如果删去该条基因对数据集规模影响在1%以内,可以将单条基因序列中n连续出现20次以上或n非连续出现20次以上但其数量占据整条基因序列全部碱基5%的数据进行剔除,从而优化模型的训练效果。
51.所述步骤s3中,根据类别平衡的规则构建训练模型所需的数据集:
52.首先确定训练模型的预测任务所需要预测的类别,按这些类别统计各个类别所含
的生物基因序列的数量;每一个类别用作组成数据集的序列数量大致相等,因此按照生物基因序列数量最少的那个类所包含的生物基因序列数量来从其他类随机抽取相同数量的生物基因序列;当生物基因序列数量最少的类的生物基因序列数量和其他类的序列生物基因数量的差值大于生物基因序列数量最少的类本身的序列数量,则选择另一个序列数量合适的类作为基准,从其他类提取数据;划分数据集时,当数据量大于一定值的时候,一般地阈值的取值在10左右,则按照一定比例划分,常用的数据集划分比例为6:2:2或7:2:1,否则按照训练集数量》测试集数量》验证集数量的规则来划分数据集;
53.训练集数量、测试集、验证集划分完毕后,将三者随机打乱顺序,再将数据及其对应的类别分别写成不同的csv文件,存放在同一个文件夹里提供模型训练时调用。
54.在本实施例中,过滤好数据之后,需要根据类别平衡的规则来构建训练模型所需的数据集,即如果一个大类的数据有许多的子类分支,也需要在选取数据集的时候对子类也进行平均选取。如上述所提及的“东方马脑炎病毒”,它根据致病性的高低又可以被分成3类,为了使模型学习到的信息尽量完整和公平,因此在抽取“东方马脑炎病毒”数据的时候,它的不同致病性的基因分别都要抽取相同的数量。
55.根据甲病毒感染宿主的类型,可以将甲病毒分为9类,每一个类别抽取出来组成数据集的序列数量应该相近。在甲病毒数据集中,数据量最多的类拥有726条基因数据,而最少的类只拥有18条基因数据,因此按照生物基因序列数量最少的那个类所包含的生物基因序列数量来从其他类随机抽取相同数量的生物基因序列,即每个类抽取18条。如果生物基因序列数量最少的类的生物基因序列数量和其他类的序列生物基因数量相差过于悬殊并且该类基因序列数量小于10条,则选择另一个序列数量合适的类作为基准,对数据比该类多的类随机抽取数据,对数据比该类少的类进行数据集扩充,并划分数据集。
56.三个数据集划分完毕后,将数据集随机打乱顺序,再将数据及其对应的类别分别写成不同的csv文件,分别命名为x_train,y_train,x_validation,y_validation,x_test和y_test,并存放在同一个文件夹里提供模型训练时调用。
57.所述步骤s4中,(a)对长度小于本地数据库中长度排序位于前5%位置的基因进行复制填充至所需长度(由于生物基因序列之间长度都各不相同,因此需要对于长度过小的基因进行复制填充到一定的长度):随机选择长度小于本地数据库中长度排序位于前5%位置的基因上的某一个碱基作为自我复制片段的起始位置,从起始位置到该基因序列的最后一个碱基之间的这段基因序列就是用作自我复制填充的基因序列片段,再将这一基因片段填充到原基因序列的末尾;重复上述操作,直到基因的长度达到所需要的长度;
58.(b)对训练集数据不足的类进行数据集扩充:复制已有的某条生物基因序列的一部分,将其视为一条独立的并能够代表这个类的生物基因序列,从而达到平衡数据集的效果;对于用作训练模型的训练集而言,每个类别的生物基因序列数目不同会导致训练得到的模型对训练集中数据量偏多的那一类产生偏好,即更加容易将数据分类到这一类,从而产生不公平现象,因此需要对训练集数据不足的类进行数据集扩充。
59.(c)对完整长度的基因进行切分:采用滑动窗口采样法,每间隔一定的长度采样一个基因片段,该基因片段即作为模型训练时的输入数据,也称为基因序列的子序列,当间隔的长度足够小时,可以采样出充足的基因片段。如图2所示,采用滑动窗口法提取数据,每间隔3个碱基便截取长度为5个碱基的数据作为一条独立的基因序列数据,也称为子序列。在
保证充足的数据训练模型以及不引入非来自原基因序列的数据的前提下可以缩小输入到模型的数据的规模,也能充分挖掘深度学习模型的潜力,得到拟合度更高的模型。
60.深度学习模型的输入数据的长度是有限的,将一整条完整基因输入模型会导致参数量过大,因此需要将一整条基因切分成若干小的基因片段。不同的基因片段长度也会对模型训练产生影响。为了保证切分得到的基因片段都是源于数据集内其对应的原始基因,并且得到尽可能多的基因片段,因此需要对完整长度的基因进行切分。
61.所述步骤s5中,s01:在生物基因序列转化成数字编码的表达上,采用one-hot编码、skip-gram、cbow或elmo模型来对生物基因进行预训练,并输出生物基因各个碱基的向量表示,将其作为本方法的输入数据;使用预训练模型进行预训练,可以更好地将原始碱基序列翻译成计算机可识别的数字序列,使用不同的高维度向量来表示不同的碱基优于传统独热码表示,使训练得到的模型性能得以提升。
62.如图1所示使用预训练模型进行预训练,构建一个碱基(对)与向量之间联系的“字典”,用字典的向量来代替独热码,可以更好地将原始碱基序列翻译成计算机可识别的数字序列,使用不同的高维度向量来表示不同的碱基优于传统独热码表示,使训练得到的模型性能得以提升。
63.s02:使用反向互补网络是因为生物的dna在空间上是规则的双螺旋结构形状,其中两条单链是通过碱基互补配对结合在一起,即a和t、c和g碱基可以互补配对结合在一起,从而两条单链最终结合成双螺旋结构。为了解决这个问题,本发明采用序列反向互补处理,在模型训练的同时输入dna链及其互补链到模型内进行训练,并行使用两个独立的分支网络结构来分别处理两条不同的数据,两个网络之间每一对相同的网络层之间共享权值参数,在从最后一层输出数据之前,将两条链的数据合并输出最终的预测结果;
64.s03:训练模型时,根据不同的子序列长度、滑动窗口提取子序列的间隔长度以及训练模型使用的深度学习网络种类,灵活地调整参数并训练不同的模型;在训练过程中,保存性能最佳的模型参数,以供模型测试时调用最佳模型。
65.使用本发明输入甲病毒的数据集来训练模型,子序列的长度设置成200,滑动窗口抽取子序列的间隔设置为1,采用预训练模型来向量化碱基对,并且采用了反向互补模型,在测试集上对测试数据进行9分类任务,分类准确率高达94.38%,较不使用本发明的方法测试得到的结果有5.68%的提升。当减小子序列的长度为120的时候,9分类测试准确率高达97.32%,调整子序列的长度对模型的预测准确率也有影响。因此可以灵活调节参数,找到一个最适合训练模型所用到的数据集的参数。
66.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明的设施可借助软件加必需的通用硬件平台的方式来实现。本发明的实施例可以使用现有的处理器来实现,或者由被用于此目的或其他目的用于适当系统的专用处理器来实现,或者由硬接线系统来实现。本发明的实施例还包括非暂态计算机可读存储介质,其包括用于承载或具有存储在其上的机器可执行指令或数据结构的机器可读介质;这种机器可读介质可以是可由通用或专用计算机或具有处理器的其他机器访问的任何可用介质。举例来说,这种机器可读介质可以包括ram、rom、eprom、eeprom、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备,或任何其他可用于以机器可执行指令或数据结构的形式携带或存储所需的程序代码,并可被由通用或专用计算机或其它带有处理器的机器访问的介质。当信息通过网
络或其他通信连接(硬接线、无线或硬接线或无线的组合)传输或提供给机器时,该连接也被视为机器可读介质。
67.依据本发明的描述及附图,本领域技术人员很容易制造或使用本发明的一种生物序列处理和模型训练方法,并且能够产生本发明所记载的积极效果。
68.以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1