Engineering a compressed suffix tree implementation

Engineering a compressed suffix tree implementation
复制标题

设计压缩后缀树的实现

DOI:
10.1145/1498698.1594228
复制
发表时间:
2007
影响因子:
0.5
通讯作者:
V. Mäkinen
V. Mäkinen
中科院分区:
计算机科学4区
文献类型:
--
作者:
Niko Välimäki;Wolfgang Gerlach;Kashyap Dixit;V. Mäkinen

文献摘要

被引文献

相似文献

后缀树是字符串算法中最重要的数据结构之一,不幸的是,在实现这些算法并将其应用于真实基因组序列时,通常是主存储器大小。事实,虽然来自字母σ= {<i> a </i>,<i> c </i>,<i> g </i>,<i>,<i>,<i>,<i>,<i>,<i>,<i>,<i>,<i>,<i>,<i >> t </i>}可以存储在<i> n log |σ|&equlas中<i> n </i> log <i> n </i>)在实践中,大小差异很容易达到因子50。 我们报告了Sadakane(2007)最近提出的压缩后缀树的实现。 </i >> log |σ|)位,并以最多的log <i> n <i> n <i> slowdown来支持所有典型的后缀树操作。压缩的后缀树同时占据了正常后缀树的10%,代表性算法减速了因子30。 我们的实施遵循精神上的原始建议,但某些内部零件是针对实际实施的。 </i >> log |σ|)在构造时与最终结构密切相同:在10MB DNA序列上,构造过程中的最大空间用法仅是最终产品大小的1.5倍。我们开发了一种直接从burrows-wheeler变换中创建简洁的后缀阵列<i> <i> <i> <i> <i> <i> <i> <i> <i> intray </i>,并从lcp信息中构建后缀树的平衡括号表示后缀 - 插入算法。
Suffix tree is one of the most important data structures in string algorithms and biological sequence analysis. Unfortunately, when it comes to implementing those algorithms and applying them to real genomic sequences, often the main memory size becomes the bottleneck. This is easily explained by the fact that while a DNA sequence of length <i>n</i> from alphabet Σ = {<i>A</i>,<i>C</i>,<i>G</i>,<i>T</i>} can be stored in <i>n</i> log |Σ| &equlas; 2<i>n</i> bits, its suffix tree occupies<i>O</i>(<i>n</i> log <i>n</i>) bits. In practice, the size difference easily reaches factor 50. We report on an implementation of the compressed suffix tree very recently proposed by Sadakane (2007). The compressed suffix tree occupies space proportional to the text size, that is, <i>O</i>(<i>n</i> log |Σ|) bits, and supports all typical suffix tree operations with at most log <i>n</i> factor slowdown. Our experiments show that, for example, on a 10 MB DNA sequence, the compressed suffix tree takes 10% of the space of the normal suffix tree. At the same time, a representative algorithm is slowed down by factor 30. Our implementation follows the original proposal in spirit, but some internal parts are tailored toward practical implementation. Our construction algorithm has time requirement <i>O</i>(<i>n</i> log <i>n</i> log |Σ|) and uses closely the same space as the final structure while constructing it: on the 10MB DNA sequence, the maximum space usage during construction is only 1.5 times the final product size. As by-products, we develop a method to create <i>Succinct Suffix Array</i> directly from Burrows-Wheeler transform and a space-efficient version of the suffixes-insertion algorithm to build balanced parentheses representation of suffix tree from LCP information.