Faster run-length compressed suffix arrays.

OASIcs OpenAccess Series in Informatics Pub Date : 2025-01-01 Epub Date: 2025-08-11 DOI:10.4230/OASIcs.Grossi.10
Nathaniel K Brown, Travis Gagie, Giovanni Manzini, Gonzalo Navarro, Marinella Sciortino
{"title":"Faster run-length compressed suffix arrays.","authors":"Nathaniel K Brown, Travis Gagie, Giovanni Manzini, Gonzalo Navarro, Marinella Sciortino","doi":"10.4230/OASIcs.Grossi.10","DOIUrl":null,"url":null,"abstract":"<p><p>We first review how we can store a run-length compressed suffix array (RLCSA) for a text <math><mi>T</mi></math> of length <math><mi>n</mi></math> over an alphabet of size <math><mi>σ</mi></math> whose Burrows-Wheeler Transform (BWT) consists of <math><mi>r</mi></math> runs in <math><mi>O</mi> <mo>(</mo> <mi>r</mi> <mspace></mspace> <mtext>log</mtext> <mo>(</mo> <mi>n</mi> <mo>/</mo> <mi>r</mi> <mo>)</mo> <mo>+</mo> <mi>r</mi> <mspace></mspace> <mtext>log</mtext> <mspace></mspace> <mi>σ</mi> <mo>+</mo> <mi>σ</mi> <mo>)</mo></math> bits such that later, given character <math><mi>a</mi></math> and the suffix-array (SA) interval for <math><mi>P</mi></math> , we can find the SA interval for <math><mi>a</mi> <mi>P</mi></math> in <math><mi>O</mi> <mfenced><mrow><mtext>log</mtext> <mspace></mspace> <msub><mrow><mi>r</mi></mrow> <mrow><mi>a</mi></mrow> </msub> <mo>+</mo> <mtext>log</mtext> <mspace></mspace> <mtext>log</mtext> <mspace></mspace> <mi>n</mi></mrow> </mfenced> </math> time, where <math> <msub><mrow><mi>r</mi></mrow> <mrow><mi>a</mi></mrow> </msub> </math> is the number of runs of copies of <math><mi>a</mi></math> in the BWT. We then show how to modify the RLCSA such that we find the SA interval for <math><mi>a</mi> <mi>P</mi></math> in only <math><mi>O</mi> <mfenced><mrow><mtext>log</mtext> <mspace></mspace> <msub><mrow><mi>r</mi></mrow> <mrow><mi>a</mi></mrow> </msub> </mrow> </mfenced> </math> time, without increasing its asymptotic space bound. Our key idea is applying a result by Nishimoto and Tabei (ICALP 2021) and then replacing rank queries on sparse bitvectors by a constant number of select queries. We also review two-level indexing and discuss how our faster RLCSA may be useful in improving it. Finally, we briefly discuss how two-level indexing may speed up a recent heuristic for finding maximal exact matches of a pattern with respect to an indexed text.</p>","PeriodicalId":30207,"journal":{"name":"OASIcs OpenAccess Series in Informatics","volume":"132 ","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2025-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC13049486/pdf/","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"OASIcs OpenAccess Series in Informatics","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4230/OASIcs.Grossi.10","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"2025/8/11 0:00:00","PubModel":"Epub","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

We first review how we can store a run-length compressed suffix array (RLCSA) for a text T of length n over an alphabet of size σ whose Burrows-Wheeler Transform (BWT) consists of r runs in O ( r log ( n / r ) + r log σ + σ ) bits such that later, given character a and the suffix-array (SA) interval for P , we can find the SA interval for a P in O log r a + log log n time, where r a is the number of runs of copies of a in the BWT. We then show how to modify the RLCSA such that we find the SA interval for a P in only O log r a time, without increasing its asymptotic space bound. Our key idea is applying a result by Nishimoto and Tabei (ICALP 2021) and then replacing rank queries on sparse bitvectors by a constant number of select queries. We also review two-level indexing and discuss how our faster RLCSA may be useful in improving it. Finally, we briefly discuss how two-level indexing may speed up a recent heuristic for finding maximal exact matches of a pattern with respect to an indexed text.

更快的运行长度压缩后缀数组。
我们首先回顾我们如何存储运行周期压缩后缀数组(RLCSA)文本长度T (n /一个字母的大小σburrows - wheeler变换(BWT)由r在O (log (n / r) + r日志σ+σ)位,这样之后,给人物和suffix-array (SA)间隔P,我们能找到的SA间隔P O日志中r +日志O (log n),在r的印数BWT拷贝。然后,我们展示了如何修改RLCSA,使我们在不增加其渐近空间界的情况下,仅在O log r时间内找到P的SA区间。我们的关键思想是应用Nishimoto和Tabei (ICALP 2021)的结果,然后用恒定数量的选择查询替换稀疏位向量上的秩查询。我们还回顾了两级索引,并讨论了更快的RLCSA如何有助于改进它。最后,我们简要讨论了两级索引如何加快最近的启发式算法,以便根据索引文本查找模式的最大精确匹配。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
审稿时长
12 weeks
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信
小红书