CN116564414A - 分子序列的比对方法、装置、电子设备、存储介质及产品 - Google Patents

分子序列的比对方法、装置、电子设备、存储介质及产品 Download PDF

Info

Publication number
CN116564414A
CN116564414A CN202310829758.5A CN202310829758A CN116564414A CN 116564414 A CN116564414 A CN 116564414A CN 202310829758 A CN202310829758 A CN 202310829758A CN 116564414 A CN116564414 A CN 116564414A
Authority
CN
China
Prior art keywords
character
sequence
character sequence
unit
characters
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.)
Granted
Application number
CN202310829758.5A
Other languages
English (en)
Other versions
CN116564414B (zh
Inventor
王玮犀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310829758.5A priority Critical patent/CN116564414B/zh
Publication of CN116564414A publication Critical patent/CN116564414A/zh
Application granted granted Critical
Publication of CN116564414B publication Critical patent/CN116564414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/10Sequence alignment; Homology search
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/20Sequence assembly
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B40/00ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding

Landscapes

  • Life Sciences & Earth Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Analytical Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioethics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Epidemiology (AREA)
  • Evolutionary Computation (AREA)
  • Public Health (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本申请提供了一种分子序列的比对方法、装置、电子设备、计算机可读存储介质及计算机程序产品,包括:获取包括第一分子序列及第二分子序列的分子序列对,分子序列对中的每一个分子序列由多个单位分子组合而成;对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;其中,第一字符序列及第二字符序列均由多个单位字符组合而成,单位字符与单位分子存在对应关系;将第一字符序列的字符与第二字符序列的字符进行字符比对,得到比对结果,比对结果用于指示,将第一字符序列转化为第二字符序列所需执行的目标操作的数量。如此,能够提高分子序列的比对效率。

Description

分子序列的比对方法、装置、电子设备、存储介质及产品
技术领域
本申请涉及计算机技术领域,尤其涉及一种分子序列的比对方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
相关技术中的DNA序列比对方法主要为全局比对(needleman-wunsch)算法以及局部比对(smith-waterman)算法。对于全局对比算法,即查询序列与目标序列都是从头到尾的全部碱基进行比对,该算法在早期的蛋白序列比对中应用广泛,但是随着生物序列越来越多,越来越长,研究人员发现功能相关的蛋白之间虽然整体的序列相差甚远,但是常常具有相同的功能域,因此,仅利用全局对比算法进行DNA序列的比对则导致比对效率较低;而对于局部对比算法,求的是局部最优匹配序列,需要通过回溯实现,在长序列的场景下对该内存消耗要求较高,也并不适用。基于此,相关技术中的DNA序列的比对效率较低。
发明内容
本申请实施例提供一种分子序列的比对方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提高分子序列的比对效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种分子序列的比对方法,所述方法包括:
获取包括第一分子序列及第二分子序列的分子序列对,所述分子序列对中的每一个分子序列由多个单位分子组合而成;
对所述第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对所述第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;
其中,所述第一字符序列及所述第二字符序列均由多个单位字符组合而成,所述单位字符与所述单位分子存在对应关系;
将所述第一字符序列的字符与所述第二字符序列的字符进行字符比对,得到比对结果,所述比对结果用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
本申请实施例提供一种分子序列的比对装置,所述装置包括:
获取模块,用于获取包括第一分子序列及第二分子序列的分子序列对,所述分子序列对中的每一个分子序列由多个单位分子组合而成;
转化模块,用于对所述第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对所述第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;其中,所述第一字符序列及所述第二字符序列均由多个单位字符组合而成,所述单位字符与所述单位分子存在对应关系;
比对模块,用于将所述第一字符序列的字符与所述第二字符序列的字符进行字符比对,得到比对结果,所述比对结果用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在上述方案中,所述比对模块,还用于遍历i分别执行以下处理:针对所述第一字符序列中的前i个单位字符,将所述前i个单位字符分别与所述第二字符序列中前j个单位字符进行匹配,得到匹配结果;其中,i和j为自然数,0≤i≤M,0≤j≤N,M用于指示所述第一字符序列中所述单位字符的总数量,N用于指示所述第二字符序列中所述单位字符的总数量;基于所述匹配结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在上述方案中,所述比对模块,还用于遍历i以执行以下处理:针对所述第一字符序列中的第i个单位字符,遍历j,将所述第i个单位字符,分别与遍历得到的所述第二字符序列中第j个单位字符进行匹配,得到匹配结果。
在上述方案中,所述i和所述j分别为大于1的正整数,所述比对模块,还用于当所述匹配结果表征所述第一字符序列中第i个单位字符,与所述第二字符序列中第j个单位字符相匹配时,将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的目标操作的数量,确定为将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在上述方案中,所述比对模块,还用于当所述匹配结果表征所述第一字符序列中第i个字符,与所述第二字符序列中第j个单位字符不匹配时,获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量;基于所述最少数量,确定将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在上述方案中,所述目标操作包括字符添加操作、字符删除操作以及字符替换操作;所述比对模块,还用于获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符添加操作的第一数量;获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二数量;获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符替换操作的第三数量;从所述第一数量、所述第二数量以及所述第三数量中,选取最小的数量,并将所述最小的数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在上述方案中,所述j为大于1的正整数,所述目标操作包括字符添加操作,所述比对模块,还用于获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符添加操作的第一目标数量;将所述第一目标数量进行加一所得到的第一数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在上述方案中,所述i为大于1的正整数,所述目标操作包括字符删除操作,所述比对模块,还用于获取将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二目标数量;将所述第二目标数量进行加一所得到第二数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在上述方案中,所述i和所述j分别为大于1的正整数,所述目标操作包括字符替换操作,所述比对模块,还用于获取将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符替换操作的第三目标数量;将所述第三目标数量进行加一所得到第三数量,确定将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在上述方案中,所述装置还包括分析模块,所述分析模块,用于对所述第一分子序列进行分析,得到所述第一分子序列包括的多个单位分子,并对所述第二分子序列进行分析,得到所述第二分子序列包括的多个单位分子;获取所述单位分子与所述单位字符间的对应关系;所述转化模块,还用于基于所述对应关系,对所述第一分子序列包括的多个单位分子分别进行字符转化,得到第一字符序列;基于所述对应关系,对所述第二分子序列包括的多个单位分子分别进行字符转化,得到第二字符序列。
在上述方案中,所述装置还包括映射模块,所述映射模块,用于基于所述比对结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的最少数量;获取目标映射关系,并基于所述目标映射关系,对所述最少数量进行映射,得到映射结果;其中,所述目标映射关系用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的最少数量,与所述第一字符序列与所述第二字符序列之间的相似度的映射关系,所述映射结果用于指示所述第一字符序列与所述第二字符序列之间的相似度。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的分子序列的比对方法。
本申请实施例提供一种计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的分子序列的比对方法。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例提供的分子序列的比对方法。
本申请实施例具有以下有益效果:
在获取包括第一分子序列及第二分子序列的分子序列对后,通过对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列,然后将第一字符序列的字符与第二字符序列的字符进行字符比对,得到将第一字符序列转化为第二字符序列所需执行的目标操作的数量,也即第一分子序列及第二分子序列的比对结果。如此,在将第一分子序列及第二分子序列分别进行字符转化后,将第一字符序列转化为第二字符序列所需执行的目标操作的数量,确定为第一分子序列及第二分子序列的比对结果,避免了需要将两个分子序列从头到尾的全部碱基进行比对、以及需要通过回溯实现对比过程的情况,提高了分子序列比对过程的比对效率。
附图说明
图1是本申请实施例提供的分子序列的比对系统100的架构示意图;
图2是本申请实施例提供的电子设备的结构示意图;
图3是本申请实施例提供的分子序列的比对方法的流程示意图;
图4是本申请实施例提供的包括第一分子序列及第二分子序列的分子序列对的第一示意图;
图5是本申请实施例提供的包括第一分子序列及第二分子序列的分子序列对的第二示意图;
图6是本申请实施例提供的将第一字符序列的字符与第二字符序列的字符进行字符比对得到比对结果的流程示意图;
图7是本申请实施例提供的将第一字符序列的字符与第二字符序列的字符进行字符比对得到比对结果的第一过程示意图;
图8是本申请实施例提供的将第一字符序列转化为第二字符序列的过程的示意图;
图9是本申请实施例提供的将第一字符序列的字符与第二字符序列的字符进行字符比对得到比对结果的第二过程示意图;
图10是本申请实施例提供的执行字符添加操作的过程示意图;
图11是本申请实施例提供的执行字符删除操作的过程示意图;
图12是本申请实施例提供的执行字符替换操作的过程示意图;
图13是本申请实施例提供的分子序列的比对的流程示意图;
图14是本申请实施例提供的将第一字符序列转化为第二字符序列所需执行的目标操作的最少数量的确定过程的示意图;
图15是本申请实施例提供的DNA序列比对过程的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)客户端(Client),又称用户端,是指与服务器相对应的为用户提供本地服务的程序,除了一些只能在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务器相互配合运行,即需要网络中有相应的服务器和服务程序来提供相应的服务,这样在客户端和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
2)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
3)DNA序列比对,DNA序列比对是一种用于比较两个或多个DNA序列之间的相似性和差异性的方法,通过将两个或多个DNA序列进行对比,以确定它们之间的相似性和差异性。比对过程中,通常会使用算法来计算序列之间的距离或相似性得分。
4)脱氧核糖核酸(DNA,Deoxyribo Nucleic Acid),DNA是染色体的主要组分,以基因形式带有遗传信息,为活细胞的组织和功能所必需的物质,由两条线体相互盘绕组成双螺旋结构。
5)核糖核酸(RNA,Ribo Nucleic Acid),由核糖核苷酸经磷酯键缩合而成长链状分子,存在于生物细胞以及部分病毒、类病毒中的遗传信息载体。
6)标准信息交换码(ASCII,American-StandardCode-for-Information-Interchange),是一种对字符进行编辑的计算机代码,主要用于显示现代英语和其他西欧语言,是计算机中使用最广泛的字符集及其编码。
参见图1,图1是本申请实施例提供的分子序列的比对系统100的架构示意图,为实现分子序列的比对的应用场景,终端(示例性示出了终端400)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,终端400用于供用户使用客户端401,在显示界面(示例性示出了显示界面401-1)显示,终端400和服务器200通过有线或者无线网络相互连接。
其中,服务器200用于,获取包括第一分子序列及第二分子序列的分子序列对,分子序列对中的每一个分子序列由多个单位分子组合而成;对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;其中,第一字符序列及第二字符序列均由多个单位字符组合而成,单位字符与单位分子存在对应关系;将第一字符序列的字符与第二字符序列的字符进行字符比对,得到比对结果,比对结果用于指示,将第一字符序列转化为第二字符序列所需执行的目标操作的数量;发送比对结果至终端400;
终端400用于,接收服务器200发送的比对结果,并展示该比对结果。
一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDeliver Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、机顶盒、智能语音交互设备、智能家电、虚拟现实设备、车载终端、飞行器、以及移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备,智能音箱及智能手表)等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
对实施本申请实施例的分子序列的比对方法的电子设备进行说明。参见图2,图2是本申请实施例提供的电子设备的结构示意图,在实际应用中,电子设备可以为图1示出的服务器200或终端400,以电子设备是服务器为例,参见图2,图2所示的电子设备包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450的分子序列的比对装置455,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4551、转化模块4552、以及比对模块4553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的分子序列的比对装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的分子序列的比对方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的分子序列的比对方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如即时通信APP、网页浏览器APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
基于上述对本申请实施例提供的分子序列的比对系统及电子设备的说明,下面说明本申请实施例提供的分子序列的比对方法。在实际实施时,本申请实施例提供的分子序列的比对方法可以由终端或服务器单独实现,或者由终端及服务器协同实现,以由图1中的服务器200单独执行本申请实施例提供的分子序列的比对方法为例进行说明。参见图3,图3是本申请实施例提供的分子序列的比对方法的流程示意图,下面,将结合图3对示出的步骤进行说明。
步骤101,服务器获取包括第一分子序列及第二分子序列的分子序列对,分子序列对中的每一个分子序列由多个单位分子组合而成。
需要说明的是,分子序列对可以是由任意两个分子序列所形成的分子序列对,如分子序列对可以是DNA分子序列对,第一分子序列及第二分子序列可以是DNA分子,从而每一个分子序列包括的多个单位分子可以是用于形成DNA序列的四种不同的核苷酸即腺嘌呤、胸腺嘧啶、鸟嘌呤和胞嘧啶,示例性地,参见图4,图4是本申请实施例提供的包括第一分子序列及第二分子序列的分子序列对的第一示意图,基于图4,分子序列对是DNA分子序列对,401所指示的DNA分子序列为第一分子序列,402所指示的DNA分子序列为第二分子序列;
或者,分子序列对可以是RNA分子序列对,第一分子序列及第二分子序列可以是RNA分子,从而每一个分子序列包括的多个单位分子可以是用于形成RNA序列的四种不同的核苷酸即腺嘌呤、胞嘧啶、鸟嘌呤和尿嘧啶,示例性地,参见图5,图5是本申请实施例提供的包括第一分子序列及第二分子序列的分子序列对的第二示意图,基于图5,分子序列对是RNA分子序列对,501所指示的RNA分子序列为第一分子序列,502所指示的RNA分子序列为第二分子序列。
在实际实施时,对于获取包括第一分子序列及第二分子序列的分子序列对的过程,可以是,服务器直接获取包括第一分子序列及第二分子序列的分子序列对,例如,在生物信息学中,为了研究两个不同生物种类的相似性和差异性,直接获取这两个不同生物种类的DNA分子序列,从而基于这两个DNA分子序列,不同种类的生物间的进化关系和遗传变异;也可以是,首先获取待检测的第一分子序列,然后从分子序列库中,获取用于与第一分子序列进行比对的第二分子序列,从而基于第一分子序列及第二分子序列,确定分子序列对,例如,在医学领域,为了诊断和治疗遗传性疾病,首先获取待检测的患者的DNA分子序列,然后从DNA分子序列库中,获取正常人的DNA分子序列,从而基于这两个DNA分子序列,找出患者基因中的突变和变异。
步骤102,对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;其中,第一字符序列及第二字符序列均由多个单位字符组合而成,单位字符与单位分子存在对应关系。
在实际实施时,获取包括第一分子序列及第二分子序列的分子序列对之后,还可以,对第一分子序列进行分析,得到第一分子序列包括的多个单位分子,并对第二分子序列进行分析,得到第二分子序列包括的多个单位分子。
需要说明的是,对第一分子序列进行分析,得到第一分子序列包括的多个单位分子的过程,和对第二分子序列进行分析,得到第二分子序列包括的多个单位分子的过程,不仅用于分析得到各分子序列中包括的多个单位分子,还可以得到多个单位分子的排列顺序。示例性地,当第一分子序列和第二分子序列分别为DNA分子序列时,对第一分子序列进行分析,得到第一分子序列包括的多个单位分子的过程,和对第二分子序列进行分析,得到第二分子序列包括的多个单位分子的过程,也即是对DNA分子进行分析,得到DNA分子中包括的各种核苷酸以及各核苷酸的排列顺序。
然后,获取单位分子与单位字符间的对应关系,从而,对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列的过程,可以是,基于对应关系,对第一分子序列包括的多个单位分子分别进行字符转化,得到第一字符序列;而对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列的过程,可以是,基于对应关系,对第二分子序列包括的多个单位分子分别进行字符转化,得到第二字符序列。
在实际实施时,基于对应关系,对第一分子序列包括的多个单位分子分别进行字符转化,得到第一字符序列的过程,也即是,基于对应关系,获取各单位分子对应的单位字符,并将第一分子序列包括的多个单位分子,依次转化为对应的单位字符,得到第一字符序列;相应地,基于对应关系,对第二分子序列包括的多个单位分子分别进行字符转化,得到第二字符序列的过程也与上述过程相同,对此,本申请实施例不做赘述。
需要说明的是,这里的单位字符可以是数字、字、单词或符号中的一种或多种,字或单词可以是一个或多个语种的字或单词。例如,单位字符可以是罗马数字、阿拉伯数字、汉字、英文字母或单词、或者ASCII码等中的一种或多种。
接上述示例,第一分子序列和第二分子序列分别为DNA分子序列,当单位分子为形成DNA分子序列的核苷酸、单位字符为英文字母时,单位分子与单位字符间的对应关系也即四种不同的核苷酸与C、G、A、T这四个英文字母的对应关系,即腺嘌呤与A对应、胸腺嘧啶与T对应、鸟嘌呤与G、胞嘧啶和C对应,如此,基于对应关系,对第一分子序列包括的多个单位分子分别进行字符转化,得到第一字符序列ACGTAC,并基于对应关系,对第二分子序列包括的多个单位分子分别进行字符转化,得到第二字符序列ACTGTGCGA。
步骤103,将第一字符序列的字符与第二字符序列的字符进行字符比对,得到比对结果,比对结果用于指示,将第一字符序列转化为第二字符序列所需执行的目标操作的数量。
需要说明的是,将第一字符序列的字符与第二字符序列的字符进行字符比对,得到比对结果的过程,相当于将第一字符序列的字符转变为第二字符序列的字符所需执行的目标操作也即必要操作的数量,这里的必要操作包括字符删除操作、字符替换操作以及字符插入操作中至少之一;而将第一字符序列的字符转变为第二字符序列的字符的方式存在多种,例如,将第一字符序列的字符转变为第二字符序列的字符所需执行的目标操作的数量,可以是,将第一字符序列的字符转变为第二字符序列的字符所需执行的字符删除操作的数量,或者所需执行字符插入操作的数量,又或者是所需执行字符替换操作的数量,还可以是所需执行字符删除操作、字符替换操作以及字符插入操作中至少之一的最少数量等,对此,本申请实施例不做限定。
在一些实施例中,将第一字符序列的字符与第二字符序列的字符进行字符比对得到比对结果的过程,可以是,分别对i和j进行遍历,从而得到将第一字符序列的前i个单位字符转换为第二字符序列中前j个单位字符所需的目标操作的最少数量,具体地,参见图6,图6是本申请实施例提供的将第一字符序列的字符与第二字符序列的字符进行字符比对得到比对结果的流程示意图,基于图6,步骤103可以通过以下步骤所实现。
步骤1031,遍历i分别执行以下处理:针对第一字符序列中的前i个单位字符,将前i个单位字符分别与第二字符序列中前j个单位字符进行匹配,得到匹配结果;其中,i和j为自然数,0≤i≤M,0≤j≤N,M用于指示第一字符序列中单位字符的总数量,N用于指示第二字符序列中单位字符的总数量。
在实际实施时,针对第一字符序列中的前i个单位字符,将前i个单位字符分别与第二字符序列中前j个单位字符进行匹配,得到匹配结果的过程,具体包括,遍历i以执行以下处理:针对第一字符序列中的第i个单位字符,遍历j,将第i个单位字符,分别与遍历得到的第二字符序列中第j个单位字符进行匹配,得到匹配结果。
需要说明的是,这里的匹配结果为每一次匹配得到的结果,也即所得到的匹配结果的数量为多个,即个匹配结果。示例性地,当第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,M为6,N为9,这里的匹配结果为/>个即70个匹配结果,参见图7,图7是本申请实施例提供的将第一字符序列的字符与第二字符序列的字符进行字符比对得到比对结果的第一过程示意图,基于图7,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA,图7中每一个单元格都指示一个匹配过程和匹配结果,即指示将该单元格所对应的第i个字符,与该单元格对应的第j个字符进行匹配从而得到的匹配结果。
步骤1032,基于匹配结果,获取将第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在实际实施时,针对每一个匹配结果,获取将该匹配结果所指示的前i个单位字符,转化为该匹配结果所指示的前j个单位字符所需执行的目标操作的数量,从而基于多个数量中最后一个数量,确定将第一字符序列转化为第二字符序列所需执行的目标操作的数量,也即多个数量中最后一个数量指示将第一字符序列转化为第二字符序列所需执行的目标操作的数量。具体地,首先定义二维数组dp[i][j],该二维数组表示针对每一个匹配结果,将该匹配结果所指示的第一字符序列的前i个单位字符,转化为将该匹配结果所指示的第二字符序列中前j个单位字符所需的目标操作的数量;从而基于多个二维数组中最后一个二维数组,确定将第一字符序列转化为第二字符序列所需执行的目标操作的数量,也即多个二维数组中最后一个二维数组用于指示将第一字符序列转化为第二字符序列所需执行的目标操作的数量。
接上述示例,参见图7,图7中各单元格可以用二维数组dp[i][j]来表征,从而对于第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA,存在70个二维数组,即从二维数组dp[0][0]至二维数组dp[6][9],从而基于二维数组dp[6][9],确定将第一字符序列为ACGTAC,转化为第二字符序列为ACTGTGCGA所需的目标操作的最少数量,即二维数组dp[6][9]用于指示将第一字符序列为ACGTAC,转化为第二字符序列为ACTGTGCGA所需的目标操作的数量。
在实际实施时,针对每一个匹配结果,基于该匹配结果所指示的匹配与否,获取将该匹配结果所指示的前i个单位字符,转化为该匹配结果所指示的前j个单位字符所需执行的目标操作的数量的过程也存在不同。
在一些实施例中,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符相匹配,基于匹配结果,获取将第一字符序列转化为第二字符序列所需执行的目标操作的数量的过程,可以是,当匹配结果表征第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符相匹配时,将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的目标操作的数量,确定为将第一字符序列转化为第二字符序列所需执行的目标操作的数量;i和j分别为大于1的正整数。
需要说明的是,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符相匹配时,即第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符对将第一字符序列转化为第二字符序列的过程没有影响,此时,dp[i][j]参考dp[i-1][j-1],也即dp[i][j]=dp[i-1][j-1],具体地,参见图8,图8是本申请实施例提供的将第一字符序列转化为第二字符序列的过程的示意图,基于图8,第一字符序列中最后一个单位字符,与第二字符序列中最后一个单位字符相等,删除第一字符序列中最后一个单位字符,与第二字符序列中最后一个单位字符后,将第一字符序列转化为第二字符序列所需执行的目标操作的数量不变,dp[i][j]参考dp[i-1][j-1],也即dp[i][j]=dp[i-1][j-1]。
需要说明的是,当i和j其中至少之一为0时,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不存在相匹配的情况;当i=1且j为大于1的正整数时,将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符,即是将第一字符序列的单位字符之前,依次添加第二字符序列中前j-1个单位字符;当i为大于1的正整数且j=1时,将第一字符序列中前i-1个单位字符进行删除;当i=1且j=1时,则无需将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符,即dp[0][0]所指示的将第一字符序列转化为第二字符序列所需执行的目标操作的数量为0。
示例性地,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,参见图9,图9是本申请实施例提供的将第一字符序列的字符与第二字符序列的字符进行字符比对得到比对结果的第二过程示意图,基于图9,当第一字符序列中第2个单位字符,与第二字符序列中第2个单位字符相匹配时,此时dp[2][2]=dp[1][1],而针对dp[1][1],则第一字符序列中第1个单位字符,与第二字符序列中第1个单位字符相匹配,此时dp[1][1]=dp[0][0],而dp[0][0]所指示的将第一字符序列转化为第二字符序列所需执行的目标操作的数量为0,则dp[2][2]等于0,即将第一字符序列的前2个单位字符,转化为第二字符序列的前2个单位字符所需执行的目标操作的数量为0。
在另一些实施例中,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配,基于匹配结果,获取将第一字符序列转化为第二字符序列所需执行的目标操作的数量的过程,可以是,当匹配结果表征第一字符序列中第i个字符,与第二字符序列中第j个单位字符不匹配时,获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量;基于最少数量,确定将第一字符序列转化为第二字符序列所需执行的目标操作的数量。
需要说明的是,这里的目标操作包括字符添加操作、字符删除操作以及字符替换操作中至少之一;当第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配时,获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量的过程,可以是,获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符添加操作的第一数量;获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二数量;获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符替换操作的第三数量;从第一数量、第二数量以及第三数量中,选取最小的数量,并基于最小的数量,确定将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在实际实施时,基于最少数量,确定将第一字符序列转化为第二字符序列所需执行的目标操作的数量的过程,可以是,获取目标最少数量,该目标最少数量用于指示,当i等于M、j等于N时,将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量,从而将该目标最少数量,确定为将第一字符序列转化为第二字符序列所需执行的目标操作的数量。
示例性地,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,获取将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的字符添加操作的第一数量;获取将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的字符删除操作的第二数量;获取将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的字符替换操作的第三数量;从第一数量、第二数量以及第三数量中,选取最小的数量,并将最小的数量,确定为将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的目标操作的最少数量。
接下来,分别基于目标操作的差异,对获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量的过程进行说明。
在一些实施例中,目标操作包括字符添加操作,获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量的过程,也即获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符添加操作的第一数量的过程,可以是,获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符添加操作的第一目标数量;将第一目标数量进行加一所得到的第一数量,确定为将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量;j为大于1的正整数。
需要说明的是,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配时,如果执行字符添加操作,参见图10,图10是本申请实施例提供的执行字符添加操作的过程示意图,基于图10,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配时,则可以在第一字符序列最后添加一个与第二字符序列的最后一个字符相等的单位字符,此时,第一字符序列中第i+1个单位字符,与第二字符序列中第j个单位字符相匹配,则dp[i+1][j]参考dp[i][j-1],再结合最开始添加字符的一个操作,则dp[i][j]=dp[i][j-1]+1。
示例性地,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,如果执行字符添加操作,dp[6][9]=dp[6][8]+1,如图9所示,第一字符序列中第6个单位字符,与第二字符序列中第8个单位字符不匹配,则获取将第一字符序列中前6个单位字符,转化为第二字符序列中前8个单位字符所需执行的目标操作的最少数量即dp[6][8],而获取dp[6][8]的过程,和获取dp[6][9]的过程相同,对此,本申请实施例不做赘述,这里,获取的dp[6][8]为3,则dp[6][9]=3+1=4,则将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的字符添加操作的第一数量也即最少数量为4。
需要说明的是,当j=0时,无法执行字符添加操作也即执行字符添加操作不会将第一字符序列转化为第二字符序列,当j=1时,将第一字符序列中前i个单位字符,转化为第二字符序列中前j-1个单位字符,即是将第一字符序列中前i个单位字符,转化为第二字符序列中第1个单位字符,则过程与前文相同,对此本申请实施例不做赘述。
在一些实施例中,目标操作包括字符删除操作,获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量的过程,也即获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二数量的过程,可以是,获取将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二目标数量;将第二目标数量进行加一所得到第二数量,确定为将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量;其中,i为大于1的正整数。
需要说明的是,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配时,如果执行字符删除操作,参见图11,图11是本申请实施例提供的执行字符删除操作的过程示意图,基于图11,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配时,则可以删去第一字符序列最后一个单位字符,此时,将第一字符序列中第i-1个单位字符,转化为第二字符序列中第j个单位字符所需执行的目标操作的最少数量为dp[i-1][j],再结合最开始删除字符的一个操作,则dp[i][j]=dp[i-1][j]+1。
示例性地,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,如果执行字符删除操作,dp[6][9]=dp[5][9]+1,如图9所示,第一字符序列中第5个单位字符,与第二字符序列中第9个单位字符相匹配,则dp[5][9]=dp[4][8],如图9所示,第一字符序列中第4个单位字符,与第二字符序列中第8个单位字符不匹配,则获取将第一字符序列中前4个单位字符,转化为第二字符序列中前8个单位字符所需执行的目标操作的最少数量即dp[4][8],而获取dp[4][8]的过程,和获取dp[6][9]的过程相同,对此,本申请实施例不做赘述,这里,获取的dp[4][8]为4,则dp[6][9]=4+1=5,则将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的字符删除操作的第二数量也即最少数量为5。
需要说明的是,当i=0时,无法执行字符删除操作也即执行字符删除操作不会将第一字符序列转化为第二字符序列,当i=1时,将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j个单位字符,即是将第一字符序列中第1个单位字符,转化为第二字符序列中前j个单位字符,则过程与前文相同,对此本申请实施例不做赘述。
在另一些实施例中,目标操作包括字符替换操作,获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量的过程,也即获取将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符替换操作的第二数量的过程,可以是,获取将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符替换操作的第三目标数量;将第三目标数量进行加一所得到第三数量,确定将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量;其中,i和j分别为大于1的正整数。
需要说明的是,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配时,如果执行字符替换操作,参见图12,图12是本申请实施例提供的执行字符替换操作的过程示意图,基于图12,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符不匹配时,则可以将第一字符序列最后一个单位字符修改成第二字符序列最后一个单位字符,此时,第一字符序列中第i个单位字符,与第二字符序列中第j个单位字符相匹配,则dp[i][j]参考dp[i-1][j-1],再结合最开始添加字符的一个操作,则dp[i][j]=dp[i-1][j-1]+1。
示例性地,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,如果执行字符替换操作,dp[6][9]=dp[5][8]+1,如图9所示,第一字符序列中第5个单位字符,与第二字符序列中第8个单位字符不匹配,则获取将第一字符序列中前5个单位字符,转化为第二字符序列中前8个单位字符所需执行的目标操作的最少数量即dp[5][8],而获取dp[5][8]的过程,和获取dp[6][9]的过程相同,对此,本申请实施例不做赘述,这里,获取的dp[5][8]为4,则dp[6][9]=4+1=5,则将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的字符替换操作的第二数量也即最少数量为5。
需要说明的是,当i和j其中至少之一为0时,无法执行字符替换操作也即执行字符替换操作不会将第一字符序列转化为第二字符序列,当i=1且j为大于1的正整数时,将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符,即是将第一字符序列的单位字符之前,依次添加第二字符序列中前j-1个单位字符;当i为大于1的正整数且j=1时,将第一字符序列中前i-1个单位字符进行删除;当i=1且j=1时,则无需将第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符,即dp[0][0]所指示的将第一字符序列转化为第二字符序列所需执行的目标操作的数量为0。
在实际实施时,在获取第一数量和第二数量以及第三数量后,可以如前文所述,将从第一数量、第二数量以及第三数量中,选取最小的数量,并基于最小的数量,确定将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。接上述示例,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,第一数量为4、第二数量为5、第三数量也为5,则将第一字符序列中前6个单位字符,转化为第二字符序列中前9个单位字符所需执行的目标操作的最少数量为4,也即,将第一字符序列转化为第二字符序列所需执行的目标操作的数量为4。
需要说明的是,在遍历i和j的过程中,可以确定二维数组的初始值。当i=0时,表示第一字符序列为空字符串,此时将第一字符序列转换为第二字符序列所需的目标操作的最少数量为j(即将第二字符序列的前j个字符全部插入到第一字符序列中)。同理,当j=0时,表示第二字符序列为空字符串,此时将第一字符序列转换为第二字符序列所需的目标操作的最少数量为i(即将第一字符序列的前i个字符全部删除),如此,确定了dp[0][0]、dp[i][0]和dp[0][j],示例性地,如图9所示,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA,在遍历i和j的过程中,确定二维数组的初始值,则dp[0][0]=1、dp[1][0]=1、dp[2][0]=2、……、dp[6][0]=6、dp[0][1]=1、dp[0][2]=2、……、dp[0][9]=9,具体地,
for i=0 to len(word1)do
dp[i][0]=i;
done
for j=0 to len(word2)do
dp[0][j]=j;
done
其中,word1指示第一字符序列,word2指示第二字符序列,如此,确定了二维数组的初始值,将二维数组的初始值带入上述过程,确定dp[i][j]。
需要说明的是,在遍历i和j的过程中,基于匹配结果,可以依次确定dp[i][j],具体地,
for i=1 to len(word1)do
forj=1 to len(word2)do
if word1[i]==word2[j]
dp[i][j]=dp[i-1][j-1];
else
dp[i][j]=min{dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+1};
done
done
return dp[len(word1)][len(word2)];
其中,word1指示第一字符序列,word2指示第二字符序列,如此,依次确定将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量,示例性地,如图9所示,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA,在遍历i和j的过程中,在确定二维数组的初始值之后,分别基于各匹配结果,依次确定dp[1][1]、dp[1][2]、……、dp[1][9]、dp[2][1]、dp[2][2]、……、dp[2][9]、dp[3][1]、……、dp[3][9]、……、dp[6][9],从而基于dp[6][9],确定为将第一字符序列的字符与第二字符序列的字符进行字符比对得到的比对结果。
在一些实施例中,将第一字符序列的字符与第二字符序列的字符进行字符比对,得到比对结果之后,还可以,基于比对结果,获取将第一字符序列转化为第二字符序列所需执行的目标操作的最少数量;获取目标映射关系,并基于目标映射关系,对最少数量进行映射,得到映射结果;其中,目标映射关系用于指示,将第一字符序列转化为第二字符序列所需执行的目标操作的最少数量,与第一字符序列与第二字符序列之间的相似度的映射关系,映射结果用于指示第一字符序列与第二字符序列之间的相似度。
需要说明的是,这里的最少数量用于指示第一字符序列与第二字符序列的距离,可以直接将最少数量确定为第一字符序列与第二字符序列之间的相似度,也可以获取目标映射关系,从而基于目标映射关系以及最少数量,确定第一字符序列与第二字符序列之间的相似度。例如,这里的目标映射关系可以是当最少数量归属于[1,3)这一区间时,第一字符序列与第二字符序列之间的相似度为90%,当最少数量归属于[3,5)这一区间时,第一字符序列与第二字符序列之间的相似度为85%,当最少数量为0时,第一字符序列与第二字符序列之间的相似度为100%等。
下面,继续对本申请实施例提供的分子序列的比对方法进行介绍,参见图13,图13是本申请实施例提供的分子序列的比对的流程示意图,这里,本申请实施例提供的分子序列的比对方法由终端、服务器协同实施。
步骤201,客户端响应于分子序列对的上传操作,获取包括第一分子序列及第二分子序列的分子序列对;其中,分子序列对中的每一个分子序列由多个单位分子组合而成。
在实际实施时,客户端可以是设置于终端的客户端,分子序列对可以由用户基于该客户端的人机交互界面,触发人机交互界面中的上传功能项使客户端在人机交互界面呈现分子序列对选择界面,用户(例如可以是在客户端上进行操作的对象或人工智能程序)则基于该分子序列对选择界面,从终端上传分子序列对,从而使得客户端获得上传的分子序列对,这里,从终端上传的分子序列对可以是预先存储于终端本地的,也可以是由与终端通信连接的其他设备所发送的,对此,本申请实施例不做限定。
步骤202,将分子序列对发送至服务器。
步骤203,服务器接收分子序列对,并对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;其中,第一字符序列及第二字符序列均由多个单位字符组合而成,单位字符与单位分子存在对应关系。
步骤204,遍历i以执行以下处理:针对第一字符序列中的第i个单位字符,遍历j,将第i个单位字符,分别与遍历得到的第二字符序列中第j个单位字符进行匹配,得到匹配结果;其中,i和j为自然数,0≤i≤M,0≤j≤N,M用于指示第一字符序列中单位字符的总数量,N用于指示第二字符序列中单位字符的总数量。
需要说明的是,这里的匹配结果为每一次匹配得到的结果,也即所得到的匹配结果的数量为多个,即个匹配结果。示例性地,当第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA时,M为6,N为9,这里的匹配结果为/>个即70个匹配结果,如图7所示,图7中每一个单元格都指示一个匹配过程和匹配结果,即指示将该单元格所对应的第i个字符,与该单元格对应的第j个字符进行匹配从而得到的匹配结果。
步骤205,在遍历i和j的过程中,基于各匹配结果,获取将该匹配结果所指示的前i个单位字符,转化为该匹配结果所指示的前j个单位字符所需执行的目标操作的最少数量。
在实际实施时,在遍历i和j的过程中,首先确定二维数组dp[i][j]的初始值,该二维数组表示针对每一个匹配结果,将该匹配结果所指示的第一字符序列的前i个单位字符,转化为将该匹配结果所指示的第二字符序列中前j个单位字符所需的目标操作的数量,具体地,
for i=0 to len(word1)do
dp[i][0]=i;
done
for j=0 to len(word2)do
dp[0][j]=j;
done
其中,word1指示第一字符序列,word2指示第二字符序列。
然后,再基于各匹配结果,可以依次确定dp[i][j],具体地,
for i=1 to len(word1)do
for j=1 to len(word2)do
if word1[i]==word2[j]
dp[i][j]=dp[i-1][j-1];
else
dp[i][j]=min{dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+1};
done
done
return dp[len(word1)][len(word2)];
如此,依次确定将第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量,示例性地,参见图14,图14是本申请实施例提供的将第一字符序列转化为第二字符序列所需执行的目标操作的最少数量的确定过程的示意图,基于图14,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA,图14中的b所指示的为在遍历i和j的过程中,确定的二维数组dp[i][j]的初始值,即dp[0][0]=1、dp[1][0]=1、dp[2][0]=2、……、dp[6][0]=6、dp[0][1]=1、dp[0][2]=2、……、dp[0][9]=9。
图14中的c所指示的为当i为1时,分别确定dp[1][1]、dp[1][2]、……、dp[1][9],例如,针对dp[1][1],第一字符序列中第一个单位字符A与第二字符序列中第一个单位字符A相匹配,则将第一字符序列中第一个单位字符,转化为第二字符序列中第一个单位字符所需执行的目标操作的最少数量dp[1][1]的过程,可以是,dp[i][j]=dp[i-1][j-1],即dp[1][1]=dp[0][0],基于初始化结果,dp[0][0]为0,则dp[1][1]也为0。
图14中的d所指示的为当i为2时,分别确定dp[2][1]、dp[2][2]、……、dp[2][9],例如,针对dp[2][9],第一字符序列中第2个单位字符C与第二字符序列中第一个单位字符A不匹配,则将第一字符序列中前两个单位字符,转化为第二字符序列中前九个单位字符所需执行的目标操作的最少数量dp[2][9]的过程,即分别获取dp[i-1][j]+1即dp[1][9]+1=10、dp[i][j-1]+1即dp[2][8]+1=7、dp[i-1][j-1]+1即dp[1][8]+1=8,并获取最小的数量,即dp[2][8]+1=7,从而将该最小的数量,确定为dp[2][9]的值。
如此,图14中的e所指示的为当i为3时,分别确定dp[3][1]、dp[3][2]、……、dp[3][9];图14中的f所指示的为当i为4时,分别确定dp[4][1]、dp[4][2]、……、dp[4][9];图14中的g所指示的为当i为5时,分别确定dp[5][1]、dp[5][2]、……、dp[5][9];图14中的h所指示的为当i为6时,分别确定dp[6][1]、dp[6][2]、……、dp[6][9]。
步骤206,当遍历到i为M、j为N时,将获取的将第一字符序列的前i个单位字符,转化为第二字符序列的前j个单位字符所需执行的目标操作的最少数量,确定为第一字符序列的字符与第二字符序列的字符的比对结果。
接上述示例,如图14所示,第一字符序列为ACGTAC,第二字符序列为ACTGTGCGA,当遍历到i为6、j为9时,将获取的将第一字符序列的前i个单位字符,转化为第二字符序列的前j个单位字符所需执行的目标操作的最少数量dp[6][9],确定为第一字符序列的字符与第二字符序列的字符的比对结果。
步骤207,服务器发送针对第一分子序列及第二分子序列的比对结果至客户端。
步骤208,客户端展示针对第一分子序列及第二分子序列的比对结果。
在实际实施时,客户端可以在人机交互界面中展示针对第一分子序列及第二分子序列的比对结果,还可以将针对第一分子序列及第二分子序列的比对结果保存至终端本地,还可以将针对第一分子序列及第二分子序列的比对结果发送至与终端通信连接的其他设备等。
应用本申请上述实施例,在获取包括第一分子序列及第二分子序列的分子序列对后,通过对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列,然后将第一字符序列的字符与第二字符序列的字符进行字符比对,得到将第一字符序列转化为第二字符序列所需执行的目标操作的数量,也即第一分子序列及第二分子序列的比对结果。如此,在将第一分子序列及第二分子序列分别进行字符转化后,将第一字符序列转化为第二字符序列所需执行的目标操作的数量,确定为第一分子序列及第二分子序列的比对结果,避免了需要将两个分子序列从头到尾的全部碱基进行比对、以及需要通过回溯实现对比过程的情况,提高了分子序列比对过程的比对效率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
DNA序列比对是一种用于比较两个或多个DNA序列之间的相似性和差异性的方法。在生物学、基因工程和生物信息学等领域中,DNA序列它由四种不同的核苷酸(腺嘌呤、胸腺嘧啶、鸟嘌呤和鳞嘌呤)组成,这些核苷酸按照一定的顺序排列,形成了DNA序列。示例性地,在基因工程中,DNA序列比对可以用于识别特定的基因序列,从而设计出更加有效的基因工程技术,例如,可以通过比对不同生物种类的基因组序列,找出它们之间的共同点和差异点;在生物信息学中,DNA序列比对可以用于通过比对不同生物种类的DNA序列,研究它们之间的相似性和差异性,了解它们的进化关系和遗传变异,从而更好地理解生物的起源和演化;在医学方面,DNA序列比对可以用于诊断和治疗遗传性疾病,通过比对患者和正常人的DNA序列,可以找出患者基因中的突变和变异,从而诊断出患者患有的遗传性疾病,并设计出更加有效的治疗方案。
然而,相关技术中的DNA序列比对方法主要为全局比对(needleman-wunsch)算法以及局部比对(smith-waterman)算法。对于全局对比算法,即查询序列与目标序列都是从头到尾的全部碱基进行比对,该算法在早期的蛋白序列比对中应用广泛,但是随着生物序列越来越多,越来越长,研究人员发现功能相关的蛋白之间虽然整体的序列相差甚远,但是常常具有相同的功能域,因此,仅利用全局对比算法进行DNA序列的比对则导致比对效率较低;而对于局部对比算法,求的是局部最优匹配序列,需要通过回溯实现,在长序列的场景下对该内存消耗要求较高,也并不适用。
基于此,本申请实施例提供一种基于动态规划的非回溯性内存优化DNA序列对比算法,通过使用时间消耗换取空间内存消耗的方式,实现了一种新的DNA序列对比算法。
需要说明的是,该算法使用到了动态规划的思想,主要用于解决具有重叠子问题和最优子结构性质的问题。动态规划的基本思想是将原问题划分成若干个子问题,先求解子问题,再根据子问题的解推导出原问题的解。动态规划算法的求解过程通常可以分为以下几个步骤:1、定义状态:将原问题转化为子问题,并定义状态表示子问题的解。2、定义状态转移方程:根据子问题之间的关系,定义状态转移方程,用于计算当前子问题的解。3、定义初始状态:确定最简单的子问题的解,即初始状态。4、计算顺序:按照一定的顺序计算子问题的解,通常采用自底向上的方式。5、计算最终结果:根据所有子问题的解,计算出原问题的解。
需要说明的是,为方便理解该算法,示例性地,对两个单词进行动态规划的过程进行说明。首先,给定两个单词word1和word2,确定将word1转换成word2所使用的最少操作数(最少数量),具体地,可以对一个单词进行如下三种操作:插入一个字符(字符添加操作)、删除一个字符(字符删除操作)和替换一个字符(字符替换操作)。其中0<=word1.length,word2.length<=500,word1和word2由小写英文字母组成。例如,输入:word1=“horse”,word2=“ros”,输出操作数,具体地,首先通过替换一个字符,将“h”替换为“r”即horse->rorse,然后通过删除一个字符,删除“r”即rorse->rose,最后再通过删除一个字符,删除“e”即rose->ros。而从动态规划角度来分析该算法问题,则首先需要定义一个二维数组dp[i][j],表示将字符串word1(第一字符序列)的前i个字符转换为字符串word2(第二字符序列)的前j个字符所需的最少操作数,其中i和j的取值范围分别为[1,len(word1)]和[1,len(word2)]。
其次,需要确定dp[i][j]的初始值。当i=0时,表示word1为空字符串,此时将word1转换为word2所需的最少操作数为j(即将word2的前j个字符全部插入到word1中)。同理,当j=0时,表示word2为空字符串,此时将word1转换为word2所需的最少操作数为i(即将word1的前i个字符全部删除)。
然后,需要确定dp[i][j]的剩余部分,即动态规划最为重要的状态转移方程的定义部分。假设当前正在处理word1的第i个字符和word2的第j个字符,分以下两种情况:
(1)如果word1[i]等于word2[j],则不需要进行任何操作,如图8所示,此时尾部已经对齐,只需要word1的前i-1个字符和word2的前j-1个字符,这转移到了子问题的求解上,刚好为dp[i-1][j-1]数值的含义,即dp[i][j]=dp[i-1][j-1]。
(2)如果word1[i]不等于=word2[j],如要保证最终处理后的word1和word2相等,则可以进行以下三种操作:
操作1、插入一个字符,如图10所示,将word1的前i个字符串转换为word2的前j-1字符串,然后在word1的第i个位置插入word2[j],那么剩下的问题变为了word1的前i个字符和word2的前j-1个字符的距离,word1[i+1]=word2[j]。即状态转移为dp[i][j]=dp[i][j-1]+1。
操作2、删除一个字符,如图11所示,将word1的前i-1个字符转换为word2的前j个字符,然后删除word1[i],那么剩下的问题变为了word1的前i-1个字符和word2的前j个字符的距离,即状态转移为dp[i][j]=dp[i-1][j]+1。
操作3、替换一个字符,如图12所示,将word1的前i-1个字符转换为word2的前j-1个字符,然后将word1的第i个字符替换为word2的第j个字符,即状态转移为dp[i][j]=dp[i-1][j-1]+1。
最终,dp[len(word1)][len(word2)]即为将word1转换为word2所需的最少操作数。
在实际实施时,对于将动态规划的方法应用至DNA序列比对的过程,参见图15,图15是本申请实施例提供的DNA序列比对过程的示意图,基于图15,将动态规划的方法应用至DNA序列比对的过程由步骤1501至步骤1506所实现,具体地,步骤1501,开始DNA分子序列对的比对过程;然后步骤1502,获取两个DNA序列(长度分别为m、n),也即获取两个DNA分子序列(分子序列对)即第一DNA分子序列和第二DNA分子序列(第一分子序列和第二分子序列),其中,第一DNA分子序列的长度为m(包括m个单位分子),第二DNA分子序列的长度为n(包括n个单位分子);接着步骤1503,根据两个DNA序列,初始化状态数组(二维数组),也即前文所述的确定二维数组的初始值的过程,同时,也在下文示例中针对初始化状态转移数组的过程进行具体说明,这里不做赘述;然后步骤1504,根据状态转移公式,不断递进计算状态转移数组dp[i][j];接着步骤1505,输出dp[m][n]作为两个DNA序列间距离的最终结果,也即当遍历到i为m,j为n时,输出dp[m][n]作为最终两个DNA序列间的距离;最后步骤1506,结束DNA分子序列对的比对过程。
作为示例,两个DNA序列为序列A和序列B,其中,DNA序列A为ACGTAC(第一字符序列),DNA序列B为ACTGTGCGA(第二字符序列),从而来计算DNA序列A和DNA序列B之间的最小距离。具体步骤如下:
首先,需要初始化状态转移数组。如图14中的a所示,其中列方向为A、C、G、T、A、C表示DNA序列A在下标分别为0、1、2、3、4、5、6时对应的字符状态。同样,行方向的A、C、T、G、T、G、C、G、A表示DNA序列B在下标分别为0、1、2、3…9时对应的字符状态。第2行第4列单元格数组代表的是序列AC到序列ACTG的距离。而对于初始化状态转移数组的过程,如图14中的b所示,具体地,当i=0时,表示DNA序列A为空字符串,此时将DNA序列A转换为DNA序列B所需的最少操作数为j(即将DNA序列B的前j个核苷酸全部插入到DNA序列A中)。同理,当j=0时,表示DNA序列B为空字符串,此时将DNA序列A转换为DNA序列B所需的最少操作数为i(即将DNA1的前i个核苷酸全部删除)。
其次,根据状态转移,确定dp[i][j],具体地,需要比较DNA序列A中第i个字符和DNA序列B中第j个字符是否相等,倘若相等状态转移数组dp[i][j]=dp[i-1][j-1],倘若不等dp[i][j]=min{dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+1}。故而,从i=1至i=6第六行状态转移表,如图14中的b至图14中的h所示。
最终,可以确定dp[6][9]=4,也即代表DNA序列A到DNA序列B的距离为4。
这样,通过调用本算法,比较一个DNA序列对之间的距离,达到生物科学工程的某些目的。若目标DNA与对比DNA之间的距离越小,说明相似度越高,则说明两个DNA越相似。如此,通过本申请,实现了在时间消耗和内存消耗的平衡。
应用本申请上述实施例,在获取包括第一分子序列及第二分子序列的分子序列对后,通过对第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对第二分子序列中各单位分子分别进行字符转化,得到第二字符序列,然后将第一字符序列的字符与第二字符序列的字符进行字符比对,得到将第一字符序列转化为第二字符序列所需执行的目标操作的数量,也即第一分子序列及第二分子序列的比对结果。如此,在将第一分子序列及第二分子序列分别进行字符转化后,将第一字符序列转化为第二字符序列所需执行的目标操作的数量,确定为第一分子序列及第二分子序列的比对结果,避免了需要将两个分子序列从头到尾的全部碱基进行比对、以及需要通过回溯实现对比过程的情况,提高了分子序列比对过程的比对效率。
下面继续说明本申请实施例提供的分子序列的比对装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的分子序列的比对装置455中的软件模块可以包括:
获取模块4551,用于获取包括第一分子序列及第二分子序列的分子序列对,所述分子序列对中的每一个分子序列由多个单位分子组合而成;
转化模块4552,用于对所述第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对所述第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;其中,所述第一字符序列及所述第二字符序列均由多个单位字符组合而成,所述单位字符与所述单位分子存在对应关系;
比对模块4553,用于将所述第一字符序列的字符与所述第二字符序列的字符进行字符比对,得到比对结果,所述比对结果用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在一些实施例中,所述比对模块4553,还用于遍历i分别执行以下处理:针对所述第一字符序列中的前i个单位字符,将所述前i个单位字符分别与所述第二字符序列中前j个单位字符进行匹配,得到匹配结果;其中,i和j为自然数,0≤i≤M,0≤j≤N,M用于指示所述第一字符序列中所述单位字符的总数量,N用于指示所述第二字符序列中所述单位字符的总数量;基于所述匹配结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在一些实施例中,所述比对模块4553,还用于遍历i以执行以下处理:针对所述第一字符序列中的第i个单位字符,遍历j,将所述第i个单位字符,分别与遍历得到的所述第二字符序列中第j个单位字符进行匹配,得到匹配结果。
在一些实施例中,所述i和所述j分别为大于1的正整数,所述比对模块4553,还用于当所述匹配结果表征所述第一字符序列中第i个单位字符,与所述第二字符序列中第j个单位字符相匹配时,将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的目标操作的数量,确定为将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在一些实施例中,所述比对模块4553,还用于当所述匹配结果表征所述第一字符序列中第i个字符,与所述第二字符序列中第j个单位字符不匹配时,获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量;基于所述最少数量,确定将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
在一些实施例中,所述目标操作包括字符添加操作、字符删除操作以及字符替换操作;所述比对模块4553,还用于获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符添加操作的第一数量;获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二数量;获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符替换操作的第三数量;从所述第一数量、所述第二数量以及所述第三数量中,选取最小的数量,并将所述最小的数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在一些实施例中,所述j为大于1的正整数,所述目标操作包括字符添加操作,所述比对模块4553,还用于获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符添加操作的第一目标数量;将所述第一目标数量进行加一所得到的第一数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在一些实施例中,所述i为大于1的正整数,所述目标操作包括字符删除操作,所述比对模块4553,还用于获取将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二目标数量;将所述第二目标数量进行加一所得到第二数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在一些实施例中,所述i和所述j分别为大于1的正整数,所述目标操作包括字符替换操作,所述比对模块4553,还用于获取将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符替换操作的第三目标数量;将所述第三目标数量进行加一所得到第三数量,确定将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
在一些实施例中,所述装置还包括分析模块,所述分析模块,用于对所述第一分子序列进行分析,得到所述第一分子序列包括的多个单位分子,并对所述第二分子序列进行分析,得到所述第二分子序列包括的多个单位分子;获取所述单位分子与所述单位字符间的对应关系;所述转化模块,还用于基于所述对应关系,对所述第一分子序列包括的多个单位分子分别进行字符转化,得到第一字符序列;基于所述对应关系,对所述第二分子序列包括的多个单位分子分别进行字符转化,得到第二字符序列。
在一些实施例中,所述装置还包括映射模块,所述映射模块,用于基于所述比对结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的最少数量;获取目标映射关系,并基于所述目标映射关系,对所述最少数量进行映射,得到映射结果;其中,所述目标映射关系用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的最少数量,与所述第一字符序列与所述第二字符序列之间的相似度的映射关系,所述映射结果用于指示所述第一字符序列与所述第二字符序列之间的相似度。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本申请实施例上述的分子序列的比对方法,例如,如图3示出的分子序列的比对方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的分子序列的比对方法,例如,如图3示出的分子序列的比对方法。
在一些实施例中,计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随即存储器(Random Access Memory,RAM)、可擦写可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超字符标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
需要说明的是,在本申请实施例中,涉及到获取分子序列对或分子序列等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获取相应的许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
综上所述,通过本申请实施例具有以下有益效果:
在将第一分子序列及第二分子序列分别进行字符转化后,将第一字符序列转化为第二字符序列所需执行的目标操作的数量,确定为第一分子序列及第二分子序列的比对结果,避免了需要将两个分子序列从头到尾的全部碱基进行比对、以及需要通过回溯实现对比过程的情况,提高了分子序列比对过程的比对效率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种分子序列的比对方法,其特征在于,所述方法包括:
获取包括第一分子序列及第二分子序列的分子序列对,所述分子序列对中的每一个分子序列由多个单位分子组合而成;
对所述第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对所述第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;
其中,所述第一字符序列及所述第二字符序列均由多个单位字符组合而成,所述单位字符与所述单位分子存在对应关系;
将所述第一字符序列的字符与所述第二字符序列的字符进行字符比对,得到比对结果,所述比对结果用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
2.如权利要求1所述的方法,其特征在于,所述将所述第一字符序列的字符与所述第二字符序列的字符进行字符比对,得到比对结果,包括:
遍历i分别执行以下处理:
针对所述第一字符序列中的前i个单位字符,将所述前i个单位字符分别与所述第二字符序列中前j个单位字符进行匹配,得到匹配结果;
其中,i和j为自然数,0≤i≤M,0≤j≤N,M用于指示所述第一字符序列中所述单位字符的总数量,N用于指示所述第二字符序列中所述单位字符的总数量;
基于所述匹配结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
3.如权利要求2所述的方法,其特征在于,针对所述第一字符序列中的前i个单位字符,将所述前i个单位字符分别与所述第二字符序列中前j个单位字符进行匹配,得到匹配结果,包括:
遍历i以执行以下处理:
针对所述第一字符序列中的第i个单位字符,遍历j,将所述第i个单位字符,分别与遍历得到的所述第二字符序列中第j个单位字符进行匹配,得到匹配结果。
4.如权利要求2所述的方法,其特征在于,所述i和所述j分别为大于1的正整数,所述基于所述匹配结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量,包括:
当所述匹配结果表征所述第一字符序列中第i个单位字符,与所述第二字符序列中第j个单位字符相匹配时,将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的目标操作的数量,确定为将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
5.如权利要求2所述的方法,其特征在于,所述基于所述匹配结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量,包括:
当所述匹配结果表征所述第一字符序列中第i个字符,与所述第二字符序列中第j个单位字符不匹配时,获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量;
基于所述最少数量,确定将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
6.如权利要求5所述的方法,其特征在于,所述目标操作包括字符添加操作、字符删除操作以及字符替换操作;所述获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量,包括:
获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符添加操作的第一数量;
获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二数量;
获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符替换操作的第三数量;
从所述第一数量、所述第二数量以及所述第三数量中,选取最小的数量,并将所述最小的数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
7.如权利要求5所述的方法,其特征在于,所述j为大于1的正整数,所述目标操作包括字符添加操作,所述获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量,包括:
获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符添加操作的第一目标数量;
将所述第一目标数量进行加一所得到的第一数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
8.如权利要求5所述的方法,其特征在于,所述i为大于1的正整数,所述目标操作包括字符删除操作,所述获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量,包括:
获取将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j个单位字符所需执行的字符删除操作的第二目标数量;
将所述第二目标数量进行加一所得到第二数量,确定为将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
9.如权利要求5所述的方法,其特征在于,所述i和所述j分别为大于1的正整数,所述目标操作包括字符替换操作,所述获取将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量,包括:
获取将所述第一字符序列中前i-1个单位字符,转化为第二字符序列中前j-1个单位字符所需执行的字符替换操作的第三目标数量;
将所述第三目标数量进行加一所得到第三数量,确定将所述第一字符序列中前i个单位字符,转化为第二字符序列中前j个单位字符所需执行的目标操作的最少数量。
10.如权利要求1所述的方法,其特征在于,所述获取包括第一分子序列及第二分子序列的分子序列对之后,所述方法还包括:
对所述第一分子序列进行分析,得到所述第一分子序列包括的多个单位分子,并对所述第二分子序列进行分析,得到所述第二分子序列包括的多个单位分子;
获取所述单位分子与所述单位字符间的对应关系;
所述对所述第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,包括:
基于所述对应关系,对所述第一分子序列包括的多个单位分子分别进行字符转化,得到第一字符序列;
所述对所述第二分子序列中各单位分子分别进行字符转化,得到第二字符序列,包括:
基于所述对应关系,对所述第二分子序列包括的多个单位分子分别进行字符转化,得到第二字符序列。
11.如权利要求1所述的方法,其特征在于,所述将所述第一字符序列与所述第二字符序列进行字符比对,得到比对结果之后,所述方法还包括:
基于所述比对结果,获取将所述第一字符序列转化为第二字符序列所需执行的目标操作的最少数量;
获取目标映射关系,并基于所述目标映射关系,对所述最少数量进行映射,得到映射结果;
其中,所述目标映射关系用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的最少数量,与所述第一字符序列与所述第二字符序列之间的相似度间的映射关系,所述映射结果用于指示所述第一字符序列与所述第二字符序列之间的相似度。
12.一种分子序列的比对装置,其特征在于,所述方法包括:
获取模块,用于获取包括第一分子序列及第二分子序列的分子序列对,所述分子序列对中的每一个分子序列由多个单位分子组合而成;
转化模块,用于对所述第一分子序列中各单位分子分别进行字符转化,得到第一字符序列,并对所述第二分子序列中各单位分子分别进行字符转化,得到第二字符序列;其中,所述第一字符序列及所述第二字符序列均由多个单位字符组合而成,所述单位字符与所述单位分子存在对应关系;
比对模块,用于将所述第一字符序列的字符与所述第二字符序列的字符进行字符比对,得到比对结果,所述比对结果用于指示,将所述第一字符序列转化为第二字符序列所需执行的目标操作的数量。
13.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至11任一项所述的分子序列的比对方法。
14.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至11任一项所述的分子序列的比对方法。
15.一种计算机程序产品,包括计算机程序或计算机可执行指令,其特征在于,所述计算机程序或计算机可执行指令被处理器执行时,实现权利要求1至11任一项所述的分子序列的比对方法。
CN202310829758.5A 2023-07-07 2023-07-07 分子序列的比对方法、装置、电子设备、存储介质及产品 Active CN116564414B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310829758.5A CN116564414B (zh) 2023-07-07 2023-07-07 分子序列的比对方法、装置、电子设备、存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310829758.5A CN116564414B (zh) 2023-07-07 2023-07-07 分子序列的比对方法、装置、电子设备、存储介质及产品

Publications (2)

Publication Number Publication Date
CN116564414A true CN116564414A (zh) 2023-08-08
CN116564414B CN116564414B (zh) 2024-03-26

Family

ID=87502216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310829758.5A Active CN116564414B (zh) 2023-07-07 2023-07-07 分子序列的比对方法、装置、电子设备、存储介质及产品

Country Status (1)

Country Link
CN (1) CN116564414B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150080266A1 (en) * 2011-09-02 2015-03-19 Atreca, Inc. Dna barcodes for multiplexed sequencing
CN105446957A (zh) * 2015-12-03 2016-03-30 小米科技有限责任公司 相似性确定方法、装置及终端
KR20170096387A (ko) * 2016-02-16 2017-08-24 서울대학교산학협력단 동형 암호화된 염기서열의 편집 거리 산출 방법
CN109117464A (zh) * 2018-03-02 2019-01-01 南京邮电大学 一种基于编辑距离的数据相似度检测方法
US20190377851A1 (en) * 2018-06-07 2019-12-12 Microsoft Technology Licensing, Llc Efficient payload extraction from polynucleotide sequence reads
CN112397148A (zh) * 2019-08-23 2021-02-23 武汉未来组生物科技有限公司 序列比对方法、序列校正方法及其装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150080266A1 (en) * 2011-09-02 2015-03-19 Atreca, Inc. Dna barcodes for multiplexed sequencing
CN105446957A (zh) * 2015-12-03 2016-03-30 小米科技有限责任公司 相似性确定方法、装置及终端
KR20170096387A (ko) * 2016-02-16 2017-08-24 서울대학교산학협력단 동형 암호화된 염기서열의 편집 거리 산출 방법
CN109117464A (zh) * 2018-03-02 2019-01-01 南京邮电大学 一种基于编辑距离的数据相似度检测方法
US20190377851A1 (en) * 2018-06-07 2019-12-12 Microsoft Technology Licensing, Llc Efficient payload extraction from polynucleotide sequence reads
CN112397148A (zh) * 2019-08-23 2021-02-23 武汉未来组生物科技有限公司 序列比对方法、序列校正方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张润梁 等: "基于基本操作序列的编辑距离顺序验证", 计算机科学, vol. 43, no. 1, pages 51 - 54 *

Also Published As

Publication number Publication date
CN116564414B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
US20210217484A1 (en) Variational autoencoder for biological sequence generation
Khan et al. A comprehensive study of de novo genome assemblers: current challenges and future prospective
US10204207B2 (en) Systems and methods for transcriptome analysis
Schölkopf et al. Kernel methods in computational biology
US8798936B2 (en) Methods and systems for data analysis using the Burrows Wheeler transform
Audic et al. Self-identification of protein-coding regions in microbial genomes
Dua et al. Data mining for bioinformatics
Baker et al. Comprehensive comparison of cloud-based NGS data analysis and alignment tools
Stevens Hadooping the genome: The impact of big data tools on biology
Ogbe et al. Bioinformatics advances in genomics-A review
Aronow et al. TumorDecon: A digital cytometry software
CN116564414B (zh) 分子序列的比对方法、装置、电子设备、存储介质及产品
Acharya et al. Multi-factored gene-gene proximity measures exploiting biological knowledge extracted from gene ontology: application in gene clustering
Firtina et al. BLEND: A fast, memory-efficient, and accurate mechanism to find fuzzy seed matches
Zhu et al. cisDynet: An integrated platform for modeling gene‐regulatory dynamics and networks
Mrozek et al. A large-scale and serverless computational approach for improving quality of NGS data supporting big multi-omics data analyses
US10409785B2 (en) Method for storing and presenting sequence data
Nakai Information science should take a lead in future biomedical research
Arora et al. An introduction to BLAST: applications for computer-aided drug design and development
US20200365231A1 (en) Incorporation of fusion genes into ppi network target selection via gibbs homology
Bourzac Collaborations: mining the motherlodes
Datta Statistical techniques for microarray data: A partial overview
Salari et al. Assessing the impact of exact reads on reducing the error rate of read mapping
Shelenkov et al. Search of regular sequences in promoters from eukaryotic genomes
Mok et al. HisCoM-PAGE: software for hierarchical structural component models for pathway analysis of gene expression data

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
GR01 Patent grant
GR01 Patent grant