<p>An index is split into a fixed number of <strong>partitions</strong>, each handling an independent, disjoint slice of the kmer space. Partitioning keeps the working set of each stage small enough to process efficiently and enables parallel construction and querying.</p>
<h2id="routing">Routing</h2>
<p>The canonical minimizer of a super-kmer (see <ahref="../minimizer_selection/">Minimizer selection</a>) is hashed to produce a <spanclass="arithmatex">\(p\)</span>-bit routing value that selects the destination partition:</p>
<divclass="highlight"><pre><span></span><code>canonical minimizer → hash(minimizer) → p-bit value → partition index
<p>The routing value is recomputed whenever it is needed (during construction and again at query time) rather than stored — it is not part of the on-disk super-kmer representation.</p>
<p>Within a partition, kmers are indexed as plain values via a minimal perfect hash function (see <ahref="../../formats/index_layout/">On-disk storage</a>); the minimizer plays no further role once a super-kmer has reached its partition.</p>
<p>A canonical minimizer is an m-mer (<spanclass="arithmatex">\(m \in \{9, 11, 13, 15\}\)</span>), and its distribution over all possible m-mer values is not uniform — as the lexicographic minimum of a window, small values are systematically over-represented (Golan & Shur 2025; Kille <em>et al.</em> 2023; Pan & Reinert 2024; Zheng <em>et al.</em> 2020, 2021)<supid="fnref:Zheng2020-ji"><aclass="footnote-ref"href="#fn:Zheng2020-ji">1</a></sup><supid="fnref:Zheng2021-cc"><aclass="footnote-ref"href="#fn:Zheng2021-cc">2</a></sup><supid="fnref:Pan2024-hb"><aclass="footnote-ref"href="#fn:Pan2024-hb">3</a></sup><supid="fnref:Kille2023-px"><aclass="footnote-ref"href="#fn:Kille2023-px">4</a></sup><supid="fnref:Golan2025-xf"><aclass="footnote-ref"href="#fn:Golan2025-xf">5</a></sup>. Routing directly on the raw minimizer value would therefore produce badly unbalanced partitions.</p>
<p>Hashing the minimizer before routing redistributes this skewed distribution uniformly across partitions. This works reliably because the number of partition-index bits <spanclass="arithmatex">\(p\)</span> is chosen well below the number of bits available in the minimizer (<spanclass="arithmatex">\(2m\)</span>): even with strong bias in the minimizer distribution, the hash has enough entropy margin to absorb it, provided the number of distinct minimizers actually observed is much larger than the number of partitions.</p>
<p>The number of partitions must satisfy <spanclass="arithmatex">\(p \le 2m\)</span>, and in practice <spanclass="arithmatex">\(p\)</span> is chosen well below that bound to leave a comfortable entropy margin. For <spanclass="arithmatex">\(k=31\)</span>, <spanclass="arithmatex">\(m=13\)</span>, <spanclass="arithmatex">\(p=10\)</span> (1024 partitions), partition load is well balanced on real genomic data.</p>
<p>Zheng, H., Kingsford, C. & Marçais, G. (2020). <ahref="https://doi.org/10.1093/bioinformatics/btaa472">Improved design and analysis of practical minimizers</a>. <em>Bioinformatics (Oxford, England)</em>, 36, i119--i127. <aclass="footnote-backref"href="#fnref:Zheng2020-ji"title="Jump back to footnote 1 in the text">↩</a></p>
</li>
<liid="fn:Zheng2021-cc">
<p>Zheng, H., Kingsford, C. & Marçais, G. (2021). <ahref="https://doi.org/10.1093/bioinformatics/btab313">Sequence-specific minimizers via polar sets</a>. <em>Bioinformatics (Oxford, England)</em>, 37, i187--i195. <aclass="footnote-backref"href="#fnref:Zheng2021-cc"title="Jump back to footnote 2 in the text">↩</a></p>
</li>
<liid="fn:Pan2024-hb">
<p>Pan, C. & Reinert, K. (2024). <ahref="https://doi.org/10.1093/bioinformatics/btae045">A simple refined DNA minimizer operator enables 2-fold faster computation</a>. <em>Bioinformatics (Oxford, England)</em>, 40. <aclass="footnote-backref"href="#fnref:Pan2024-hb"title="Jump back to footnote 3 in the text">↩</a></p>
</li>
<liid="fn:Kille2023-px">
<p>Kille, B., Garrison, E., Treangen, T.J. & Phillippy, A.M. (2023). <ahref="https://doi.org/10.1093/bioinformatics/btad512">Minmers are a generalization of minimizers that enable unbiased local jaccard estimation</a>. <em>Bioinformatics (Oxford, England)</em>, 39. <aclass="footnote-backref"href="#fnref:Kille2023-px"title="Jump back to footnote 4 in the text">↩</a></p>
</li>
<liid="fn:Golan2025-xf">
<p>Golan, S. & Shur, A.M. (2025). <ahref="https://doi.org/10.1007/978-3-031-82670-2\_25">Expected density of random minimizers</a>. In: <em>Lecture notes in computer science</em>, Lecture notes in computer science. Springer Nature Switzerland, Cham, pp. 347--360. <aclass="footnote-backref"href="#fnref:Golan2025-xf"title="Jump back to footnote 5 in the text">↩</a></p>
<scriptid="__config"type="application/json">{"annotate":null,"base":"../..","features":[],"search":"../../assets/javascripts/workers/search.2c215733.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>