Skip to content

nf-core/stableexpression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

490 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

nf-core/stableexpression

Open in GitHub Codespaces GitHub Actions CI Status GitHub Actions Linting StatusAWS CICite with Zenodo nf-test

Nextflow nf-core template version run with apptainer run with conda run with docker run with singularity Launch on Seqera Platform

Get help on SlackFollow on BlueskyFollow on MastodonWatch on YouTube

Introduction

nf-core/stableexpression is a bioinformatics pipeline aiming to aggregate multiple count datasets for a specific species and find the most stable genes. The datasets can be either downloaded from public databases (EBI, NCBI) or provided directly by the user. Both RNA-seq and Microarray count datasets can be utilised.

It takes as main inputs :

  • a species name (mandatory)
  • keywords for Expression Atlas / GEO search (optional)
  • a CSV input file listing your own raw / normalised count datasets (optional).

Use cases:

  • find the most suitable genes as RT-qPCR reference genes for a specific species (and optionally specific conditions)
  • download all Expression Atlas and / or NCBI GEO datasets for a species (and optionally keywords)

Pipeline overview

The pipeline is built using Nextflow and processes data using the following steps:

1. Get accessions from public databases

  • Get Expression Atlas dataset accessions corresponding to the provided species (and optionally keywords) This step is run by default but is optional. Set --skip_fetch_eatlas_accessions to skip it.
  • Get NBCI GEO microarray dataset accessions corresponding to the provided species (and optionally keywords) This is optional and NOT run by default. Set --fetch_geo_accessions to run it.

2. Download data (see usage)

Note

At this point, datasets downloaded from public databases are merged with datasets provided by the user using the --datasets parameter. See usage for more information about local datasets.

3. ID Mapping (see usage)

  • Gene IDs are cleaned
  • Map gene IDS to NCBI Entrez Gene IDS (or Ensembl IDs) for standardisation among datasets using g:Profiler (run by default; optional)
  • Rare genes are filtered out

4. Sample filtering

Samples that show too high ratios of zeros or missing values are removed from the analysis.

5. Normalisation of expression

  • Normalize RNAseq raw data using TPM (necessitates downloading the corresponding genome and computing transcript lengths) or CPM.
  • Perform quantile normalisation on each dataset separately using scikit-learn

6. Merge all data

All datasets are merged into one single dataframe.

7. Imputation of missing values

Missing values are replaced by imputed values using a specific algorithm provided by scikit-learn. The user can choose the method of imputation with the --missing_value_imputer parameter.

8. General statistics for each gene

Base statistics are computed for each gene, platform-wide and for each platform (RNAseq and microarray).

9. Scoring

  • The whole list of genes is divided in multiple sections, based on their expression level.
  • Based on the coefficient of variation, a shortlist of candidates genes is extracted for each section.
  • Run optimised, scalable version of Normfinder
  • Run optimised, scalable version of Genorm (run by default; optional)
  • Compute stability scores for each candidate gene

10. Reporting

  • Result aggregation
  • Make MultiQC report
  • Prepare Dash Plotly app for further investigation of gene / sample counts

Basic usage

Note

If you are new to Nextflow and nf-core, please refer to this page on how to set-up Nextflow. Make sure to test your setup with -profile test before running the workflow on actual data.

To search the most stable genes in a species considering all public datasets, simply run:

nextflow run nf-core/stableexpression \
   -profile <PROFILE (examples: docker / apptainer / conda / micromamba)> \
   --species <SPECIES (examples: arabidopsis_thaliana / "drosophila melanogaster")> \
   --outdir <OUTDIR (example: ./results)> \
   -resume

More advanced usage

For more specific scenarios, like:

  • fetching only specific conditions
  • using your own expression dataset(s)

please refer to the usage documentation.

Resource allocation

For setting pipeline CPU / memory usage, see here.

Profiles

See here for more information about profiles.

Pipeline output

To see the results of an example test run with a full size dataset refer to the results tab on the nf-core website pipeline page. For more details about the output files and reports, please refer to the output documentation.

Support us

If you like nf-core/stableexpression, please make sure you give it a star on GitHub!

stars - stableexpression

Credits

nf-core/stableexpression was originally written by Olivier Coen.

Contributions and Support

If you would like to contribute to this pipeline, please see the contributing guidelines.

For further information or help, don't hesitate to get in touch on the Slack #stableexpression channel (you can join with this invite).

Citations

An extensive list of references for the tools used by the pipeline can be found in the CITATIONS.md file.

You can cite the nf-core publication as follows:

The nf-core framework for community-curated bioinformatics pipelines.

Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.

Nat Biotechnol. 2020 Feb 13. doi: 10.1038/s41587-020-0439-x.

About

This pipeline is dedicated to identifying the most stable genes within a single or multiple expression dataset(s). This is particularly useful for identifying the most suitable RT-qPCR reference genes for a specific species.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Contributors