RNALFOLD(1)
๐ RNALFOLD(1) ๐
okay bestie, welcome to the RNALfold manual page ๐ this is literally the tool for finding locally stable RNA secondary structures, and it's giving main character energy ๐
โจ NAME โจ
The name is RNALfold - manual page for RNALfold 2.7.0 ๐ธ
โจ SYNOPSIS โจ
RNALfold [OPTION]...
โจ DESCRIPTION โจ
RNALfold 2.7.0 is here to calculate locally stable secondary structures of RNAs ๐งฌโจ
So RNALfold computes locally stable RNA secondary structure with a maximal base pair span ๐
For a sequence of length n and a base pair span of L, the algorithm only uses O(n+L*L) memory and O(n*L*L) CPU time. Which means it's actually practical to "scan" very large genomes for short RNA structures, no cap ๐ฅ
The output is a list of secondary structure components of size <= L, one entry per line. Each output line has the predicted local structure, its energy in kcal/mol, and the starting position of that local structure ๐ฆ
-h,--helpโ Print help and exit ๐--detailed-helpโ Print help, including all details and hidden options, and exit ๐--full-helpโ Print help, including hidden options, and exit ๐๏ธ-V,--versionโ Print version and exit ๐ท๏ธ-v,--verboseโ Be verbose ๐ฃ๏ธ (default:off)- This lowers the log level setting so even INFO messages get passed through.
๐ซถ I/O Options
Command line options for input and output (pre-)processing ๐ฅ
-i,--infile=filenameโ Read a file instead of reading from stdin ๐- By default RNALfold reads its input from stdin. With this one you can give it an input file name to read the data from instead.
-o,--outfile[=filename]โ Print output to a file instead of stdout ๐- This writes all the output into output files rather than printing to stdout. How many output files you get for batch input (multiple sequences) depends on three conditions:
- (i) If an optional filename is given as the parameter argument, a single file with that exact filename gets written into. If the optional argument is left off, then:
- (ii) FASTA input or an active
--auto-idswitch writes to multiple files that follow the naming scheme "prefix.lfold". The "prefix" is taken from the sequence id in the FASTA header. - (iii) Single-line sequence input without a FASTA header gets written to a single file "RNALfold_output.lfold".
- If an output file already exists, any output of the program gets appended to it ๐
- Since the filename argument is optional, it has to come immediately after the short option flag so it doesn't get mistaken for a new parameter. For instance,
-ornafold.outwill write to a file "rnafold.out" ๐งพ - Note: any special characters in the filename get replaced by the filename delimiter, so there's no way to pass an entire directory path through this option yet. (See also the "--filename-delim" parameter.)
- This writes all the output into output files rather than printing to stdout. How many output files you get for batch input (multiple sequences) depends on three conditions:
--noconvโ Do not automatically substitute nucleotide "T" with "U" ๐ (default:off)--auto-idโ Automatically generate an ID for each sequence ๐ชช (default:off)- By default RNALfold will pick up an ID from the input sequence data if the input file format allows it. Sequence IDs are usually given in the FASTA header. If this flag is active, RNALfold ignores any IDs it retrieved from the input and auto-generates one for each sequence. That ID is a prefix plus an increasing number. This flag can also be used to add a FASTA header to the output even if the input has none ๐
--id-prefix=STRINGโ Prefix for automatically generated IDs (as used in output file names) ๐ท๏ธ (default:sequence)- If this is set, each sequence gets prefixed with the string you provide. That means the output files follow the naming scheme "prefix_xxxx.lfold", where xxxx is the sequence number. Note: setting this parameter implies
--auto-id.
- If this is set, each sequence gets prefixed with the string you provide. That means the output files follow the naming scheme "prefix_xxxx.lfold", where xxxx is the sequence number. Note: setting this parameter implies
--id-delim=CHARโ Change the delimiter between the prefix and the increasing number for auto-generated IDs (as used in output file names) โ๏ธ (default:_)- This lets you swap out the default "_" between the prefix string and the increasing number.
--id-digits=INTโ Specify the number of digits of the counter in automatically generated alignment IDs ๐ข (default:4)- Auto-generated alignment IDs get an increasing number starting at 1. That number is always left-padded with leading zeros so it takes up a certain width. Use this parameter to set the width however you need. We allow numbers in the range
[1:18]. This option implies--auto-id.
- Auto-generated alignment IDs get an increasing number starting at 1. That number is always left-padded with leading zeros so it takes up a certain width. Use this parameter to set the width however you need. We allow numbers in the range
--id-start=LONGโ Specify the first number in automatically generated IDs ๐ (default:1)- Auto-generated sequence IDs usually start at 1, but this parameter lets you pick the first number. Note: negative numbers are not allowed. Note: setting this parameter means any IDs retrieved from the input data get ignored, i.e. it activates the
--auto-idflag.
- Auto-generated sequence IDs usually start at 1, but this parameter lets you pick the first number. Note: negative numbers are not allowed. Note: setting this parameter means any IDs retrieved from the input data get ignored, i.e. it activates the
--filename-delim=CHARโ Change the delimiting character used in sanitized filenames ๐งน (default:ID-delimiter)- This is the character used while sanitizing filenames, i.e. replacing invalid characters. The default delimiter ALWAYS is the first character of the "ID delimiter" you supply through
--id-delim. If the delimiter is a whitespace character or empty, invalid characters get simply removed rather than substituted. - These characters count as illegal in filenames: backslash
\, slash/, question mark?, percent sign%, asterisk*, colon:, pipe symbol|, double quote", and triangular brackets<and>๐ซ
- This is the character used while sanitizing filenames, i.e. replacing invalid characters. The default delimiter ALWAYS is the first character of the "ID delimiter" you supply through
--filename-fullโ Use the full FASTA header to create filenames ๐๏ธ (default:off)- This turns off the default behavior of limiting output filenames to the first word of the sequence ID. Say an input has the FASTA header
>NM_0001 Homo Sapiens some gene. Usually that produces output files with the prefix "NM_0001" and none of the extra data from the header, e.g. "NM_0001_ss.ps" for secondary structure plots. With this flag set, nothing gets truncated, and the output filenames receive the full FASTA header data as prefixes. - Note, however, that invalid characters (such as whitespace) will get substituted by a delimiting character or simply removed (see also
--filename-delim).
- This turns off the default behavior of limiting output filenames to the first word of the sequence ID. Say an input has the FASTA header
--log-level=levelโ Set the log level threshold ๐ (default:2)- By default, log messages are filtered so only warnings (level 2) or errors (level 3) get printed. Higher values mean fewer messages. Log level 5 turns off all messages, even errors and other critical information.
--log-file[=filename]โ Print log messages to a file instead of stderr ๐ (default:RNALfold.log)--log-timeโ Include a time stamp in log messages โฐ (default:off)--log-callโ Include the file and line of the log calling function ๐ (default:off)
๐ง Algorithms
Select additional algorithms which should be included in the calculations. The Minimum free energy (MFE) and a structure representative are calculated in any case. ๐ฆ
-L,--span=INTโ Set the maximum distance between any two pairing nucleotides ๐ (default:150)- This option specifies the window length L, and therefore the upper limit for the distance between the bases i and j of any pair (i, j), i.e.
(j - i + 1) <= L.
- This option specifies the window length L, and therefore the upper limit for the distance between the bases i and j of any pair (i, j), i.e.
-z,--zscore[=DOUBLE]โ Limit the output to predictions with a Z-score below a threshold ๐ฏ (default:-2)- This activates z-score regression using a trained SVM. Any predicted structure that exceeds the specified threshold gets omitted from the output. Since the Z-score threshold is given as a negative number, it has to immediately precede the short option so it doesn't get mistaken for a separate argument. For example,
-z-2.9sets the threshold to a value of -2.9 โจ
- This activates z-score regression using a trained SVM. Any predicted structure that exceeds the specified threshold gets omitted from the output. Since the Z-score threshold is given as a negative number, it has to immediately precede the short option so it doesn't get mistaken for a separate argument. For example,
--zscore-pre-filterโ Apply the z-score filtering in the forward recursions ๐ฎ (default:off)- The default z-score filtering considers the entire structure space to decide whether or not a locally optimal structure at any position i gets reported. When you use this post-filtering step, though, alternative locally optimal structures starting at i with higher energy but lower z-score can be easily missed.
- The pre-filter option restricts the structure space already in the forward recursions, so only the optimal solution among the candidates that satisfy the z-score threshold gets considered. That means good results by the z-score threshold criterion are less likely to be superseded by results with better energy but worse z-score.
- Heads up: activating this switch results in higher computation time, which scales linearly with the window length โณ
--zscore-report-subsumedโ Report subsumed structures if their z-score is less than that of the enclosing structure ๐ช (default:off)- In default mode, RNALfold only reports locally optimal structures if they're not constituents of another, larger structure with less free energy. In z-score mode, though, such a larger structure may have a higher z-score, which means it may be less informative than the smaller substructure. Using this switch activates reporting both the smaller and the larger structure if the z-score of the smaller one is lower than that of the larger one ๐
-b,--backtrack-globalโ Backtrack a global MFE structure ๐ (default:off)
Okay so this global MFE switch is lowkey the main character of the whole page ๐ Instead of just showing the locally stable secondary structure, it builds a global MFE structure out of only the locally optimal substructures. This post-processing step reads those locally optimal structures and uses them to make the global MFE structure, which is the MFE value you get on the last line โจ The global structure gets printed right after the input sequence on that last line, just before the global MFE score ๐
Bestie, heads up: this option implies -o/--outfile, because the locally optimal structures have to be read after the regular prediction step ๐ And if you combine it with -z/--zscore, it implies --zscore-pre-filter so the global MFE structure gets built properly ๐ฆ
-g,--gquadโ Lets G-Quadruplex formation sneak into the structure prediction algorithm ๐ง
(default: off)
โจ Structure Constraints
This section is all about the structure constraints feature, the command line options that let you interact with it ๐ธ
--shape=filenameโ Uses SHAPE reactivity data to guide the structure predictions ๐ฅ--shapeMethod=methodโ Picks the strategy for bringing SHAPE reactivity data in ๐
(default: D)
These methods turn SHAPE reactivities into pseudo energy contributions, and they're all super different vibes:
Dโ Uses the linear equation from Deigan et al 2009. The derived pseudo energy terms get applied to every nucleotide involved in a stacked pair. This method is recognized by a capitalDin the parameter, so--shapeMethod="D"is the default. The slopemand interceptbdefault tom=1.8andb=-0.6, but you can change them if needed. To set e.g.m=1.9andb=-0.7, use a string like--shapeMethod="Dm1.9b-0.7". You can also set just one of them, like--shapeMethod="Dm1.9"or--shapeMethod="Db-0.7"๐ซถZโ Converts SHAPE reactivities to pseudo energies using Zarringhalam et al 2012. The reactivities become pairing probabilities through a linear mapping, and any deviation from the observed pairing probabilities gets penalized during the folding recursion. You can tweak how strong those penalties are by adjusting the factor beta, like--shapeMethod="Zb0.8"โจWโ Applies a given vector of perturbation energies to unpaired nucleotides, following Washietl et al 2012. You can calculate those perturbation vectors with RNApvmin ๐
--shapeConversion=methodโ Picks how SHAPE reactivities get converted ๐ง
(default: O)
This one matters most when you're working with the SHAPE incorporation from Zarringhalam et al. These methods turn SHAPE reactivities into the probability that a nucleotide is unpaired:
Mโ Linear mapping according to Zarringhalam et al.Cโ A cutoff approach that splits nucleotides into paired and unpaired, likeC0.25๐Sโ Skips the normalizing step, because your input data already holds probabilities of being unpaired instead of raw reactivity values ๐Lโ A linear model that turns the reactivity into an unpaired probability, likeLs0.68i0.2for a slope of 0.68 and an intercept of 0.2 ๐ฆOโ A linear model that turns the log of the reactivity into an unpaired probability, likeOs1.6i-2.29for a slope of 1.6 and an intercept of -2.29 ๐
--commands=filenameโ Reads extra commands from a file ๐
Commands can include hard and soft constraints, plus structure motifs in hairpin and internal loops that need to be treated differently. You can also set commands for unstructured and structured domains ๐ซถ
๐ Energy Parameters
Energy parameter sets can be adapted or loaded from input files you provide ๐
-T,--temp=DOUBLEโ Rescales the energy parameters to a temperature oftempC ๐ก๏ธ
(default: 37.0)
The default is 37C โจ
-P,--paramFile=paramfileโ Reads energy parameters fromparamfileinstead of the default parameter set ๐
Different sets of energy parameters for RNA and DNA should come with your distribution. Check the RNAlib documentation for the file format details. There's also a placeholder file name, DNA, that loads DNA parameters without you needing to actually specify an input file ๐ง
-4,--noTetraโ Skips the special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins ๐
(default: off)
Mostly for testing ๐งช
--salt=DOUBLEโ Sets the salt concentration in molar (M). The default is 1.021M ๐-m,--modifications[=STRING]โ Lets you use modified bases inside the RNA sequence string ๐งฌ
(default: 7I6P9D)
This treats modified bases differently, using their corresponding energy corrections and/or pairing partner rules when they're available. The modified bases in your input sequence have to be marked with their one-letter code. If you don't add any extra arguments, every available correction gets applied. Otherwise you can limit the modifications to a specific subset of modifications, or one-letter codes. For example, -mP6 will only correct for pseudouridine and m6A bases ๐
Right now, these one-letter codes and energy corrections are supported:
7โ 7-deaza-adenosine (7DA)Iโ Inosine6โ N6-methyladenosine (m6A)Pโ Pseudouridine9โ Purine (a.k.a. nebularine)Dโ Dihydrouridine
--mod-file=STRINGโ Pulls in extra modified base data from a JSON file ๐
๐ Model Details
Okay, this is where you tweak the energy model and pairing rules even more, using these parameters ๐
-d,--dangles=INTโ Decides how to treat "dangling end" energies for bases next to helices in free ends and multi-loops ๐ฆ
(default: 2)
With -d1, only unpaired bases can participate in at most one dangling end. With -d2, that check gets skipped, and dangling energies get added for bases adjacent to a helix on both sides no matter what. This is the default for MFE and partition function folding (-p). The option -d0 ignores dangling ends altogether, which is mostly for debugging ๐
โ ๏ธ With -d3, MFE folding allows coaxial stacking of adjacent helices in multi-loops. Right now the implementation won't allow coaxial stacking of the two enclosed pairs in a loop of degree 3, and it only works for MFE folding.
Heads up: with -d1 and -d3, only the MFE computations use this setting. The partition function uses the -d2 setting, so dangling ends get treated differently ๐
--noLPโ Produces structures without lonely pairs (helices of length 1) ๐ซง
(default: off)
For partition function folding, this only disallows pairs that can occur isolated. Other pairs may still occasionally show up as helices of length 1 โจ
--noGUโ Doesn't allow GU pairs ๐ซ
(default: off)
--noClosingGUโ Doesn't allow GU pairs at the end of helices ๐ธ
(default: off)
--nsp=STRINGโ Lets other pairs join the usual AU, GC and GU pairs ๐
The argument is a comma separated list of the extra pairs you want to allow. If the first character is a -, then AB also implies that BA is an allowed pair. For example, --nsp="-GA" allows GA and AG pairs. Nonstandard pairs get a stacking energy of 0 ๐ง
--energyModel=INTโ Sets the energy model ๐งช
This is a rarely used option for folding sequences from the artificial ABCD... alphabet, where A pairs with B, C pairs with D, and so on. Use --energyModel 1 for the energy parameters of GC pairs, or --energyModel 2 for AU pairs ๐
--helical-rise=FLOATโ Sets the helical rise of the helix in Angstrom units ๐
(default: 2.8)
โ ๏ธ Use with caution! This value gets reset automatically to3.4if DNA parameters are loaded with-P DNAand no further value is given.
--backbone-length=FLOATโ Sets the average backbone length for looped regions in Angstrom units ๐ฆด
(default: 6.0)
โ ๏ธ Use with caution! This value gets reset automatically to6.76if DNA parameters are loaded with-P DNAand no further value is given.
๐ REFERENCES
If you use this program in your work, you might want to cite these bestie-approved papers ๐
R. Lorenz, S.H. Bernhart, C. Hoener zu Siederdissen, H. Tafer, C. Flamm, P.F. Stadler and I.L. Hofacker (2011), "ViennaRNA Package 2.0", Algorithms for Molecular Biology: 6:26
I.L. Hofacker, W. Fontana, P.F. Stadler, S. Bonhoeffer, M. Tacker, P. Schuster (1994), "Fast Folding and Comparison of RNA Secondary Structures", Monatshefte f. Chemie: 125, pp 167-188
R. Lorenz, I.L. Hofacker, P.F. Stadler (2016), "RNA folding with hard and soft constraints", Algorithms for Molecular Biology 11:1 pp 1-13
I.L. Hofacker, B. Priwitzer, and P.F. Stadler (2004), "Prediction of Locally Stable RNA Secondary Structures for Genome-Wide Surveys", Bioinformatics: 20, pp 186-190
The energy parameters come from these sources ๐
D.H. Mathews, M.D. Disney, D. Matthew, J.L. Childs, S.J. Schroeder, J. Susan, M. Zuker, D.H. Turner (2004), "Incorporating chemical modification constraints into a dynamic programming algorithm for prediction of RNA secondary structure", Proc. Natl. Acad. Sci. USA: 101, pp 7287-7292
D.H Turner, D.H. Mathews (2009), "NNDB: The nearest neighbor parameter database for predicting stability of nucleic acid secondary structure", Nucleic Acids Research: 38, pp 280-282
๐ AUTHOR
Ivo L Hofacker, Peter F Stadler, Ronny Lorenz ๐ซถ
๐ REPORTING BUGS
If in doubt, our program is right and nature is at fault ๐ญ Comments should be sent to rna@tbi.univie.ac.at ๐
๐ฆ SEE ALSO
RNAplfold(1) RNALalifold(1) ๐ธ
Anyway, that's the whole page, bestie ๐ You're officially a RNALfold 2.7.0 expert now, from February 2026. Go slay your folding jobs ๐ โจ
๐ฆ where this page comes from
- ubuntu resolute: vienna-rna 2.7.0+dfsg-2 ยท non-free
- ubuntu stonking: vienna-rna 2.7.0+dfsg-2 ยท non-free
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms