×

Nextflow Modules

Clear

Showing module(s) with keyword "orf"

Module Keywords Description
nf-core/custom/orfcollapse orf ribo-seq catalogue smorf deduplication Collapse small ORFs that share an amino-acid sequence cluster into a single catalogue entry. Pair with `custom/orfmerge` (coordinate-based catalogue), `bedtools/getfasta` + `seqkit/translate` (AA FASTA keyed by orf_id), and `mmseqs/easycluster` (AA clusters) upstream. The coordinate-based merge in `custom/orfmerge` only groups ORFs that overlap on the genome, so the same micropeptide encoded at several distinct, non-overlapping loci (typically repetitive regions) survives as separate rows. This adopts the peptide-level deduplication and 0.9 amino-acid-similarity threshold of the GENCODE Ribo-seq ORF consolidation (Mudge et al. 2022, Nat Biotechnol, doi:10.1038/s41587-022-01369-0; gencode-riboseqORFs collapse_cutoff 0.9), implemented here with MMseqs2 sequence-identity clustering rather than that tool's longest-shared-string / P-site-overlap metric. Small ORFs (`aa_length` <= `--smorf-max-aa`, default 100) are clustered by amino-acid identity upstream and this module folds each multi-member cluster down to one representative. Only small ORFs are collapsed; larger ORFs are passed through untouched. Eligibility is the catalogue's `is_smorf` flag, independent of `orf_class`, so a short uORF and a short novel ORF are both candidates; `--smorf-max-aa` re-derives the flag and aborts on disagreement. Among the members of a cluster the representative is chosen by class specificity, then longest aa_length, then orf_id, so the result does not depend on which sequence MMseqs2 labelled the cluster representative. Catalogue row order is preserved; dropped members fold their `called_by_<caller>` / `score_<caller>` evidence, `n_samples` / `samples` recurrence and gene mappings into the survivor.
nf-core/custom/orfmerge orf ribo-seq catalogue merge clustering Cluster normalised per-sample, per-caller ORF predictions into a single cohort-level catalogue. Pair with `custom/orfnormalise` upstream and (typically) `bedtools/getfasta` + `seqkit/translate` downstream to obtain the AA FASTA. Rows sharing an identical exon structure are grouped first and clustered as a single proxy chosen by class specificity, then the members are restored. Class selects the strategy, so without this an ORF that two callers class differently would be split across strategies and could never merge. Proxies are then partitioned by clustering strategy. The harmonised `orf_class` written by `custom/orfnormalise` selects the strategy but is never part of a grouping key, because callers disagree on class for the same ORF (Ribo-TISH reports `5'UTR` for both uORFs and CDS-overlapping uORFs) and keying on it would emit one catalogue row per disagreeing caller: - canonical_cds: grouped by (transcript_id, strand), then reciprocal-overlap clustered within the transcript so a short truncated variant is not folded into the full-length CDS. - uORF, uoORF, dORF, collapse by (transcript_id, strand, start, doORF, intORF, other: end). A single transcript can host multiple distinct uORFs / dORFs / internal ORFs, so keying on the outer span keeps them in separate clusters while still merging cross-caller calls that agree on coordinates. - novel_u: greedy reciprocal-overlap clustering on summed exon-block intersection at `--reciprocal-overlap` (default 0.8). Catches fuzzy cross-caller matches and exact-coordinate collapses in one pass. Order-dependent at the boundary: a chain A-B-C where A-B and B-C overlap at ~0.85 but A-C only at ~0.75 may cluster as {A,B,C} or {A,B}+{C} depending on iteration order. Rare in practice at 0.8. Cross-caller consensus is recorded in two column families on the catalogue TSV: - `called_by_<caller>`: 0/1 indicator per supported caller (ribotish, ribocode, ribotricer, rpbp, price). - `score_<caller>`: best score from that caller within the cluster. Score direction is per-caller (p-values are minimised; Bayes factors / phase scores are maximised). Cross-sample recurrence is recorded in two further columns: - `n_samples`: number of distinct samples contributing to the cluster (a cohort recurrence metric). - `samples`: sorted, comma-separated list of those sample ids. Emits a small MultiQC custom-content TSV (per-class counts) for inclusion in downstream MultiQC reports. Alongside the full catalogue, emits a consensus view (`*.consensus.*`) filtered to ORFs supported by at least `--min-callers` distinct callers and recurring in at least `--min-samples` samples (both default 1, i.e. no filtering, so the consensus view equals the full catalogue). Raising either threshold yields a higher-confidence catalogue without altering the full one.
nf-core/custom/orfnormalise orf ribo-seq normalisation bed12 translation Convert one ORF caller's per-sample output table into a unified BED12 plus a sidecar metadata TSV, ready for cross-caller merging. An "ORF caller" is a tool that scans ribosome-profiling (Ribo-seq) data and predicts which open reading frames are being translated. Each caller writes its own table format and uses its own location encoding, classification vocabulary, and confidence score. This module reconciles five callers into one harmonised schema. The `caller` val input selects the parser; supported values: - ribocode (RiboCode predicted ORF table; transcript-coord input, lifted to genomic blocks against the GTF) - ribotish (Ribo-TISH predict output; GenomePos + optional Blocks) - ribotricer (Ribotricer detect-orfs translating ORFs TSV; ORF span parsed from ORF_ID, multi-exon blocks recovered by intersecting with host-transcript exon structure from the GTF) - rpbp (Rp-Bp predicted-orfs BED12 with extra columns) - price (PRICE orfs.tsv; Gedi-style Location field, already genomic) Output BED12 column order: chrom start end name score strand thickStart thickEnd itemRgb blockCount blockSizes blockStarts The BED `name` column carries `<caller>|<caller-native-id>`. The BED `score` column is the caller's native score rescaled to 0-1000 (higher == more confident regardless of native direction). Output sidecar TSV columns: orf_id caller sample_id chrom start end strand gene_id transcript_id orf_class aa_length score orf_type_native is_smorf `orf_type_native` carries the caller's own ORF-type label verbatim, so every harmonisation decision below stays auditable without re-running the caller. ORF-type tokens are matched exactly (casefolded) against each caller's closed vocabulary. Tokens matching no entry cause the process to fail; successful outputs report `unmapped_orf_type=0` on the `# parser_columns:` provenance line. `orf_class` is purely positional: it records where the ORF sits relative to the annotated CDS and never encodes its length. Select small ORFs with the `is_smorf` column (`aa_length` <= `--smorf-max-aa`, default 100). `aa_length` is derived as `(nucleotide_length - 3) // 3` for every caller except Ribo-TISH, whose `AALen` column is taken verbatim. If `AALen` counts the stop codon, `is_smorf` is caller-dependent by one residue exactly at the `--smorf-max-aa` boundary. Not reconciled: it needs a Ribo-TISH run whose nucleotide lengths can be compared against `AALen` directly. Harmonised `orf_class` vocabulary written into the sidecar TSV: - canonical_cds: ORF maps to an annotated CDS (including truncated / extended variants of one). - uORF: upstream ORF, not overlapping the CDS. - uoORF: upstream ORF overlapping the CDS out of frame. - dORF: downstream ORF, not overlapping the CDS. - doORF: downstream ORF overlapping the CDS out of frame. - intORF: ORF contained within the CDS, out of frame. - novel_u: novel / intergenic ORF not assigned to an annotated CDS. - other: anything a caller cannot place. Not every caller can report every class, so the absence of a class for one caller is a tool limitation rather than evidence about the ORF: - Ribo-TISH's `5'UTR` covers both uORF and uoORF, and `3'UTR` both dORF and doORF: `tisType()` tests only the start position. - PRICE's vocabulary has no doORF. - ribotricer's `internal` is the terminal fall-through of `check_orf_type()` rather than a positive out-of-frame call, so it maps to `other`; mapping it to intORF would assert a frame relationship ribotricer never tested. Per-caller mapping notes (lossy collapses): - PRICE's `Gene` column concatenates every gene overlapping an ORF's genomic span, so `gene_id` is resolved from the GTF via the ORF's transcript id; the `Gene` column is used only for transcripts absent from the annotation, and can then carry a multi-gene value. - PRICE `iORF` maps to `intORF` and `orphan` to `novel_u` (it is both the not-transcript-consistent label and PRICE's fall-through). `intronic` has no positional equivalent and maps to `other`. The exact PRICE sub-type is preserved in `orf_type_native`. - Rp-Bp's predicted-orfs BED carries no ORF-type column; this module defaults every Rp-Bp call to `canonical_cds` (the post- selectfinalpredictionset curated set is dominated by canonical CDSs). uORF/dORF/novel calls present in Rp-Bp's separate `.tab.gz` / `extracted-orfs.bed.gz` files are not propagated here. Each caller's native confidence score has a "direction" - some are lower-is-better (p-values), some are higher-is-better (Bayes factors, phase scores): ribocode: min (combined p-value) ribotish: min (combined p-value) ribotricer: max (phase_score) rpbp: max (Bayes factor mean) price: min (p-value) Downstream merging uses this to pick the best per-ORF call.
nf-core/dotseq/dotseq riboseq rnaseq translation differential orf Detect differential ORF usage (DOU) and ORF-level differential translation efficiency (DTE) from Ribo-seq with matched RNA-seq using DOTSeq. Wraps DOTSeqDataSetsFromSummarizeOverlaps() + DOTSeq() + getContrasts() and emits the package's native contrast tables plus plotDOT() visualisations.
nf-core/gedi/indexgenome riboseq index genome gedi price orf Build a GEDI genome index from a FASTA and GTF for downstream PRICE ORF prediction
nf-core/gedi/price riboseq orf price gedi translation Identify translated ORFs from Ribo-seq BAMs using the PRICE algorithm
nf-core/ribotricer/detectorfs riboseq orf genomics Accurate detection of short and long active ORFs using Ribo-seq data
nf-core/ribotricer/prepareorfs riboseq orf genomics Accurate detection of short and long active ORFs using Ribo-seq data
nf-core/rpbp/estimatemetagenebayesfactors rpbp metagene bayes orf riboseq Score how strongly each per-read-length metagene profile shows the 3-nucleotide periodicity expected of actively translating ribosomes. For each candidate (read length, P-site offset) pair, Rp-Bp fits two competing Bayesian models to the count window around annotated start codons: a "periodic" model whose signal repeats every three nucleotides, and a "non-periodic" background model. The Bayes factor (ratio of the two marginal likelihoods) quantifies how much the data prefer the periodic explanation. Returns one row per (length, offset) pair with the mean and variance of the log Bayes factor across MCMC samples. Downstream, `rpbp/selectperiodicoffsets` picks the best offset per length from this table, and `rpbp/getperiodiclengthsoffsets` filters to the high-confidence pairs that drive ORF-level scoring. Uses the Stan models bundled inside the rpbp Python package.
nf-core/rpbp/estimateorfbayesfactors rpbp orf bayes translation riboseq Score every candidate ORF for evidence of active translation. For each ORF, Rp-Bp fits two competing Bayesian models to its per-codon P-site count vector: a "translated" model that expects P-site density to concentrate at codon-start positions (the in-frame signal a translating ribosome produces), and an "untranslated" / noise model for the same data. The Bayes factor (ratio of marginal likelihoods) quantifies how much the data favour the translated hypothesis. Emits a BED-style table with one row per ORF carrying genomic coordinates plus the mean and variance of the log Bayes factor across MCMC samples. Downstream, `rpbp/selectfinalpredictionset` applies Bayes-factor, length and overlap rules to this table to produce the final filtered prediction set. Uses the Stan models bundled inside the rpbp Python package.
nf-core/rpbp/extractmetageneprofiles rpbp metagene orf riboseq Build per-read-length pileups of Ribo-seq read 5'-ends around annotated start codons - the "metagene profile". For each read length, the profile counts how many reads of that length have their 5' end at each position in a window around every annotated start codon, summed across all transcripts. Looking at the profile across the window reveals whether reads of that length show the 3-nucleotide periodicity characteristic of translating ribosomes. This per-length view matters because different ribosome footprint lengths place the ribosomal P-site (the codon being decoded) at different offsets from the read's 5' end, so each length needs its own offset calibration. Output is consumed by `rpbp/estimatemetagenebayesfactors`, which scores each (length, offset) combination for periodicity.
nf-core/rpbp/extractorfprofiles rpbp orf psite profile riboseq Build a per-ORF P-site count vector for every candidate open reading frame (ORF) in the catalogue. For each ORF, walks the spliced exons in 3-nucleotide codon steps and counts the P-site positions (read 5'-end coordinate plus the length-specific offset selected upstream) that fall in each codon. Counts are summed across all read lengths that passed the periodicity filter from `rpbp/getperiodiclengthsoffsets`. The resulting per-ORF vectors are the input to Bayesian translation scoring in `rpbp/estimateorfbayesfactors`: a translated ORF should show P-site density concentrated at codon-start positions, while a non-translated region should look flat or noisy. Emitted as a sparse matrix (one row per ORF, columns indexed by codon position).
nf-core/rpbp/preparegenome rpbp orf prepare genome bed riboseq Build the per-ORF reference files that Rp-Bp's downstream scoring needs, starting from a genome FASTA and an annotation GTF. Enumerates every candidate open reading frame (ORF) in the annotation (annotated CDSs plus alternative start codons within transcript exons), records their genomic and per-exon coordinates, and labels them with the transcript and gene they belong to. Invokes Rp-Bp's `get_orfs` Python function directly, chaining the upstream helpers `gtf-to-bed12`, `extract-bed-sequences`, `extract-orf-coordinates`, `split-bed12-blocks` and `label-orfs`. Bypasses Rp-Bp's `prepare-rpbp-genome` umbrella script, which would also build `bowtie2` (rRNA filtering) and `STAR` (alignment) indices - neither is consumed by the Rp-Bp tools wrapped here, since alignment is supplied externally as a BAM. A minimal `chrName.txt` (one contig name per line) is seeded from the FASTA headers because `gtf-to-bed12` reads it via `--chr-name-file` to control output sort order. Note: emits the `*.annotated.bed.gz` filenames produced by `get_orfs` directly, rather than the `*.bed.gz`-renamed forms that the upstream umbrella `prepare-rpbp-genome` script produces. The downstream module outputs and consumers in this module set reference these names explicitly, so the two are functionally equivalent.
nf-core/rpbp/selectfinalpredictionset rpbp orf bayes prediction riboseq Produce the final filtered set of predicted translated ORFs from the per-ORF Bayes factor table. Applies the standard Rp-Bp prediction rules: a minimum Bayes-factor cutoff (favouring translated over untranslated), a minimum ORF length, and overlap resolution so that among overlapping candidates only the highest-scoring representative is kept. Emits three files describing the same prediction set: a BED of ORF genomic coordinates plus score, a FASTA of ORF DNA sequences (extracted from the genome FASTA), and a FASTA of the corresponding translated protein sequences. This is the terminal step of the Rp-Bp per-sample chain.
nf-core/rpbp/selectperiodicoffsets rpbp psite offset orf riboseq Pick the single best P-site offset for each read length from the per-(length, offset) Bayes factor table produced upstream. For each read length, the offset with the highest periodicity Bayes-factor mean is selected - this is the offset that, when added to a read's 5' end, is estimated to land closest to the ribosomal P-site (the codon being decoded). Downstream, these offsets are used to convert raw read 5'-end coordinates into P-site positions when counting reads against candidate ORFs. Emits one row per read length (length, best offset, supporting Bayes factor statistics). The next step (`rpbp/getperiodiclengthsoffsets`) filters this table to the high-quality pairs that pass user-specified count / signal thresholds before P-site counting in `rpbp/extractorfprofiles`.