一种计算字符串集合的 BWT 和 LCP 数组的新型轻量级算法
数据结构与算法
2016-07-29 v1
摘要
对非常大规模字符串集合(如广泛使用的测序技术所产生的集合)的索引 heavily 依赖于 Burrows-Wheeler 变换 (BWT) 的多字符串推广,针对此问题已提出了各种内存算法。 routinely 处理的数据(如生物信息学中的数据)的快速增长需要大量主内存,这一事实推动了开发几乎完全在外存中工作的 BWT 计算算法。另一方面,计算最长公共前缀 (LCP) 数组的相关问题通常在字符串集合的多种算法中起到关键作用,例如计算字符串间后缀 - 前缀重叠的算法,这是许多基因组组装算法的基本步骤。当前计算个字符串(每个长度为)的 BWT 和 LCP 数组的最佳轻量级方法的 I/O 复杂度为(其中是字母表大小),因此并非最优。在本文中,我们提出了一种同时构建 BWT 和 LCP 数组的新方法,其 I/O 复杂度为,其中是输入字符串中至少出现两次的最长子串的长度。
引用
@article{arxiv.1607.08342,
title = {A New Lightweight Algorithm to compute the BWT and the LCP array of a Set of Strings},
author = {Paola Bonizzoni and Gianluca Della Vedova and Serena Nicosia and Marco Previtali and Raffaella Rizzi},
journal= {arXiv preprint arXiv:1607.08342},
year = {2016}
}