BLAST is a sequence search and alignment tool used in bioinformatics. It's one of the best-known and most important programs in the field.

Given the query sequence, the BLAST algorithm returns/finds the closest matching sequences in a sequence database. The output of a BLAST search is a list of (sub)sequences from the database with the corresponding E-values.

The BLAST source code is written in C++ and is part of the NCBI C++ Toolkit. The toolkit includes five main BLAST programs (blastn, blastp, blastx, tblastn, and tblastx) plus other utilities and libraries.

I've compiled BLAST programs to WebAssembly using Emscripten to make a version of each program that can run fully in the browser (see the demo below). The NCBI C++ Toolkit codebase is large and complex and required some modifications to compile with Emscripten.

The demo runs makeblastdb to create a BLAST database and then blastp to do a BLAST search against the database. The demo is interactive, so you can change the input sequences and see the results in real-time.

Demo: In-browser BLAST (makeblastdb + blastp)


See also

Made by Anton Vasetenkov.

If you want to say hi, you can reach me on LinkedIn or via email. If you like my work, you can support me by buying me a coffee.