Salmon is an ultra-fast transcript quantification engine that estimates isoform-level expression directly from raw RNA-seq reads. It bypasses traditional alignment by employing a two-phase inference process: an offline indexing phase that builds a lightweight transcriptome de Bruijn graph, and an online quantification phase that uses a streaming inference algorithm with an expectation-maximization optimization to assign reads probabilistically. This pseudoalignment strategy dramatically reduces computational overhead while maintaining accuracy comparable to alignment-based methods.
Glossary
Salmon

What is Salmon?
Salmon is a lightweight computational tool for quantifying transcript isoform abundance from RNA-seq data using dual-phase inference and sample-specific bias models without full read alignment.
The tool incorporates sophisticated sample-specific bias models that correct for sequence-specific, GC-content, and positional biases inherent in RNA-seq library preparation without requiring a reference genome. By modeling fragment length distributions and conditional probabilities of read origin, Salmon produces Transcripts Per Million (TPM) estimates that are directly comparable across samples. Its memory-efficient design processes millions of reads per minute on standard hardware, making it a cornerstone of modern gene expression prediction pipelines.
Key Features of Salmon
Salmon achieves ultrafast transcript abundance estimation through a novel dual-phase inference algorithm that bypasses traditional read alignment, incorporating sample-specific bias models for unparalleled accuracy.
Dual-Phase Inference Algorithm
Salmon employs a two-stage statistical procedure to maximize quantification accuracy. The online phase rapidly processes reads using lightweight mapping and initial abundance estimates. The offline phase refines these estimates using an advanced variational Bayesian inference model, correcting for fragment-level biases and multimapping reads that traditional alignment-free methods often mishandle.
Quasi-Mapping for Speed
Instead of performing computationally expensive full base-to-base alignment, Salmon uses quasi-mapping to rapidly identify the transcript of origin for each read. This process builds a lightweight index of k-mers and their suffix array intervals, allowing the algorithm to locate a read's potential mapping loci in a fraction of the time required by traditional aligners like STAR or HISAT2.
Sample-Specific Bias Modeling
Salmon explicitly learns and corrects for complex, sample-specific biases that distort abundance estimates:
- Sequence-specific bias: Corrects for non-uniformity caused by nucleotide composition at fragment ends.
- GC-content bias: Accounts for amplification and sequencing efficiency variations correlated with guanine-cytosine content.
- Positional bias: Models the non-uniform distribution of read start positions across transcripts. These models are estimated directly from the input data without requiring external controls.
Inference-Rich Output
Beyond raw count estimates, Salmon provides a statistically rigorous output suite. It reports Transcripts Per Million (TPM) for cross-sample comparability and inferential replicates—multiple bootstrap or Gibbs sampling draws from the posterior distribution of abundance estimates. These replicates enable downstream tools like swish in the DESeq2 framework to perform differential expression analysis with proper variance estimates, even for experiments with few biological replicates.
Selective Alignment
To mitigate the quantification noise introduced by spurious mappings, Salmon implements selective alignment. This scoring mechanism evaluates the quality of a quasi-mapping hit against a probabilistic model of a true alignment. Reads that fail to meet a sensitivity-tuned score threshold are discarded as mapping artifacts, dramatically reducing false positive quantification of intergenic or repetitive regions without sacrificing sensitivity to genuine lowly-expressed transcripts.
Decoy-Aware Indexing
Salmon's index can incorporate decoy sequences—genomic regions such as the whole genome scaffold that are known to be unannotated. During quasi-mapping, reads that map better to these decoys than to the transcriptome are flagged and removed from quantification. This decoy-aware strategy prevents the algorithm from forcibly assigning reads from unannotated loci or background DNA contamination to real transcripts, preserving the accuracy of abundance estimates.
Salmon vs. Kallisto vs. Traditional Alignment
A technical comparison of transcript quantification strategies for RNA-seq data, contrasting lightweight pseudoalignment and alignment-free methods against traditional splice-aware alignment pipelines.
| Feature | Salmon | Kallisto | Traditional Alignment |
|---|---|---|---|
Core Algorithm | Dual-phase inference with variational Bayesian EM and sample-specific bias models | Pseudoalignment with k-mer matching and standard EM optimization | Splice-aware full read alignment to reference genome using algorithms like STAR or HISAT2 |
Input Requirement | Raw FASTQ files or pre-computed alignment files (BAM/SAM) | Raw FASTQ files only | Raw FASTQ files |
Index Type | Quasi-mapping index (lightweight, transcriptome-only) | Transcriptome De Bruijn Graph (T-DBG) index | Full genome index (often >30 GB for human genome) |
Speed (Relative) | Very fast (< 5 min for typical human sample) | Very fast (< 5 min for typical human sample) | Slow (30 min to several hours per sample) |
Memory Footprint | Low (~1-3 GB for human transcriptome) | Low (~1-3 GB for human transcriptome) | High (~30-60 GB for human genome alignment) |
Bias Correction | |||
Sample-Specific Bias Models | |||
Quantification Uncertainty | |||
Handles Multi-Mapping Reads | |||
Output Metric | TPM, estimated counts, effective lengths | TPM, estimated counts, effective lengths | Raw fragment counts (requires additional tools like featureCounts for quantification) |
Discordant Read Pair Handling | Rescues and probabilistically assigns | Discards or assigns with reduced confidence | Full alignment attempt, may be flagged as discordant |
Decoy Sequence Awareness |
Frequently Asked Questions
Clear, technical answers to common questions about the Salmon tool for RNA-seq analysis, covering its mechanisms, comparisons, and practical applications.
Salmon is a lightweight, alignment-free computational tool for quantifying transcript isoform abundance from RNA-seq data. It operates through a dual-phase inference process: an online phase that rapidly estimates initial expression levels and learns sample-specific bias models (sequence-specific, GC-content, and positional biases), followed by an offline phase that refines these estimates using a variational Bayesian inference algorithm. Instead of performing full read alignment to a reference genome, Salmon uses a quasi-mapping approach that rapidly identifies the transcript of origin for each read fragment, dramatically accelerating the quantification pipeline while maintaining accuracy comparable to alignment-based methods like RSEM or Cufflinks.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Core concepts, competing tools, and foundational techniques that contextualize Salmon's role in high-speed, alignment-free RNA-seq analysis.
TPM Normalization
Transcripts Per Million is the standard unit for reporting transcript abundance. TPM corrects for both gene length and sequencing depth, ensuring that the sum of all TPM values in a sample equals one million. This allows direct comparison of transcript proportions across samples. Salmon outputs TPM values natively, along with estimated read counts, making it compatible with downstream differential expression tools like DESeq2 and edgeR.
Pseudoalignment
A computational shortcut that determines transcript compatibility by checking whether a read's k-mers match a transcript's sequence, without computing a full nucleotide-level alignment. This eliminates the most computationally expensive step in traditional RNA-seq analysis. Salmon's quasi-mapping approach extends pseudoalignment by also identifying the position and orientation of matches, enabling more accurate likelihood estimation.
Batch Effects
Systematic non-biological variation introduced by differences in sample processing, reagent lots, or sequencing platforms. These technical artifacts can confound quantification tools if not modeled. Salmon's sample-specific bias models explicitly account for positional biases, GC-content biases, and sequence-specific biases that vary between batches, reducing the need for post-hoc correction methods like ComBat-Seq.
Expectation-Maximization
An iterative statistical algorithm used to estimate transcript abundance when reads map to multiple isoforms. The E-step estimates the probability that each read originated from each compatible transcript, while the M-step updates abundance estimates based on these probabilities. Salmon accelerates this process with an online stochastic EM variant that processes reads in mini-batches, converging faster than traditional batch EM.
RNA-seq
High-throughput sequencing of cDNA to profile the complete transcriptome of a biological sample. RNA-seq reveals both gene expression levels and transcript structure, including alternative splicing events. Salmon processes raw RNA-seq reads directly, bypassing the alignment step that typically consumes 70-90% of analysis time. It supports both single-end and paired-end reads from Illumina and other platforms.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us