Font size: Increase font size Decrease font size Switch style sheet from default to highcontrast and back

The ViennaRNA Package

The ViennaRNA Package consists of a C code library and several stand-alone programs for the prediction and comparison of RNA secondary structures.

RNA secondary structure prediction through energy minimization is the most used function in the package. We provide three kinds of dynamic programming algorithms for structure prediction: the minimum free energy algorithm of (Zuker & Stiegler 1981) which yields a single optimal structure, the partition function algorithm of (McCaskill 1990) which calculates base pair probabilities in the thermodynamic ensemble, and the suboptimal folding algorithm of (Wuchty 1999) which generates all suboptimal structures within a given energy range of the optimal energy. For secondary structure comparison, the package contains several measures of distance (dissimilarities) using either string alignment or tree-editing (Shapiro & Zhang 1990). Finally, we provide an algorithm to design sequences with a predefined structure (inverse folding).

In case you are using our software for your publications you may want to cite:

Lorenz, Ronny and Bernhart, Stephan H. and Höner zu Siederdissen, Christian and Tafer, Hakim and Flamm, Christoph and Stadler, Peter F. and Hofacker, Ivo L.
ViennaRNA Package 2.0
Algorithms for Molecular Biology, 6:1 26, 2011, doi:10.1186/1748-7188-6-26


  • 02/05/2015

    Version 2.1.9 is a major bugfix release that changes the way how the ViennaRNA Package handles dangling end and terminal mismatch contributions for exterior-, and multibranch loops. We strongly recommend upgrading your installation to this or a newer version to obtain predictions that are better comparable to RNAstructure or UNAFold.
    Please see the Changelog for version 2.1.9 for further details on the actual changes to the underlying energy parameters.

  • 04/13/2014

    For a long time, Mac OS X users were not able to correctly build the Perl/Python interface of the ViennaRNA Package. Starting with v2.1.7, this limitation has been removed, and the interface should compile and work as expected. Please see the Install Notes for Mac OS X users for further details.

  • 01/25/2013

    Since ViennaRNA Package Version 2.1.0 we have enabled G-Quadruplex prediction support into RNAfold, RNAcofold, RNALfold, RNAalifold, RNAeval and RNAplot. See the changelog for details.

  • 05/21/2012

    A preliminary version of the ViennaRNA Package implementing RNA/DNA hybrid support can be found here

  • 08/01/2011

    With the new release of version 2, we introduce the most recent nearest neighbor energy model for all free energy calculations. Additionally, most of the stand-alone programs included are now able to read FASTA formatted input data. This makes conversion of you data files, as necessary in previous releases, obsolete!

Get the latest ViennaRNA Package

The latest stable release is Version 2.1.9 from February, 5th 2015

Get the source code and compile it yourself Compile from Source Code

Installing from sourcecode is the recommended way to get most out of the ViennaRNA Package. For best portability the ViennaRNA package uses the GNU autoconf and automake tools and can thus be compiled and installed on almost every computer platform. See the INSTALL instructions for details.

ViennaRNA Package v2.1.9 (tar.gz, SourceCode) [5.3MB]

Use our precompiled Fedora binary packages (.rpm) Install Fedora Core 19 binary RPM package

We provide precompiled binary RPM packages for users of Fedora Core 19.

ViennaRNA Package v2.1.9 (rpm, Fedora Core 19, 64bit) [5.7MB]
ViennaRNA Package v2.1.9 (rpm, Fedora Core 19, 32bit) [4.7MB]

In case you need the ViennaRNA Package for another version of Fedora please download the SourceCode Package. Then you can either install it as recommended or you can create your own RPM binary archive. For the latter case use the Fedora SPEC file to create a Fedora RPM using the regular RPM package build procedure.

Use our prepared ArchLinux source package Install viennarna2 package from AUR in ArchLinux

Installing the ViennaRNA Package in ArchLinux is quite easy since it is available through the ArchLinux User Repository (AUR). You can also just download the Arch Linux Source Package that we provide here

ViennaRNA Package v2.1.9 (tar.gz, ArchLinux Source Package) [1.1k]

... and proceed with the following steps:

  1. Extract the downloaded tarball with
    $ tar xzf viennarna2.tar.gz
  2. Run makepkg in the directory you just created.
    $ makepkg -si
    This installs missing dependencies (-s option), downloads the code, compiles and packages it, and finally, performs the installation (-i option) of the ViennaRNA Package.

Alternatively, use an AUR repository tool like yaourt to install it directly from AUR::

$ yaourt -S viennarna

Use our precompiled Debian binary packages (.deb) Install Debian GNU/Linux binary package

We also provide precompiled binary packages for Debian GNU/Linux.

ViennaRNA Package v2.1.9 (deb, Debian/Ubuntu, 64bit) [8.5MB]
ViennaRNA Package v2.1.9 (deb, Debian/Ubuntu, 32bit) [8.2MB]
ViennaRNA Package v2.1.9 (deb, Debian/Ubuntu, ARM 32bit soft float) [8.7MB]

Use our precompiled Ubuntu binary packages (.deb) Install Ubuntu package from PPA

The most convenient way to keep up-to-date with the latest ViennaRNA Packge is to use Ubuntu PPA:

sudo apt-add-repository ppa:j-4/vienna-rna
sudo apt-get update
sudo apt-get install vienna-rna

alternatively, our Debian GNU/Linux files should also work well with Ubuntu.

ViennaRNA Package v2.1.9 (deb, Debian/Ubuntu, 64bit) [8.5MB]
ViennaRNA Package v2.1.9 (deb, Debian/Ubuntu, 32bit) [8.2MB]
ViennaRNA Package v2.1.9 (deb, Debian/Ubuntu, ARM 32bit soft float) [8.7MB]
Use our precompiled Windows binaries (.exe) Install for Windows with out Installer binary

We also provide an Installer program that installs the executable programs of the ViennaRNA Package for Microsoft Windows ©

ViennaRNA Package v2.1.9 (exe, Windows, 32bit) [9.5MB]
ViennaRNA Package v2.1.9 (exe, Windows, 64biet) [11MB]

The Windows installer will not change the PATH variable of your system. In order to omit the path to the binaries while using the programs of the ViennaRNA Package, please add the path of your ViennaRNA Package installation directory to your PATH variable manually.

Performance Analysis

To investigate the impact of the new energy parameters used in ViennaRNA Package 2 we did a quite extensive performance analysis.

Update: With the release of ViennaRNA Package 2.1.9 we re-ran all performance benchmarks. Now, except for the runtime analysis, the charts and data compare RNAfold 1.8.5, RNAfold 2.0, UNAFold 3.8, RNAstructure 5.7, and, additionally, RNAfold 2.1.9.

We have measured the Performance of ViennaRNA Packge 2 by comparing Minimum Free Energy (MFE) predictions of the RNAfold program to

  1. RNAfold 1.8.5
  2. RNAfold 2.1.8
  3. UNAfold 3.8
  4. RNAstructure 5.7
both in terms of prediction accuracy as well as in computation speed, i.e. runtime.

Please note, that for this performance analysis we only compared thermodynamics-based approaches that rely on the Nearest neighbor energy model and solve the problem by Zuker's dynamic programming algorithm!
Benchmarks for other approaches in RNA structure prediction can be found elsewhere in literature or in the web.
Runtime analysis

Computational speed was measured using a dataset of randomly generated sequences with fixed lengths of

  • 100 nt (100 samples)
  • 500 nt (100 samples)
  • 1000 nt (100 samples)
  • 2500 nt (20 samples)
  • 5000 nt (16 samples)
  • 10000 nt (16 samples)
Measurements were taken on an Intel Core2 6600 CPU running at 2.4GHz.

Computation times (arithmetic mean)

Unfortunaltey, RNAstructure 5.7 was not able to predict an MFE structure for the 10000nt samples in a relatively small time frame and thus was omitted in the particular test.

As visible in the computation times graph above, we observe virtually no difference in the runtimes of RNAfold 1.8.5 and RNAfold 2.0. This is also true for the memory consumption (data not shown).

Update: Runtimes for RNAfold 2.1.9 does not differ substantially to that of RNAfold 2.0.

Although all programs in the test have the same asymptotic runtime complexity, the computation time analysis of RNAfold compares quite favorably to that of the competing implementations.

Prediction accuracy

We calculated the following four performance measures to assess the prediction accuracy:

  1. Sensitivity
  2. Positive Predictive Value (PPV)
  3. Matthews correlation coefficient (MCC)
  4. F-measure

The test set was based on a set comprising 1919 non-multimer sequence/structure pairs taken from the RNAstrand database (all without pseudoknots in the reference structure). Both versions of RNAfold were run with -d2 option whereas UNAfold and RNAstructure were run with default options.

In the table below, the resulting arithmetic mean of each performance measure is shown. Furthermore, we did a bootstrapping analysis with 1000 iterations to estimate the 95% confidence intervals for the predicted measures.

Program Sensitivity PPV MCC F-measure
RNAfold 2.1.9 0.742 [0.732,0.752] 0.795 [0.784,0.807] 0.767 [0.756,0.777] 0.765 [0.754,0.776]
RNAfold 2.1.8 0.740 [0.729,0.750] 0.792 [0.782,0.804] 0.764 [0.754,0.775] 0.762 [0.752,0.773]
RNAfold 1.8.5 0.711 [0.701,0.722] 0.773 [0.762,0.784] 0.740 [0.729,0.750] 0.737 [0.727,0.748]
UNAfold 3.8 0.693 [0.683,0.704] 0.767 [0.756,0.779] 0.727 [0.717,0.738] 0.725 [0.714,0.735]
RNAstructure 5.7 0.716 [0.707,0.727] 0.781 [0.771,0.792] 0.746 [0.737,0.757] 0.744 [0.736,0.753]

The cumulative distribution of the MCC shows that RNAfold 2.0 (represented by RNAfold 2.1.8, and RNAfold 2.1.9) outperformes the other programs on the test dataset: more of its predictions are within the region of higher performance values.

However, a detailed look at the performance among different RNA classes in our test set reveals that it differs widely. No single implementation tested provides consistent superiority of results.

Other Packages

Here we list all versions of the ViennaRNA Package that contain special features which have not been included into the main release yet:

  • ViennaRNA Package v2.2.0-RC3

    This is a preliminary version implementing generalized hard and soft constraint features

    Please note that this is a beta-release!
    Some functionality may still be missing and/or it may contain bugs that were introduced in recent development stages.

  • ViennaRNA Package v2.1.6h

    This is a preliminary version implementing RNA/DNA hybrid support

Older Versions

There should rarely be a good reason to use any but the latest version of our software. However if you want to look up the old bugs, here's a list with most of the older releases for download. Just click on the major version numbers below to unfold the corresponding ViennaRNA Package releases.

Comments and Bug Reports

If in doubt our program is right, nature is at fault.
Comments and bug reports should be sent to