通过位置 Burrows-Wheeler 变换讲授 Burrows-Wheeler 变换
数据结构与算法
2022-08-23 v1
摘要
Burrows-Wheeler 变换(BWT)常在算法生物信息学的本科课程中讲授,因为它构成了 FM 索引的基础,从而支撑了诸如 Bowtie 和 BWA 等重要工具。其爱好者认为 BWT 是一件艺术品,但尽管近三十年来写了数千页关于它的内容,对于初次见到的本科生来说它仍常显得像魔法。一些坚持下来的人后来会看到位置 BWT(PBWT),它是在 BWT 二十年后发表的。在本文中我们主张 PBWT 应排在 BWT {\em 之前}讲授。我们首先利用 PBWT 与从右到左基数排序的紧密关系来解释如何将其用作一组字符串上 {\em 位置搜索}的快速且空间高效的索引(即给定模式和位置,快速列出在该位置开始包含该模式的字符串)。然后我们观察到 {\em 前缀搜索}(列出所有以该模式开头的字符串)是位置搜索的一个简单特例,而对单个字符串的后缀进行前缀搜索等价于该字符串中的 {\em 子串搜索}(列出字符串中模式出现的所有起始位置)。朴素地存储字符串后缀的 PBWT 在空间上是 {\em 低效的},但在即便相当小的例子中,其大多数列几乎相同。不难表明,如果我们存储字符串循环移位的 PBWT 而非其后缀,则所有列完全相同——且等于该字符串的 BWT。因此我们可以通过 PBWT 来讲授 BWT 和 FM 索引。
引用
@article{arxiv.2208.09840,
title = {Teaching the Burrows-Wheeler Transform via the Positional Burrows-Wheeler Transform},
author = {Travis Gagie and Giovanni Manzini and Marinella Sciortino},
journal= {arXiv preprint arXiv:2208.09840},
year = {2022}
}