CN109949865B - 序列截取方法、装置和电子设备 - Google Patents

序列截取方法、装置和电子设备 Download PDF

Info

Publication number
CN109949865B
CN109949865B CN201910202273.7A CN201910202273A CN109949865B CN 109949865 B CN109949865 B CN 109949865B CN 201910202273 A CN201910202273 A CN 201910202273A CN 109949865 B CN109949865 B CN 109949865B
Authority
CN
China
Prior art keywords
sequence
sequences
paragraph
site
information
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
Application number
CN201910202273.7A
Other languages
English (en)
Other versions
CN109949865A (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.)
Annoroad Gene Technology Beijing Co ltd
Beijing Annoroad Medical Laboratory Co ltd
Original Assignee
Annoyoda Institute Of Life Sciences
Nanjing Annoroad Gene Technology Co ltd
Zhejiang Annuo Uni-Data Biotechnology 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 Annoyoda Institute Of Life Sciences, Nanjing Annoroad Gene Technology Co ltd, Zhejiang Annuo Uni-Data Biotechnology Co Ltd filed Critical Annoyoda Institute Of Life Sciences
Publication of CN109949865A publication Critical patent/CN109949865A/zh
Application granted granted Critical
Publication of CN109949865B publication Critical patent/CN109949865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

公开了一种序列截取方法、装置和电子设备。该方法包括:获取参考序列,所述参考序列以遍历方式读取且包括多个段落;获取多个待截取序列的段落信息和位点信息;按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序;以及,在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。这样,即使针对无索引的参考序列和存在重叠和嵌套的多个待截取序列,也可以通过遍历该参考序列一次性截取该多个待截取序列,从而显著地提高了截取效率。

Description

序列截取方法、装置和电子设备
技术领域
本申请涉及数据处理领域,且更为具体地,涉及一种序列截取方法、装置和电子设备。
背景技术
在日常的生物信息分析过程中,经常会需要用到具体的参考碱基序列,此时就需要从参考的基因组序列文件中截取所需的碱基片段。有时可能只需要截取一小段,也有可能需要截取很多段。并且,可能片段之间并没有联系,也有可能它们之间有重叠甚至嵌套。
目前,常用的序列截取软件都需要用到索引,比如bedtools的getfasta功能。此时,既需要系统安装了对应的软件,也需要建立必要的索引。
但是,在没有安装对应软件或者不方便安装的条件下,比如在windows系统或者未授权的其它linux账号中,截取序列会变得很棘手,尤其是对于片段数量众多,既有交叉也有嵌套的情况。
因此,期望提供改进的序列截取方法。
发明内容
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种序列截取方法、装置和电子设备,其能够针对无索引的参考序列通过遍历该参考序列一次性截取甚至存在重叠和嵌套的多个待截取序列,从而显著地提高了截取效率。
根据本申请的一个方面,提供了一种序列截取方法,其特征在于,包括:获取参考序列,所述参考序列以遍历方式读取且包括多个段落;获取多个待截取序列的段落信息和位点信息;按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序;以及,在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。
在上述序列截取方法中,所述参考序列是参考基因组序列。
在上述序列截取方法中,所述参考序列具有染色体编号。
在上述序列截取方法中,所述参考序列的遍历顺序为从所述参考序列的开头到结尾顺序遍历。
在上述序列截取方法中,按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序包括:按照作为所述段落信息的段落编号的由小到大的顺序对所述多个待截取序列进行初次排序;以及,对于具有相同段落编码的一组待截取序列按照作为位点信息的起始位点的由小到大的顺序对该组待截取序列进行二次排序。
在上述序列截取方法中,在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列包括:基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列;响应于所述段落中的预定段落不存在所述待截取序列,以所述遍历顺序略过所述预定段落;以及,响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列。
在上述序列截取方法中,基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列包括:基于所述段落信息对所述参考序列中没有待截取序列的段落或者具有待截取序列的段落进行标记;以及,在遍历所述参考序列的同时,基于所述标记确定所述参考序列的每个段落是否存在所述待截取序列。
在上述序列截取方法中,响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列包括:逐行读入所述预定段落的序列行;在每一序列行依次比较所述待截取序列的起始位点以确定相关序列和相关序列行,直到所述相关序列的下一待截取序列的起始位点不包含在所述相关序列行为止;依次比较所述相关序列行与所述相关序列的结束位点;响应于所述起始位点在相关序列行的其中一行而所述结束位点不在该行,保留该行从所述起始位点往后的部分;响应于所述起始位点不在相关序列行的其中一行而所述结束位点在该行,保留该行从所述结束位点往前的部分;响应于所述起始位点和所述结束位点两者都在所述相关序列行的其中一行,保留该行在所述起始位点和所述结束位点之间的部分;以及,响应于所述起始位点和所述结束位点两者都不在所述相关序列行的其中一行,保留该行整行。
在上述序列截取方法中,比较所述相关序列行与所述相关序列的结束位点包括:针对所述相关序列设置完成标记;以及,响应于所述相关序列中的预定相关序列的结束位点位于所述相关序列行的最后一行,将所述预定相关序列的完成标记设置为已完成。
根据本申请的另一方面,提供了一种序列截取装置,其特征在于,包括:参考序列获取单元,用于获取参考序列,所述参考序列以遍历方式读取且包括多个段落;截取信息获取单元,用于获取多个待截取序列的段落信息和位点信息;序列排序单元,用于按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序;以及,序列截取单元,用于在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。
在上述序列截取装置中,所述参考序列是参考基因组序列。
在上述序列截取装置中,所述参考序列具有染色体编号。
在上述序列截取装置中,所述参考序列的遍历顺序为从所述参考序列的开头到结尾顺序遍历。
在上述序列截取装置中,所述序列排序单元包括:初次排序子单元,用于按照作为所述段落信息的段落编号的由小到大的顺序对所述多个待截取序列进行初次排序;以及,二次排序子单元,用于对于具有相同段落编码的一组待截取序列按照作为位点信息的起始位点的由小到大的顺序对该组待截取序列进行二次排序。
在上述序列截取装置中,所述序列截取单元包括:序列判定子单元,用于基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列;序列略过子单元,用于响应于所述每个段落中的预定段落不存在所述待截取序列,以所述遍历顺序略过所述预定段落;以及,序列截取子单元,用于响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列。
在上述序列截取装置中,所述序列判定子单元用于:基于所述段落信息对所述参考序列中没有待截取序列的段落或者具有待截取序列的段落进行标记;以及,在遍历所述参考序列的同时,基于所述标记确定所述参考序列的每个段落是否存在所述待截取序列。
在上述序列截取装置中,所述序列截取子单元用于:逐行读入所述预定段落的序列行;在每一序列行依次比较所述待截取序列的起始位点以确定相关序列和相关序列行,直到所述相关序列的下一待截取序列的起始位点不包含在所述相关序列行为止;依次比较所述相关序列行与所述相关序列的结束位点;响应于所述起始位点在相关序列行的其中一行而所述结束位点不在该行,保留该行从所述起始位点往后的部分;响应于所述起始位点不在相关序列行的其中一行而所述结束位点在该行,保留该行从所述结束位点往前的部分;响应于所述起始位点和所述结束位点两者都在所述相关序列行的其中一行,保留该行在所述起始位点和所述结束位点之间的部分;以及,响应于所述起始位点和所述结束位点两者都不在所述相关序列行的其中一行,保留该行整行。
在上述序列截取装置中,所述序列截取子单元依次比较所述相关序列行与所述相关序列的结束位点包括:针对所述相关序列设置完成标记;以及,响应于所述相关序列中的预定相关序列的结束位点位于所述相关序列行的最后一行,将所述预定相关序列的完成标记设置为已完成。
根据本申请的再一方面,提供了一种电子设备,包括:处理器;以及,存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如上所述的序列截取方法。
根据本申请的又一方面,提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如上所述的序列截取方法。
与现有技术相比,本申请提供的序列截取方法、装置和电子设备可以针对无索引的参考序列通过遍历该参考序列一次性截取甚至存在重叠和嵌套的多个待截取序列,从而显著地提高了截取效率。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1图示了根据本申请实施例的序列截取方法的流程图。
图2图示了根据本申请实施例的序列截取方法中的截取过程的流程图。
图3图示了根据本申请实施例的序列截取装置的框图。
图4图示了根据本申请实施例的电子设备的框图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
如上所述,期望提供能够高效地截取参考序列的不依赖任何工具,且能够有效地应对所有情况,尤其是大量片段重叠及嵌套情况的序列截取方法。
Perl程序器的perl脚本通过Perl解释器解释运行,而Perl程序器可以通过遍历参考基因组序列,比如hg19.fa来截取目标片段,但是,Perl程序器截取一个目标片段的耗时是约30秒,但如果针对多个目标片段重复多次的话,时间消耗将会变得不可接受,但是Perl语言代码简洁容易修改,针对这一特点,发明人将其应用于序列截取程序中。
本申请的发明人经过研究,发现这其中涉及到的具体问题包括:
1.参考基因组序列比如hg19.fa中序列是以每行50个碱基的形式来存储的,因此需要将碱基的坐标转换成对应的行列值;
2.Perl语言脚本在读取文件时是一行行按顺序读取的,而输入的目标片段信息包括染色体号、起始终止坐标等可能是无序的,这需要将它们按一定规则排序;
3.片段之间可能会有重叠甚至一条嵌入另一条中,这需要对应的多重截取机制;
4.由于参考基因组文件,比如hg19.fa的特殊存储形式,行数能接近1亿,如果冗余步骤太多势必会严重地影响截取效率,因此需要对代码尽可能地精简。
基于上述技术问题,本申请的基本构思是对于待截取的多个序列,首先按照段落信息和位点信息对所述多个待截取序列进行排序以符合参考序列的遍历顺序,然后在遍历所述参考序列时以顺序一次性截取所述多个待截取序列。
具体地,本申请提供的序列截取方法、装置和电子设备首先获取参考序列,所述参考序列以遍历方式读取且包括多个段落;然后获取多个待截取序列的段落信息和位点信息,并按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序;最后在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。
因此,本申请提供的序列截取方法、装置和电子设备通过优化截取方式,能够一次性提取所有目标片段,例如,通过Perl解释器截取1000个片段耗时也只有30s左右,并能够同时支持片段的重叠及嵌套等。
值得注意的是,在本申请提供的序列截取方法、装置和电子设备中,所述参考序列可以是参考基因组序列,例如hg19.fa,也可以是其它以遍历方式读取而无索引的序列,本申请并不意在对此进行任何限制。
在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。
示例性方法
图1图示了根据本申请实施例的序列截取方法的流程图。
如图1所示,根据本申请实施例的序列截取方法包括:S110,获取参考序列,所述参考序列以遍历方式读取且包括多个段落;S120,获取多个待截取序列的段落信息和位点信息;S130,按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序;以及S140,在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。
在步骤S110中,获取参考序列,所述参考序列以遍历方式读取且包括多个段落。如上所述,所述参考序列可以是人类基因组参考序列,也可以是其它类型的序列,并且,所述参考序列需要以遍历方式读取,而不具有索引以跳到所述参考序列的任意位置。
在所述参考序列是参考基因组序列的情况下,所述参考序列的每个段落可以对应于染色体,因此,所述参考序列可以具有染色体编号。
值得注意的是,在根据本申请实施例的序列截取方法中,并不限定所述参考序列的遍历顺序。例如,在所述参考序列是比如hg19.fa的参考基因组序列的情况下,所述参考序列的遍历顺序为从所述参考序列的开头到结尾顺序遍历。而针对其它类型的参考序列,所述参考序列的遍历顺序也可能为从所述参考序列的结尾到开头顺序遍历,或者从所述参考序列中的特定位置开始向前或者向后顺序遍历。
在步骤S120中,获取多个待截取序列的段落信息和位点信息。如上所述,所述参考序列包括多个段落,以参考基因组序列为例,包括按照染色体编号排列的多个段落。因此,为了对所述多个待截取序列进行排序,在获取所述多个待截取序列的同时,获取其段落信息和位点信息。并且,所述段落信息和位点信息可以以数组形式存储,例如以染色体编号作为一维坐标的二维数组。
在步骤S130中,按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序。
以所述段落基于染色体编号从小到大排列为例,首先按染色编号由小到大的规则对所述多个待截取序列进行初次排序,之后在具有相同染色体编号的段落内部,按照所述多个待截取序列的起始位点由小到大的顺序进行二次排序。
当然,如上所述,如果所述参考序列的遍历序列为从段落编号由大到小遍历,则所述多个待截取序列也基于段落信息按照段落编码由大到小排列,在每个段落内部也是如此。
因此,在根据本申请实施例的序列截取方法中,按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序包括:按照作为所述段落信息的段落编号的由小到大的顺序对所述多个待截取序列进行初次排序;以及,对于具有相同段落编码的一组待截取序列按照作为位点信息的起始位点的由小到大的顺序对该组待截取序列进行二次排序。
在步骤S140中,在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。
具体地,在根据本申请实施例的序列截取方法中,在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列包括:基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列;响应于所述段落中的预定段落不存在所述待截取序列,以所述遍历顺序略过所述预定段落;以及,响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列。
例如,以参考基因组序列为例,基于所述多个待截取序列的染色体编号信息,可以确定当前染色体是否存在需要截取的片段。如果当前染色体没有需要截取的序列,则不进行任何操作,直接一行行略过。而如果当前染色体存在需要截取的片段,则基于所述位点信息,比如片段起始位置、片段结束位置,按照相应的规则进行重复截取合并操作。
这里,在确定当前染色体是否存在需要截取的片段时,可以根据待截取序列的段落信息预先对所述参考基因组序列进行标记。例如,在所获取的多个待截取序列具有染色体编号3、5、7时,可以预先对所述参考基因组序列中编号为3、5和7的染色体进行标记。这样,当遍历所述参考基因组序列时到达编号为3、5和7的染色体时,就可以确定当前染色体存在需要截取的片段。
也就是说,在根据本申请实施例的序列截取方法中,基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列包括:基于所述段落信息对所述参考序列中没有待截取序列的段落或者具有待截取序列的段落进行标记;以及,在遍历所述参考序列的同时,基于所述标记确定所述参考序列的每个段落是否存在所述待截取序列。
如上所述,对于比如hg19.fa的参考基因组序列来说,序列是以行排列存储的,例如,以每行50个碱基的形式来存储,因此在截取所述待截取序列时,以行为单位来进行截取。
具体地,在确定预定段落存在需要截取的序列时,逐行读入所述预定段落的序列行,并在每一序列行比较所述待截取序列的起始位点以确定是否从所述当前序列行开始截取。并且,因为待截取序列已经按照起始位点进行排序,因此如果前一待截取序列的起始位点在当前序列行而后一待截取序列的起始位点不在当前序列行,那么后一待截取序列的后续待截取序列的起始位点必然也不在当前序列行,从而在当前序列行中待截取的序列到所述前一待截取序列为止。同样,在比较了所述起始位点之后,如果基于所述起始位点确定需要从当前序列行开始截取相关序列,则继续比较所述相关序列的结束位点,即基于当前序列行和后续序列行比较结束位点以确定所述结束位点是否存在于包括当前序列行和后续序列行中。
因此,在本申请实施例中,由于需要同时进行截取的待截取序列为多个,在读入预定段落的序列行时,将正在进行截取的序列定义为相关序列,将正在截取中的序列行定义为相关序列行。例如,以参考基因组序列的每行包括50个碱基为例,如果待截取序列A的起始位点和结束位点为(110,140),待截取序列B的起始位点和结束位点为(120,240),则针对待截取序列A,第3行为相关序列行,而针对待截取序列B,第3行到第5行为相关序列行。
另外,还可以基于所述待截取序列的起始位点和结束位点在所述预定段落内的行列值来确定相关序列行,以参考基因组序列的每行包括50个碱基为例,如果待截取序列A的起始位点和结束位点为(110,140),则所述起始位点的行列值为(3,110),且结束位点为(3,140)。另外,如果待截取序列B的起始位点和结束位点为(120,240),则所述起始位点的行列值为(3,120),且结束位点为(5,240)。那么针对待截取序列A,第3行为相关序列行,而针对待截取序列B,第3行到第5行为相关序列行。
这里,本领域技术人员可以理解,相关序列行的确定可以在逐行读入序列行并进行序列截取的过程中同步进行,而不需要在序列截取之前预先确定。具体地,当读入第3行时,基于上述待截取序列A的起始位点,可以确定第3行为相关序列A的相关序列行,且基于上述待截取序列B的起始位点,也可以确定第3行为相关序列B的相关序列行。接下来,进一步比较相关序列行与结束位点,针对待截取序列A,其结束位点也在第3行,则在第3行完成了待截取序列A的截取。而针对待截取序列B,其结束位点不在第3行,则继续读入第4行,由于序列B的截取仍未结束,第4行也为待截取序列B的相关序列行,并比较第4行与序列B的结束位点。由于B的结束位点不位于第4行,则截取第4行并继续读入第5行。同样地,由于序列B的截取仍未结束,第5行也为待截取序列B的相关序列行,则比较第5行与序列B的结束位点。此时,因为序列B的结束位点位于第5行,则截取第5行中的相应部分,序列B的截取结束,后续的序列行不再是序列B的相关序列行。
在截取序列时,如果起始位点在所述相关序列行的某一行而结束位点不在该行,则保留该行从起始位点往后的部分。例如,对于上述待截取序列B,针对第3行,起始位点120在该行,而结束位点240不在,则保留第3行中从位点120往后的部分,即120-150。如果起始位点不在所述相关序列行的某一行而结束位点在该行,保留该行从结束位点往前的部分。例如,对于上述待截取序列B,针对第5行,起始位点120不在该行,而结束位点240在该行,则保留第5行中从位点240往后的部分,即200-240。如果起始位点和结束位点两者都在所述相关序列行的某一行,保留该行在起始位点和结束位点之间的部分。例如,对于上述待截取序列A,针对第3行,起始位点110和结束位点140都在该行,因此保留第3行起始位点110到结束位点140之间的部分,即110-140。如果起始位点和结束位点两者都不在所述相关序列行的某一行,则保留整行。例如,对于上述待截取序列B,针对第4行,起始位点120和结束位点240均不在该行,则保证整个第4行,即150-200。然后,基于截取的各行的序列,就可以获得待截取序列A:110-140和待截取序列B:120-240。
这里,本领域技术人员可以理解,可以设置另外的数组用于存储待截取序列的行列值,例如,对于上述待截取序列A,可以设置行列值存储数组为(3,3),而对于上述待截取序列B,可以设置行列值存储数组为(3,5),从而便于在遍历参考序列时基于行编号进行截取。
进一步需要说明的是,在截取序列时,在进行所在行的序列判断时,不仅要包括有部分或全部在序列所在行的相关待截取序列,还有包括上述待截取序列其后紧邻的至少一段序列的起点信息。例如,需要从一段序列上截取以下片段,片段按起始位点依次排序为30-110,55-90,80-150,110-180,150-220等,则与该片段第二行相关的序列(51-100)则为30-110、55-90和80-150,在进行第二行待截取序列的判断时,不仅要判断上述序列,还要至少判断与之紧邻的110-180序列的起点信息。由此,通过该截取方法,在囊括需要截取片段的前提下尽可能地减少需要比较的次数,无需将一系列坐标从头比较到尾,显著减少了运算次数,提高了序列截取速度,减少了序列截取的时间。
因此,在根据本申请实施例的序列截取方法中,响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列包括:逐行读入所述预定段落的序列行;在每一序列行依次比较所述待截取序列的起始位点以确定相关序列和相关序列行,直到所述相关序列的下一待截取序列的起始位点不包含在所述相关序列行为止;依次比较所述相关序列行与所述相关序列的结束位点;响应于所述起始位点在相关序列行的其中一行而所述结束位点不在该行,保留所述该行从所述起始位点往后的部分;响应于所述起始位点不在相关序列行的其中一行而所述结束位点在该行,保留所述该行从所述结束位点往前的部分;响应于所述起始位点和所述结束位点两者都在所述相关序列行的其中一行,保留该行在所述起始位点和所述结束位点之间的部分;以及,响应于所述起始位点和所述结束位点两者都不在所述相关序列行的其中一行,保留该行整行。
图2图示了根据本申请实施例的序列截取方法中的截取过程的流程图。如图2所示,所述截取过程包括:S201,确定预定段落中是否存在待截取序列;S202,响应于预定段落中不存在待截取序列,略过所述预定段落;S203,响应于所述每个段落中的预定段落存在所述待截取序列,逐行读入所述预定段落的序列行;S204,在每一序列行依次比较所述待截取序列的起始位点以确定相关序列和相关序列行,直到所述相关序列的下一待截取序列的起始位点不包含在所述相关序列行为止;S205,依次比较所述相关序列行与所述相关序列的结束位点;S206,确定起始位点是否在所述相关序列行的其中一行;S207,确定结束位点是否在所述相关序列行的其中一行;S208,响应于所述起始位点在所述相关序列行的其中一行而所述结束位点不在该行,保留该行从所述起始位点往后的部分;S209,响应于所述起始位点不在相关序列行的其中一行而所述结束位点在该行,保留该行从所述结束位点往前的部分;S210,响应于所述起始位点和所述结束位点两者都在所述相关序列行的其中一行,保留该行在所述起始位点和所述结束位点之间的部分;以及S211,响应于所述起始位点和所述结束位点两者都不在所述相关序列行的其中一行,保留该行整行。
另外,在上述序列截取方法中,比较所述相关序列行与所述相关序列的结束位点包括:针对所述相关序列设置完成标记;以及,响应于所述相关序列中的预定相关序列的结束位点位于所述相关序列行的最后一行,将所述预定相关序列的完成标记设置为已完成。
也就是说,例如针对上述待截取序列A和B,设置所述待截取序列A和B的完成标记,针对所述参考序列的第3行,在确定所述待截取序列A的结束位点140位于该行的情况下,将所述待截取序列A的完成标记设置为已完成。这样,在第3行的后续行,不需要再针对待截取序列A进行操作。之后,针对所述参考序列的第5行,在确定所述待截取序列B的结束位点240位于该行的情况下,将所述待截取序列B的完成标记也设置为已完成,这样,在第5行的后续行就不需要再针对待截取序列B进行操作。
因此,通过根据本申请实施例的序列截取方法,例如能够实现从人类基因组参考序列,比如hg19.fa中截取任意数量的碱基片段,并且支持片段的重叠及嵌套。
实践证明,通过序列截取方式,当使用Perl解释器截取片段时,在多次截取的情况下显著提高了截取速度。比如,截取1个片段需耗时约0.45分钟,而截取1000个片段用时也只需要0.48分钟,因此针对片段数目多的情况效果格外明显。
具体实例
以下,将描述从hg19.fa中截取chr5的3个片段的具体实例。
具体地,3个片段分别为:110~210,180~310,260~280。其中片段1和片段2有部分重叠,而片段3嵌套在片段2中。
假定在bed文件中,三个片段的存储顺序为:chr5 180 310,chr5 110 210,chr5260 280。
首先读入数据并初始化,即,逐行读入bed文件,并将对应的染色体号、起始坐标、终止坐标分别存入对应的数组@temp_sec_chr,@temp_sec_start,@temp_sec_end。其中chr5存储5,chrX、chrY和chrM分别存储23,24和25。
然后,对染色体号排序,具体地,将每条片段的编号作为元素存入对应的以染色体号作为一维坐标的二维数组中,因此bed文件的3个编号分别存入$chr_array[5][0],$chr_array[5][1]和$chr_array[5][2]。待所有对应的编号存储完毕后,从一维坐标的低位往高位遍历数组,也就是从1号染色体开始到25号(M)结束。顺序地将各自染色体对应编号的片段信息存入新的数组中@sec_chr,@sec_start,@sec_end。最终完成对染色体号的排序,得到5 180 300,5 110 210和5 260 280。
其中,对没有待截取片段的染色体号做好标记,比如$chr_flag[1]=0表示1号染色体上没有任何待截取片段,而$chr_flag[5]=1则表示5号染色体上存在待截取片段。对于$chr_flag>0的染色体还需记录对应元素的起始及终止编号,比如此时的5号染色体会记录二维数组@chr_array中的id:$chr_sec_start=0和$chr_sec_end=2。
接下来,对起始坐标排序,从低位到高位遍历这三个数组,在相同染色体编号的元素内采用冒泡排序法调整起始和对应的终止坐标,最终得到5 110 210,5 180 310和5 260280。
然后,读入染色体号,确定需要截取的片段信息。具体地,读入染色体记录的标签行,比如“>chr5”,得到当前序列的染色体号为5。根据染色体号5检查对应的片段标记$chr_flag[5],如果为非零则代表有待截取片段。此时取出对应$chr_sec_start[5](0)和$chr_sec_end[5](2)对应编号的坐标,转换成对应的行列值,并记录相应的片段数$sec_num=3。
最后,读入碱基行,进行如下的具体操作。
1)逐行读入对应染色体号的碱基行,检查对应的片段数$sec_num。如果是0则代表没有需要截取的片段,直接略过继续读取下一行,直到下一条染色体或者文件结束。如果是1则代表有需要截取的片段,进行下一步的截取操作。如上所述,截取操作的核心思想是:在当前行会比较所有与该行相关的待截取片段及其后紧挨着(因为已经将所有起始位点按顺序存储)的一条起始位点即将被覆盖的待截取片段的位点信息。如果起始位点在当前片段而结束位点并不在,则只需要保留后半部分;如果起始位点不在而结束位点在则保留前半部分;如果两个位点都不在则应保留整个片段;而如果两个位点都在则需要保存两个位点之间的部分。
2)具体地,可以设置$left和$right分别用来标记当前需要判断的片段信息记录数组的起始结束编号。比如在第1行,因为没有任何待截取片段与之相关,因此只需要预判是否已经到达下一条待截取片段起始位点所在的行号(chr5 110 210,起始坐标在第3行)。
3)第2行,和第1行情况一样,这里略过。
4)第3行,已经到达$right所指片段起始位点的行号,因此需要首先往后移动$right,直到包含一条起始位点所在行还未到达的片段编号。此时$left为0,$right为1(chr5 180 310,起始坐标在第4行)。循环比较$left和$right编号之间片段的起始、结束坐标,按前面所述的规则进行相应的保存操作,此时保存1号片段(chr5 110 210)的110~150。
5)第4行,由于已经到达了$right所指的2号片段(chr5 180 310)因此往后移动到3号片段(chr5 260 280)。循环比较$left和$right所指片段的坐标,保存1号片段的151~200和2号片段的180~200。
6)第5行,由于仍未到达$right所指的片段,因此不需要移动$right。循环比较保存1号片段的200~210和2号片段的200~250。同时将1号片段的未完成标记$unfinish_flag[1]由1改为0。
7)第6行,由于已到达$right所指的片段(chr5 260 280),但由于已经到了末尾,所以不需要移动。但根据$unfinish_flag判断1号片段已经保存完毕,此时将$left移动到2。循环比较保存2号片段(chr5 180 310)的250~300,3号片段(chr5 260 280)的260~280。由于3号片段已经保存结束,将对应的$unfinish_flag[3]标记为0。
8)第7行,和第6行一样不需要移动$right,由于$left所指的2号片段仍未结束,所以也保持原位不变。此时循环保存2号片段的300~310,同时标记$unfinish_flag[2]为0。由于3号片段的$unfinish_flag[3]为0因此直接略过。
9)第8行,判断此时的行号已经大于所有片段占有的最大行号,因此不需要做任何其它操作,略过直到下一条染色体或文件结束。
10)循环直到文件结束。
示例性装置
图3图示了根据本申请实施例的序列截取装置的框图。
如图3所示,根据本申请实施例的序列截取装置300包括:参考序列获取单元310,用于获取参考序列,所述参考序列以遍历方式读取且包括多个段落;截取信息获取单元320,用于获取多个待截取序列的段落信息和位点信息;序列排序单元330,用于按照所述参考序列获取单元310所获取的所述参考序列的遍历顺序,基于所述截取信息获取单元320所获取的段落信息和所述位点信息对所述多个待截取序列进行排序;以及,序列截取单元340,用于在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。
在一个示例中,在上述序列截取装置300中,所述参考序列是参考基因组序列。
在一个示例中,在上述序列截取装置300中,所述参考序列具有染色体编号。
在一个示例中,在上述序列截取装置300中,所述参考序列的遍历顺序为从所述参考序列的开头到结尾顺序遍历。
在一个示例中,在上述序列截取装置300中,所述序列排序单元330包括:初次排序子单元,用于按照作为所述段落信息的段落编号的由小到大的顺序对所述多个待截取序列进行初次排序;以及,二次排序子单元,用于对于具有相同段落编码的一组待截取序列按照作为位点信息的起始位点的由小到大的顺序对该组待截取序列进行二次排序。
在一个示例中,在上述序列截取装置300中,所述序列截取单元340包括:序列判定子单元,用于基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列;序列截取子单元,用于响应于所述每个段落中的预定段落不存在所述待截取序列,以所述遍历顺序略过所述预定段落;以及,序列略过子单元,用于响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列。
在一个示例中,在上述序列截取装置300中,所述序列判定子单元用于:基于所述段落信息对所述参考序列中没有待截取序列的段落或者具有待截取序列的段落进行标记;以及,在遍历所述参考序列的同时,基于所述标记确定所述参考序列的每个段落是否存在所述待截取序列。
在一个示例中,在上述序列截取装置300中,所述序列截取子单元用于:逐行读入所述预定段落的序列行;在每一序列行依次比较所述待截取序列的起始位点以确定相关序列和相关序列行,直到所述相关序列的下一待截取序列的起始位点不包含在所述相关序列行为止;依次比较所述相关序列行与所述相关序列的结束位点;响应于所述起始位点在相关序列行的其中一行而所述结束位点不在该行,保留该行从所述起始位点往后的部分;响应于所述起始位点不在相关序列行的其中一行而所述结束位点在该行,保留该行从所述结束位点往前的部分;响应于所述起始位点和所述结束位点两者都在所述相关序列行的其中一行,保留该行在所述起始位点和所述结束位点之间的部分;以及,响应于所述起始位点和所述结束位点两者都不在所述相关序列行的其中一行,保留该行整行。
在一个示例中,在上述序列截取装置300中,所述序列截取子单元依次比较所述相关序列行与所述相关序列的结束位点包括:针对所述相关序列设置完成标记;以及,响应于所述相关序列中的预定相关序列的结束位点位于所述相关序列行的最后一行,将所述预定相关序列的完成标记设置为已完成。
这里,本领域技术人员可以理解,上述序列截取装置300中的各个单元和模块的具体功能和操作已经在上面参考图1和图2的序列截取方法的描述中得到了详细介绍,并因此,将省略其重复描述。
如上所述,根据本申请实施例的序列截取装置300可以实现在各种终端设备中,例如用于参考基因组序列截取的计算机等。在一个示例中,根据本申请实施例的序列截取装置300可以作为一个软件模块和/或硬件模块而集成到终端设备中。例如,该序列截取装置300可以是该终端设备的操作系统中的一个软件模块,或者可以是针对于该终端设备所开发的一个应用程序;当然,该序列截取装置300同样可以是该终端设备的众多硬件模块之一。
替换地,在另一示例中,该序列截取装置300与该终端设备也可以是分立的设备,并且该序列截取装置300可以通过有线和/或无线网络连接到该终端设备,并且按照约定的数据格式来传输交互信息。
示例性电子设备
下面,参考图4来描述根据本申请实施例的电子设备。
图4图示了根据本申请实施例的电子设备的框图。
如图4所示,电子设备10包括一个或多个处理器11和存储器12。
处理器13可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的序列截取方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如参考序列、待截取序列、段落信息、位点信息等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置13可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括从参考序列截取出的片段等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图4中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的序列截取方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的序列截取方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (14)

1.一种序列截取方法,其特征在于,包括:
获取参考序列,所述参考序列以遍历方式读取且包括多个段落;
获取多个待截取序列的段落信息和位点信息;
按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序;以及
在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列,
其中,按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序包括:
按照作为所述段落信息的段落编号的由小到大的顺序对所述多个待截取序列进行初次排序;以及
对于具有相同段落编码的一组待截取序列按照作为位点信息的起始位点由小到大的顺序对所述一组待截取序列进行二次排序。
2.根据权利要求1所述的方法,其特征在于,所述参考序列是参考基因组序列。
3.根据权利要求2所述的方法,其特征在于,所述参考序列具有染色体编号。
4.根据权利要求2所述的方法,其特征在于,所述参考序列的遍历顺序为从所述参考序列的开头到结尾顺序遍历。
5.根据权利要求2所述的方法,其特征在于,在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列包括:
基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列;
响应于所述每个段落中的预定段落不存在所述待截取序列,以所述遍历顺序略过所述预定段落;以及
响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列。
6.根据权利要求5所述的方法,其特征在于,基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列包括:
基于所述段落信息对所述参考序列中没有待截取序列的段落或者具有待截取序列的段落进行标记;以及
在遍历所述参考序列的同时,基于所述标记确定所述参考序列的每个段落是否存在所述待截取序列。
7.根据权利要求5所述的方法,其特征在于,响应于所述段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列包括:
逐行读入所述预定段落的序列行;
在每一序列行依次比较所述待截取序列的起始位点以确定相关序列和相关序列行,直到所述相关序列的下一待截取序列的起始位点不包含在所述相关序列行为止;
依次比较所述相关序列行与所述相关序列的结束位点;
响应于所述起始位点在相关序列行的其中一行而所述结束位点不在所述相关序列行的其中一行,保留所述相关序列行的其中一行从所述起始位点往后的部分;
响应于所述起始位点不在相关序列行的其中一行而所述结束位点在所述相关序列行的其中一行,保留所述相关序列行从所述结束位点往前的部分;
响应于所述起始位点和所述结束位点两者都在所述相关序列行的其中一行,保留所述相关序列行在所述起始位点和所述结束位点之间的部分;以及
响应于所述起始位点和所述结束位点两者都不在所述相关序列行的其中一行,保留所述相关序列行的其中一整行。
8.根据权利要求7所述的方法,其特征在于,依次比较所述相关序列行与所述相关序列的结束位点包括:
针对所述相关序列设置完成标记;以及
响应于所述相关序列中的预定相关序列的结束位点位于所述相关序列行的最后一行,将所述预定相关序列的完成标记设置为已完成。
9.一种序列截取装置,其特征在于,包括:
参考序列获取单元,用于获取参考序列,所述参考序列以遍历方式读取且包括多个段落;
截取信息获取单元,用于获取多个待截取序列的段落信息和位点信息;
序列排序单元,用于按照所述参考序列的遍历顺序,基于所述段落信息和所述位点信息对所述多个待截取序列进行排序,所述序列排序单元包括:
初次排序子单元,用于按照作为所述段落信息的段落编号的由小到大的顺序对所述多个待截取序列进行初次排序;以及
二次排序子单元,用于对于具有相同段落编码的一组待截取序列按照作为位点信息的起始位点的由小到大的顺序对该组待截取序列进行二次排序;以及
序列截取单元,用于在遍历所述参考序列的同时,基于所述段落信息和所述位点信息从所述参考序列中依顺序截取所述多个待截取序列。
10.根据权利要求9所述的装置,其特征在于,所述参考序列的遍历顺序为从所述参考序列的开头到结尾顺序遍历。
11.根据权利要求10所述的装置,其特征在于,所述序列截取单元包括:
序列判定子单元,用于基于所述段落信息确定所述参考序列的每个段落是否存在所述待截取序列;
序列略过子单元,用于响应于所述每个段落中的预定段落不存在所述待截取序列,以所述遍历顺序略过所述预定段落;以及
序列截取子单元,用于响应于所述每个段落中的预定段落存在所述待截取序列,基于所述位点信息从所述预定段落截取所述待截取序列。
12.根据权利要求11所述的装置,其特征在于,所述序列判定子单元用于:
基于所述段落信息对所述参考序列中没有待截取序列的段落或者具有待截取序列的段落进行标记;以及
在遍历所述参考序列的同时,基于所述标记确定所述参考序列的每个段落是否存在所述待截取序列。
13.根据权利要求12所述的装置,其特征在于,所述序列截取子单元用于:
逐行读入所述预定段落的序列行;
在每一序列行依次比较所述待截取序列的起始位点以确定相关序列和相关序列行,直到所述相关序列的下一待截取序列的起始位点不包含在所述相关序列行为止;
依次比较所述相关序列行与所述相关序列的结束位点;
响应于所述起始位点在相关序列行的其中一行而所述结束位点不在所述相关序列行的其中一行,保留所述相关序列行的其中一行从所述起始位点往后的部分;
响应于所述起始位点不在相关序列行的其中一行而所述结束位点在所述相关序列行的其中一行,保留所述相关序列行的其中一行从所述结束位点往前的部分;
响应于所述起始位点和所述结束位点两者都在所述相关序列行的其中一行,保留所述相关序列行的其中一行在所述起始位点和所述结束位点之间的部分;以及
响应于所述起始位点和所述结束位点两者都不在所述相关序列行的其中一行,保留所述相关序列行的其中一行整行。
14.一种电子设备,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如权利要求1-8中任一项所述的序列截取方法。
CN201910202273.7A 2018-12-29 2019-03-18 序列截取方法、装置和电子设备 Active CN109949865B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811635216X 2018-12-29
CN201811635216 2018-12-29

Publications (2)

Publication Number Publication Date
CN109949865A CN109949865A (zh) 2019-06-28
CN109949865B true CN109949865B (zh) 2020-03-31

Family

ID=67010099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910202273.7A Active CN109949865B (zh) 2018-12-29 2019-03-18 序列截取方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN109949865B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177433B (zh) * 2019-12-31 2021-07-20 北京百度网讯科技有限公司 用于并行处理信息的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8735160B2 (en) * 2008-09-19 2014-05-27 Ut-Battelle, Llc Methods for targetted mutagenesis in gram-positive bacteria
CN104830832A (zh) * 2015-05-09 2015-08-12 中国农业科学院麻类研究所 一种大批量开发ssr分子标记的方法
CN107133493A (zh) * 2016-02-26 2017-09-05 中国科学院数学与系统科学研究院 基因组序列的组装方法、结构变异探测方法和相应的系统
CN108624667A (zh) * 2018-05-15 2018-10-09 佛山市第人民医院(中山大学附属佛山医院) 一种基于二代测序的t细胞受体库分析方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030121069A1 (en) * 2001-12-21 2003-06-26 Pfizer Inc. Disruption of the phosphodiesterase 10 gene
CN103336916B (zh) * 2013-07-05 2016-04-06 中国科学院数学与系统科学研究院 一种测序序列映射方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8735160B2 (en) * 2008-09-19 2014-05-27 Ut-Battelle, Llc Methods for targetted mutagenesis in gram-positive bacteria
CN104830832A (zh) * 2015-05-09 2015-08-12 中国农业科学院麻类研究所 一种大批量开发ssr分子标记的方法
CN107133493A (zh) * 2016-02-26 2017-09-05 中国科学院数学与系统科学研究院 基因组序列的组装方法、结构变异探测方法和相应的系统
CN108624667A (zh) * 2018-05-15 2018-10-09 佛山市第人民医院(中山大学附属佛山医院) 一种基于二代测序的t细胞受体库分析方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
16S rRNA序列截取程序的设计及16S rRNA技术用于老年腹泻病原菌的筛查;郭杨斌;《中国优秀硕士学位论文全文数据库 医药卫生科技辑》;20080415;全文 *

Also Published As

Publication number Publication date
CN109949865A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
KR101955145B1 (ko) 애플리케이션 로딩 방법 및 장치
CN107293294B (zh) 一种语音识别处理方法及装置
CN109917982B (zh) 一种语音输入方法、装置、设备及可读存储介质
CN113127125B (zh) 页面自动适配方法、装置、设备及存储介质
CN109949865B (zh) 序列截取方法、装置和电子设备
JP6002832B2 (ja) 計算機システム、データ管理方法及びプログラムを格納する記録媒体
CN111208957A (zh) 一种工资条打印方法
CN110955449A (zh) 客户端的灰度发布方法及装置
US11243693B2 (en) Program writing method, control method of apparatus, program for program writing, and control program of apparatus
CN113177392B (zh) 校对界面中行段信息同步方法、计算设备及存储介质
CN110705215A (zh) Mipi配置文件的编码方法、编码装置及显示装置
CN110825427A (zh) 一种代码管理方法、装置、服务器及存储介质
US9258258B2 (en) Implementing injection of formal numerical message identifiers in cloud stacks
CN109800273A (zh) 一种数据处理的方法、装置、计算机存储介质及终端
US20180081779A1 (en) Recording medium recording analysis program, analysis method, and analysis apparatus
EP4134802A1 (en) Method and apparatus for data access of nand flash file, and storage medium
CN113849380A (zh) 一种硬盘槽位与信号灯的编号确定方法、系统及相关组件
CN107885839B (zh) 一种在Word文件中读取信息的方法和装置
CN109491601B (zh) 固态硬盘数据的并行处理方法、装置及可读存储介质
CN111196534A (zh) 电梯停留层优化方法及系统
JP2007004326A (ja) データアクセス方法及びそのプログラム
KR20170006108A (ko) 블루투스 검색 방법 및 장치
JP2006309536A (ja) ファイル管理プログラム、及びファイル管理装置
CN113010195B (zh) 一种系统升级方法、存储介质及终端设备
US9536502B2 (en) Screen display based on the inter-screen relationship

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240327

Address after: Room 101 and Room 201, unit 2, building 8, yard 88, Kechuang 6th Street, Daxing District, Beijing 100176

Patentee after: BEIJING ANNOROAD MEDICAL LABORATORY Co.,Ltd.

Country or region after: China

Patentee after: ANNOROAD GENE TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 322000, 1st Floor, Building 2, Standard Factory Building, No. 10 Gaoxin Road, Zhujiang Street, Yiwu City, Jinhua City, Zhejiang Province

Patentee before: ZHEJIANG ANNOROAD BIO-TECHNOLOGY Co.,Ltd.

Country or region before: China

Patentee before: ANNOROAD GENE TECHNOLOGY (BEIJING) Co.,Ltd.

Patentee before: ANOROAD INSTITUTE OF LIFE SCIENCE