Skip to content
Transcriptomicslatest-release

rnastructurome

nf-core/rnastructurome

This pipeline analyses chemical-based high-throughput RNA structure probing data

version1.1.0633ab1d0d1Oct 23, 2026 Upstream Usage docs

Key tools

FastQCUMI-toolsCutadaptGffReadSTARBowtieBowtie2SAMtoolsBEDOPSRSeQCRNAFrameworkFour-base DMS analysisUCSC wigToBigWigR2DTViennaRNARNAalifoldMultiQC

Run it

nfclaw
nfclaw run rnastructurome --input samplesheet.csv --outdir results -profile docker
raw nextflow
nextflow run pipelines/rnastructurome/upstream -profile docker --input samplesheet.csv --outdir results
demo · bundled test profile
nfclaw run rnastructurome --demo --outdir results # adds the upstream test profile (-profile test,docker)

Inputs

columntyperequiredallowed valuesconstraints
samplestringyesmatches ^\S+$
sample_idstringno
fastq_1string (file path)yesmatches ^([\S\s]*\/)?[^\s\/]+\.f(ast)?q\.gz$
fastq_2string (file path)nomatches ^([\S\s]*\/)?[^\s\/]+\.f(ast)?q\.gz$
methodstringno
principlestringno
chemicalstringno
RT_enzymestringno
organismstringno
pHnumberno
adapter_3pstringno
adapter_5pstringno
umi_patternstringno
conditionstringyestreated, untreated, denatured
sample_groupstringyesmatches ^\S+$
replicatestring or integeryes
groupstringnomatches ^\S+$

--input must match ^\S+\.csv$.

The samplesheet is a CSV with this header (the columns the schema requires); fill each value per the table above and reference.md (no example value is invented here):

csv
sample,fastq_1,condition,sample_group,replicate

Any of the optional columns above may be appended to the header when your data needs them: sample_id, fastq_2, method, principle, chemical, RT_enzyme, organism, pH, adapter_3p, adapter_5p, umi_pattern, group.

From data files. --input may also be the data files — a directory (searched recursively), a quoted glob, or files (--input once per file) — from which nfclaw writes this samplesheet: sample from file names; fastq_1/fastq_2 from FastQ files (mates paired by _R1/_R2, or by _1/_2 when their read names show they are mates). Set the required columns no file determines with --sheet-set COLUMN=VALUE (a constant or a {sample}/{lane} template): condition (one of treated, untreated, denatured); sample_group (matching ^\S+$); replicate (string or integer). Preview it with --check; a run records it in <outdir>/provenance/ for replay.

Resources

Resource requests follow the pipeline's configs and selected profiles. nf-core's resource labels often assume a server — a single step can request far more memory than a workstation has, and retry rules can increase requests. If a run fails with Process requirement exceeds available memory (or CPUs), cap every request, and every retry, at what this machine actually has:

bash
nfclaw run rnastructurome --input samplesheet.csv --outdir results -profile docker \
--limit-cpus 4 --limit-memory 15.GB

nfclaw turns those into Nextflow's process.resourceLimits and passes them as a -c config — the mechanism nf-core prescribes for exactly this (docs). Set them to the machine's real capacity. --limit-time DURATION also caps how long any one task may run: a task that needs longer is stopped, and so is every retry, so set it only as a deliberate ceiling, never as a guess at how long the analysis takes. The generated config is kept in <outdir>/provenance/, so commands.sh replays the run under the same ceiling.

Nextflow engine

This release declares nextflowVersion = '!>=25.10.4'.

To pin this release's declared minimum engine — useful when a newer Nextflow has incompatible config parsing:

bash
nfclaw run rnastructurome ... --nxf-ver 25.10.4

--nxf-ver is recorded in <outdir>/provenance/, so the replay uses the same engine. See known-issues.

Demo

bash
nfclaw run rnastructurome --demo --outdir results # adds the upstream test profile (-profile test,docker)
<!-- Generated from nf-core/rnastructurome@633ab1d0d12103f9002fe6e781ae1251df2d2656. Do not edit by hand. -->

Samplesheet

A CSV with this header (the columns the schema requires). Fill each value per the constraints below; optional columns from the table may be appended.

samplesheet.csv header
sample,fastq_1,condition,sample_group,replicate
ColumnTypeRequiredAllowed / constraints
samplestringrequiredmatches ^\S+$
sample_idstringoptional—
fastq_1string (file path)requiredmatches ^([\S\s]*\/)?[^\s\/]+\.f(ast)?q\.gz$
fastq_2string (file path)optionalmatches ^([\S\s]*\/)?[^\s\/]+\.f(ast)?q\.gz$
methodstringoptional—
principlestringoptional—
chemicalstringoptional—
RT_enzymestringoptional—
organismstringoptional—
pHnumberoptional—
adapter_3pstringoptional—
adapter_5pstringoptional—
umi_patternstringoptional—
conditionstringrequiredtreateduntreateddenatured
sample_groupstringrequiredmatches ^\S+$
replicatestring or integerrequired—
groupstringoptionalmatches ^\S+$

Required parameters

--inputstring (file path)

Path to comma-separated file containing information about the samples in the experiment.

Constraint · matches ^\S+\.csv$

--outdirstring (directory path)

The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.

Parameter explorer

190 parameters · 9 groups

Every parameter from the pinned nextflow_schema.json. nfclaw checks explicit values before launch; complex rules use the pinned pipeline's runtime validation. Search, filter by group, and expand any parameter for its default, allowed values and constraints.

167 parameters · 23 hidden

Alignment options22

Allow dovetailing mates (--dovetail).

Bowtie2 --dpad padding around DP table.

Bowtie2 --ma match bonus used with --local.

Bowtie2 --mp mismatch penalties as max,min.

Bowtie2 alignment preset. Default is equivalent to --local -N 0 -D 20 -R 3 -L 20 -i S,1,0.50.

Bowtie2 --rdg read gap penalties as open,extend.

Bowtie2 --rfg reference gap penalties as open,extend.

Enable Bowtie2 local alignment mode (--local).

Report all valid alignments (-a).

Bowtie v1 --chunkmbs memory chunk size.

Optional path to a prebuilt Bowtie index (currently not consumed by workflow logic).

Report up to this number of alignments per read (-k).

Bowtie v1 -m maximum reportable alignments per read before suppression.

Bowtie v1 -n seed mismatch mode value.

Trim this many bases from 3' read end (--trim3).

Trim this many bases from 5' read end (--trim5).

Bowtie v1 -v mismatch mode value.

Genome route (STAR) quantification method. Default (false) uses STAR --quantMode TranscriptomeSAM projected onto transcripts, tag-corrected with samtools calmd, counted with rf-count. Set true for the legacy rf-count-genome + rf-rctools extract path.

Run SAMtools markdup deduplication on non-UMI libraries. Off by default: position-based duplicate removal is not valid for chemical-probing libraries without UMIs, where reads sharing a 5' start are independent RT events rather than PCR duplicates. UMI libraries are always deduplicated via UMI-tools.

STAR --sjdbOverhang for MaP alignment. Ideally readLength - 1; default 200 suits 201 bp reads.

Maximum number of loci a read is allowed to map to in STAR (--outFilterMultimapNmax). Reads mapping to more loci than this are discarded. Increase when studying repetitive non-coding RNAs.

Align against a transcript-level FASTA using Bowtie (RT-stop) / Bowtie2 (MaP). Default (false) downloads a genome FASTA and aligns with STAR.

Executor options3

SLURM account / allocation passed via --account.

Extra sbatch flags appended verbatim to process.clusterOptions.

SLURM partition / queue name passed via --partition.

Generic options4

Display the help message.

Display the full detailed help message.

Custom MultiQC yaml file containing HTML including a methods description.

Display hidden parameters in the help message (only works when --help or --help_full are provided).

Input Output options4

Email address for completion summary.

Path to comma-separated file containing information about the samples in the experiment.

MultiQC report title. Printed as page header, used for filename if not otherwise specified.

The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.

Read Trimming options10

Base quality threshold for 3' trimming.

Base quality threshold for 5' trimming (used for MaP; RT-stop is forced to 0).

Global fallback 3' adapter sequence(s), comma-separated. If omitted and no per-sample adapter is provided, the pipeline defaults to AGATCGGAAGAGC.

Global fallback 5' adapter sequence(s), comma-separated. If omitted and no per-sample adapter is provided, the pipeline defaults to AGATCGGAAGAGC.

Discard reads in which no adapter was found. For short-insert libraries (e.g. tRNA, miRNA) where every genuine read runs into the adapter.

Minimum read length retained after trimming.

Minimum adapter overlap required for trimming.

Enable cutadapt --nextseq-trim with this 3' quality cutoff, trimming high-quality poly-G tails left by 2-colour (NextSeq/NovaSeq) chemistry. Off by default.

If true, skip adapter trimming and apply quality/length trimming only.

Trim terminal N bases.

Reference Genome options4

Ensembl FTP base URL used when auto-resolving transcript FASTA.

Ensembl release for transcript FASTA auto-resolution (current, latest, or release number like 114).

Path to transcript FASTA file.

Path to transcript annotation GTF file.

Rnaframework options111

rf-correlate ignores sequence differences (e.g. SNVs) between compared transcripts (-I).

Generate the rf-correlate correlation heatmap PDF (-g; requires R).

rf-correlate minimum number of values to calculate a correlation (-m); a value between 0 and 1 is interpreted as a fraction of transcript length. Unset uses the tool default (off).

Run rf-correlate to compute pairwise reactivity-profile correlations between replicates of each sample group (a replicate-reproducibility QC surfaced in MultiQC). Only runs for sample groups with more than one replicate; a no-op otherwise.

Four-base DMS analysis (Mitchell et al., 2023) for DMS-MaP samples at pH >= 8: rf-count keeps only G->C/G->T mutations on G and drops indels (-om H2N,G2Y -ncl), and rf-norm normalises each base separately over the whole transcript (-4d).

Path to a reference .db structure file for rf-jackknife normalisation assessment. When provided, rf-jackknife runs between rf-norm and rf-fold and the output CSV reports optimal slope/intercept values. When omitted, rf-fold runs directly using whatever slope/intercept params are set.

Generate template-based 2D RNA structure diagrams using R2DT, coloured by normalised SHAPE/chemical-probing reactivity.

Comma-separated GTF biotypes sent to R2DT. R2DT only has templates for structured ncRNA classes; transcripts of other biotypes (mRNA, lncRNA, ...) are excluded so R2DT never force-fits them to the wrong template, and are drawn by ViennaRNA instead. Matched case-insensitively against transcript/gene biotype.

Cap reactivities to this value before Pearson correlation in rf-correlate (--cap-react). Not applied to the Spearman run, which is rank-based.

Discard reads with excessive 5' or 3' end clipping in rf-count / rf-count-genome (--discard-clipped-reads).

Block size for per-chromosome memory allocation in rf-count-genome (-bs); increase for large genomes.

Minimum MAPQ score for rf-count-genome (--map-quality). Useful for filtering multi-mappers; 0 keeps all alignments.

SAMtools working threads per processor instance in rf-count-genome (-wt); total threads = -p × -wt.

Deprecated: rf-count plot generation (-g) is always enabled.

In mutation mode (-m), collapse consecutive mutations/indels (--collapse-consecutive). Auto: on unless RT_enzyme is a Group II Intron RT (e.g. TGIRT); leave unset to use the auto default.

MaP only: discard mutations within N nt of each other (-dc N). Auto: 3 when RT_enzyme is a Group II Intron RT (e.g. TGIRT), off for M-MLV; leave unset to use the auto default.

In mutation mode (-m), discard reads shorter than this value (--discard-shorter).

MaP only: also evaluate quality of ±1 nt surrounding each mutation (-es).

In mutation mode with collapsing enabled, max distance to collapse (--max-collapse-distance).

In mutation mode (-m), downsample each transcript above this coverage in rf-count (--max-coverage). Unset means off. Ignored with --count_genome true.

MaP only: discard reads with median Phred+33 base quality below this value (-eq).

In mutation mode (-m), minimum Phred+33 base quality for mutations (--min-quality).

MaP only: ignore ambiguously aligned deletion events (-na). Auto: off for M-MLV, on for Group II Intron (e.g. TGIRT); leave unset to use the auto default.

MaP only: ignore all deletion events during mutation counting (-nd).

MaP only: ignore insertion events during mutation counting (-ni). Auto: off for M-MLV, on for Group II Intron (e.g. TGIRT); leave unset to use the auto default.

MaP only: mark only the right-most base of a deletion as mutated (--right-deletion). Auto: on for M-MLV, off for Group II Intron (e.g. TGIRT); leave unset to use the auto default.

In mutation mode (-m), pre-sort paired-end reads by read name (--sort-by-read-name). No effect on single-end data.

Path to rf-count mask file (--mask-file).

For paired-end samples, use only reads with both mates mapped (--paired-only).

Use only primary alignments in rf-count (--primary-only).

For paired-end samples, use only properly paired reads (--properly-paired).

Library strandedness fallback for rf-count-genome when RSeQC inference is unavailable (e.g. viral/bacterial references without a usable BED annotation).

Trim this many bases from the 5' read end for rf-count (-t5).

Exclude terminal base-pairs from rf-eval calculations (-it).

Generate R metric plots in rf-eval (-g).

Retain lonely/isolated base-pairs in rf-eval (-kl).

Retain pseudoknotted base-pairs in rf-eval (-kp).

Cutoff for classifying a base as highly-reactive in rf-eval unpaired-coefficient calculation (-c).

Path to a .db file of known RNA secondary structures. Enables rf-eval when provided.

Treat terminal base-pairs as unpaired in rf-eval (-tu).

Optional manifest of sub-region references, one per line: ref_seq_id start end structure_id [strand] (1-based inclusive, in the XML's own coordinate space). When set, rf-norm reactivities are sliced to each window before rf-eval, so a sub-region structure (e.g. an Rfam element on a whole chromosome) is scored against a matching windowed XML instead of the diluted full transcript. structure_id must match an entry in --rfeval_reference.

Write CT format structures with rf-fold (-ct). Disabled by default to keep dot-bracket output.

Generate dot plots from rf-fold (-dp).

Constraint file for allowed base-pairing positions (-c).

Generate ViennaRNA RNAplot structure diagrams via rf-fold (-g). Disabled by default; slow on large transcriptomes. Use --r2dt for template-based diagrams instead.

Intercept for reactivity-to-folding-constraint conversion in rf-fold (-in). Auto by chemical: DMS -2, NAI -0.8, 2A3 -0.4, other/unset -0.6. Overridden by jackknife calibration when available.

Only fold transcripts covered in at least this number of XML experiments (-oc).

Partition-function window size in rf-fold (-pw N).

Compute and report Shannon entropy in rf-fold (-sh).

Slope for reactivity-to-folding-constraint conversion in rf-fold (-sl). Auto by chemical: DMS 4.6, NAI 2.2, 2A3 1, other/unset 1.8. Overridden by jackknife calibration when available.

Fold without reactivity constraints in rf-fold (-i).

Fold a group's replicates together with RNAalifold, constrained by all their reactivity profiles at once, instead of folding each with RNAfold and aggregating base pairs (-ua). Applies only to groups with more than one replicate.

Use ViennaRNA hard constraints with rf-fold (-hc).

Maximal base-pair span for ViennaRNA in rf-fold (-md).

Pass ViennaRNA no-lonely-pairs mode to rf-fold (-nlp).

Path to ViennaRNA RNAplot binary for the ViennaRNA and rf-structextract SVG structure plots.

Enable windowed MFE folding in rf-fold with this window size (-w -fw N). Set null/unset to fold the whole transcript instead.

Generate R heatmap of grid-search results in rf-jackknife (-g).

Comma-separated intercept range to search in rf-jackknife (-in), e.g. -3,0.

Step size for intercept grid search in rf-jackknife (-is).

Retain lonely base-pairs (1 bp helices) in the reference structure before comparison (-kl).

Retain pseudoknotted base-pairs in the reference structure during FMI comparison (-kp). Disabled by default because rf-fold cannot predict pseudoknots, so including them systematically lowers FMI.

Use modified FMI (Lan et al. 2022) instead of standard FMI in rf-jackknife (-m).

Only use transcripts present across all replicates in rf-jackknife (-oc).

Pool XMLs from all sample groups into a single rf-jackknife run (output: jackknife/all_groups/) instead of running one jackknife per group. Default: true.

Use relaxed FMI criteria (Deigan et al. 2009) in rf-jackknife (-x).

Additional rf-fold parameters passed inside rf-jackknife (-rp), e.g. -md 500.

Comma-separated slope range to search in rf-jackknife (-sl), e.g. 0,5.

Step size for slope grid search in rf-jackknife (-ss).

Enable dynamic normalization window (--dynamic-window). Set to a positive integer to enable (value is passed to --norm-window); set to false or 0 to explicitly disable even for DMS (which enables it by default). Leave unset to use the per-method default.

Set reactivities lower than untreated to zero for Ding or Siegfried scoring (--ignore-lower-than-untreated).

Deprecated: rf-norm plot generation (--img) is always enabled.

Discard transcripts with mean coverage below this threshold (--mean-coverage).

Discard transcripts with median coverage below this threshold (--median-coverage).

Positions with read coverage below this threshold are reported as NaN (--nan). Auto: 1000 for MaP, 50 for RT-stop. Set to 0 to disable NaN masking.

Normalize each reactive base independently (--norm-independent).

Override rf-norm normalization method (-nm). 1=2-8%, 2=90% Winsorizing, 3=Box-plot, 4=Mitchell (MaP only).

Normalization window size (--norm-window). Auto: 50 for DMS or RT-stop, unset otherwise; leave unset to use the auto default.

rf-normfactor minimum coverage (-mc): bases below this coverage are excluded from the normalization factor calculation. Auto: 1000 for MaP, 50 for RT-stop; leave unset to use the auto default.

--count_genome true only: after rf-rctools extract, keep transcripts with at least one position at this coverage or higher before rf-norm. Set to 0 to keep the full annotation RC.

Pseudocount used by Ding scoring (--pseudocount).

Score raw reactivities without applying normalization (--raw).

Reactive bases used for normalization window selection (--reactive-bases), e.g. AC for DMS.

Remap normalized reactivities to the 0-1 range according to Zarringhalam et al. (--remap-reactivities).

Override rf-norm scoring method (-sm). 1=Ding, 2=Rouskin, 3=Siegfried, 4=Zubradt.

Cross-experiment normalization via rf-normfactor (one factor set per reference, fed to rf-norm via -nf), putting reactivities on a common scale. Leave unset for auto (enabled only for a reference with more than one treated sample to cross-normalise); set true to force on, false to force off (per-sample box-plot).

Normalization window offset (--window-offset).

GTF attribute used as the output RC entry ID by rf-rctools (-b).

GTF feature type to extract with rf-rctools (-f); override for non-standard annotations.

Restrict WIG output to specific bases using an IUPAC code or combination (e.g. AC for DMS probing) (-kb). Default: all bases (N).

Report positions with zero reactivity in the WIG/BigWig output (-z). Enabled by default so genome browsers receive complete tracks without gaps.

Path to R executable used by rf-count, rf-norm, and rf-fold plotting.

Stop the pipeline after rf-jackknife completes, skipping rf-fold, structure visualisation, browser track generation, and RDAT output. Useful for calibration runs where you only want jackknife statistics.

Run rf-structextract after rf-fold to extract high-confidence, low-reactivity / low-Shannon structural motifs from the folded structures.

rf-structextract preserves dinucleotide frequencies when shuffling for energy evaluation (-ds).

rf-structextract only reports elements with a free energy significantly lower than expected by chance (-ee).

rf-structextract skips low-reactivity evaluation (-ir). When false (default), reactivity is evaluated so only regions with probing support are extracted.

rf-structextract skips low-Shannon evaluation (-is). When false, the Shannon-entropy test is applied so only high-confidence regions are extracted.

rf-structextract discards elements with a loop larger than this (-xl). Unset for no limit.

rf-structextract discards structure elements longer than this (-xm). Unset for no limit.

rf-structextract minimum fraction of bases whose Shannon and reactivity are below the transcript median (-mb).

rf-structextract discards structure elements shorter than this (-mm).

rf-structextract discards elements with less than this fraction of paired bases (-mp).

rf-structextract skips low-reactivity/low-Shannon evaluation for transcripts below this length (-ml).

rf-structextract windows with less than this fraction of bases covered are set to NaN (-mv).

rf-structextract only reports elements encompassing multiway junctions (-mo).

rf-structextract number of sequence shufflings for energy evaluation (-ns).

rf-structextract reports each extracted element in a separate file (-opf).

Render an SVG diagram per extracted rf-structextract motif via ViennaRNA RNAplot.

rf-structextract p-value threshold for energy significance (-v); requires --structextract_eval_energy.

rf-structextract window size in nt for median reactivity/Shannon calculations (-w).

Sample Metadata options9

Fallback reverse transcriptase enzyme for rows missing RT_enzyme (e.g. M-MLV).

Fallback chemical probing reagent for rows missing chemical (e.g. 1M7).

Require an exact sample_group+replicate match when pairing treated samples with untreated/denatured controls. By default, a treated group with no exact match falls back to the control whose sample_group shares the longest leading substring with it (see the usage docs). With this set, unmatched treated groups proceed without an untreated control (scoring method 2 or 4).

Fallback probing method for rows missing method.

Fallback organism for rows missing organism, typically a Latin binomial such as Homo sapiens.

Fallback DMS reaction pH for rows missing pH.

Fallback probing principle for rows missing principle.

Fallback sample ID for rows missing sample_id.

Fallback UMI pattern for rows missing umi_pattern. Supplying a pattern enables umi_tools extract before cutadapt.

Outputs

Results land in --outdir; the files and directory layout depend on the selected workflow, parameters and publication settings. Run metadata is normally placed in <outdir>/pipeline_info/ (execution report, software versions), when those outputs are enabled. The pinned tree includes MultiQC support; a report is produced only when its workflow step runs. nfclaw run also writes <outdir>/provenance/ with the exact params file and the run log, <outdir>/provenance/logs/run.log — the whole launch, whose last line states the outcome (Nextflow's own log is <outdir>/.nextflow.log); unless --no-provenance it adds a run manifest (pinned version, commit and exact command), input/output SHA-256 checksums, and a replayable commands.sh. The exact output files and directory layout for this release are documented upstream: github.com/nf-core/rnastructurome/blob/1.1.0/docs/output.md Check a run — in the foreground or the background — with nfclaw status <outdir>: success, still running, how it ended (with the error), or stopped without an outcome; exit 0 success, 3 running, 1 otherwise.