Installation
salmon 2.0 is a single self-contained binary. Pick whichever method fits your environment.
The release install script
downloads the right prebuilt binary for your OS/architecture and puts it on your
PATH:
curl --proto '=https' --tlsv1.2 -LsSf \ https://github.com/COMBINE-lab/salmon/releases/latest/download/salmon-cli-installer.sh | shPrebuilt binaries are provided for Linux and macOS on both x86-64 and aarch64. The x86-64 build targets a broad SIMD floor (SSE4.2-era) and selects AVX2 at runtime where available, so one binary runs on essentially any modern CPU.
If you have a Rust toolchain (≥ 1.91):
cargo install salmon-cliThis builds and installs the salmon binary from crates.io.
conda install -c bioconda -c conda-forge salmonThe salmon package tracks the 2.0 (Rust) line. The final C++ release remains
available as salmon-cpp for reproducibility.
Multi-arch images (linux/amd64 + linux/arm64) are published on every release
to Docker Hub and GHCR:
docker pull combinelab/salmon:latest # or pin a version: :2.2.1# mirror on GHCR:docker pull ghcr.io/combine-lab/salmon:latestThe image’s entrypoint is salmon, so arguments go straight to it (don’t
repeat salmon):
docker run --rm combinelab/salmon:latest --versionMount your data and run as usual — the first argument is the salmon subcommand:
# build an indexdocker run --rm -v "$PWD:/data" -w /data combinelab/salmon:latest \ index -t transcripts.fa -i salmon_index
# quantifydocker run --rm -v "$PWD:/data" -w /data combinelab/salmon:latest \ quant -i salmon_index -l A -1 r1.fq.gz -2 r2.fq.gz -p 8 -o outTags: latest (newest release), X.Y (e.g. 2.2), and exact X.Y.Z (e.g.
2.2.1) — pin X.Y.Z for reproducible pipelines.
Use with Nextflow and other workflow managers
Section titled “Use with Nextflow and other workflow managers”The image ships procps, so ps is available and
Nextflow’s container requirements
are met — without it, every task fails with “Command ps required by nextflow
to collect task metrics cannot be found”.
One thing to be aware of: this image’s entrypoint is salmon, which is what lets
you run docker run combinelab/salmon quant ... above. A workflow manager
instead supplies its own command, which the entrypoint would swallow:
$ docker run --rm combinelab/salmon:latest /bin/bash -ue -c 'echo hi'error: unrecognized subcommand '/bin/bash'So point the entrypoint at a shell for those runs. In Nextflow:
docker { enabled = true entrypointOverride = true}git clone https://github.com/COMBINE-lab/salmoncd salmoncargo build --release# binary at target/release/salmonThe repository ships a .cargo/config.toml that pins the portable SIMD floor;
release builds use it automatically.
Verify
Section titled “Verify”salmon --versionsalmon --help