salmon
July 10, 2026 · View on GitHub
Important
This is salmon 2.0 — a from-scratch Rust rewrite of salmon. It keeps the
same workflow (salmon index → salmon quant → quant.sf) and the same
output formats downstream tools read, but it is a new major version with some
breaking changes. The most important one: the index format changed, so you
must rebuild your index. See MIGRATION.md for the full
list of changed/removed/new options.
The final C++ release (salmon 1.12.0) lives on the cpp
branch and remains installable as the salmon-cpp conda package.
Single-cell quantification moved to the alevin-fry
ecosystem (salmon alevin is removed).
What is salmon?
salmon is a wicked-fast program for highly-accurate, transcript-level
quantification from RNA-seq data. It pairs a fast mapping stage — selective
alignment, or alignment-free sketch mode (--sketch) — with a
massively-parallel statistical model (EM/VBEM over equivalence classes) to
estimate transcript abundances. You can give salmon raw sequencing reads, or
regular alignments to the transcriptome (an unsorted BAM), and it uses the
same inference engine either way.
salmon 2.0 ships as a single portable binary: no compiler, Boost, or system libraries to install.
Installation
# install script (prebuilt binaries: Linux & macOS, x86-64 & aarch64)
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/COMBINE-lab/salmon/releases/latest/download/salmon-cli-installer.sh | sh
# or via cargo (Rust ≥ 1.91)
cargo install salmon-cli
# or via conda
conda install -c bioconda -c conda-forge salmon
# or Docker
docker run --rm combinelab/salmon:latest salmon --version
Quick start
# 1) build a reusable index from a transcriptome
salmon index -t transcripts.fa -i salmon_index -p 16
# 2) quantify (-l A auto-detects the library type)
salmon quant -i salmon_index -l A \
-1 reads_1.fastq.gz -2 reads_2.fastq.gz -p 16 -o sample_quant
Results land in sample_quant/quant.sf (drop-in for tximport / tximeta /
fishpond / swish).
Documentation
Full docs are at https://combine-lab.github.io/salmon — installation, library types, selective-alignment vs. sketch mode, inferential replicates, the migration guide, the CLI reference, and a precise specification of every output file.
Decoy-aware indexing
Accounting for fragments of unexpected origin
improves quantification. salmon can index decoy sequence (e.g. the genome)
alongside the transcriptome so reads that would otherwise be spuriously assigned
to a transcript are absorbed by the decoy. Pass a decoy-name file with
-d/--decoys (the decoy records must appear last in the FASTA). See the docs for
building a decoy-aware index.
Citation
If you use salmon, please cite:
Patro, R., Duggal, G., Love, M. I., Irizarry, R. A., & Kingsford, C. (2017). Salmon provides fast and bias-aware quantification of transcript expression. Nature Methods. https://doi.org/10.1038/nmeth.4197
License
BSD-3-Clause. See LICENSE.