Introduction

nf-core/riboseq is a bioinformatics pipeline for analysis of Ribo-seq data. It borrows heavily from nf-core/rnaseq in the preprocessing stages:

nf-core/riboseq metro map

In case the image above is not loading, please have a look at the static version.

  1. Merge re-sequenced FastQ files (cat)
  2. Sub-sample FastQ files and auto-infer strandedness (fq, Salmon)
  3. Read QC (FastQC)
  4. UMI extraction (UMI-tools)
  5. Adapter and quality trimming (--trimmer: Trim Galore! (default) or fastp)
  6. (optional, --equalise_read_lengths) Hard-trim RNA-seq reads to match the Ribo-seq read-length distribution before alignment-based TE quantification
  7. Removal of genome contaminants (BBSplit)
  8. Removal of ribosomal RNA (--ribo_removal_tool: SortMeRNA (default), Bowtie2 or RiboDetector)
  9. Genome alignment of reads, outputting both genome and transcriptome alignments with STAR; a second alignment against a hybrid canonical + novel-transcript reference when --extended_orf_analysis is set with a novel-transcript source
  10. Sort and index alignments (SAMtools)
  11. UMI-based deduplication (--umi_dedup_tool: UMI-tools (default) or UMICollapse)
  12. (optional, --skip_coverage_tracks false) Genome-browser bigWig coverage tracks (bedGraphToBigWig)

Differences occur in the downstream analysis steps. Currently these specialist steps are:

  1. Check reads distribution around annotated protein coding regions on user provided transcripts, show frame bias and estimate P-site offset for different group of reads (Ribo-TISH)
  2. (default, optional) Predict translated open reading frames and/or translation initiation sites de novo from alignment data (Ribo-TISH)
  3. (opt-in, --run_ribotricer) Derive candidate ORFs from reference data and detect translated ORFs from that list (Ribotricer). Disabled by default: benchmarking found its ORF-score column is rank-unstable across biological replicates, so it is excluded from the default caller set and from cross-caller rank aggregation when enabled.
  4. (default, optional) Identify translated ORFs using P-site periodicity and read density (RiboCode)
  5. (opt-in, --run_price) Predict ORFs from genome-level alignments with a codon-resolution generative model (PRICE/GEDI)
  6. (opt-in, --run_rpbp) Bayesian prediction of translated ORFs from ribosome profiling (Rp-Bp)
  7. (optional, --novel_gtf or StringTie) Novel-transcript discovery, merging a reference-guided assembly with the canonical annotation into a hybrid GTF used by the genome-coordinate ORF callers (StringTie, gffcompare)
  8. (opt-in, --extended_orf_analysis) Build a cross-caller cohort ORF catalogue with smORF peptide collapse and a consensus view across enabled callers (MMseqs2)
  9. (default, optional) Derive P-sites and QC from transcriptome alignments (riboWaltz, plastid); plastid P-sites also feed the default gene- and ORF-level quantification (--te_quantification_method plastid_psite)
  10. (opt-in, --extended_orf_analysis) Per-ORF in-frame P-site quantification, emitting an ORF x sample count matrix
  11. (optional) Use a translational efficiency approach to study the dynamics of transcription and translation between matched RNA-seq and Ribo-seq data, at the gene level (--translational_efficiency_method: anota2seq (default) or deltaTE (DESeq2)) and, when an ORF catalogue is built, at the ORF level (adding DOTSeq). requires matched RNA-seq and Ribo-seq data

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.

First, prepare a samplesheet with your input data that looks as follows:

samplesheet.csv:

sample,fastq_1,fastq_2,strandedness,type
CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz,forward,riboseq

Each row represents a fastq file (single-end) or a pair of fastq files (paired end). Each row should have a ‘type’ value of riboseq, tiseq or rnaseq. Set this to riboseq or tiseq for regular Ribo-seq or TI-seq data respectively; set it to rnaseq for matched RNA-seq samples used in the translational efficiency analysis described below.

Now, you can run the pipeline using:

nextflow run nf-core/riboseq \
-profile <docker/singularity/.../institute> \
--input samplesheet.csv \
--outdir <OUTDIR>

Including a translational efficiency analysis

anota2seq - fold change plot

In the translational efficiency analysis provided by anota2seq, we use matched pairs of Ribo-seq and RNA-seq data to study the relationship between transcription and translation as they differ between two treatment groups. For example the test data for this workflow has a contrasts file like:

id,variable,reference,target,batch,pair
treated_vs_control,treatment,control,treated,,pair

This describes how to compare groups of samples between treatment groups, and between RNA-seq and Ribo-seq. In order the columns are:

  • id: a unique identifier to use for the contrast
  • variable: which variable (column) of the sample sheet should be used to separate the treatment groups?
  • reference: which value of the variable column should be used to select samples to be used as the reference/ base group?
  • target: which value of the variable column should be used to select samples to be used as the target/treated group?
  • batch: (optional) specify a variable in the sample sheet that defines sample batches
  • pair: (optional) specify a variable in the sample sheet that defines sample pairing between RNA-seq and Ribo-seq samples. If not specified, it is assumed that the two types of sample are ordered the same.
Warning

Please provide pipeline parameters via the CLI or Nextflow -params-file option. Custom config files including those provided by the -c Nextflow option can be used to provide any configuration except for parameters; see docs.

For more details and further functionality, please refer to the usage documentation and the parameter documentation.

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.

Credits

nf-core/riboseq was originally written by Jonathan Manning (Bioinformatics Engineer at Seqera) with support from Altos Labs and in discussion with Felix Krueger and Christel Krueger. We thank the following people for their input:

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 #riboseq channel (you can join with this invite).

Citations

If you use nf-core/riboseq for your analysis, please cite it using the following doi: 10.5281/zenodo.10966364

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.