  It is known that the exact form of the Burrows-Wheeler-Transform (BWT) of a
string collection depends, in most implementations, on the input order of the
strings in the collection. Reordering strings of an input collection affects
the number of equal-letter runs $r$, arguably the most important parameter of
BWT-based data structures, such as the FM-index or the $r$-index. Bentley,
Gibney, and Thankachan [ESA 2020] introduced a linear-time algorithm for
computing the permutation of the input collection which yields the minimum
number of runs of the resulting BWT.
  In this paper, we present the first tool that guarantees a
Burrows-Wheeler-Transform with minimum number of runs (optBWT), by combining i)
an algorithm that builds the BWT from a string collection (either SAIS-based
[Cenzato et al., SPIRE 2021] or BCR [Bauer et al., CPM 2011]); ii) the SAP
array data structure introduced in [Cox et al., Bioinformatics, 2012]; and iii)
the algorithm by Bentley et al.
  We present results both on real-life and simulated data, showing that the
improvement achieved in terms of $r$ with respect to the input order is
significant and the overhead created by the computation of the optimal BWT
negligible, making our tool competitive with other tools for BWT-computation in
terms of running time and space usage. In particular, on real data the optBWT
obtains up to 31 times fewer runs with only a $1.39\times$ slowdown.
  Source code is available at https://github.com/davidecenzato/optimalBWT.git.
