Demonstration only. Corollary is a non-commercial research demo — no warranty, no support, not for commercial use or clinical decisions. Read the disclaimer

All tools

Sequence search · Software

MMseqs2

Search and cluster massive protein and nucleotide sequence sets across CPUs and GPUs.

What MMseqs2 is

MMseqs2 (Many-against-Many sequence searching) is a software suite designed to search, cluster, and annotate very large protein and nucleotide datasets. It addresses the computational bottleneck of analysing high-throughput sequencing data, scaling efficiently from personal computers to high-performance computing clusters and graphics processing units.

Originally developed by Martin Steinegger and Johannes Söding, MMseqs2 provides sequence search speeds up to 10,000 times faster than BLAST, while maintaining nearly identical sensitivity at 100 times BLAST's speed. It also performs iterative sequence-profile searches with the sensitivity of PSI-BLAST at over 400 times the speed, and features clustering algorithms designed to scale linearly with input dataset size.

How it works

MMseqs2 operates either directly on FASTA and FASTQ files through simplified workflows or on its internal indexed database format. For clustering, the software offers a cascaded clustering algorithm in `easy-cluster` as well as a linear-time algorithm in `easy-linclust` that scales directly with sequence count. For searches, the software applies vectorized instruction sets—such as SSE2, SSE4.1, and AVX2—alongside optional GPU acceleration to rapidly identify and align related sequences.

Target databases can be indexed and padded in advance to minimise recurring search overhead. When target databases exceed available system memory, MMseqs2 automatically partitions the database into smaller chunks and evaluates them sequentially. Distributed execution across multiple servers is handled by assigning database splits to individual nodes using the Message Passing Interface (MPI), with each node parallelising execution across cores using OpenMP.

Key facts

Implementation language
C++
Supported sequence types
Protein and nucleotide
Supported inputs
FASTA, FASTQ, and MMseqs2 database formats
Supported architectures
x86_64 (SSE2, SSE4.1, AVX2), ARM64, PPC64LE (POWER8 or newer)
GPU support
NVIDIA CUDA (Turing, Ampere or newer) and AMD ROCm (CDNA2 preview)
Parallel processing
OpenMP (multithreading) and MPI (multi-node distributed computing)
Memory requirement
1 byte per sequence residue for clustering; 1 byte per target residue for searching

What you can use it for

Massive sequence clustering
Cluster huge protein or nucleotide datasets using cascaded clustering or the linear-time `easy-linclust` workflow to generate non-redundant sequence representatives.
Homology searching and profile analysis
Search query sequences against comprehensive reference collections such as UniProt, UniRef, NR, NT, or Pfam using single queries or iterative PSI-BLAST-style profile searches.
Metagenomic taxonomic assignment
Assign taxonomic lineages to contigs or reads using the `easy-taxonomy` workflow, calculating the lowest common ancestor (LCA or 2bLCA) against databases like NCBI or SILVA.
Cross-alphabet translated alignment
Perform translated nucleotide-versus-protein (blastx), protein-versus-nucleotide (tblastn), or nucleotide-versus-nucleotide (tblastx) alignments.

Run it here

MMseqs2 is preinstalled on the machine behind every research conversation. Ask the agent in plain language, or give it the exact command — it runs it, reads the output and explains it.

Try asking

“Cluster these proteins at 50% identity with MMseqs2.”

Strengths and limits

Good at

  • It searches sequence databases up to 10,000 times faster than BLAST and performs profile searches over 400 times faster than PSI-BLAST.
  • The linear-time clustering algorithm (`easy-linclust`) prevents quadratic runtime scaling when processing massive sequence collections.
  • Database indexing and automatic memory-based partitioning allow huge reference databases to be searched even on memory-constrained systems.
  • It supports extensive parallel computing schemes, including multi-threading with OpenMP, multi-node clustering with MPI, and GPU acceleration.

Watch out for

  • Precompiled GPU binaries do not support NVIDIA architectures older than Turing, such as Pascal or Volta.
  • Building with 64-bit sequence identifiers to support more than 2^32 sequences doubles internal memory usage even for small databases.
  • Windows compatibility is currently limited to a beta version operated via Cygwin.
  • The default standard search command estimates sequence identity rather than calculating exact identity unless specific alignment flags are set.

Questions

Can I run MMseqs2 online without installing it?

MMseqs2 is preinstalled on the machine behind every research conversation. Ask the agent in plain language, or give it the exact command — it runs it, reads the output and explains it.

What licence is MMseqs2 under?

MMseqs2 is published under its authors' own licence; the project page at https://github.com/soedinglab/MMseqs2 states it.

How much memory does MMseqs2 require to run?

MMseqs2 requires a baseline of approximately 1 byte per sequence residue for clustering and 1 byte per target residue for sequence searching. It automatically detects system memory limits and splits target databases into smaller chunks when memory is insufficient.

Which GPUs can be used to accelerate searches?

MMseqs2 supports NVIDIA CUDA-enabled GPUs of the Turing generation or newer, achieving full performance on Ampere or newer cards. It also includes preview support for AMD ROCm GPUs of the CDNA2 generation or newer, whereas older architectures like Pascal and Volta are unsupported.

How does MMseqs2 calculate sequence identity?

The `easy-search` workflow calculates sequence identity by dividing identical residues by alignment length, whereas the core `search` command estimates identity by default. To obtain real sequence identity in the core search module, the alignment mode parameter `-a` or `--alignment-mode 3` must be enabled.

Can MMseqs2 run across multiple compute nodes in a cluster?

Yes, MMseqs2 can be compiled with MPI support to distribute database splits across multiple network-connected servers, with individual nodes further parallelising calculations across CPU cores via OpenMP.

How to cite it

Steinegger M and Soeding J. MMseqs2 enables sensitive protein sequence searching for the analysis of massive data sets. Nature Biotechnology, doi: 10.1038/nbt.3988 (2017)

Written from MMseqs2's own README and project page. Statements citing a figure that does not appear there are removed before publication. Licence and running details come from our registry.