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)
The pipeline is built using Nextflow and processes data using the following steps:
- 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_accessionsto 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_accessionsto run it.
2. Download data (see usage)
- Download Expression Atlas data if any
- Download NBCI GEO data if any
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
Samples that show too high ratios of zeros or missing values are removed from the analysis.
- 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
All datasets are merged into one single dataframe.
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.
Base statistics are computed for each gene, platform-wide and for each platform (RNAseq and microarray).
- 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
- Result aggregation
- Make
MultiQCreport - Prepare Dash Plotly app for further investigation of gene / sample counts
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)> \
-resumeFor more specific scenarios, like:
- fetching only specific conditions
- using your own expression dataset(s)
please refer to the usage documentation.
For setting pipeline CPU / memory usage, see here.
See here for more information about profiles.
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.
If you like nf-core/stableexpression, please make sure you give it a star on GitHub!
nf-core/stableexpression was originally written by Olivier Coen.
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).
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.
