计算超大字符串集合的最优 BWT
数据结构与算法
2022-12-05 v1
摘要
已知在大多数实现中,字符串集合的 Burrows-Wheeler 变换(BWT)的精确形式依赖于集合中字符串的输入顺序。对输入集合中的字符串重排序会影响相等字母游程数 ,这可以说是基于 BWT 的数据结构(如 FM-index 或 -index)最重要的参数。Bentley、Gibney 和 Thankachan [ESA 2020] 提出了一种线性时间算法,用于计算使所得 BWT 游程数最少的输入集合排列。本文中,我们提出首个保证得到最少游程数 BWT(optBWT)的工具,结合:i) 从字符串集合构建 BWT 的算法(基于 SAIS [Cenzato 等, SPIRE 2021] 或 BCR [Bauer 等, CPM 2011]);ii) [Cox 等, Bioinformatics, 2012] 中引入的 SAP 数组数据结构;以及 iii) Bentley 等的算法。我们在真实与模拟数据上给出结果,表明相对于输入顺序在 上取得的改进显著,且计算最优 BWT 带来的额外开销可忽略,使我们的工具在运行时间和空间占用上与其他 BWT 计算工具具有竞争力。特别是在真实数据上,optBWT 以仅 的减速取得了最多 31 倍的游程数减少。源代码见 https://github.com/davidecenzato/optimalBWT.git。
引用
@article{arxiv.2212.01156,
title = {Computing the optimal BWT of very large string collections},
author = {Davide Cenzato and Veronica Guerrini and Zsuzsanna Lipták and Giovanna Rosone},
journal= {arXiv preprint arXiv:2212.01156},
year = {2022}
}
备注
11 pages, 2 figures, 4 tables