当前位置: 首页 > 专利查询>辉达公司专利>正文

用于实施字符串搜索的系统、方法和计算机程序产品技术方案

技术编号:10069934 阅读:153 留言:0更新日期:2014-05-23 13:39
本发明专利技术提供了用于实施字符串搜索的系统、方法和计算机程序产品。在使用中,标识第一字符串和第二字符串。此外,利用第一字符串和第二字符串实施字符串搜索。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了用于实施字符串搜索的系统、方法和计算机程序产品。在使用中,标识第一字符串和第二字符串。此外,利用第一字符串和第二字符串实施字符串搜索。【专利说明】用于实施字符串搜索的系统、方法和计算机程序产品
本专利技术涉及字符串,并且更具体地,涉及实施字符串搜索。
技术介绍
字符串搜索是现代计算技术的重要方面。例如,字符串搜索可用来实施web搜索、对大部分文本的数据库查询、基因组测序等等。然而,用于实施字符串搜索的当前技术已与各种限制相关联。例如,用于实施字符串搜索的当前方法可能利用大量的存储器并可能花费相当多的时间和资源来实施。因此存在对解决与现有技术相关联的这些和/或其他问题的需求。
技术实现思路
提供了用于实施字符串搜索的系统、方法和计算机程序产品。在使用中,标识第一字符串和第二字符串。此外,利用第一字符串和第二字符串实施字符串搜索。【专利附图】【附图说明】图1示出根据一个实施例的、用于实施字符串搜索的方法。图2不出根据另一实施例的、用于利用微小空间中的全文索引(FM-1ndex)实施基因组测序的方法。图3示出根据另一实施例的、用于利用经分区的表和经分区的读序段(readsegment)实施基因组测序的方法。图4示出其中可实现各种先前实施例的各种架构和/或功能性的示例性系统。【具体实施方式】图1示出根据一个实施例的、用于实施字符串搜索的方法100。如操作102所示,标识第一字符串和第二字符串。在一个实施例中,第一字符串可包括被实现为字节数组的字符序列。在另一实施例中,第一字符串可表示特定元素。例如,第一字符串可表示一个或多个网页的内容。在另一示例中,第一字符串可表示文本的大部分。在又一示例中,第一字符串可表示基因组的全部或一部分。例如,第一字符串可表示组织的遗传信息的全部或一部分,并可包括基因和DNA、RNA的非编码序列等中的一个或多个。在另一实施例中,第一字符串可表示参考基因组(reference genome)。例如,第一字符串可表示数字核酸序列,代表基因的示例性集合。此外,在一个实施例中,第二字符串可包括搜索字符串。例如,第二字符串可包括要在第一字符串内被搜索的字符串。在另一实施例中,第二字符串可表示基因组的全部或一部分。例如,第二字符串可表示读序(read)(例如从基因组内的特定位置读取的基因组的一部分)。在又一实施例中,第二字符串可表示与由第一字符串所表示的基因组分开的基因组的一部分。例如,第二字符串可表示经采样的基因组的一部分,并且第一字符串可表示与经采样的基因组不同的参考基因组的整体。在另一实施例中,第一字符串和第二字符串可通过从存储器读取第一字符串和第二字符串来标识。进一步地,如操作104所示,利用第一字符串和第二字符串实施字符串搜索。在一个实施例中,实施字符串搜索可包括在第一字符串内实施针对第二字符串的搜索以确定第一字符串是否包含第二字符串。在另一实施例中,实施字符串搜索可包括比对第二字符串与第一字符串。仍进一步地,在一个实施例中,实施字符串搜索可包括将第一字符串存储在数据结构内。例如,实施字符串搜索可包括将第一字符串存储在FM-1ndex中。例如,第一字符串可基于Burrows-Wheeler变换来存储在经压缩的全文子字符串索引中。在另一实施例中,第一字符串可分区成子字符串,并且这种子字符串可存储在FM-1ndex内。并且,在一个实施例中,实施字符串搜索可包括将第一字符串存储在存储器中。例如,实施字符串搜索可包括将第一字符串存储在片上存储器中,将第一字符串存储在随机存取存储器(RAM)中等。在另一实施例中,实施字符串搜索可包括将第二字符串分成多个部分。例如,实施字符串搜索可包括将第二字符串分成多个非重叠段。此外,在一个实施例中,实施字符串搜索可包括在存储第一字符串的数据结构内实施针对第二字符串的多个部分中的每一个的一个或多个查找(例如搜索等)以确定第二字符串的多个部分中的每一个是否存储在数据结构内。在另一实施例中,实施字符串搜索可包括基于一个或多个查找确定第一字符串和第二字符串之间的差异。此外,在一个实施例中,当实施字符串搜索时可使用过滤器(例如在存储第一字符串的数据结构上实施针对第二字符串的一个或多个查找之前等)。例如,布隆过滤器(Bloomfilter)(例如节省空间的概率型数据结构)可用来测试第二字符串是否位于存储第一字符串的数据结构内。在另一示例中,如果过滤器指示第二字符串不位于存储第一字符串的数据结构内,那么可不在数据结构上实施针对第二字符串的一个或多个查找。仍进一步地,在一个实施例中,实施字符串搜索可包括将第一字符串存储在哈希表(例如使用哈希函数将键(key)映射到相关联值的数据结构等)内。在另一实施例中,实施字符串搜索可包括将存储第一字符串的哈希表分区成多个段。在又一实施例中,实施字符串搜索可包括将多个段中的每一个分类。例如,多个段中的每一个可被排序,使得对于一个或多个因素邻近的段比不邻近的段更类似。在另一示例中,多个段中的每一个可与多个预定的类中的一个相关联。并且,在一个实施例中,实施字符串搜索可包括构建多个新哈希表,其中每个新哈希表与预定的类相关联。在另一实施例中,实施字符串搜索可包括将与特定类相关联的全部段存储在与该特定类相关联的新哈希表中。在又一实施例中,新哈希表可小于其中存储第一字符串的哈希表。此外,在一个实施例中,实施字符串搜索可包括将第二字符串分区成多个子字符串。在另一实施例中,实施字符串搜索可包括将多个子字符串分类。例如,多个子字符串中的每一个可被排序,使得对于一个或多个因素邻近的子字符串比不邻近的子字符串更类似。在另一示例中,多个子字符串中的每一个可与多个预定的类(例如,与存储多个段的新哈希表相关联的多个预定的类等)中的一个相关联。在又一实施例中,可使用基数排序将多个子字符串中的每一个与多个预定的类中的一个相关联。进一步地,在一个实施例中,实施字符串搜索可包括将新哈希表中的一个加载到存储器中。例如,新哈希表中的一个可被加载到片上存储器、随机存取存储器(RAM)等中。在另一实施例中,实施字符串搜索可包括标识与经加载的哈希表相关联的类,并标识与该类相关联的一个或多个子字符串。在又一实施例中,实施字符串搜索可包括在加载到存储器中的新哈希表内实施针对第二字符串的一个或多个子字符串中的每一个的一个或多个查找(例如,搜索等)以确定第二字符串的多个子字符串中的每一个是否存储在新哈希表内。仍进一步地,在一个实施例中,多个新哈希表中的每一个可被加载到与不同处理器相关联的存储器中,并且每个不同处理器可利用与其特定新哈希表的类相关联的一个或多个子字符串,在哈希表上实施字符串搜索。通过该方式,可由多个处理器并行地实施字符串搜索。此外,可减少实施字符串搜索必需的存储器数量。进一步地,可通过在较小数量的较快存储器中实施字符串搜索来增加性能。现在将关于前述框架根据用户意愿可以或可以不采用其实现的各种可选架构和特征来阐述更多示例性信息。应特别注意的是,阐述下面的信息是出于示例性目的并且不应视为以任何方式加以限制。任何下面的特征可以可选地与所描述的其他特征合并或将其排除。图2示出根据另一实施例的、用于利用FM-1ndex实施基因组测序的方法200。本文档来自技高网...

【技术保护点】
一种方法,包括:标识第一字符串和第二字符串;以及利用所述第一字符串和所述第二字符串实施字符串搜索。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:雅各布·潘塔莱奥尼戴维·塔里亚
申请(专利权)人:辉达公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1