CN113994322A - 硬件加速K-mer图生成 - Google Patents

硬件加速K-mer图生成 Download PDF

Info

Publication number
CN113994322A
CN113994322A CN202180004003.0A CN202180004003A CN113994322A CN 113994322 A CN113994322 A CN 113994322A CN 202180004003 A CN202180004003 A CN 202180004003A CN 113994322 A CN113994322 A CN 113994322A
Authority
CN
China
Prior art keywords
graph
mer
hardware logic
unit
nucleic acid
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.)
Pending
Application number
CN202180004003.0A
Other languages
English (en)
Inventor
M·吕勒
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.)
Inmair Ltd
Original Assignee
Inmair 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 Inmair Ltd filed Critical Inmair Ltd
Publication of CN113994322A publication Critical patent/CN113994322A/zh
Pending legal-status Critical Current

Links

Images

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
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • G16B20/20Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • 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
    • 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
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Analytical Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Computer Hardware Design (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Apparatus Associated With Microorganisms And Enzymes (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)

Abstract

本发明提供了使用可编程逻辑设备来硬件加速K‑mer图生成的方法、系统和装置。在一个方面,方法包括以下动作:获得第一组核酸序列;使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K‑mer图;以及在通过每个硬件逻辑单元执行一个或多个操作之后,使用控制机周期性地更新该K‑mer图的图描述数据。

Description

硬件加速K-mer图生成
相关申请的交叉引用
本申请要求2020年4月7日提交的美国临时专利申请63/006,668的权益,该临时专利申请的全部内容全文以引用方式并入本文。
背景技术
K-mer图可用于表示多个测序读段。
发明内容
根据本公开的一个创新方面,公开了一种使用可编程逻辑设备来硬件加速K-mer图生成的方法。在一个方面,该方法可包括以下动作:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分;使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K-mer图,其中每个硬件逻辑单元包括被配置为执行一个或多个操作的不同硬件逻辑电路,其中该K-mer图的每个节点表示一个K-mer,该K-mer图的每个边缘表示一对K-mer之间的链路,并且该K-mer图的每个边缘的每个权重表示由一对K-mer表示的K-mer序列的出现次数;以及在生成该K-mer图期间:在通过用于生成该K-mer图的至少一部分的每个硬件逻辑单元执行该一个或多个操作之后,使用控制机周期性地更新该K-mer图的图描述数据,其中该图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息,其中该控制机通过在生成该K-mer图期间触发每个相应硬件逻辑单元执行该一个或多个操作来使用该非流水线硬件逻辑单元创建操作的工作流程。
其他版本包括已被配置为执行由硬件加速图生成单元的硬件逻辑电路限定的前述方法的动作的对应系统和装置。
这些和其他版本可任选地包括以下特征中的一个或多个特征。例如,在一些具体实施中,多个硬件逻辑单元中的每个硬件逻辑单元的输出经由散列表高速缓存存储。
在一些具体实施中,控制机使用可编程逻辑设备的硬件逻辑单元来实施。
在一些具体实施中,控制机通过使用执行软件指令的一个或多个CPU或GPU来实施,以实现该控制机的功能。
在一些具体实施中,操作还可包括向变体检出单元提供所生成的K-mer图,其中该变体检出单元处理该K-mer图以确定多个读段中的一个或多个读段与参考序列之间的候选变体。
在一些具体实施中,软件指令可由一个或多个CPU或GPU执行,以实现变体检出单元的一种或多种功能。
在一些具体实施中,可编程逻辑设备用于加速变体检出单元的一种或多种功能。
在一些具体实施中,图描述数据还包括(iii)表示在与K-mer图标识符相关联的K-mer图或堆积的核酸序列上执行硬件逻辑的多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
根据本公开的另一创新方面,公开了一种使用可编程逻辑设备来硬件加速K-mer图生成的系统。在一个方面,系统可包括硬件加速图生成单元,该硬件加速图生成单元包括已被布置用于执行操作的硬件数字逻辑电路。在一些具体实施中,该操作可包括:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分;使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K-mer图,其中每个硬件逻辑单元包括被配置为执行一个或多个操作的不同硬件逻辑电路,其中该K-mer图的每个节点表示一个K-mer,该K-mer图的每个边缘表示一对K-mer之间的链路,并且该K-mer图的每个边缘的每个权重表示由一对K-mer表示的K-mer序列的出现次数;以及在生成该K-mer图期间:在通过用于生成该K-mer图的至少一部分的每个硬件逻辑单元执行该一个或多个操作之后,使用控制机周期性地更新该K-mer图的图描述数据,其中该图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息,其中该控制机通过在生成该K-mer图期间触发每个相应硬件逻辑单元执行该一个或多个操作来使用该非流水线硬件逻辑单元创建操作的工作流程。
其他版本包括用于执行前述操作的对应方法和装置。
这些和其他版本可任选地包括以下特征中的一个或多个特征。例如,在一些具体实施中,多个硬件逻辑单元中的每个硬件逻辑单元的输出经由散列表高速缓存存储。
在一些具体实施中,操作还可包括向变体检出单元提供所生成的K-mer图,其中该变体检出单元被配置为处理该K-mer图以确定多个读段中的一个或多个读段与参考序列之间的候选变体。
在一些具体实施中,系统还可包括一个或多个计算机以及一个或多个存储指令的存储器设备,该指令在由该一个或多个计算机执行时,使该一个或多个计算机执行变体检出单元的第二操作。在一些具体实施中,变体检出单元的第二操作可包括由该变体检出单元获得所生成的K-mer图,以及基于该变体检出单元处理所生成的K-mer图来识别一个或多个候选变体,其中候选变体是读段堆积中的一个或多个读段的碱基检出与参考基因组特定位置处的参考基因组核苷酸之间的差异。
在一些具体实施中,操作还可包括由变体检出单元获得所生成的K-mer图,以及基于该变体检出单元处理所生成的K-mer图来识别一个或多个候选变体,其中候选变体是读段堆积中的一个或多个读段的碱基检出与参考基因组特定位置处的参考基因组核苷酸之间的差异。
在一些具体实施中,图描述数据还包括(iii)表示在与K-mer图标识符相关联的K-mer图或堆积的核酸序列上执行硬件逻辑的多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
根据本公开的另一创新方面,公开了一种硬件加速图生成单元。在一个方面,硬件加速图生成单元可包括已被布置用于执行操作的硬件数字逻辑电路。在一些具体实施中,该操作可包括:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分;使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K-mer图,其中每个硬件逻辑单元包括被配置为执行一个或多个操作的不同硬件逻辑电路,其中该K-mer图的每个节点表示一个K-mer,该K-mer图的每个边缘表示一对K-mer之间的链路,并且该K-mer图的每个边缘的每个权重表示由一对K-mer表示的K-mer序列的出现次数;以及在生成该K-mer图期间:在通过用于生成该K-mer图的至少一部分的每个硬件逻辑单元执行该一个或多个操作之后,使用控制机周期性地更新该K-mer图的图描述数据,其中该图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息,其中该控制机通过在生成该K-mer图期间触发每个相应硬件逻辑单元执行该一个或多个操作来使用该非流水线硬件逻辑单元创建操作的工作流程。
其他具体实施可包括被配置为执行硬件加速图生成单元的硬件电路的操作的方法和系统。
这些和其他版本可任选地包括以下特征中的一个或多个特征。例如,在一些具体实施中,多个硬件逻辑单元中的每个硬件逻辑单元的输出经由散列表高速缓存存储。
在一些具体实施中,操作还可包括向变体检出单元提供所生成的K-mer图,其中该变体检出单元被配置为处理该K-mer图以确定多个读段中的一个或多个读段与参考序列之间的候选变体。
在一些具体实施中,操作还可包括由变体检出单元获得所生成的K-mer图,以及基于处理所生成的K-mer图的变体检出单元来识别一个或多个候选变体,其中候选变体是读段堆积中的一个或多个读段的碱基检出与参考基因组特定位置处的参考基因组核苷酸之间的差异。
在一些具体实施中,图描述数据还包括(iii)表示在与K-mer图标识符相关联的K-mer图或堆积的核酸序列上执行硬件逻辑的多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
根据本公开的另一创新方面,公开了一种在可编程逻辑设备中硬件加速K-mer图生成的方法。在一个方面,该方法可包括以下动作:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分;对于第一组核酸序列的每个特定核酸序列:通过第一硬件逻辑单元生成用于存储在散列表高速缓存中的数据,该数据表示该特定核酸序列的每个K-mer的图节点;通过控制机检测第一硬件逻辑单元已经针对该特定核酸序列的每个K-mer完成图节点的生成;通过该控制机配置第二硬件逻辑单元,以对所生成的图节点执行图边缘的生成;以及对于一对或多对所生成的图节点:通过第二硬件逻辑单元生成用于存储在图散列表中的数据,该数据表示由第一硬件逻辑单元生成的一对或多对所生成的图节点之间的图边缘,其中表示存储在散列表高速缓存中的每个K-mer的图节点的数据和表示存储在散列表高速缓存中的图边缘的数据表示第一组核酸序列的K-mer图。
其他版本包括已被配置为执行由硬件加速图生成单元的硬件逻辑电路限定的前述方法的动作的对应系统和装置。
这些和其他版本可任选地包括以下特征中的一个或多个特征。例如,在一些具体实施中,方法还可包括由控制机并在能够由该控制机访问的存储器单元中周期性地存储K-mer图的实例的图描述数据,其中该图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息。
在一些具体实施中,第一硬件逻辑单元还可被配置为:确定特定核酸序列的特定K-mer中的一个或多个特定K-mer是否匹配该特定核酸序列的另一个K-mer,并且基于确定该特定核酸序列的该一个或多个特定K-mer匹配该特定核酸序列的另一个K-mer,存储将该一个或多个特定K-mer标记为非唯一K-mer的数据。
在一些具体实施中,第二硬件逻辑还被配置为:将边缘权重分配给K-mer图的每个边缘。
在一些具体实施中,方法还可包括指示可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,该硬件逻辑被配置为:从散列表高速缓存获得表示K-mer图的数据,并将所获得的表示K-mer图的数据提供给变体检出单元。
在一些具体实施中,方法还可包括指示可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,该硬件逻辑被配置为:从散列表高速缓存选择性地删除K-mer图的表示图节点的数据和表示图边缘的数据。
在一些具体实施中,控制机使用可编程逻辑设备的第三硬件逻辑单元来实施。
在一些具体实施中,散列表高速缓存使用可编程逻辑设备的第三硬件逻辑单元来实施。
在一些具体实施中,控制机通过使用执行软件指令的一个或多个CPU或GPU来实施,以实现控制机的功能。
在一些具体实施中,图描述数据还包括(iii)表示在与K-mer图标识符相关联的K-mer图或堆积的核酸序列上执行硬件逻辑的多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
在一些具体实施中,方法还可包括评估K-mer图以检查图循环的存在。在此类具体实施中,如果在评估期间检测到图循环:则过程可包括终止K-mer图的生成。另选地,如果在评估期间未检测到图循环:则该方法可包括从散列表高速缓存获得描述K-mer图的结构的数据,并且向变体检出模块提供所获得的描述K-mer图的结构的数据。
根据本公开的另一创新方面,公开了一种使用可编程逻辑设备来硬件加速K-mer图生成的系统。该系统可包括硬件加速图生成单元,该硬件加速图生成单元包括已被布置用于执行操作的硬件数字逻辑电路。在一个方面,该操作可包括:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分;对于第一组核酸序列的每个特定核酸序列:通过第一硬件逻辑单元生成用于存储在散列表高速缓存中的数据,该数据表示该特定核酸序列的每个K-mer的图节点;通过控制机检测第一硬件逻辑单元已经针对该特定核酸序列的每个K-mer完成图节点的生成;通过该控制机配置第二硬件逻辑单元,以对所生成的图节点执行图边缘的生成;以及对于一对或多对所生成的图节点:通过第二硬件逻辑单元生成用于存储在图散列表中的数据,该数据表示由第一硬件逻辑单元生成的一对或多对所生成的图节点之间的图边缘,其中表示存储在散列表高速缓存中的每个K-mer的图节点的数据和表示存储在散列表高速缓存中的图边缘的数据表示第一组核酸序列的K-mer图。
其他版本包括用于执行前述操作的对应方法和装置。
这些和其他版本可任选地包括以下特征中的一个或多个特征。例如,在一些具体实施中,操作还可包括由控制机并在能够由该控制机访问的存储器单元中周期性地存储K-mer图的实例的图描述数据,其中该图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息。
在一些具体实施中,第一硬件逻辑单元还被配置为:确定特定核酸序列的特定K-mer中的一个或多个特定K-mer是否匹配该特定核酸序列的另一个K-mer,并且基于确定该特定核酸序列的该一个或多个特定K-mer匹配该特定核酸序列的另一个K-mer,存储将该一个或多个特定K-mer标记为非唯一K-mer的数据。
在一些具体实施中,第二硬件逻辑还被配置为:将边缘权重分配给K-mer图的每个边缘。
在一些具体实施中,操作还可包括指示可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,该硬件逻辑被配置为:从散列表高速缓存获得表示K-mer图的数据,并将所获得的表示K-mer图的数据提供给变体检出单元。
在一些具体实施中,操作还可包括指示可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,该硬件逻辑被配置为:从散列表高速缓存选择性地删除K-mer图的表示图节点的数据和表示图边缘的数据。
在一些具体实施中,散列表高速缓存使用可编程逻辑设备的第三硬件逻辑单元来实施。
在一些具体实施中,图描述数据还包括(iii)表示在与K-mer图标识符相关联的K-mer图或堆积的核酸序列上执行硬件逻辑的多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
在一些具体实施中,方法还可包括评估K-mer图以检查图循环的存在。在此类具体实施中,如果在评估期间检测到图循环:则过程可包括终止K-mer图的生成。另选地,如果在评估期间未检测到图循环:则该方法可包括从散列表高速缓存获得描述K-mer图的结构的数据,并且向变体检出模块提供所获得的描述K-mer图的结构的数据。
根据本公开的另一创新方面,公开了一种硬件加速图生成单元。硬件加速图生成单元可包括已被布置用于执行操作的硬件数字逻辑电路。在一个方面,该操作可包括:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分;对于第一组核酸序列的每个特定核酸序列:通过第一硬件逻辑单元生成用于存储在散列表高速缓存中的数据,该数据表示该特定核酸序列的每个K-mer的图节点;通过控制机检测第一硬件逻辑单元已经针对该特定核酸序列的每个K-mer完成图节点的生成;通过该控制机配置第二硬件逻辑单元,以对所生成的图节点执行图边缘的生成;以及对于一对或多对所生成的图节点:通过第二硬件逻辑单元生成用于存储在图散列表中的数据,该数据表示由第一硬件逻辑单元生成的一对或多对所生成的图节点之间的图边缘,其中表示存储在散列表高速缓存中的每个K-mer的图节点的数据和表示存储在散列表高速缓存中的图边缘的数据表示第一组核酸序列的K-mer图。
其他具体实施可包括被配置为执行硬件加速图生成单元的硬件电路的操作的方法和系统。
这些和其他版本可任选地包括以下特征中的一个或多个特征。例如,在一些具体实施中,操作还可包括由控制机并在能够由该控制机访问的存储器单元中周期性地存储K-mer图的实例的图描述数据,其中该图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息。
在一些具体实施中,第一硬件逻辑单元可被配置为:确定特定核酸序列的特定K-mer中的一个或多个特定K-mer是否匹配该特定核酸序列的另一个K-mer,并且基于确定该特定核酸序列的该一个或多个特定K-mer匹配该特定核酸序列的另一个K-mer,存储将该一个或多个特定K-mer标记为非唯一K-mer的数据。
在一些具体实施中,第二硬件逻辑还被配置为:将边缘权重分配给K-mer图的每个边缘。
在一些具体实施中,操作还可包括指示可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,该硬件逻辑被配置为:从散列表高速缓存获得表示K-mer图的数据,并将所获得的表示K-mer图的数据提供给变体检出单元。
在一些具体实施中,操作还可包括指示可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,该硬件逻辑被配置为:从散列表高速缓存选择性地删除K-mer图的表示图节点的数据和表示图边缘的数据。
在一些具体实施中,散列表高速缓存使用可编程逻辑设备的第三硬件逻辑单元来实施。
在一些具体实施中,图描述数据还包括(iii)表示在与K-mer图标识符相关联的K-mer图或堆积的核酸序列上执行硬件逻辑的多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
在一些具体实施中,操作还可包括评估K-mer图以检查图循环的存在,如果在评估期间检测到图循环:则终止K-mer图的生成,或者如果在评估期间未检测到图循环:则从散列表高速缓存获得描述K-mer图的结构的数据,并且向变体检出模块提供所获得的描述K-mer图的结构的数据。
下面参考附图在详细描述中更详细地讨论本公开的这些和其他方面。
附图说明
图1是用于硬件加速K-mer图生成的系统的示例。
图2是用于硬件加速K-mer图生成的过程的示例的流程图。
图3是用于硬件加速K-mer图生成的过程的另一示例的流程图。
图4是K-mer图的示例。
图5是可用于硬件加速K-mer图生成的系统部件的示例的框图。
具体实施方式
本公开针对硬件加速K-mer图生成。使用硬件电路生成K-mer图显著减少了生成K-mer图所需的时间量,并将计算密集型K-mer图生成过程从软件处理器卸载到集成电路(诸如现场可编程门阵列或ASIC)的硬件逻辑。这释放了软件处理器的软件资源,可用于执行其他基因组数据处理任务。
可使用被配置为管理由多个非流水线硬件逻辑单元执行的操作的工作流程的控制机来实现硬件加速K-mer图生成。具体地,控制机可使用多个非流水线硬件逻辑单元抽象地实现高级流水线功能。控制机可通过存储和更新图描述数据来实现此功能,该图描述数据包括(i)标识K-mer图的实例的K-mer图标识符和(ii)K-mer图状态信息。K-mer图状态信息可包括例如指示对K-mer图的特定实例的原始图数据进行操作的最后一个硬件逻辑单元的数据、指示最后一个硬件逻辑单元是否中止操作的数据、指示K-mer长度的数据、指示K-mer节点列表的数据、指示可用于识别高速缓存中K-mer节点的指针列表的数据、K-mer节点列表的长度、指示非唯一K-mer的列表的数据或它们的任何子集或组合。控制机通过调用将对原始图数据执行操作的特定硬件逻辑单元,并且向调用的硬件逻辑单元提供的一组更新的图描述数据来管理K-mer图生成。
图描述数据的这种存储和更新使控制机能够以使每个非流水线硬件逻辑单元能够对与不同K-mer图对应的数据进行操作的方式管理非流水线硬件逻辑单元的并行处理。因此,除了使用硬件逻辑而不是执行软件指令来生成K-mer图所实现的增加的速度效益之外,本公开通过使用由控制机管理的不同硬件逻辑单元同时生成不同的K-mer图的片段来增加吞吐量,从而实现了进一步加速的操作。
图1是用于硬件加速K-mer图生成的系统100的示例。在一些具体实施中,系统100可包括核酸测序仪110、参考序列数据库120、硬件加速图生成单元130、多个硬件逻辑单元131、132、133、134、135、136、137、138、控制机140、图散列表高速缓存150、DRAM 160和变体检出单元180。在一些具体实施中,硬件加速图生成单元130可使用可编程逻辑电路诸如现场可编程门阵列(FPGA)来实施。在其他具体实施中,硬件加速图生成单元130可使用专用集成电路(ASIC)来实施。在任一情况下,相对于硬件加速图生成单元130和在其上实施的每个部件所描述的功能使用硬件逻辑电路来实施,该硬件逻辑电路被布置用于实现本文所述的功能而无需执行软件指令来实现该功能。
本说明书中使用术语“单元”来描述用于执行指定功能的软件模块、硬件模块或两者的组合。本文描述的特定“单元”为硬件、软件还是两者的组合可基于其使用的上下文来确定。例如,驻留在使用FPGA或ASIC实施的硬件加速图生成单元130中的“输入单元”131、“图节点单元”132、“图边缘单元”133等是硬件单元,其功能通过硬连线数字逻辑门或硬连线数字逻辑块来实现,该硬连线数字逻辑门或硬连线数字逻辑块已被布置用于实现本文相对于特定“单元”描述的功能。又如,未使用图1中的硬件加速图生成单元130实施的“变体检出单元”180是软件模块,其功能由执行定义“变体检出单元”180的功能的软件指令的一个或多个计算机实现。又如,计算机或处理单元可以是通过处理软件指令实现功能的硬件设备,并且因此计算机或处理单元的功能是硬件和软件的组合。
虽然图1中的一个或多个部件的示例在本文中被提供为诸如“控制机”140的硬件具体实施,但是由于“控制机”在图1中被示出为在硬件加速图生成单元130中实施,因此本公开不限于此类示例。相反,可采用其他具体实施,其中“控制机”140在软件中被实施为软件模块或硬件和软件的组合,并且计算机或处理单元执行软件指令以实现此处所述的“控制机”140的功能。同样,可以有本公开的具体实施,其中相对于图1被描述为软件的某些部件诸如“变体检出单元”180被实施为硬件具体实施。
核酸测序仪110是被配置为执行初步分析的设备。初步分析可包括通过核酸测序仪110接收生物样品105诸如血液样品、组织样品、唾液或核酸,以及由核酸测序仪110生成输出数据诸如一个或多个读段112,每个读段表示所接收的生物样品的核酸序列的核苷酸顺序。在一些具体实施中,由核酸测序仪110进行的测序可在多个读段循环中执行,其中第一读段循环生成包括表示从核酸序列片段的第一末端起的核苷酸顺序的一串碱基检出的一个或多个第一读段,并且第二读段循环生成包括表示从核酸序列片段之一的其他末端起的核苷酸顺序的一串碱基检出的一个或多个相应的第二读段。在一些具体实施中,可以使用克隆扩增生成读段。在图1的示例中,一个或多个读段112可包括特定参考基因组位置的读段的堆积,其中参考基因组位置由多个连续的参考基因组位置组成。
因此,每个读段是表示生物体诸如动物、昆虫、植物等的核酸基因组的一部分的数据。假设检出大约600个碱基的短核酸序列片段,则第一读段可表示核酸序列片段的第一末端的150个有序核苷酸,并且第二读段可表示核酸序列片段的另一末端的150个有序核苷酸。然而,这些数字仅仅是示例,并且任何核酸测序仪110可被配置为生成可通过如本文所述的硬件加速图生成单元使用任何测序方法操作的读段。此类读段的长度可与此处提到的长度不同。例如,在一些具体实施中,本公开可用于针对读段生成硬件加速K-mer图,读段由具有多达1000个或更多核苷酸的核酸序列片段生成,其中每个读段具有例如从每个片段末端起50个碱基检出、75个碱基检出、150个碱基检出、200个碱基检出、300个碱基检出、500个碱基检出或更多碱基检出。每个碱基检出可对应于一个核苷酸。本公开还可用于针对长读段生成硬件加速K-mer图。因此,硬件加速图生成单元130可用于针对通过任何类型的核酸测序仪以任何方式生成的任何读段生成K-mer图。
在一些具体实施中,生物样品105可包括DNA样品,并且核酸测序仪110可包括DNA测序仪。在此类具体实施中,由核酸测序仪生成的读段中的有序核苷酸的顺序可包括形成任何组合的鸟嘌呤(G)、胞嘧啶(C)、腺嘌呤(A)和胸腺嘧啶(T)中的一者或多者。在一些具体实施中,核酸测序仪110可用于对RNA样品进行测序。在一些具体实施中,这可使用RNA-seq协议进行。以举例的方式,可使用逆转录酶对RNA样品进行预处理以使用逆转录酶形成互补DNA(cDNA)。在其他具体实施中,核酸测序仪110可包括RNA测序仪,并且生物样品可包括RNA样品。因此,虽然图1的示例描述了通过DNA测序仪基于DNA样品生成由G、C、A和T组成的读段的核酸测序仪,但本公开不限于此。相反,其他具体实施可处理通过RNA测序仪基于RNA样品生成的由C、G、A和U组成的读段。在一些具体实施中,通过核酸测序仪生成的DNA读段或RNA读段可包括碱基检出N,其中N指示由核酸测序仪生成的未知碱基检出。
在一些具体实施中,核酸测序仪110可包括下一代测序仪(NGS),下一代测序仪被配置为通过使用大规模并行测序技术以实现超高吞吐量、可扩展性和速度的方式生成给定样品的序列读段诸如读段112。NGS使得能够对整个基因组进行快速测序,能够扩大到深度测序的靶区域中,利用RNA测序(RNA-Seq)发现新型RNA变异和剪接位点,或定量mRNA用于基因表达分析,表观遗传因子诸如全基因组DNA甲基化和DNA蛋白相互作用的分析,癌症样品测序以研究罕见体细胞变异和肿瘤亚克隆,以及研究人类或环境中的微生物多样性。
核酸测序仪110可从参考基因组数据库122获得参考基因组122。在一些具体实施中,仅获得参考基因组122的一部分。所获得的参考基因组122的一部分可对应于参考基因组122的参考位置,读段112的堆积被映射到该参考位置并且与之比对。参考基因组数据库122可包括组织多个不同参考基因组的存储的数据存储。在一些具体实施中,选自参考基因组数据库的特定参考基因组122可基于DNA样品105的类型。在一些具体实施中,选自参考基因组数据库120的所选择的参考基因组122的类型可基于来自核酸测序仪110的用户的输入来选择。在此类具体实施中,用户可例如选择可通过核酸测序仪110使用的参考基因组120标识符,以从参考基因组数据库120选择特定参考基因组122。参考基因组122可包括例如组装为特定物种的一组基因的代表性示例的核酸序列。
通过核酸测序仪110生成的读段112的堆积和所获得的参考基因组122的组合可被提供为硬件加速图生成单元130的输入。这些输入可通过硬件加速图生成单元130的硬件逻辑单元131至138中的一者或多者处理,以生成K-mer图的实例。例如,硬件逻辑单元131至138的每个硬件逻辑单元可被配置为对作为硬件加速图生成单元130的输入而包括的读段112的堆积的每个读段执行其相应的操作。
图1的系统100在本文描述为包括核酸测序仪。在一些具体实施中,诸如参考图1所描述的,系统可包括测序仪110和硬件加速图生成单元130,并且系统100的其他部件可集成在核酸测序仪110内。然而,本公开不限于集成在核酸测序仪110内。相反,在一些具体实施中,硬件加速图生成单元130可以在可编程逻辑设备或ASIC中实施,可编程逻辑设备或ASIC集成或容纳在远离核酸测序仪110的计算机内,并且诸如通过使用一个或多个有线或无线网络以通信方式耦接到核酸测序仪110。相似地,数据库120、变体检出单元180或两者可在核酸测序仪110外部实施。同样,根本不要求系统100包括核酸测序仪110。相反,在一些具体实施中,硬件加速图生成单元130和图1的其他部件可以在不包括核酸测序仪110的计算机系统中实施。在此类具体实施中,硬件加速图生成单元可经由网络从一个或多个存储器设备的一个或多个存储位置获得读段112的堆积、参考序列122或两者等。因此,系统100示出了本公开的示例,但不将本公开限制为系统部件的任何一个特定配置。
硬件加速图生成单元130的一个或多个硬件逻辑单元可包括输入单元131、图节点单元132、图边缘单元133、反向传播单元134、循环单元135、修剪单元136、图输出单元137和擦除单元138。在一些具体实施中,通过硬件加速图生成单元130生成K-mer图可包括控制机140激活和配置硬件逻辑单元131至138中的每个硬件逻辑单元,以对存储在高速缓存150或DRAM 160中的一组数据执行其相应的硬件逻辑操作。在其他具体实施中,控制机140可仅激活和配置硬件逻辑单元131至138的子集,以对存储在高速缓存150或DRAM 160中的一组原始图数据执行其相应的硬件逻辑操作。
以举例的方式,在一些具体实施中,硬件加速图生成单元130可用于生成德布莱英图的特殊形式。可优化德布莱英图的这种特殊形式使得在图中使用多个相应节点表示非唯一K-mer,每个节点具有单个边缘,而不是由具有多个边缘的单个节点表示。这可部分地通过使用图单元132以识别非唯一K-mer并且标记非唯一K-mer以供进一步处理来实现。非唯一K-mer可被定义为在任何单个读段中出现至少两次或在参考序列中出现至少两次的K-mer序列。唯一K-mer不会在相同读段中出现超过一次,但仍可出现在多个读段中。
然而,在其他具体实施中,可生成德布莱英图,而不区分唯一或非唯一K-mer。因此,在一些具体实施中,不需要实施可识别非唯一K-mer的图节点单元132。在另一示例中,反向传播单元134不需要用于生成所有的K-mer图。相反,反向传播单元134可能限于其可以改善性能的具体实施。以举例的方式,反向传播单元134可用于在预期生成的K-mer图后续转换为序列图时提高边缘权重的质量。
相对于图1的示例所描述的K-mer图生成的示例示出了可由控制机140激活和配置的每个硬件逻辑单元131至138。在本描述中,每个硬件逻辑单元131至138通常被描述为由控制机140激活、由控制机140配置、使用例如由控制机140存储的图描述数据、获得原始图数据、对获得的原始图数据或其他数据执行一个或多个特定处理操作,以及随后更新原始图数据、图描述数据或两者,本公开不限于此。然而,本公开不限于此类具体实施。相反,在一些具体实施中,每个硬件逻辑单元131至138可被配置为执行其相应功能的多个实例。例如,图节点单元132可被配置为接受多达3组不同的原始图数据并且同时对这些原始图数据执行其操作,循环硬件逻辑单元135可被配置为接受多达3组不同的原始图数据并且同时对这些原始图数据执行其操作,并且PRU可被配置为接受多达2组不同的原始图数据并且同时对这些原始图数据执行其操作。可由特定硬件逻辑单元131至138接收和处理的各自对应于不同K-mer图的原始图数据的不同组的数量仅受系统100的可用硬件资源限制。例如,假设足够水平的DRAM和FPGA逻辑单元可供使用,可由硬件逻辑单元131至138接收并且同时处理的原始图数据的不同组的数量可以大于3。同样,如果此类资源不易得或者如果特定硬件逻辑单元预期不会被大量使用,则一个或多个硬件逻辑单元131至138可被配置为接收并且同时处理较低数量的组的原始图数据。
在其他具体实施中,不要求每个硬件逻辑单元131至138只有一个实例,每个硬件逻辑单元能够同时处理各自对应于不同K-mer图的不同组的原始图数据。相反,在一些具体实施中,每个硬件加速图生成单元130的多个实例可被配置为包括硬件逻辑单元131至138中的一个或多个硬件逻辑单元的多个实例。在此类实例中,控制机140可被配置为监测每个硬件逻辑单元131至138的状态和可用性,然后以跨每个相应的硬件逻辑单元对处理操作进行负载平衡的方式激活和配置每个硬件逻辑单元。例如,在一些具体实施中,硬件加速图生成单元130可被配置为具有:图节点单元132的3个实例,每个实例能够接收多达3组不同的原始图数据并且同时对这些原始图数据执行其操作;图边缘单元133的3个实例,每个实例能够接收多达3组不同的原始图数据并且同时对这些原始图数据执行其操作;2个反向传播单元134,每个反向传播单元能够接收多达2组不同的原始图数据并且同时对这些原始图数据执行其操作;以及3个循环单元135,每个循环单元能够接收多达2组不同的原始图数据并且同时对这些原始图数据执行其操作。每个硬件逻辑单元的激活/去激活、每个硬件逻辑单元的配置、每个硬件逻辑单元的输入、每个硬件逻辑单元的输出以及每个硬件逻辑单元对图描述数据的更新由控制机140管理和引导。
输入单元
输入单元131可接收包括所生成的读段112的堆积和所选择的参考基因组122的输入数据,其在本文中可被称为原始图数据。所选择的参考基因组122可包括参考基因组的一部分。原始图数据可包括例如由一个或多个硬件逻辑单元131至138在生成K-mer图的实例期间处理的数据。虽然原始图数据包括例如所生成的读段112和所选择的参考基因组122,但是原始图数据还可包括例如由图节点单元132生成的K-mer节点、由图边缘单元133生成的边缘等。输入单元131可格式化所生成的读段112和所获得的参考基因组122以用于存储在DRAM 160中。格式化所生成的读段可包括例如编码用于存储在DRAM 160中的读段。在一些具体实施中,编码读段可包括将与读段的核苷酸相对应的每个碱基检出编码为4位值。例如,A可被编码为0000,C可被编码为0001,G可被编码为0010,T可被编码为0011,并且N可被编码为0100,其中N是未知碱基检出。在一些具体实施中,编码的数据还可包括表示MAPQ评分、读段编号、序列长度、SAM标记、读段的碱基检出或核苷酸、除MAPQ评分之外的读段的一个或多个质量指标或它们的任一组合的数据。所编码的读段数据可在描述读段的16位值到64位值或更多的范围内。输入单元131可将所生成的读段写入DRAM 160。
控制机140可检测原始输入数据的接收、激活输入单元131以及初始化图描述数据,该图描述数据对应于要基于原始输入数据生成的K-mer图的实例。激活输入单元131可包括控制机140向输入单元131发送一个或多个控制消息,该一个或多个控制消息指示输入单元131对作为输入单元131的输入提供的原始数据执行由输入单元131的硬件逻辑电路限定的操作。在一些具体实施中,激活硬件逻辑单元诸如输入单元131还可包括控制机向硬件逻辑单元提供可用于配置硬件逻辑单元以执行其操作的图描述数据。配置硬件逻辑单元可包括例如向存储K-mer、K-mer节点的高速缓存存储位置提供指针、提供描述K-mer长度的信息或硬件逻辑单元需要操作的类似信息。
初始化图描述数据可包括例如控制机140生成原始输入数据的K-mer图标识符、生成图状态信息数据结构或它们的组合。K-mer图标识符包括一个或多个字符、一个或多个数字或它们的组合的数据串,该数据串可在针对特定组的原始图数据完成生成K-mer图之后,用于在整个K-mer图生成过程中识别K-mer图的实例,其中K-mer图生成过程为从输入单元131接收到原始图数据的时间到至少擦除单元138用于从高速缓存150、DRAM 160或两者中移除与K-mer图标识符相关的数据的时间。在一些具体实施中,K-mer图标识符可包括数字,诸如值在0-63之间的6位数字。在一些具体实施中,K-mer图标识符甚至可用于在擦除单元用于从高速缓存150、DRAM160或两者中移除前述数据之后指代K-mer图。图状态信息数据结构是具有一个或多个字段的数据结构,该一个或多个字段存储描述要针对特定组的原始输入数据生成的K-mer图的实例的当前状态的数据。状态信息可包括例如指示对K-mer图的特定实例的原始图数据进行操作的最后一个硬件逻辑单元的数据、指示最后一个硬件逻辑单元是否中止操作的数据、指示K-mer长度的数据、指示K-mer节点列表的数据、指示可用于识别高速缓存中K-mer节点的指针列表的数据、K-mer节点列表的长度、指示非唯一K-mer的列表的数据、指示在高速缓存或DRAM中的原始输入数据的位置的数据、指示DRAM中K-mer图实例的节点的基址的数据或它们的任何子集或组合。
输入单元131可格式化输入读段112和参考基因组122并且将输入读段112和参考基因组写入DRAM 160。控制机140可检测输入单元131何时已经完成格式化输入读段112和参考基因组122并将其写入DRAM 160。在控制机140检测到格式化输入读段112和参考基因组122并将其写入DRAM完成后,控制机140可更新图状态信息以指示输入单元131已完成其对K-mer图的第一实例的第一原始图数据的操作。
一旦第一原始图数据已被输入、格式化并且存储在DRAM 160中,控制机140就可确定接下来要激活和配置的下一硬件逻辑单元。例如,控制机140可激活和配置图节点单元132以基于被格式化并存储在DRAM 160中的参考基因组122和读段堆积的一部分来生成K-mer节点。
图节点单元
控制机140可通过处理存储在DRAM中的格式化的读段112和参考基因组122来激活和配置图节点单元132以继续生成K-mer图的第一实例。这可包括例如向图节点单元132发送控制信号、向图节点单元132提供图描述数据或它们的组合。图描述数据可用于配置图节点单元132以供操作。例如,向图节点单元132和从控制机140提供图描述数据可配置图节点单元132以识别由图描述数据限定的特定大小的K-mer。本文所述的图描述数据的其他字段可用于以类似的方式配置硬件逻辑单元诸如图节点单元132。
另外,控制机140可以基本上并行的方式检测输入单元131接收第二原始图数据作为输入。然后,控制机140可激活输入单元131、指示单元131格式化第二原始图数据的读段和参考基因组,并且针对要基于第二原始图数据生成的K-mer图的第二实例生成第二图描述数据。因此,控制机140可通过同时管理不同硬件逻辑单元131、132的性能来实现高水平的吞吐量,这些硬件逻辑单元在不同处理阶段对不同组的原始图数据执行K-mer图的生成过程。控制机140被配置为跨硬件逻辑单元131、132、133、134、135、136、137、138中的每个硬件逻辑单元来管理这种并行功能,使得在任何特定时间点,可能有多达八个硬件逻辑单元对八组不同的原始图数据进行操作,其中硬件加速图生成单元130致力于同时生成八个不同的K-mer图。控制机140使用图描述数据,通过激活和配置每个相应硬件逻辑单元来管理整个过程,以从非流水线硬件逻辑单元131、132、133、134、135、136、137、138抽象地实现高级流水线功能,这使得在每个相应硬件逻辑单元之间没有直接和物理的输入/输出连接。尽管示出了同时执行八个K-mer图同时生成的示例,但是本公开可被配置为诸如通过一次实施多个硬件加速图生成单元130、在一个或多个硬件加速图生成单元130上实施多个硬件逻辑单元的多个实例或它们的组合来实现更多K-mer图同时生成。
图节点单元132可分析读段112的堆积的每个读段以识别读段的每个K-mer。这可包括例如沿着每个读段的每个位置滑动K-mer访问窗口,以识别相应读段的每个特定K-mer。对于每个读段的每个所标识的K-mer,图节点单元132可将表示K-mer图的节点的数据存储在高速缓存150中。同样,图节点单元132还可在DRAM中生成和存储节点指针的数据结构中的节点指针列表,其中每个节点指针指向一个K-mer节点高速缓存位置。图节点单元132还可生成和存储指示由控制机维护的图描述数据中每个K-mer图的节点指针列表的位置和长度的信息。这些指针可由控制机140用作图状态信息,以在K-mer图生成过程的后续部分期间配置另一硬件逻辑单元。高速缓存150可采用一个或多个高速缓存一致性策略,诸如被配置为将最旧的对象逐出高速缓存150的LRU高速缓存一致性策略,其中最旧的对象基于对象被写入高速缓存150的时间来确定。
由图节点单元132生成并存储在高速缓存150、DRAM 160或两者中的数据的示例参考图4所示。图4示出了参考基因组410、读段420的一部分并且提供了德布莱英图400。下文更详细地描述的德布莱英图400包括用于基因组410和读段420的该部分中的每个K-mer的节点以及连接具有k-1个重叠核苷酸的一对节点的每对K-mer节点之间的边缘。
参考图4的示例,图节点单元132可基于接收到参考基因组410和读段420的一部分生成表示德布莱英图400的第一路径430的节点431、432、433、434、435、436、437、438的数据并且可生成节点441、442、443、444。首先,图节点单元132可比对参考基因组410a、410b的重叠部分和读段420a、420b的重叠部分以识别如图4所示的重叠区域。图节点单元132可识别基因组410和读段420的该部分的每个K-mer。这可通过以下方式实现:使用长度为k(在该示例中等于4)的访问窗口;在参考基因组410的该部分的第一位置处捕获由访问窗口识别的K-mer;生成表示包括所捕获的K-mer的图的节点的数据;将表示节点的数据存储在高速缓存150中;将访问窗口推进一个核苷酸;以及之后迭代地重复该过程。在该示例中,图节点单元132可识别参考基因组410的部分的K-mer ATCG、TCGC、CGCC、GCCT、CCTA、CTAG、TAGA和AGAA,并且生成相应节点431、432、433、434、435、436、437、438,这些节点中的一个节点对应于相应的K-mer。每个节点被创建为具有k(在该示例中为4)的长度,并且与下一相邻节点具有重叠数量的k-1个K-mer。图节点单元132可将生成的节点存储在高速缓存150、DRAM 160或两者中。在一些具体实施中,高速缓存可包括散列表高速缓存。在此类具体实施中,节点可被存储为散列表的键。图节点单元132可在由控制机140维护的图描述数据中存储描述指向K-mer节点位置的指针的数据。
图节点单元132可对读段420执行相同的操作。相对于读段420,图节点单元132可识别K-mer ATCG、TCGC、CGCG、GCGT、CGTA、GTAG、TAGA和AGAA。这可通过以下方式类似地实现:使用长度为k(在该示例中等于4)的访问窗口;在读段420的该部分的第一位置处捕获由访问窗口识别的K-mer;以及之后推进访问窗口并重复该过程。图节点单元132可从识别基因组410的部分的每个K-mer开始。在一些具体实施中,图节点单元132可针对每个K-mer生成对应的节点。在其他具体实施中,图节点单元132可仅生成对应于所识别的K-mer的431、432、433、434、435、436、437、438,所识别的K-mer与参考基因组410的该部分的K-mer节点不同。在每种情况下,每个节点被创建为具有k(在该示例中为4)的长度,并且与下一相邻节点具有重叠数量的k-1个K-mer。这可以继续直到参考基因组410的该部分的每个K-mer的节点被创建并且存储在高速缓存150或DRAM 160中。
在一些具体实施中,图节点单元132还可被配置为识别非唯一K-mer。在此类具体实施中,图节点单元132可针对读段的第一堆积的每个特定读段确定所识别的K-mer是唯一K-mer还是非唯一K-mer。如果图节点单元132确定特定K-mer是唯一K-mer,则图节点单元132可将访问窗口推进单个核苷酸以评估下一K-mer。另选地,如果图节点单元132确定特定K-mer是非唯一K-mer,则图节点单元132可存储指示该特定K-mer是非唯一K-mer的数据。例如,图节点单元132可在控制机针对K-mer图的特定实例维护的图描述数据中存储数据标记,该数据标记指示K-mer是非唯一K-mer。然而,此类数据可由硬件加速图生成单元130的任何其他部件存储,存储在硬件加速图生成单元130的任何其他存储器单元或它们的组合中。然后,后续硬件逻辑单元可执行解决非唯一K-mer的操作,以便减少或消除K-mer图的实例中的循环。
在该过程的这一点上,图节点单元132存储表示针对高速缓存150、DRAM 160或两者中的每个K-mer的K-mer图的节点的数据。即,硬件加速图生成单元130尚未生成图边缘431a、432a、433a、434a、435a、436a、437a、432b、441a、442a、443a、444a、图边缘权重等。K-mer图的这个实例的这些特征可由硬件加速图生成单元130的一个或多个其他硬件逻辑单元生成。
控制机140可监测图节点单元132的操作。一旦图节点单元132针对K-mer图的该第一实例生成针对第一原始图数据的每个读段的每个K-mer表示K-mer节点的数据,控制机就可更新图描述数据以指示硬件加速图生成单元130已完成图节点单元132对第一原始图数据的操作。另外,控制机140还可存储图描述数据,该图描述数据包括例如识别每个非唯一K-mer的标记、K-mer图节点的存储位置和指示图节点单元132已完成其操作的数据。
一旦K-mer图节点已生成并且存储在高速缓存150中,控制机140就可确定接下来要激活和配置的下一硬件逻辑单元。例如,控制机140可激活和配置图边缘单元133以对节点对之间的图边缘生成、加权或两者。
图边缘单元
图边缘单元133可生成由图节点单元132生成的K-mer节点对之间的图边缘。一旦确定第一K-mer图实例的图节点单元132完成并且图边缘单元133可用,控制机140就可激活图边缘单元133。在一些具体实施中,控制机140可提供或以其他方式能够访问图边缘单元133的位置,该位置存储由图节点单元132针对K-mer图的特定实例生成的K-mer图节点。例如,控制机140可在针对K-mer图的实例生成K-mer节点期间访问由图节点单元132生成和存储的K-mer图描述数据。访问的K-mer图描述数据可指示或以其他方式描述K-mer列表。
一旦图边缘单元133已针对K-mer图的第一实例获得K-mer图节点的位置,图边缘单元就可以开始生成表示K-mer节点的数据之间的一个或多个图边缘。在一些具体实施中,图边缘单元133可针对来自散列表高速缓存的特定读段的每个K-mer访问表示图节点的数据。图边缘单元133可生成用于存储在散列表高速缓存中的表示K-mer的图节点之间的图边缘的数据。例如,表示图边缘的数据可存储在散列表高速缓存中作为边缘的源节点的图节点记录的一部分。在一些具体实施中,图边缘单元133可将边缘权重分配给K-mer图的每个边缘。例如,对于连接相应K-mer对的图边缘的每次出现,图边缘单元133可添加+1的或其他权重。
以举例的方式,图边缘单元133可使用从控制机140获得的图描述数据来识别节点,该节点为相邻节点。可基于多种因素将节点确定为相邻节点,这些因素包括确定节点共享k-1个重叠核苷酸以及在滑动K-mer访问窗口的两个连续位置中观察到节点。例如,图边缘单元133可沿着原始图数据的每个读段的每个位置滑动K-mer访问窗口。在一些具体实施中,图边缘单元133可在确定在读段中观察到两个连续K-mer与除一个碱基外的全部碱基重叠时创建边缘或增加边缘权重。图节点133在这种情况下创建边缘或增加边缘权重,因为这种情况意味着对应于这两个连续K-mer的图节点之间的边缘。
在一些具体实施中,表示图节点的数据可被存储为散列表的散列键。在此类具体实施中,图边缘单元133可通过访问第一节点(或散列键)被映射到的散列位置并且生成用于存储在散列位置中的指向第二节点(或散列键)的指针来生成从第一节点(或散列键)到第二节点(或散列键)的边缘。可以相同的方式生成后续边缘,这通过可使用一个或多个图遍历算法进行遍历的图来创建路径430或440。
参考图4的示例,图边缘单元133可生成表示第一路径430的节点431、432、433、434、435、436、437、438的节点对、第二路径440的节点441、442、443、444的节点对或第一路径430和第二路径440中的一对或多对节点对之间的一个或多个边缘的数据。这些边缘的示例在图4中示出为边缘431a、432a、433a、434a、435a、436a、437a、432b、441a、442a、443a、444a。
在该示例中,核苷酸420的序列被称为读段。然而,在一些具体实施中,可发生低质量碱基的去除,使得核苷酸420的序列为读段的一部分或重叠群。在此类具体实施中,连接一对节点的图边缘将在特定重叠群内仅创建一个或多个链路的路径,而不是从第一重叠群的K-mer节点到第二重叠群的K-mer节点的路径。重叠群可包括在去除低质量碱基之后出现的核苷酸序列。
反向传播单元
硬件加速图生成单元130可包括反向传播单元134。然而,在某些具体实施中,控制机140可仅激活和配置反向传播单元134。例如,当控制机140确定由当前组的原始图数据生成的K-mer图稍后将被转换为序列图时,控制机140可激活反向传播单元134。当激活时,反向传播模块134可从控制机140接收图描述数据。在此类具体实施中,对图边缘权重的调整可使权重在被序列图继承时更可靠。
图边缘单元133可通过以下方式构建重叠群的K-mer节点之间的边缘:识别高速缓存150中的对应K-mer节点;生成连接K-mer节点的边缘;以及之后为每次出现的边缘增加+1的权重。在一些具体实施中,在已将重叠群的K-mer节点添加到K-mer图中并且使用图边缘单元134加权之后,反向传播单元134可用于通过K-mer图中的重叠群起始节点“左边”的图边缘的线性链使+1边缘权重增量反向传播k-1阶段。在此上下文中,K-mer图中的重叠群起始节点的“左边”是K-mer图的方向,该方向与K-mer图的有向边缘相对。为了说明此概念,德布莱英图400中的节点434的“左边”将是节点433、432和431。
例如,在一些具体实施中,反向传播模块134可在散列表高速缓存中访问表示K-mer图的数据,该K-mer图包括其K-mer节点、对应的图边缘等,然后调整在新配置开始之前出现的k-1个节点的边缘权重。反向传播单元135可基于从控制机160接收的图描述数据来定位合适的K-mer节点和边缘以进行调整,该图描述数据包括指向存储此信息的高速缓存位置的指针。可通过在反向传播期间出现的任何变化来更新图描述数据。
在一些具体实施中,执行前述反向传播可能是有利的,因为N-碱基重叠群可能仅增加一连串的(N-K)边缘权重。然而,如果此K-mer图后续转换为具有对应于此重叠群的(N-1)个内部边缘的序列图,那么前(K-1)个边缘权重将不会继承正确递增的边缘权重。前述反向传播解决了这个问题的大多数情况。因此,可使用反向传播来解决这个问题,以便在将K-mer图转换为序列图时增加所继承的边缘权重的可靠性。
循环单元
硬件加速图生成单元130可包括循环单元135。在一些具体实施中,循环单元135可由控制机140激活和配置以检测K-mer图的实例中的循环。例如,循环单元135可评估已经由输入单元131、图节点单元132、图边缘单元133和反向传播单元134中的一者或多者生成的K-mer图的实例的原始图数据的K-mer节点和K-mer边缘。循环单元135被配置为从控制机140接收图描述数据。循环单元135可迭代地标记用于删除的头节点。头节点可包括不包含任何内边缘的节点。其中,内边缘是从第一节点指向第一节点本身的边缘。在每个头节点被标记为删除之后,循环单元135可确定作为删除节点的结果,由外边缘指向的任何节点是否已经成为头节点。如果确定此类节点,则将其标记为删除。外边缘是从第一节点指向另一节点的图边缘。循环单元135可继续执行该过程,直到没有头节点剩余。
在确定没有头节点剩余的情况下,循环单元135可确定图是否为空,若为空图则意味着图的所有节点被标记为删除。如果无头图为空,则没有循环。另选地,如果无头图不为空,则该图必须包含循环。循环对这种删除有抵抗力,因为循环中的任何节点都不会通过删除循环外的节点而成为头节点。
在进行这些确定之一时,循环单元135可向控制机140提供关于是否检测到循环的指示。然后,基于来自循环单元135的所提供的指示,控制机140可确定接下来应该被激活和配置的硬件逻辑单元。例如,如果检测到循环并且应中止K-mer图的实例的生成,则控制机140可激活和配置擦除单元138。在此类情况下,擦除单元可从高速缓存150和DRAM 160删除对应于所中止的K-mer图的实例的原始图数据。另选地,如果将继续生成K-mer图的实例,则控制机140可激活和配置另一硬件逻辑单元以对原始图数据执行后续操作,从而生成K-mer图的实例。例如,如果K-mer图的生成将继续,则控制机140可激活和配置修剪单元136或图输出单元137。
尽管循环单元135可由硬件加速图生成单元130使用来检测正在生成的K-mer图的实例中的循环,但是循环单元135可选择性地被激活和配置成类似于反向传播单元134。这是因为它是可预见的,一些类型的K-mer图可包含循环。然而,对于某些类型的K-mer图,没有具有循环的图可能是有益的。因此,硬件加速图生成单元130可被配置成例如用于控制机140以接收指示是否应该针对图的特定实例执行循环单元135的输入。
修剪单元
硬件加速图生成单元130可包括修剪单元135。与反向传播单元134和循环单元135一样,修剪单元136可由控制机160选择性地激活和配置。如果被激活和配置,修剪单元135可针对此时已经由硬件加速图生成单元130生成的K-mer图的实例评估原始图数据中的每个图边缘的权重。在一些具体实施中,如果修剪单元136确定图边缘的权重值未能满足预定阈值,则修剪单元136可删除图边缘和在所识别的图边缘之后出现的任何K-mer节点。另选地,如果修剪单元136确定图边缘的权重值满足预定阈值,则修剪单元136将保持图边缘完整。
在其他具体实施中,修剪单元136可识别线性链,其中线性链是通过图的最大路径,其中起始节点与末端节点之间的所有内部节点具有恰好一个内边缘和一个外边缘。在此类具体实施中,修剪单元136可确定线性链的每个内部边缘是否未满足修剪阈值。如果出现此类情况,则修剪单元136可删除整个线性链,包括所有内部边缘和所有内部节点,除了剪切单元136可保留的链的起始节点和/或末端节点(如果它们具有任何非内部边缘)。
图输出单元
硬件加速图生成单元130可包括图输出单元137。可通过硬件加速图生成单元130使用图输出单元137生成K-mer图的实例的最终版本170,因为K-mer图的实例由图描述数据和高速缓存数据描述。例如,图输出单元137可使用包括例如指向存储K-mer图数据的散列表高速缓存中的位置的指针的图描述数据从散列表高速缓存150中获得表示K-mer图的数据。然后,图输出单元137可向变体检出单元180提供从散列表高速缓存150中获得的描述K-mer图170的最终版本的数据。变体检出单元180可对K-mer图170的最终版本执行变体检出分析以产生一组变体190。一组变体190可包括一个或多个候选变体。变体是生物体的基因组数据的改变。候选变体是由变体检出单元基于处理K-mer图170推导的变体检出单元进行的确定。在一些具体实施中,候选变体在变体确定中可能具有阈值误差水平。
变体检出单元180可通过处理K-mer图180来识别候选变体。在一些具体实施中,例如,当读段堆积中的一个或多个读段的碱基检出或核苷酸与在参考基因组特定位置处的参考基因组的核苷酸不同时,变体检出单元180可识别候选变体。描述该组变体190的数据可以多种方式生成或确定。例如,在一些具体实施中,变体检出操作可如例如美国公布2016/0180019、美国公布2016/0306922和美国公布2019-0259468中更详细所述地执行,上述专利各自的全部内容全文以引用方式并入本文。描述该组变体190的数据可以多种不同的方式提供以供输出。例如,描述该组变体190的数据可显示在核酸测序仪110的显示器上、显示在不同计算机的显示器上、经由计算设备的一个或多个扬声器可听地输出、经由打印机输出或它们的任一组合。
擦除单元
擦除单元138可用于在通过硬件加速图生成单元130完成和输出K-mer图的实例时执行存储器回收任务。例如,擦除单元可删除与通过硬件加速图生成单元130完成和输出的K-mer图的特定实例相关的所有原始图数据。另选地或除此之外,擦除单元138可删除由控制机存储的与图单元130的特定实例相关的所有数据、删除存储在DRAM 160中的与图单元130的特定实例相关的所有数据等。因此,擦除单元138可从散列表高速缓存选择性地删除K-mer图的表示图节点的数据和表示图边缘的数据。这种删除是选择性的,因为只需要去除高速缓存、控制机或DRAM的一部分内容。此外,当图被存储为散列表时,散列表通常可被稀疏填充,并且擦除单元138仅选择性地擦除所占用的散列表条目比清除整个散列表更快,从而提高性能。
然而,在一些具体实施中,不需要逐项擦除与图相关联的非散列表数据。在此类具体实施中,擦除单元138可在图描述数据中将列表长度设置为零,或者可以仅释放所分配的存储器空间以在不擦除内容的情况下重复使用。
图2是用于硬件加速K-mer图生成的过程200的示例的流程图。一般来讲,过程200可包括:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分(210);使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K-mer图,其中每个硬件逻辑单元包括被配置为执行一个或多个操作的不同硬件逻辑电路,其中K-mer图的每个节点表示一个K-mer,图的每个边缘表示一对K-mer之间的链路,并且K-mer图的每个边缘的每个权重表示由一对K-mer表示的K-mer序列的出现次数(220);在生成K-mer图期间:在通过用于生成K-mer图的至少一部分的每个硬件逻辑单元执行一个或多个操作之后,使用控制机周期性地更新K-mer图的图描述数据,其中该图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息,其中该控制机通过在生成该K-mer图期间触发每个相应硬件逻辑单元执行一个或多个操作来使用该非流水线硬件逻辑单元创建操作的工作流程(230);以及向变体检出模块提供该K-mer图,其中该变体检出单元处理该K-mer图以确定该多个读段中的一个或多个读段与参考序列之间的一个或多个候选变体。
图3是用于硬件加速K-mer图生成的过程300的另一示例的流程图。一般来讲,过程300可包括:获得第一组核酸序列,其中第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)参考序列的一部分(310);对于第一组核酸序列的每个特定核酸序列:通过第一硬件逻辑单元生成用于存储在散列表高速缓存中的数据,该数据表示该特定核酸序列的每个K-mer的图节点(320);通过控制机检测第一硬件逻辑单元已经针对该特定核酸序列的每个K-mer完成图节点的生成(330);通过该控制机配置第二硬件逻辑单元,以对所生成的图节点执行图边缘的生成(340);以及对于一对或多对所生成的图节点:通过第二硬件逻辑单元生成用于存储在图散列表中的数据,该数据表示由第一硬件逻辑单元生成的一对或多对所生成的图节点之间的图边缘,其中表示存储在散列表高速缓存中的每个K-mer的图节点的数据和表示存储在散列表高速缓存中的图边缘的数据表示第一组核酸序列的K-mer图(350)。
图4是K-mer图400的示例。在该示例中,K-mer图400基于参考基因组410和读段420的至少一部分生成。在该示例中,K-mer图400是德布莱英图。
K-mer图400使用多个节点和节点对之间的一个或多个边缘生成。每个节点表示长度为k的K-mer,其中在该示例中k=4。每个边缘都表明,存在由边缘连接的K-mer的k-1个核苷酸的重叠。在K-mer图400中,路径430包括表示参考序列410的该部分的每个K-mer的多个节点和边缘。然后,路径440包括表示与参考基因组410的该部分不同的读段420的部分的多个节点和边缘。
图5是可用于硬件加速K-mer图生成的系统500部件的示例的框图。
计算设备500旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型机和其他适当的计算机。计算设备550旨在表示各种形式的移动设备,诸如个人数字助理、移动电话、智能电话和其他类似的计算设备。另外,计算设备500或550可包括通用串行总线(USB)闪存驱动器。USB闪存驱动器可存储操作系统和其他应用程序。USB闪存驱动器可包括输入/输出部件,诸如可插入到另一个计算设备的USB端口中的无线发射器或USB连接器。此处所示的部件、它们的连接和关系以及它们的功能仅意在作为示例,并不意在限制本文档中描述和/或要求保护的本发明的具体实施。
计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口510的高速接口508和连接到低速总线514和存储设备506的低速接口512。部件502、504、506、508、510和512中的每个部件使用各种总线互连,并且可安装在公共主板上或视情况以其他方式安装。处理器502可处理用于在计算设备500内执行的指令,包括存储在存储器504中或存储设备506上的指令,以在外部输入/输出设备(诸如耦接到高速接口508的显示器516)上显示GUI的图形信息。在其他具体实施中,可视情况将多个处理器和/或多个总线与多个存储器和多种类型的存储器一起使用。另外,可连接多个计算设备500,每个设备提供必要操作的一些部分,例如,作为服务器库、一组刀片式服务器或多处理器系统。
存储器504将信息存储在计算设备500内。在一个具体实施中,存储器504是一个或多个易失性存储器单元。在另一具体实施中,存储器504是一个或多个非易失性存储器单元。存储器504还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备506能够为计算设备500提供海量存储。在一个具体实施中,存储设备506可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存存储器或其他类似的固态存储器设备,或设备阵列,包括存储区域网络中的设备或其他配置。计算机程序产品可在信息载体中有形地体现。计算机程序产品还可包含指令,该指令在被执行时,执行一种或多种方法,诸如上文所述的那些方法。信息载体是计算机可读介质或机器可读介质,诸如存储器504、存储设备506或处理器502上的存储器。
高速控制器508管理计算设备500的带宽密集型操作,而低速控制器512管理带宽较不密集型操作。这种功能分配仅为示例。在一个具体实施中,高速控制器508例如通过图形处理器或加速器耦接到存储器504、显示器516,并且耦接到高速扩展端口510,该端口可接受各种扩展卡(未示出)。在该具体实施中,低速控制器512耦接到存储设备506和低速扩展端口514。低速扩展端口(该端口可包括各种通信端口,例如USB、蓝牙、以太网、无线以太网)可例如通过网络适配器耦接到一个或多个输入/输出设备,诸如键盘、指向设备、麦克风/扬声器对、扫描仪或联网设备诸如交换机或路由器。计算设备500可以多种不同的形式实施,如图所示。例如,该计算设备可被实施为标准服务器520,或者在一组此类服务器中被实施多次。它还可被实施为机架式服务器系统524的一部分。此外,该计算设备可在个人计算机诸如膝上型计算机522中实施。另选地,来自计算设备500的部件可与移动设备(未示出)诸如设备550中的其他部件组合。此类设备中的每个设备可包含计算设备500、550中的一个或多个设备,并且整个系统可由彼此通信的多个计算设备500、550组成。
计算设备500可以多种不同的形式实施,如图所示。例如,该计算设备可被实施为标准服务器520,或者在一组此类服务器中被实施多次。它还可被实施为机架式服务器系统524的一部分。此外,该计算设备可在个人计算机诸如膝上型计算机522中实施。另选地,来自计算设备500的部件可与移动设备(未示出)诸如设备550中的其他部件组合。此类设备中的每个设备可包含计算设备500、550中的一个或多个设备,并且整个系统可由彼此通信的多个计算设备500、550组成。
计算设备550包括处理器552、存储器564和输入/输出设备诸如显示器554、通信接口566和收发器568,以及其他部件。设备550还可设置有存储设备,诸如微驱动器或其他设备,以提供额外的存储。部件550、552、564、554、566和568中的每个部件使用各种总线互连,并且这些部件中的若干部件可安装在公共主板上或视情况以其他方式安装。
处理器552可执行计算设备550内的指令,包括存储在存储器564中的指令。处理器可被实现为包括独立的多个模拟处理器和数字处理器的芯片的芯片组。另外,处理器可使用多种架构中的任一种架构来实现。例如,处理器510可以是CISC(复杂指令集计算机)处理器、RISC(精简指令集计算机)处理器或MISC(最小指令集计算机)处理器。处理器可提供例如设备550的其他部件的协调,诸如对用户接口的控制、由设备550运行的应用程序以及由设备550进行的无线通信。
处理器552可通过耦接到显示器554的控制接口558和显示接口556与用户通信。显示器554可为例如TFT(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口556可包括用于驱动显示器554以向用户呈现图形和其他信息的适当电路。控制接口558可接收来自用户的命令并转换这些命令以提交给处理器552。此外,可提供与处理器552通信的外部接口562,以便实现设备550与其他设备的近距区域通信。外部接口562可例如在一些具体实施中提供有线通信,或在其他具体实施中提供无线通信,并且还可使用多个接口。
存储器564将信息存储在计算设备550内。存储器564可被实施为一个或多个计算机可读介质、一个或多个易失性存储器单元或一个或多个非易失性存储器单元中的一者或多者。还可提供扩展存储器574并通过扩展接口572将其连接到设备550,该扩展接口可包括例如SIMM(单列直插式存储器模块)卡接口。此类扩展存储器574可为设备550提供额外的存储空间,或者还可为设备550存储应用程序或其他信息。具体地,扩展存储器574可包括用于执行或补充上述过程的指令,并且还可包括安全信息。因此,例如,扩展存储器574可被提供为用于设备550的安全模块,并且可被编程为具有允许设备550安全使用的指令。此外,安全应用程序可经由SIMM卡连同附加信息一起提供,诸如将识别信息以不可破解的方式放置在SIMM卡上。
存储器可包括例如闪存存储器和/或NVRAM存储器,如下所述。在一个具体实施中,计算机程序产品在信息载体中有形地体现。计算机程序产品包含指令,该指令在被执行时,执行一种或多种方法,诸如上文所述的那些方法。信息载体是计算机可读介质或机器可读介质,诸如存储器564、扩展存储器574或处理器552上的可通过例如收发器568或外部接口562接收的存储器。
设备550可通过通信接口566进行无线通信,该通信接口在需要时可包括数字信号处理电路。通信接口566可以提供在各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS信息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。此类通信可通过例如射频收发器568发生。此外,可发生近程通信,诸如使用蓝牙、Wi-Fi或其他此类收发器(未示出)。此外,GPS(全球定位系统)接收器模块570可向设备550提供附加的导航相关和位置相关的无线数据,该无线数据可由在设备550上运行的应用程序视情况使用。
设备550还可使用音频编解码器560可听地通信,该音频编解码器可从用户接收口头信息并将其转换为可用的数字信息。音频编解码器560同样可诸如通过扬声器(例如,在设备550的手持终端中)为用户生成可听声。此类声音可包括来自语音电话呼叫的声音,可包括录制的声音,例如语音消息、音乐文件等,并且还可包括由在设备550上操作的应用程序生成的声音。
计算设备550可以多种不同的形式实施,如图所示。例如,该计算设备可被实施为移动电话580。该计算设备还可被实施为智能电话582、个人数字助理或其他类似的移动设备的一部分。
本文所述的系统和方法的各种具体实施可在数字电子电路、集成电路、特别设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或此类具体实施的组合中实现。这些各种具体实施可包括在一个或多个计算机程序中的具体实施,该一个或多个计算机程序能够在包括至少一个可编程处理器的可编程系统上执行和/或解释,该至少一个可编程处理器可以是专用或通用处理器,被耦接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及将数据和指令发送到存储系统、至少一个输入设备和至少一个输出设备。
这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以高级程序化和/或面向对象的编程语言和/或以汇编语言/机器语言来实现。如本文所用,术语“机器可读介质”、“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备,例如磁盘、光盘、存储器、可编程逻辑设备(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,本文所述的系统和技术可在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示器)监视器),以及用户可用来向该计算机提供输入的键盘和指向设备(例如鼠标或轨迹球)。也可使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
本文所述的系统和技术可在计算系统中实现,该计算系统包括后端部件(例如,作为数据服务器)或包括中间件部件(例如,应用程序服务器)或包括前端部件(例如,具有图形用户界面或Web浏览器的客户端计算机),用户可通过该计算系统与本文所述的系统和技术的具体实施进行交互,或者与此类后端部件、中间件部件或前端部件的任何组合进行交互。该系统的部件可通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
该计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序而产生。
其他实施方案
已经描述了多个实施方案。然而,应当理解,在不脱离本发明的实质和范围的情况下,可进行各种修改。此外,附图中所示的逻辑流程不需要所示的特定顺序或有序顺序来实现所需的结果。此外,可在所述流程中提供其他步骤,或者可消除步骤,并且可将其他部件添加到所述系统或从所述系统中移除。因此,其他实施方案也在以下权利要求书的范围内。

Claims (48)

1.一种使用可编程逻辑设备来硬件加速K-mer图生成的方法,所述方法包括:
获得第一组核酸序列,其中所述第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)所述参考序列的一部分;
使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K-mer图,其中每个硬件逻辑单元包括被配置为执行一个或多个操作的不同的硬件逻辑电路,其中所述K-mer图的每个节点表示一个K-mer,所述K-mer图的每个边缘表示一对K-mer之间的链路,并且所述K-mer图的每个边缘的每个权重表示由一对K-mer表示的K-mer序列的出现次数;以及
在生成所述K-mer图期间:
在通过用于生成所述K-mer图的至少一部分的每个硬件逻辑单元执行所述一个或多个操作之后,使用控制机周期性地更新所述K-mer图的图描述数据,其中所述图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息,其中所述控制机通过在生成所述K-mer图期间触发每个相应硬件逻辑单元执行所述一个或多个操作来使用所述非流水线硬件逻辑单元创建操作的工作流程。
2.根据权利要求1所述的方法,其中所述多个硬件逻辑单元中的每个硬件逻辑单元的输出经由散列表高速缓存存储。
3.根据权利要求1所述的方法,其中所述控制机使用所述可编程逻辑设备的硬件逻辑单元来实施。
4.根据权利要求1所述的方法,其中所述控制机通过使用执行软件指令的一个或多个CPU或GPU来实施,以实现所述控制机的功能。
5.根据权利要求1所述的方法,所述操作还包括:
向变体检出单元提供所生成的K-mer图,其中所述变体检出单元处理所述K-mer图以确定所述多个读段中的一个或多个读段与所述参考序列之间的候选变体。
6.根据权利要求5所述的方法,其中软件指令由一个或多个CPU或GPU执行,以实现所述变体检出单元的一种或多种功能。
7.根据权利要求5所述的方法,其中所述可编程逻辑设备用于加速所述变体检出单元的一种或多种功能。
8.根据权利要求1所述的方法,其中所述图描述数据还包括(iii)表示在与所述K-mer图标识符相关联的所述K-mer图或堆积的核酸序列上执行硬件逻辑的所述多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
9.一种使用可编程逻辑设备来硬件加速K-mer图生成的系统,所述系统包括:
硬件加速图生成单元,所述硬件加速图生成单元包括已被布置用于执行操作的硬件数字逻辑电路,所述操作包括:
获得第一组核酸序列,其中所述第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)所述参考序列的一部分;
使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K-mer图,其中每个硬件逻辑单元包括被配置为执行一个或多个操作的不同的硬件逻辑电路,其中所述K-mer图的每个节点表示一个K-mer,所述K-mer图的每个边缘表示一对K-mer之间的链路,并且所述K-mer图的每个边缘的每个权重表示由一对K-mer表示的K-mer序列的出现次数;以及
在生成所述K-mer图期间:
在通过用于生成所述K-mer图的至少一部分的每个硬件逻辑单元执行所述一个或多个操作之后,使用控制机周期性地更新所述K-mer图的图描述数据,其中所述图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息,其中所述控制机通过在生成所述K-mer图期间触发每个相应硬件逻辑单元执行所述一个或多个操作来使用所述非流水线硬件逻辑单元创建操作的工作流程。
10.根据权利要求9所述的系统,其中所述多个硬件逻辑单元中的每个硬件逻辑单元的输出经由散列表高速缓存存储。
11.根据权利要求9所述的系统,其中所述操作还包括:
向变体检出单元提供所生成的K-mer图,其中所述变体检出单元被配置为处理所述K-mer图以确定所述多个读段中的一个或多个读段与所述参考序列之间的候选变体。
12.根据权利要求9所述的系统,所述系统还包括:
一个或多个计算机;和
一个或多个存储指令的存储器设备,所述指令在由所述一个或多个计算机执行时,使所述一个或多个计算机执行变体检出单元的第二操作,所述第二操作包括
通过所述变体检出单元获得所生成的K-mer图;以及
基于所述变体检出单元处理所生成的K-mer图来识别一个或多个候选变体,其中候选变体是所述读段堆积中的一个或多个读段的碱基检出与参考基因组特定位置处的参考基因组核苷酸之间的差异。
13.根据权利要求9所述的系统,其中所述操作还包括:
通过变体检出单元获得所生成的K-mer图;以及
基于所述变体检出单元处理所生成的K-mer图来识别一个或多个候选变体,其中候选变体是所述读段堆积中的一个或多个读段的碱基检出与参考基因组特定位置处的参考基因组核苷酸之间的差异。
14.根据权利要求9所述的系统,其中所述图描述数据还包括(iii)表示在与所述K-mer图标识符相关联的所述K-mer图或堆积的核酸序列上执行硬件逻辑的所述多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
15.一种在可编程逻辑设备中硬件加速K-mer图生成的方法,所述方法包括:
获得第一组核酸序列,其中所述第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)所述参考序列的一部分;
对于所述第一组核酸序列的每个特定核酸序列:
通过第一硬件逻辑单元生成用于存储在散列表高速缓存中的数据,所述数据表示所述特定核酸序列的每个K-mer的图节点;
通过控制机检测所述第一硬件逻辑单元已经针对所述特定核酸序列的每个K-mer完成图节点的生成;
通过所述控制机配置第二硬件逻辑单元,以对所生成的图节点执行图边缘的生成;以及
对于一对或多对所生成的图节点:
通过所述第二硬件逻辑单元生成用于存储在所述图散列表中的数据,所述数据表示由所述第一硬件逻辑单元生成的一对或多对所生成的图节点之间的图边缘,其中表示存储在所述散列表高速缓存中的每个K-mer的所述图节点的所述数据和表示存储在所述散列表高速缓存中的图边缘的所述数据表示所述第一组核酸序列的K-mer图。
16.根据权利要求15所述的方法,所述方法还包括:
由所述控制机并在能够由所述控制机访问的存储器单元中周期性地存储所述K-mer图的实例的图描述数据,其中所述图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息。
17.根据权利要求15所述的方法,
其中所述第一硬件逻辑单元还被配置为:
确定所述特定核酸序列的所述特定K-mer中的一个或多个特定K-mer是否匹配所述特定核酸序列的另一个K-mer;并且
基于确定所述特定核酸序列的所述一个或多个特定K-mer匹配所述特定核酸序列的另一个K-mer,存储将所述一个或多个特定K-mer标记为非唯一K-mer的数据。
18.根据权利要求15所述的方法,其中所述第二硬件逻辑还被配置为:
将边缘权重分配给所述K-mer图的每个边缘。
19.根据权利要求15所述的方法,所述方法还包括:
指示所述可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,所述硬件逻辑被配置为:
从所述散列表高速缓存中获得表示所述K-mer图的数据;并且
向变体检出单元提供所获得的表示所述K-mer图的数据。
20.根据权利要求15所述的方法,所述方法还包括:
指示所述可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,所述硬件逻辑被配置为:
从所述散列表高速缓存选择性地删除所述K-mer图的表示图节点的数据和表示图边缘的数据。
21.根据权利要求15所述的方法,其中所述控制机使用所述可编程逻辑设备的第三硬件逻辑单元来实施。
22.根据权利要求15所述的方法,其中所述散列表高速缓存使用所述可编程逻辑设备的第三硬件逻辑单元来实施。
23.根据权利要求15所述的方法,其中所述控制机使用执行软件指令的一个或多个CPU或GPU来实施,以实现所述控制机的功能。
24.根据权利要求15所述的方法,其中所述图描述数据还包括(iii)表示在与所述K-mer图标识符相关联的所述K-mer图或堆积的核酸序列上执行硬件逻辑的所述多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
25.根据权利要求15所述的方法,所述方法还包括:
评估所述K-mer图以检查图循环的存在;
如果在所述评估期间检测到图循环:
终止所述K-mer图的生成;或者
如果在所述评估期间未检测到图循环:
从所述散列表高速缓存中获得描述所述K-mer图的结构的数据;以及
向变体检出模块提供所获得的描述所述K-mer图的结构的数据。
26.一种使用可编程逻辑设备来硬件加速K-mer图生成的系统,所述系统包括:
硬件加速图生成单元,所述硬件加速图生成单元包括已被布置用于执行操作的硬件数字逻辑电路,所述操作包括:
获得第一组核酸序列,其中所述第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)所述参考序列的一部分;
对于所述第一组核酸序列的每个特定核酸序列:
通过第一硬件逻辑单元生成用于存储在散列表高速缓存中的数据,所述数据表示所述特定核酸序列的每个K-mer的图节点;
通过控制机检测所述第一硬件逻辑单元已经针对所述特定核酸序列的每个K-mer完成图节点的生成;
通过所述控制机配置第二硬件逻辑单元,以对所生成的图节点执行图边缘的生成;以及
对于一对或多对所生成的图节点:
通过所述第二硬件逻辑单元生成用于存储在所述图散列表中的数据,所述数据表示由所述第一硬件逻辑单元生成的一对或多对所生成的图节点之间的图边缘,其中表示存储在所述散列表高速缓存中的每个K-mer的所述图节点的所述数据和表示存储在所述散列表高速缓存中的图边缘的所述数据表示所述第一组核酸序列的K-mer图。
27.根据权利要求26所述的系统,所述操作还包括:
由所述控制机并在能够由所述控制机访问的存储器单元中周期性地存储所述K-mer图的实例的图描述数据,其中所述图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息。
28.根据权利要求26所述的系统,
其中所述第一硬件逻辑单元还被配置为:
确定所述特定核酸序列的所述特定K-mer中的一个或多个特定K-mer是否匹配所述特定核酸序列的另一个K-mer;以及
基于确定所述特定核酸序列的所述一个或多个特定K-mer匹配所述特定核酸序列的另一个K-mer,存储将所述一个或多个特定K-mer标记为非唯一K-mer的数据。
29.根据权利要求26所述的系统,其中所述第二硬件逻辑还被配置为:
将边缘权重分配给所述K-mer图的每个边缘。
30.根据权利要求26所述的系统,所述操作还包括:
指示所述可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,所述硬件逻辑被配置为:
从所述散列表高速缓存中获得表示所述K-mer图的数据;以及
向变体检出单元提供所获得的表示所述K-mer图的数据。
31.根据权利要求26所述的系统,所述操作还包括:
指示所述可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,所述硬件逻辑被配置为:
从所述散列表高速缓存选择性地删除所述K-mer图的表示图节点的数据和表示图边缘的数据。
32.根据权利要求26所述的系统,其中所述散列表高速缓存使用所述可编程逻辑设备的第三硬件逻辑单元来实施。
33.根据权利要求26所述的系统,其中所述图描述数据还包括(iii)表示在与所述K-mer图标识符相关联的所述K-mer图或堆积的核酸序列上执行硬件逻辑的所述多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
34.根据权利要求26所述的系统,所述操作还包括:
评估所述K-mer图以检查图循环的存在;
如果在所述评估期间检测到图循环:
终止所述K-mer图的生成;或者
如果在所述评估期间未检测到图循环:
从所述散列表高速缓存中获得描述所述K-mer图的结构的数据;以及
向变体检出模块提供所获得的描述所述K-mer图的结构的数据。
35.一种硬件加速图生成单元,所述硬件加速图生成单元包括已被布置用于执行操作的硬件数字逻辑电路,所述操作包括:
获得第一组核酸序列,其中所述第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)所述参考序列的一部分;
使用所获得的第一组核酸序列并且使用可编程逻辑设备的多个非流水线硬件逻辑单元生成K-mer图,其中每个硬件逻辑单元包括被配置为执行一个或多个操作的不同的硬件逻辑电路,其中所述K-mer图的每个节点表示一个K-mer,所述K-mer图的每个边缘表示一对K-mer之间的链路,并且所述K-mer图的每个边缘的每个权重表示由一对K-mer表示的K-mer序列的出现次数;以及
在生成所述K-mer图期间:
在通过用于生成所述K-mer图的至少一部分的每个硬件逻辑单元执行所述一个或多个操作之后,使用控制机周期性地更新所述K-mer图的图描述数据,其中所述图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息,其中所述控制机通过在生成所述K-mer图期间触发每个相应硬件逻辑单元执行所述一个或多个操作来使用所述非流水线硬件逻辑单元创建操作的工作流程。
36.根据权利要求35所述的硬件加速图生成单元,其中所述多个硬件逻辑单元中的每个硬件逻辑单元的输出经由散列表高速缓存存储。
37.根据权利要求35所述的硬件加速图生成单元,其中所述操作还包括:
向变体检出单元提供所生成的K-mer图,其中所述变体检出单元被配置为处理所述K-mer图以确定所述多个读段中的一个或多个读段与所述参考序列之间的候选变体。
38.根据权利要求35所述的硬件加速图生成单元,其中所述操作还包括:
通过变体检出单元获得所生成的K-mer图;以及
基于所述变体检出单元处理所生成的K-mer图来识别一个或多个候选变体,其中候选变体是所述读段堆积中的一个或多个读段的碱基检出与参考基因组特定位置处的参考基因组核苷酸之间的差异。
39.根据权利要求35所述的硬件加速图生成单元,其中所述图描述数据还包括(iii)表示在与所述K-mer图标识符相关联的所述K-mer图或堆积的核酸序列上执行硬件逻辑的所述多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
40.一种硬件加速图生成单元,所述硬件加速图生成单元包括已被布置用于执行操作的硬件数字逻辑电路,所述操作包括:
获得第一组核酸序列,其中所述第一组核酸序列包括(i)与参考序列的活性区域相对应的多个读段和(ii)所述参考序列的一部分;
对于所述第一组核酸序列的每个特定核酸序列:
通过第一硬件逻辑单元生成用于存储在散列表高速缓存中的数据,所述数据表示所述特定核酸序列的每个K-mer的图节点;
通过控制机检测所述第一硬件逻辑单元已经针对所述特定核酸序列的每个K-mer完成图节点的生成;
通过所述控制机配置第二硬件逻辑单元,以对所生成的图节点执行图边缘的生成;以及
对于一对或多对所生成的图节点:
通过所述第二硬件逻辑单元生成用于存储在所述图散列表中的数据,所述数据表示由所述第一硬件逻辑单元生成的一对或多对所生成的图节点之间的图边缘,其中表示存储在所述散列表高速缓存中的每个K-mer的所述图节点的所述数据和表示存储在所述散列表高速缓存中的图边缘的所述数据表示所述第一组核酸序列的K-mer图。
41.根据权利要求40所述的硬件加速图生成单元,所述操作还包括:
由所述控制机并在能够由所述控制机访问的存储器单元中周期性地存储所述K-mer图的实例的图描述数据,其中所述图描述数据表示(i)K-mer图标识符和(ii)K-mer图状态信息。
42.根据权利要求40所述的硬件加速图生成单元,
其中所述第一硬件逻辑单元还被配置为:
确定所述特定核酸序列的所述特定K-mer中的一个或多个特定K-mer是否匹配所述特定核酸序列的另一个K-mer;并且
基于确定所述特定核酸序列的所述一个或多个特定K-mer匹配所述特定核酸序列的另一个K-mer,存储将所述一个或多个特定K-mer标记为非唯一K-mer的数据。
43.根据权利要求40所述的硬件加速图生成单元,其中所述第二硬件逻辑还被配置为:
将边缘权重分配给所述K-mer图的每个边缘。
44.根据权利要求40所述的硬件加速图生成单元,所述操作还包括:
指示所述可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,所述硬件逻辑被配置为:
从所述散列表高速缓存中获得表示所述K-mer图的数据;以及
向变体检出单元提供所获得的表示所述K-mer图的数据。
45.根据权利要求40所述的硬件加速图生成单元,所述操作还包括:
指示所述可编程逻辑设备的第三硬件逻辑单元执行硬件逻辑,所述硬件逻辑被配置为:
从所述散列表高速缓存选择性地删除所述K-mer图的表示图节点的数据和表示图边缘的数据。
46.根据权利要求40所述的硬件加速图生成单元,其中所述散列表高速缓存使用所述可编程逻辑设备的第三硬件逻辑单元来实施。
47.根据权利要求40所述的硬件加速图生成单元,其中所述图描述数据还包括(iii)表示在与所述K-mer图标识符相关联的所述K-mer图或堆积的核酸序列上执行硬件逻辑的所述多个硬件逻辑单元中的最后一个硬件逻辑单元的数据。
48.根据权利要求40所述的硬件加速图生成单元,所述操作还包括:
评估所述K-mer图以检查图循环的存在;
如果在所述评估期间检测到图循环:
终止所述K-mer图的生成;或者
如果在所述评估期间未检测到图循环:
从所述散列表高速缓存中获得描述所述K-mer图的结构的数据;以及
向变体检出模块提供所获得的描述所述K-mer图的结构的数据。
CN202180004003.0A 2020-04-07 2021-04-07 硬件加速K-mer图生成 Pending CN113994322A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063006668P 2020-04-07 2020-04-07
US63/006,668 2020-04-07
PCT/US2021/026242 WO2021207403A1 (en) 2020-04-07 2021-04-07 Hardware accelerated k-mer graph generation

Publications (1)

Publication Number Publication Date
CN113994322A true CN113994322A (zh) 2022-01-28

Family

ID=75675026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180004003.0A Pending CN113994322A (zh) 2020-04-07 2021-04-07 硬件加速K-mer图生成

Country Status (13)

Country Link
US (1) US20210313009A1 (zh)
EP (1) EP4018451A1 (zh)
JP (1) JP2023520832A (zh)
KR (1) KR20220164398A (zh)
CN (1) CN113994322A (zh)
AU (1) AU2021251870A1 (zh)
BR (1) BR112021026598A2 (zh)
CA (1) CA3145326A1 (zh)
IL (1) IL288587A (zh)
MX (1) MX2021015808A (zh)
SG (1) SG11202113002XA (zh)
TW (1) TW202145247A (zh)
WO (1) WO2021207403A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230090867A1 (en) 2021-09-22 2023-03-23 Illumina, Inc. Sequencing polynucleotides using nanopores
WO2023250398A1 (en) * 2022-06-23 2023-12-28 University Of Washington Using adaptive sequencing and hardware-accelerated storage to accelerate metagenomic sample analysis

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339437A1 (en) * 2014-02-24 2015-11-26 Edico Genome, Corp. Dynamic genome reference generation for improved ngs accuracy and reproducibility
US20160306923A1 (en) * 2013-01-17 2016-10-20 Edico Genome, Inc. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
US20160306922A1 (en) * 2013-01-17 2016-10-20 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10068054B2 (en) 2013-01-17 2018-09-04 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
US20190259468A1 (en) 2018-02-16 2019-08-22 Illumina, Inc. System and Method for Correlated Error Event Mitigation for Variant Calling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306923A1 (en) * 2013-01-17 2016-10-20 Edico Genome, Inc. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
US20160306922A1 (en) * 2013-01-17 2016-10-20 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
US20150339437A1 (en) * 2014-02-24 2015-11-26 Edico Genome, Corp. Dynamic genome reference generation for improved ngs accuracy and reproducibility

Also Published As

Publication number Publication date
CA3145326A1 (en) 2021-10-14
SG11202113002XA (en) 2021-12-30
EP4018451A1 (en) 2022-06-29
US20210313009A1 (en) 2021-10-07
WO2021207403A1 (en) 2021-10-14
MX2021015808A (es) 2022-04-27
JP2023520832A (ja) 2023-05-22
TW202145247A (zh) 2021-12-01
IL288587A (en) 2022-02-01
BR112021026598A2 (pt) 2022-10-18
AU2021251870A1 (en) 2021-12-23
KR20220164398A (ko) 2022-12-13

Similar Documents

Publication Publication Date Title
Kopylova et al. SortMeRNA: fast and accurate filtering of ribosomal RNAs in metatranscriptomic data
Alser et al. From molecules to genomic variations: Accelerating genome analysis via intelligent algorithms and architectures
WO2015123269A1 (en) System and methods for analyzing sequence data
US20210313009A1 (en) Hardware accelerated k-mer graph generation
US11803554B2 (en) Flexible seed extension for hash table genomic mapping
JP7293139B2 (ja) バリアントコーリングの相関誤差事象軽減のためのシステムおよび方法
CN110797088A (zh) 全基因组重测序分析及用于全基因组重测序分析的方法
RU2817560C1 (ru) Аппаратно-ускоренное генерирование k-мерного графа
US20210193254A1 (en) Rapid Detection of Gene Fusions
RU2818363C1 (ru) Быстрое обнаружение слияний генов
RU2796915C1 (ru) Гибкое удлинение затравки для геномного картирования на основе хеш-таблицы
CN114420204B (zh) 用于预测待测基因的拷贝数的方法、计算设备和存储介质
Guguchkin et al. Enhancing SNV identification in whole-genome sequencing data through the incorporation of known population genetic variants into the minimap2 index
WO2023178080A1 (en) Single-pass methylation mapping
WO2023225221A1 (en) Machine learning system for predicting gene cleavage sites background
CA3201235A1 (en) Signal
KR20220061991A (ko) 게놈 서열 데이터의 압축을 위한 방법
Gök Configurable hardware based genome aligner

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