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).
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.
# 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# 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_quantResults land in sample_quant/quant.sf (drop-in for tximport / tximeta /
fishpond / swish).
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.
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.
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
BSD-3-Clause. See LICENSE.