紧凑k-光谱的最长公共前缀数组
摘要:k-谱是一个字符串中长度为k的所有不同子字符串的集合。k-谱在生物信息学中有很多应用,包括伪对齐和基因组装。光谱Burrows-Wheeler变换(SBWT)最近被引入作为一种高效表示和查询这些对象的算法工具。k-谱的最长公共前缀(LCP)数组是一个长度为n的数组,存储相邻k-mer在词典顺序中出现时的最长公共前缀的长度。LCP数组至少有两个重要应用,分别是使用SBWT加速伪对齐算法和允许在SBWT框架内模拟可变顺序的de Bruijn图。本文中,我们探讨了从k-谱的SBWT表示中高效计算LCP数组的算法。从一个简单的O(nk)时间算法开始,我们描述了在理论和实践中都高效的算法。我们表明LCP数组可以以最优的O(n)时间计算,其中n是谱的SBWT的长度。在实际的基因组学场景中,我们表明这个理论上最优的算法确实是实际可行的,但在较小的k值上,由于与CPU缓存的交互更好,往往由一个渐近次优的算法超越。我们的算法在某些方面与经典的Burrows-Wheeler反转算法和后缀数组的LCP数组构建算法有相似之处。
作者:Jarno N. Alanko, Elena Biagi and Simon J. Puglisi
论文ID:2306.04850
分类:Data Structures and Algorithms
分类简称:cs.DS
提交时间:2023-06-09