What changed in 2.0
salmon 2.0 is a from-scratch Rust rewrite. It keeps the same core workflow
(salmon index → salmon quant → quant.sf) and the same output formats
downstream tools consume, but it is a new major version and makes some breaking
changes. This page maps C++ options and behavior to 2.0.
Breaking change: rebuild your index
Section titled “Breaking change: rebuild your index”quant.sf is unchanged (drop-in for tximport/tximeta). Inferential replicates
(aux_info/bootstrap/… for both --numBootstraps and --numGibbsSamples) are
written in the same format C++ salmon used, so tximport/fishpond/swish keep
working. The bias-model diagnostic dumps in aux_info/ are in a documented Rust
format (see the output format specification);
they are not consumed by the standard downstream R packages.
Removed subcommands
Section titled “Removed subcommands”| C++ | 2.0 |
|---|---|
salmon alevin | Removed. Use the alevin-fry ecosystem for single-cell. salmon alevin … prints a redirect and exits. |
Removed options
Section titled “Removed options”Passing any of these errors out with a pointer to this guide. They are gone because the underlying feature was removed or has no equivalent in 2.0.
| Option | Subcommand | Why / alternative |
|---|---|---|
--features | index | Index-feature dump not supported by the cf1-rs/piscem-rs index builder. |
--mimicBT2, --mimicStrictBT2 | quant | bowtie2-mimicking presets removed; selective alignment is the single supported mode. |
--minAssignedFrags | quant | The “zero the output below N assigned fragments” guard was removed; 2.0 reports what it quantifies. |
--alternativeInitMode, --bootstrapReproject, --noGammaDraw | quant | Inference-internal toggles not present in the 2.0 optimizer/Gibbs implementation. |
--numBiasSamples | quant | 2.0 collects bias samples online (abundance-aware, dual-phase), so a fixed sample budget no longer applies. |
--auxTargetFile, --writeOrphanLinks | quant -a | Removed alignment-mode features. |
Accepted but ignored
Section titled “Accepted but ignored”These still parse so existing scripts run; 2.0 logs a warning and ignores them (the behavior is either the default now or handled differently).
- index:
--filterSize - quant:
--eqclasses,--noFragLengthDist,--noSingleFragProb,--mismatchSeedSkip,--disableChainingHeuristic,--hitFilterPolicy,--maxRecoverReadOcc,--validateMappings(selective alignment is the default) - quant -a:
--mappingCacheMemoryLimit,-s/--sampleOut,-u/--sampleUnaligned,--writeQualities
New in 2.0
Section titled “New in 2.0”--sketch— alignment-free pseudoalignment mode (faster). See mapping modes.--sketchStrictOrphans— in--sketch, only orphan a pair when the other mate had no matching k-mers at all (the conservative rule). The default is the relaxed rule, which tracks selective alignment more closely.--allowDovetail— now honored in--sketchas well.
Behavior differences to be aware of
Section titled “Behavior differences to be aware of”- Sketch orphan rule defaults to the relaxed policy (see
--sketchStrictOrphans). - Selective-alignment chain pruning: 2.0 defaults
--orphanChainSubThreshand--postMergeChainSubThreshto0.0(off) — it aligns every candidate, marginally more sensitive than C++ (0.95/0.9). Quantification is essentially unaffected (per-transcript Pearson ≈ 0.999); pass--orphanChainSubThresh 0.95 --postMergeChainSubThresh 0.9to reproduce C++ mapping counts exactly.
Unchanged
Section titled “Unchanged”Index/quant basics, quant.sf, cmd_info.json, lib_format_counts.json,
aux_info/meta_info.json, --libType/-l, --threads/-p, --seqBias,
--gcBias, --posBias, --numBootstraps, --numGibbsSamples, --useEM,
--dumpEq, -g/--geneMap, decoys, and salmon quantmerge.