Demonstration only. Corollary is a non-commercial research demo — no warranty, no support, not for commercial use or clinical decisions. Read the disclaimer

All tools and pipelines

nf-core pipeline · expression, housekeeping-genes, qpcr-analysis

nf-core/stableexpression

Identifies stably expressed genes across RNA-seq and microarray datasets to select RT-qPCR reference genes.

What nf-core/stableexpression is

nf-core/stableexpression is a bioinformatics workflow designed to identify the most stably expressed genes within single or multiple expression datasets. Developed by Olivier Coen at the EGCE (Université Paris-Saclay, CNRS), the pipeline addresses the challenge of selecting reliable reference or housekeeping genes for reverse transcription quantitative real-time PCR (RT-qPCR) experiments for a given species and experimental condition.

The pipeline processes both RNA-seq and microarray count data. Users can provide their own raw or normalised count matrices, or configure the workflow to query and download public expression datasets directly from repositories such as the EBI Expression Atlas and NCBI Gene Expression Omnibus (GEO).

By merging multiple datasets, standardising identifiers, and evaluating candidates across distinct expression levels, the workflow identifies robust candidate genes across diverse biological conditions and experimental platforms.

What the pipeline does

The workflow begins by retrieving dataset accessions from public repositories (EBI Expression Atlas by default, and optionally NCBI GEO) based on a specified species and optional search keywords. These public datasets are downloaded and combined with any user-provided expression files. Gene identifiers are cleaned and mapped to Ensembl IDs using g:Profiler, rare genes are removed, and low-quality samples containing excessive zero or missing counts are filtered out. Raw RNA-seq values are normalised using either Transcripts Per Million (TPM), which calculates longest transcript lengths via reference annotations from Ensembl or NCBI, or Counts Per Million (CPM). Each dataset then undergoes quantile normalisation via scikit-learn.

Following individual normalisation, all datasets are merged into a single matrix. To handle missing values across merged studies, genes are clustered with MiniBatchKMeans, and missing entries are imputed using algorithms such as scikit-learn's KNNImputer. Platform-wide and platform-specific baseline statistics are computed for each gene. Genes are then partitioned into sections according to expression levels, and a shortlist is selected based on coefficient of variation. The pipeline runs optimised, scalable versions of NormFinder and geNorm to calculate gene stability scores, producing final summaries in a MultiQC report and a Dash Plotly interactive application.

Key facts

Pipeline framework
Nextflow
Original developer
Olivier Coen (EGCE, Université Paris-Saclay, CNRS)
Input data types
RNA-seq and microarray raw or normalised count datasets
Supported public repositories
EBI Expression Atlas and NCBI GEO Datasets
Gene ID mapping
g:Profiler
Normalisation methods
TPM, CPM, and quantile normalisation
Stability scoring algorithms
NormFinder and geNorm
Reporting
MultiQC report and Dash Plotly application

What you can use it for

RT-qPCR reference gene discovery
Identify the most stable housekeeping genes in a given species, optionally constrained to specific conditions, to serve as internal controls for quantitative PCR.
Automated public expression harvesting
Download and aggregate public expression datasets from EBI Expression Atlas and NCBI GEO corresponding to a species name and keyword query.
Cross-study stability benchmarking
Integrate in-house RNA-seq or microarray experiments with published datasets to assess expression stability across varied experimental platforms.

Run it here

The research agent runs nf-core/stableexpression with Nextflow on its own machine — up to 32 cores, 256 GiB of memory and 24 hours per run, which covers the test profile and real single-sample runs. It builds the samplesheet, checks it against the pipeline's schema and reads the results back. When a run is too big for one machine, it gives you the exact command for your own cluster instead.

Strengths and limits

Good at

  • Integrates data from multiple platforms, combining both RNA-seq and microarray datasets into unified analyses.
  • Automates the end-to-end pipeline from public repository querying and downloading to normalisation and scoring.
  • Implements scalable, optimised variants of established stability algorithms including NormFinder and geNorm.
  • Outputs interactive inspection options by bundling a Dash Plotly application alongside standard MultiQC reports.

Watch out for

  • Automated retrieval of datasets from NCBI GEO is experimental due to the high format heterogeneity of submissions.
  • Missing value imputation requires significant processing time when analysing large numbers of merged datasets.
  • TPM normalisation requires Ensembl or NCBI reference annotations to compute longest transcript lengths unless pre-supplied.

Questions

Can I run nf-core/stableexpression without my own cluster?

The research agent runs nf-core/stableexpression with Nextflow on its own machine — up to 32 cores, 256 GiB of memory and 24 hours per run, which covers the test profile and real single-sample runs. It builds the samplesheet, checks it against the pipeline's schema and reads the results back. When a run is too big for one machine, it gives you the exact command for your own cluster instead.

What licence is nf-core/stableexpression under?

MIT, like every nf-core pipeline.

What inputs are mandatory to run the workflow?

The only mandatory parameter is the species name. Users may optionally supply search keywords for repository querying or provide custom count datasets via a CSV file.

Which public expression databases does the pipeline query?

The pipeline queries the EBI Expression Atlas by default, and can optionally search and download datasets from NCBI GEO.

How are candidate genes evaluated for stability?

Genes are grouped into sections by expression level and shortlisted using coefficients of variation, after which scalable versions of NormFinder and geNorm evaluate them to generate stability scores.

How does the pipeline handle missing values between merged datasets?

The pipeline clusters genes by similarity using MiniBatchKMeans and applies a missing value imputation algorithm, such as KNNImputer, from scikit-learn.

How to cite it

doi: 10.5281/zenodo.22895924

Written from nf-core/stableexpression's own README. Statements citing a figure that does not appear there are removed before publication. Licence and running details come from our registry.