Many bioinformatics applications involve bucketing a set of sequences where each sequence is allowed to be assigned into multiple buckets. To achieve both high sensitivity and precision, bucketing methods are desired to assign similar sequences into the same bucket while assigning dissimilar sequences into distinct buckets. Existing $k$-mer-based bucketing methods have been efficient in processing sequencing data with low error rate, but encounter much reduced sensitivity on data with high error rate. Locality-sensitive hashing (LSH) schemes are able to mitigate this issue through tolerating the edits in similar sequences, but state-of-the-art methods still have large gaps. Here we generalize the LSH function by allowing it to hash one sequence into multiple buckets. Formally, a bucketing function, which maps a sequence (of fixed length) into a subset of buckets, is defined to be $(d_1, d_2)$-sensitive if any two sequences within an edit distance of $d_1$ are mapped into at least one shared bucket, and any two sequences with distance at least $d_2$ are mapped into disjoint subsets of buckets. We construct locality-sensitive bucketing (LSB) functions with a variety of values of $(d_1,d_2)$ and analyze their efficiency with respect to the total number of buckets needed as well as the number of buckets that a specific sequence is mapped to. We also prove lower bounds of these two parameters in different settings and show that some of our constructed LSB functions are optimal. These results provide theoretical foundations for their practical use in analyzing sequences with high error rate while also providing insights for the hardness of designing ungapped LSH functions.
翻译:许多生物信息学应用涉及将每个序列被指定为多个桶的一组序列。 为了达到高度敏感度和精确度, 需要将类似序列分配到同一个桶里, 同时将不同序列分配到不同的桶里。 现有的以美元为基美元为基的桶法在处理测序数据时效率低出错率, 但对数据敏感度低得多, 数据误差率较高。 本地敏感散列( LSH) 计划可以通过以类似顺序来调适编辑, 缓解这一问题, 但最新的方法仍然有很大的缺口。 我们在这里将LSH 功能普遍化, 允许它将一个序列分解到同一个桶里, 而将不同的序列( 美元为固定长度) 水桶里处理数据效率, 定义为$_ 1, d_ 2 美元 。 如果在编辑距离以内的任何两个序列中, 美元为至少一个共享的桶里程, 而任何两个以至少 $_ 2美元为基数的距离的基数的基底基数, 也将LSH 函数普遍化为约束性序列, 。 并且将一个特定的L_ 桶里程里程里程, 里程里程里程里程里数 。