What is DIAMOND?

DIAMOND is a high-throughput protein sequence aligner developed by Benjamin Buchfink at the University of Tübingen. It performs BLASTx-like searches — translating nucleotide queries in all six reading frames and comparing them against a protein database — at 100-200x faster speed than NCBI BLASTx with comparable sensitivity.

DIAMOND was designed for metagenomics and large-scale proteomics, where BLAST is too slow to be practical. A typical metagenomic dataset contains millions of short reads that need to be compared against the entire NR protein database. Running BLASTx on this data would take weeks. DIAMOND completes the same search in hours.

The key innovation is using indexed seeds and BLOSUM-62 prefiltering instead of BLAST's heuristic extension algorithm. DIAMOND builds a compressed index of the protein database, uses spaced seeds to find initial matches, and then performs Smith-Waterman extension on promising hits. This approach achieves BLAST-comparable sensitivity while being orders of magnitude faster.

BLASTx Explained

BLASTx is the BLAST program that compares a nucleotide query against a protein database. It works by translating the nucleotide query in all six reading frames (three forward, three reverse) and comparing each translation against the protein database. This is essential for identifying protein-coding regions in DNA sequences.

BLASTx is slower than blastn or blastp because it must perform six translations and run six separate searches per query. For a single query, this is fine. For millions of metagenomic reads, BLASTx becomes a bottleneck. This is where DIAMOND excels — it performs the same six-frame translation but uses indexed seeds to search the database in a fraction of the time.

Installation

Conda (Recommended)

# Install via conda conda install -c bioconda diamond # Or create a dedicated environment conda create -n diamond diamond conda activate diamond # Verify installation diamond --version

Homebrew (Mac)

brew install diamond diamond --version

Binary Download

# Download from GitHub releases wget https://github.com/bbuchfink/diamond/releases/download/v2.1.10/diamond-linux64.tar.gz tar -xzf diamond-linux64.tar.gz export PATH=$PATH:/path/to/diamond # Verify diamond --version

Usage Guide

Step 1: Create a Database

# Create a protein database from FASTA files diamond makedb --in nr.fasta -d nr_db # Or download and use NCBI's pre-formatted databases # (DIAMOND can read BLAST databases directly)

Step 2: Run BLASTx

# Basic BLASTx search diamond blastx -q queries.fasta -d nr_db -o results.tab # With sensitivity options diamond blastx -q queries.fasta -d nr_db --more-sensitive -o results.tab # For maximum sensitivity (slower) diamond blastx -q queries.fasta -d nr_db --very-sensitive -o results.tab # Tabular output with specific columns diamond blastx -q queries.fasta -d nr_db \ --outfmt 6 qseqid sseqid pident length evalue bitscore \ -o custom_results.tab

Step 3: DIAMOND vs BLAST Output

DIAMOND produces output in the same tabular format as BLAST (-outfmt 6), making it easy to swap DIAMOND into existing BLAST pipelines. The standard 12 columns are identical: query ID, subject ID, percent identity, alignment length, mismatches, gap opens, query start, query end, subject start, subject end, E-value, and bit score.

Worked Example: Metagenomic Search

You have 1 million metagenomic reads (150 bp each) from a soil sample. You want to identify the protein-coding genes.

With BLASTx: Searching against NR would take approximately 48 hours on 8 cores. Many researchers abandon BLASTx for metagenomics because of this speed limitation.

With DIAMOND: The same search completes in approximately 30 minutes using diamond blastx -q reads.fasta -d nr_db --more-sensitive -o results.tab. The output format is identical to BLAST, so downstream analysis scripts work unchanged.

DIAMOND vs BLAST: When to Use Each

Feature DIAMOND NCBI BLASTx
Speed 100-200x faster Baseline
Sensitivity Comparable (--more-sensitive) Baseline
Database Size Handles NR-scale easily Limited by RAM and speed
Output Format BLAST-compatible tabular Pairwise + tabular
Pairwise Alignments Not natively (use BLAST) Full pairwise view
Batch Processing Excellent (built for scale) Good but slower
Setup Requires installation Web interface available
Best For Metagenomics, proteomics, large-scale Single queries, exploration, publication

Use DIAMOND When:

  • You are searching millions of reads against NR or a large protein database
  • BLASTx is too slow for your pipeline
  • You need batch processing with identical output format
  • You are working on metagenomics, transcriptomics, or proteomics at scale
  • You want BLAST-comparable sensitivity at a fraction of the time

Use BLAST When:

  • You are running a single query or a small number of queries
  • You need pairwise alignment views for publication figures
  • You want to use the web interface without installation
  • You need NCBI-specific features (PSI-BLAST, RID tracking)
  • You are teaching or learning sequence alignment concepts

Need BLAST for Single Queries?

For quick, one-off BLAST searches, use the free online tool. Supports blastn, blastp, blastx, tblastn, and tblastx with instant results.

Try Online BLAST →

Frequently Asked Questions

What is DIAMOND BLASTx?

DIAMOND is a high-throughput protein sequence aligner developed by Benjamin Buchfink. It performs BLASTx-like searches (translated nucleotide vs protein database) at 100-200x faster speed than NCBI BLAST with comparable sensitivity. DIAMOND is widely used in metagenomics, proteomics, and large-scale sequence analysis where BLAST is too slow.

How fast is DIAMOND compared to BLAST?

DIAMOND is approximately 100-200x faster than NCBI BLASTx for comparable searches. A search that takes 2 hours with BLASTx can complete in under 1 minute with DIAMOND. This speed advantage comes from using indexed seeds and BLOSUM-62 prefiltering rather than the BLAST heuristic extension algorithm.

When should I use DIAMOND?

Use DIAMOND when you need to search large nucleotide datasets against protein databases (metagenomics, transcriptomics), run thousands of BLASTx queries in batch, or when BLAST speed is a bottleneck. For single-query searches or when you need BLAST-comparable output, NCBI BLAST may be simpler.

How do I install DIAMOND?

Install DIAMOND via conda (conda install -c bioconda diamond), Homebrew (brew install diamond), or download from github.com/bbuchfink/diamond/releases. The binary runs on Linux, Mac, and Windows. After installation, run 'diamond makedb' to create a database and 'diamond blastx' to search.

What is the sensitivity of DIAMOND?

DIAMOND's default mode (more-sensitive) has sensitivity comparable to BLASTx for most use cases. The --very-sensitive mode achieves near-identical sensitivity to BLASTx. For the highest sensitivity, use --ultra-sensitive, though this reduces the speed advantage. For metagenomic searches, --more-sensitive is the recommended default.

DIAMOND has become the standard tool for large-scale protein searches in metagenomics and proteomics. Its speed advantage over BLAST is not incremental — it is transformative. Researchers who previously abandoned BLASTx because it was too slow can now complete the same searches in minutes. The output compatibility with BLAST means switching is seamless.

For quick, one-off searches, use VigyanLLM's free online BLAST tool. For large-scale batch processing, DIAMOND is the tool of choice. For comparing DIAMOND to BLAST in detail, see our BLAST vs DIAMOND comparison. After identifying protein sequences, you can perform multiple sequence alignment to compare homologs.

References

  1. Buchfink B., et al. (2021). Fast and sensitive protein alignment using DIAMOND. Nature Methods, 12, 69-70.
  2. Altschul S.F., et al. (1990). Basic local alignment search tool. Journal of Molecular Biology, 215(3), 403-410.
  3. Buchfink B., et al. (2015). DIAMOND — ultrafast protein alignment for metagenomics. bioRxiv.
  4. Camacho C., et al. (2009). BLAST+: architecture and applications. BMC Bioinformatics, 10, 421.