RNAALIFOLD(1)
โจ NAME โจ
okay bestie, this is RNAalifold(1) (User Commands ๐ ), the manual page for RNAalifold 2.7.0 ๐
๐ฆ SYNOPSIS ๐ฆ
RNAalifold [options] [<input0.aln>] [<input1.aln>]...
๐ DESCRIPTION ๐
RNAalifold 2.7.0 ๐ calculate secondary structures for a set of aligned RNAs ๐งฌ
okay so RNAalifold reads aligned RNA sequences from stdin or from a file like file.aln ๐ and calculates their minimum free energy (mfe) structure, partition function (pf), and base pairing probability matrix. Right now, input alignments have to be in CLUSTAL, Stockholm, FASTA, or MAF format. In interactive mode you have to set the input format manually (default is Clustal), but if you don't set it explicitly, it gets determined automagically from the input file โจ
it returns the mfe structure in bracket notation, its energy, the free energy of the thermodynamic ensemble, and the frequency of the mfe structure in the ensemble, all printed to stdout ๐
it also makes Postscript files with plots: alirna.ps (the secondary structure graph) and alidot.ps (a "dot plot" of the base pairing matrix) ๐
the file alifold.out has a list of likely pairs sorted by credibility, and it's perfect for viewing with AliDot.pl ๐ฆ
โ ๏ธ Be warned: the output file will overwrite any existing files of the same name. Don't say I didn't warn you ๐
Now for the options, which are all lowkey iconic ๐
-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 so even INFO messages get passed through โจ
-q,--quietโ Be quiet. (default=off)
This option keeps the extra info and non-severe warnings from spamming stdout/stderr, which is a total vibe ๐ซถ
๐ฅ I/O Options ๐ค
These are the command line options for input and output (pre-)processing, bestie ๐
-f,--input-format=C|S|F|Mโ File format of the input multiple sequence alignment (MSA).
If you set this, the input is treated as that particular file format. If you don't, the program tries to work out the format automatically, as long as an input file was provided in the parameters. When the input MSA comes in interactive mode or from a terminal (TTY), the program's default is to assume CLUSTALW format. The formats available right now are ClustalW ('C'), Stockholm 1.0 ('S'), FASTA/Pearson ('F'), and MAF ('M') ๐งพ
--misโ Output the "most informative sequence" instead of the simple consensus. (default=off)
For each column of the alignment, it outputs the set of nucleotides whose frequency is greater than average, written in IUPAC notation ๐ง
-j,--jobs[=number]โ Split batch input into jobs and start processing in parallel using multiple threads. A value of0means use as many parallel threads as there are computation cores available. (default='0')
Processing is serial by default, meaning one alignment at a time. With this switch you can compute many alignments from the input in parallel ๐โโ๏ธ RNAalifold makes as many parallel computation slots as you specify and assigns the input alignments from the input file(s) to the open slots. Heads up: this increases memory consumption, since input alignments have to stay in memory until an empty compute slot is available, and every running job needs its own dynamic programming matrices ๐
--unorderedโ Do not try to keep output in order with input while parallel processing is in place. (default=off)
When parallel input processing (the --jobs flag) is on, the order that input gets processed in depends on the host machine's job scheduler. So any output to stdout or to files will most likely not match the order of the input data sets ๐ By default, RNAalifold uses a specialized data structure to keep results in input order, but that comes with a memory trade-off, since all output has to be held in memory until consecutive, ordered chunks are ready. With this flag, RNAalifold won't buffer results and instead prints each one as soon as it has been computed ๐
--noconvโ Do not automatically substitute nucleotideTwithU. (default=off)-n,--continuous-idsโ Use continuous alignment ID numbering when no alignment ID can be retrieved from input data. (default=off)
Because of its past, RNAalifold produces a specific set of output file names for the first input alignment, like alirna.ps and alidot.ps. For all further alignments in the input, it usually adopts a naming scheme based on IDs. Those IDs may come from the input alignment's meta-data, or get generated from a prefix followed by an increasing counter. Setting this flag tells RNAalifold to use the ID naming scheme for the first alignment too ๐
--auto-idโ Automatically generate an ID for each alignment. (default=off)
The default mode of RNAalifold is to determine an ID from the input alignment if the input file format allows it. Alignment IDs are usually given in Stockholm 1.0 formatted input, for instance. If this flag is active, RNAalifold ignores any IDs retrieved from the input and automatically generates an ID for each alignment ๐ช
--id-prefix=STRINGโ Prefix for automatically generated IDs (as used in output file names). (default='alignment')
If you set this, each alignment gets prefixed with the string you give. The output files will follow this naming scheme: prefix_xxxx_ss.ps (secondary structure plot), prefix_xxxx_dp.ps (dot-plot), prefix_xxxx_aln.ps (annotated alignment), and so on, where xxxx is the alignment number beginning with the second alignment in the input. Pair this with --continuous-ids if you want IDs to begin with the first input alignment ๐ธ
--id-delim=CHARโ Change the delimiter between prefix and increasing number for automatically generated IDs (as used in output file names). (default='_')
This lets you swap out the default '_' delimiter between the prefix string and the increasing number for automatically generated IDs ๐
--id-digits=INTโ Specify the number of digits of the counter in automatically generated alignment IDs. (default='4')
When alignment IDs are automatically generated, they 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 to what you need. Numbers in the range [1:18] are allowed ๐ข
--id-start=LONGโ Specify the first number in automatically generated alignment IDs. (default='1')
When alignment IDs are automatically generated, they get an increasing number, usually starting at 1. This parameter lets you set the first number to whatever you need. Note: negative numbers are not allowed. Note: setting this parameter implies continuous alignment IDs, which means it activates the --continuous-ids flag ๐
--filename-delim=CHARโ Change the delimiting character used in sanitized filenames. (default='ID-delimiter')
This parameter changes the delimiting character used while sanitizing filenames, which means replacing invalid characters. Note: the default delimiter ALWAYS is the first character of the "ID delimiter" supplied through the --id-delim option. If the delimiter is a whitespace character or empty, invalid characters get simply removed instead of substituted ๐งน Right now, these characters count as illegal in filenames: backslash '\', slash '/', question mark '?', percent sign '%', asterisk '*', colon ':', pipe symbol '|', double quote '"', and triangular brackets '<' and '>' ๐ซ
--log-level=levelโ Set log level threshold. (default='2')
By default, log messages get filtered so only warnings (level 2) or errors (level 3) are printed. This setting lets you pick the threshold, and higher values mean less information. 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='RNAalifold.log') ๐--log-timeโ Include time stamp in log messages. (default=off) โฐ--log-callโ Include file and line of log calling function. (default=off) ๐
๐งฎ Algorithms ๐งฎ
Select additional algorithms which should be included in the calculations ๐ฆ
-p,--partfunc[=INT]โ Calculate the partition function and base pairing probability matrix in addition to the mfe structure. Default is calculation of mfe structure only. (default='1')
Besides the MFE structure, we print a coarse representation of the pair probabilities in the form of a pseudo bracket notation, followed by the ensemble free energy. We also print the centroid structure derived from the pair probabilities, together with its free energy and distance to the ensemble. Finally, it prints the frequency of the mfe structure ๐ซ
An additional value passed to this option changes how the partition function calculation behaves. -p0 deactivates the calculation of the pair probabilities, which saves about 50% in runtime. It prints the ensemble free energy 'dG=-kT ln(Z)' instead ๐๏ธ
--betaScale=DOUBLEโ Set the scaling of the Boltzmann factors. (default='1.') โจ
This value is the thing that scales the thermodynamic temperature inside the Boltzmann factors ๐ก๏ธโจ. It does that completely independently from the temperature used for the individual loop energy contributions ๐
. The Boltzmann factors end up as exp(- dG/(kTn*betaScale)), where k is the Boltzmann constant ๐ฌ, dG is the free energy contribution of the state, T is the absolute temperature, and n is the number of sequences ๐งฌ.
-S,--pfScale=DOUBLEโ okay bestie, this one's for the partition function calc ๐. It usesscale*mfeas an estimate for the ensemble free energy, and the whole point is to avoid overflows ๐ซถ.- default:
1.07 - The default is
1.07, and useful values are1.0to1.2. You'll occasionally need it for long sequences ๐.
- default:
--MEA[=gamma]โ computes the MEA (maximum expected accuracy) structure ๐ฏ. Main character energy ๐.- default:
1. - The expected accuracy comes from the pair probabilities. Each base pair
(i,j)gets a score of2*gamma*p_ij, and an unpaired base gets a score equal to the probability of not forming a pair. The parametergammatunes how much correctly predicted pairs matter versus unpaired bases. So for small values ofgamma, the MEA structure only keeps pairs with very high probability ๐ธ. - Using
--MEAimplies-pfor computing the pair probabilities.
- default:
--sciโ computes the structure conservation index (SCI) for the MFE consensus structure of the alignment ๐งฉ.- default: off
-c,--circโ treats the RNA molecule as circular instead of linear ๐๐ฆ.- default: off
--bppmThreshold=cutoffโ sets the threshold for which base pair probabilities get included in the postscript output ๐.- default:
1e-6 - By default, only pairs over
1e-6in probability show up as squares in the dot plot. Changing the threshold to any other value lets you increase or decrease how much data shows up โจ.
- default:
-g,--gquadโ incorporates G-Quadruplex formation into the structure prediction algorithm ๐ .- default: off
-s,--stochBT=INTโ stochastic backtrack ๐ฒ. It computes a certain number of random structures, with a probability that depends on the partition function. Check out the-poption inRNAsuboptfor more ๐.--stochBT_en=INTโ same as-s, but it also prints the energies and probabilities of the backtraced structures ๐.-N,--nonRedundantโ turns on the non-redundant sampling strategy ๐ โโ๏ธ.- default: off
--random-seed=INTโ sets the seed for the random number generator ๐.
๐ Structure Constraints ๐
These are the command line options that let you interact with the structure constraints feature of this program ๐.
--maxBPspan=INTโ sets the maximum base pair span ๐.- default:
-1
- default:
-C,--constraint[=filename]โ calculates structures subject to constraints ๐ง. The constraining structure gets read fromstdin, and the alignment has to be given as a file name on the command line ๐.- default: empty (
'') - The program reads the sequence first, then a string of constraints encoded with these symbols:
.means no constraint for this base|means the corresponding base has to be pairedxmeans the base is unpaired<means base i is paired with a base j>i>means base i is paired with a base j<i- matching brackets
(and)mean base i pairs base j
- Except for
|, constraints disallow all pairs that conflict with the constraint. This is usually enough to enforce it, but occasionally a base can stay unpaired even with constraints ๐.
- default: empty (
PF folding ignores constraints of type |. Not the vibe, so keep it in mind ๐.
--batchโ uses constraints for all alignment records ๐งบ.- default: off
- Usually, constraints from the input file only get applied to a single sequence alignment. So RNAalifold stops computing and quits after the first input alignment is processed. With this switch on, RNAalifold processes all the sequence alignments in the input and applies the same constraints to each one ๐.
--enforceConstraintโ enforces the base pairs given by round brackets()in the structure constraint ๐.- default: off
--SS_consโ uses the consensus structure from a Stockholm file (#=GF SS_cons) as a constraint ๐ซง.- default: off
- Stockholm formatted alignment files can store a secondary structure string in one of their
#=GCcolumn annotation tags. That tag is usually calledSS_cons, which is the consensus secondary structure. Turning this flag on lets you use that consensus structure from the input file as a structure constraint. Right now, only these characters get interpreted:(and)for matching parentheses, where column i pairs with column j<and>for matching angular brackets, where column i pairs with column j
- All other characters aren't interpreted (yet) ๐ซ.
Heads up: activating this flag implies --constraint ๐ซถ.
--shape=file1,file2โ uses SHAPE reactivity data to guide the structure predictions ๐ฆด.- Multiple shapefiles for the individual sequences in the alignment can be given as a comma separated list. You can optionally link specific shape files to a specific sequence by prepending the sequence number to the file name. For example,
"5=seq5.shape,3=seq3.shape"assigns the reactivity values fromseq5.shapeto the fifth sequence in the alignment, and the values fromseq3.shapeto sequence 3 ๐ฏ. If you don't specify any assignment, the reactivity values get assigned to the corresponding sequences in the order they were given ๐ข.
- Multiple shapefiles for the individual sequences in the alignment can be given as a comma separated list. You can optionally link specific shape files to a specific sequence by prepending the sequence number to the file name. For example,
--shapeMethod=D[mX][bY]โ specifies the method for converting SHAPE reactivity data into pseudo energy contributions ๐งช.- default:
D - Right now, the only conversion method available is the one from Deigan et al 2009. It's the default, and it's recognized by a capital
Din the parameter. So--shapeMethod="D"is the default setting ๐ . The slopemand the interceptbcan be set to non-default values if you need them. Otherwise,m=1.8andb=-0.6, as stated in the paper mentioned before ๐. To change these, for example tom=1.9andb=-0.7, use a parameter string like this:--shapeMethod="Dm1.9b-0.7". You can also provide only one of the two, like--shapeMethod="Dm1.9"or--shapeMethod="Db-0.7"โจ.
- default:
โก Energy Parameters โก
Energy parameter sets can be adapted or loaded from user-provided input files ๐.
-T,--temp=DOUBLEโ rescales the energy parameters to a temperature oftempC ๐ก๏ธ.- default:
37.0 - The default is 37C.
- default:
-P,--paramFile=paramfileโ reads energy parameters fromparamfileinstead of using the default parameter set ๐.- Different sets of energy parameters for RNA and DNA should come with your distribution. See the RNAlib documentation for details on the file format ๐. The placeholder file name
DNAcan be used to load DNA parameters without needing to actually specify an input file ๐งฌ.
- Different sets of energy parameters for RNA and DNA should come with your distribution. See the RNAlib documentation for details on the file format ๐. The placeholder file name
-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) ๐ง.- default:
1.021M
- default:
๐ Model Details ๐
Tweak the energy model and pairing rules even more with 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
-d2, dangling energies get added for the bases next to a helix on both sides, no matter what ๐. - The option
-d0ignores dangling ends altogether (mostly for debugging) ๐.
- default:
--noLPโ produces structures without lonely pairs (helices of length 1) ๐ซ.- default: off
- For partition function folding, this only disallows pairs that can only 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
--cfactor=DOUBLEโ sets the weight of the covariance term in the energy function โ๏ธ.- default:
1.0
- default:
--nfactor=DOUBLEโ sets the penalty for non-compatible sequences in the covariance term of the energy function ๐ข.- default:
1.0
- default:
-E,--endgapsโ scores pairs with endgaps the same as gap-gap pairs ๐ซง.- default: off
-R,--ribosum_file=ribosumfileโ uses the specified Ribosum Matrix instead of the normal energy model ๐งฌ.- Matrices should be 6x6, and the order of the terms is
AU,CG,GC,GU,UA,UG๐ข.
- Matrices should be 6x6, and the order of the terms is
-r,--ribosum_scoringโ uses the ribosum scoring matrix ๐ฏ.- default: off
- The matrix gets chosen based on the minimal and maximal pairwise identities of the sequences in the file ๐ช.
--oldโ uses the old energy evaluation, which treats gaps as characters ๐ฐ๏ธ.- default: off
--nsp=STRINGโ allows other pairs on top of 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 something likeABmeans that bothABandBAare allowed pairs. For example,--nsp="-GA"lets GA and AG pairs happen ๐ . Nonstandard pairs get a stacking energy of 0 ๐ธ.
- The argument is a comma separated list of the extra pairs you want to allow. If the first character is a
--energyModel=INTโ sets the energy model ๐ง .- This one is rarely used. It folds sequences from the artificial ABCD... alphabet, where A pairs with B, C pairs with D, and so on. You use the energy parameters for GC pairs with
--energyModel 1or for AU pairs with--energyModel 2๐งช.
- This one is rarely used. It folds sequences from the artificial ABCD... alphabet, where A pairs with B, C pairs with D, and so on. You use the energy parameters for GC pairs with
--helical-rise=FLOATโ sets the helical rise of the helix in units of Angstrom ๐.- default:
2.8
- default:
Use with caution! This value gets re-set automatically to3.4if DNA parameters are loaded via-P DNAand no further value is provided โ ๏ธ.
--backbone-length=FLOATโ sets the average backbone length for looped regions in units of Angstrom ๐ฆด.- default:
6.0
- default:
Okay bestie, this next bit is a big ol' warning ๐จ
Use with caution! This value gets quietly re-set to6.76if you load DNA parameters with-P DNAand don't give it a value of its own. ๐
๐ Plotting
These are the knobs for changing the default look of structure layouts and pairing probability plots ๐ฆ Tbh they're so satisfying to play with.
--colorโ Makes a colored version of the consensus structure plot, saved asalirna.ps. Without it you only get black and white. Default: off ๐--color-threshold=FLOATโ Sets the max number of counter examples allowed when coloring the consensus structure plot. Default:2๐- Floating point numbers between
0and1are read as frequencies across all the sequences in the alignment. Anything else gets truncated to an integer and used as an absolute number of counter examples. โจ
- Floating point numbers between
--color-min-sat=FLOATโ Sets the minimum saturation for coloring the consensus structure plot. Default:0.2๐ซถ- It has to be a floating point number that's
>= 0and smaller than1. No cap, that's the vibe.
- It has to be a floating point number that's
--alnโ Makes a colored, structure-annotated alignment in PostScript format, saved asaln.psin the current directory. Default: off ๐ง--aln-EPS-cols=INTโ Sets how many columns go into the colored EPS alignment output. Default:60๐- A value less than
1means the output doesn't get wrapped at all. Full chaos mode ๐
- A value less than
--aln-stk[=prefix]โ Creates a multi-Stockholm formatted output file. Default:RNAalifold_results๐- By default the file is
RNAalifold_results.stk. If you want something else, pass a prefix as the optional argument and it becomesprefix.stkโจ The file lands in the current directory if it doesn't exist yet. If it already exists, the output gets appended to it, so no overwriting drama. - Heads up: any special characters in the filename get replaced by the filename delimiter. That means you can't pass a whole directory path through this option yet. (See also the
--filename-delimparameter.) ๐
- By default the file is
--noPSโ Skips the PostScript drawing of the MFE structure. Default: off ๐ โโ๏ธ--noDPโ Skips creating the dot-plot PostScript file that holds the base pair or stack probabilities. Default: off ๐- Paired with
-p, this flag also turns off the individual dot-plot files. So the base pair probability output gets left out, but centroid and MEA structure prediction still happen. It's giving selective memory ๐ง
- Paired with
-t,--layout-type=INTโ Picks the layout algorithm that works out the nucleotide coordinates. Default:1๐ฆ These are your options:'0'โ simple radial layout'1'โ Naview layout (Bruccoleri et al. 1988)'2'โ circular layout'3'โ RNAturtle (Wiegreffe et al. 2018)'4'โ RNApuzzler (Wiegreffe et al. 2018)
โ ๏ธ Caveats
Sequences are not weighted! If you can, don't mix very similar and very dissimilar sequences together. Duplicate sequences, for example, can distort the prediction. ๐ญ
๐ REFERENCES ๐
If you use this program in your work, you might want to cite these bops:
- 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 ๐ธ
- Ivo L. Hofacker, Martin Fekete, and Peter F. Stadler (2002), "Secondary Structure Prediction for Aligned RNA Sequences", J.Mol.Biol.: 319, pp 1059-1066. ๐ธ
- Stephan H. Bernhart, Ivo L. Hofacker, Sebastian Will, Andreas R. Gruber, and Peter F. Stadler (2008), "RNAalifold: Improved consensus structure prediction for RNA alignments", BMC Bioinformatics: 9, pp 474 ๐ธ
The algorithm is a variant of the dynamic programming algorithms of M. Zuker and P. Stiegler (mfe) and J.S. McCaskill (pf), adapted for sets of aligned sequences with covariance information. It's giving teamwork ๐ซถ
The energy parameters come from these two cuties:
- 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 ๐
โจ EXAMPLES โจ
A simple call to compute the consensus MFE structure, ensemble free energy, base pair probabilities, centroid structure, and MEA structure for a multiple sequence alignment (MSA) given as a Stockholm formatted file alignment.stk looks like this:
$ RNAalifold -p --MEA alignment.stk
Here's an MSA file for three sequences:
# STOCKHOLM 1.0
#=GF AC RF01293
#=GF ID ACA59
#=GF DE Small nucleolar RNA ACA59
#=GF AU Wilkinson A
#=GF SE Predicted; WAR; Wilkinson A
#=GF SS Predicted; WAR; Wilkinson A
#=GF GA 43.00
#=GF TC 44.90
#=GF NC 40.30
#=GF TP Gene; snRNA; snoRNA; HACA-box;
#=GF BM cmbuild -F CM SEED
#=GF CB cmcalibrate --mpi CM
#=GF SM cmsearch --cpu 4 --verbose --nohmmonly -E 1000 -Z 549862.597050 CM SEQDB
#=GF DR snoRNABase; ACA59;
#=GF DR SO; 0001263; ncRNA_gene;
#=GF DR GO; 0006396; RNA processing;
#=GF DR GO; 0005730; nucleolus;
#=GF RN [1]
#=GF RM 15199136
#=GF RT Human box H/ACA pseudouridylation guide RNA machinery.
#=GF RA Kiss AM, Jady BE, Bertrand E, Kiss T
#=GF RL Mol Cell Biol. 2004;24:5797-5807.
#=GF WK Small_nucleolar_RNA
#=GF SQ 3
AL031296.1/85969-86120 CUGCCUCACAACGUUUGUGCCUCAGUUACCCGUAGAUGUAGUGAGGGUAACAAUACUUACUCUCGUUGGUGAUAAGGAACAGCU
AANU01225121.1/438-603 CUGCCUCACAACAUUUGUGCCUCAGUUACUCAUAGAUGUAGUGAGGGUGACAAUACUUACUCUCGUUGGUGAUAAGGAACAGCU
AAWR02037329.1/29294-29150 ---CUCGACACCACU---GCCUCGGUUACCCAUCGGUGCAGUGCGGGUAGUAGUACCAAUGCUAAUUAGUUGUGAGGACCAACU
#=GC SS_cons -----((((,<<<<<<<<<___________>>>>>>>>>,,,,<<<<<<<______>>>>>>>,,,,,))))::::::::::::
#=GC RF CUGCcccaCAaCacuuguGCCUCaGUUACcCauagguGuAGUGaGgGuggcAaUACccaCcCucgUUgGuggUaAGGAaCAgCU
//
Then the program call above produces this output:
3 sequences; length of alignment 84.
>ACA59
CUGCCUCACAACAUUUGUGCCUCAGUUACCCAUAGAUGUAGUGAGGGUAACAAUACUUACUCUCGUUGGUGAUAAGGAACAGCU
...((((((.(((((((((...........))))))))).))))))..........(((((......)))))............ (-12.54 = -12.77 + 0.23)
...((((((.(((((((((...........))))))))).)))))){{,.......{{{{,......}))))............ [-14.38]
...((((((.(((((((((...........))))))))).))))))..........((((........))))............ {-12.44 = -12.33 + -0.10 d=10.94}
...((((((.(((((((((...........))))))))).))))))..........((((........))))............ {-12.44 = -12.33 + -0.10 MEA=66.65}
frequency of mfe structure in ensemble 0.368739; ensemble diversity 17.77
Let's break that down, because it's actually so neat ๐ง The first line gets written to stderr and just tells you how many sequences there are and how long the alignment is. You can hush it with the --quiet option. The main output is 7 lines. The first two look like a FASTA header with the ID read from the input, and then the consensus sequence sits on the second line.
The third line is the consensus secondary structure in dot-bracket notation, followed by the averaged minimum free energy in parentheses. That energy has two main parts, the actual free energies from the Nearest Neighbor model and the covariance pseudo-energy term, and both of them show up after the equal sign. The fourth line shows the base pair propensity in pseudo dot-bracket notation, followed by the ensemble free energy dG = -kT ln(Z) in square brackets ๐
The next two lines are the centroid and MEA structures, both in dot-bracket notation. Each one comes with its free energy contributions, the mean distance (d) to the ensemble, and the maximum expected accuracy (MEA). Again, the free energies are split into the Nearest Neighbor contribution and the covariance pseudo-energy term. Iconic data โจ
RNAalifold also produces three output files. ACA59_ss.ps has the secondary structure drawing, ACA59_dp.ps has the base pair probability dot-plot, and ACA59_ali.out has a detailed table of base pair probabilities ๐
๐ง THE ALIOUT FILE ๐ง
When you compute base pair probabilities with the --partfunc option, RNAalifold writes a file with the suffix ali.out ๐ฆ It holds the base pairing probabilities between different alignment columns, along with detailed stats for each sequence in the alignment. It's a plain text file with a two-line header that tells you the number of sequences and the length of the alignment. The first few lines look something like this:
3 sequence; length of alignment 84
alifold output
14 36 0 92.7% 0.212 CG:1 UA:2
13 37 0 92.7% 0.218 GU:1 AU:2
12 38 0 92.7% 0.231 CG:3
15 35 0 91.9% 0.239 UG:3
16 34 0 85.2% 0.434 UA:2 --:1
8 42 0 80.7% 0.526 AU:3 +
9 41 0 80.4% 0.542 CG:3 +
7 43 1 80.1% 0.541 CG:2 +
Starting with the third row, each line has at least six and at most 13 columns separated by whitespace, and they mean the following ๐
- Column 1 and 2 โ the i-position and j-position of a potential base pair
(i, j). - Column 3 โ the number of counter examples, meaning how many sequences in the alignment can't form a canonical base pair at their respective sequence positions.
- Column 4 โ the base pair probability in percent.
- Column 5 โ a pseudo entropy measure,
S_ij = S_i + S_j - p_ij ln(p_ij), whereS_iandS_jare the positional entropies for alignment columnsiandj, andp_ijis the base pair probability. - Columns 6-12 โ the number of each particular base pair for the individual sequences in the alignment. We're tracking
GC,CG,AU,UA,GU,UG, plus the special case--, which stands for gaps at both positionsiandj.
Last but not least, any base pair that isn't part of the MFE structure gets an extra + sign in the last column. Main character energy, honestly ๐
๐ AUTHOR ๐
Ivo L Hofacker, Stephan Bernhart, Ronny Lorenz ๐ซถ
โจ REPORTING BUGS โจ
okay bestie, this part is short but it's giving important ๐ The original's whole vibe is "if you think our program is wrong, it's probably nature being sus ๐" ๐ญ lol. Comments and bug reports go to rna@tbi.univie.ac.at ๐ ๐ซถ
๐ฆ SEE ALSO ๐ฆ
okay so there's a whole sister package called ALIDOT ๐ you can find it at http://www.tbi.univie.ac.at/RNA/Alidot/ โจ it's giving extra credit energy ๐
RNAalifold 2.7.0 ๐ February 2026 ๐ธ RNAALIFOLD(1) ๐
no cap that's the whole page, you did amazing reading it ๐ฅน๐ see you in the next manpage, bestie ๐งโจ
๐ฆ 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