/usearch12

Open-source usearch

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Usearch implements several popular biological sequence search and clustering algorithms, including USEARCH, UCLUST, UPARSE, UCHIME, UNOISE and SINTAX.

Version 12 is the first open-source version of usearch. Compared to earlier versions, functionality which is sufficiently covered by other open-source projects has been removed. In particular, there is no support for OTU table manipulation or diversity analysis which is well supported by other tools such as QIIME and DADA2. The goal here is to simplify the package as much as reasonably possible to encourage collaborators to join the open-source project.

Documentation

Docs. web site: https://rcedgar.github.io/usearch12_documentation/

Docs. source: https://github.com/rcedgar/usearch12_documentation

Installation

Download the binary (executable) file for your operating system. There are no dependencies, so that is typically all you need to do. Make sure the execute bit is set if you are using Linux or OSX, and make sure the binary is in your PATH (or, you can type the full path name). For more details see https://rcedgar.github.io/usearch12_documentation/install.html.

Building from source

Windows

To build using Microsoft Visual C++ (MSVC), load the solution file usearch12.sln and select Build then Rebuild Solution from the main menu bar.

To build from the command line, run ./build_win.bash from a command prompt. This requires that the MSVC build tools are in your PATH. The build_win.bash script (1) checks that there are no uncommitted changes to the repo, (2) overwrites gitver.txt with the latest commit hash, and (3) runs MSBuild to compile and link usearch12.exe.

Linux

The primary development environment is MSVC. The Linux Makefile is generated automatically by build_linux.py from the MSVC project file usearch12.vcxproj. To build on Linux you need gcc, ccache and make.

A pre-generated Makefile is included. This means that you can run make in the usual way. Generally, this Makefile should not be manually edited because changes will be lost the next time it is generated.

Alternatively you can run the ./build_linux.py script, which (1) checks that there are no uncommitted changes to the repo, (2) overwrites gitver.txt with the latest commit hash, (3) generates a new Makefile from usearch12.vcxproj, and (4) runs make. To run this you need python3 as well.

OSX

Building for OSX x86 and M-chip is supported by GitHub Actions.

Older versions of usearch

Binaries for usearch versions 5 though 11 are provided at https://github.com/rcedgar/usearch_old_binaries/, licensed under CC0-1.0 (public domain). There are no plans to provide source code for the older versions.

Citing usearch

Please cite the appropriate paper(s) listed here: https://rcedgar.github.io/usearch12_documentation/citation.html