高度重复集合的索引技术研究
1. 引言
随着测序技术的发展,如今测序人类基因组已成为日常活动,成本仅需几千美元,大型测序公司每天能产出数千个基因组。不久后,维护包含数百万个基因组的数据库将成为现实。以每个基因组约 715MB 的存储需求计算,存储一百万个基因组需约 700TB。然而,序列分析工具需对数据进行索引访问以开展模式搜索和挖掘,而经典索引每个碱基至少需 50 位,这会使存储需求从 700TB 增至超 16PB,超出当前合理成本下的技术能力。
不过,大多数同一物种的基因组相似度极高,如人类基因组相似度可达 99.99%(具体数值存在一定争议)。若能根据基因组间的差异大小来索引集合,而非依据其总大小,那么一百万个基因组的集合仅需 1.6TB 即可完成索引,这是切实可行的,但目前尚未找到实现方法。
除基因组外,软件仓库(版本呈树状或图状结构)和版本化文档集合(如维基百科或互联网存档,版本呈线性结构)等场景也需对相似序列集合进行索引和模式搜索。
接下来将聚焦以下场景,寻求通用性与简单性的平衡,开展既实用又具算法研究价值的工作:
- 集合包含 d 个文档,总长度为 n,每个文档是字母表大小为 σ 的任意符号串。未压缩数据大小为 n log σ 位,经典索引需 O(n log n) 位。
- 集合具有重复性,多数文档可由其他文档中的少量片段覆盖,能涵盖多数情况,但特殊的反向互补重复情况(如 DNA 中常见的)需单独处理。
- 希望以高效方式存储和索引集合,实现提取任意文档的子串以及定位集合中字符串模式的出现位置,暂不考虑近似匹配、复杂模式匹配和序列挖掘等更复杂的搜索。
- 期望使用与集合“重复性”成比例的空间。在简化模型中,
超级会员免费看
订阅专栏 解锁全文
8万+

被折叠的 条评论
为什么被折叠?



