Home Software Services About Contact usearch manual
reproducibility of results
See also
UCHIME order dependency

It sometimes happens that USEARCH gives different results with the same input and options. This is most common when the same data is processed on different operating systems. This behavior is expected, and does not indicate a bug.

Differences occur due to (1) sorting and (2) dynamic programming algorithms used to construct alignments. The reasons are (a) floating-point rounding errors, and (b) tie-breaking. In both sorting (e.g., by word count) and dynamic programming using integer arithmetic, ties may occur (target sequences having the same word count, and alignments having the same score). When there is a tie, the code makes an arbitrary choice and the choice may differ depending on the implementation of library subroutines for sorting etc. that differ between compilers. When floating-point code is used, there is the additional complication of floating point rounding errors, which can produce different results due to the processor, compiler and library function implementations.