ViennaRNA Package 2 - Documentation
Here, we provide all the documentation necessary to install and use the programs of the ViennaRNA Package. We also provide a reference manual the for RNAlib C library which comes with the package.
Installing the ViennaRNA Package
For best portability the ViennaRNA package uses the GNU
automake tools. The instructions below are for installing the ViennaRNA
package from source. However, pre-compiled binaries for various Linux distributions,
as well as for Windows users are available from Download
section of the main ViennaRNA homepage.
Usually you'll just unpack, configure and make. To do this type:
tar -zxvf ViennaRNA-2.1.9.tar.gz cd ViennaRNA-2.1.9 ./configure make sudo make installUser-dir Installation
If you do not have root privileges on your computer, you might want to install
the ViennaRNA Package to a location where you actually have write access to.
To do so, you can set the installation prefix of the
script like so:
./configure --prefix=/home/username/ViennaRNA make installThis will install the entire ViennaRNA Package into a new directory
ViennaRNAdirectly into the users username home directory. Notes for MacOS X users
Depending on your version of gcc (< 4.4 ?) it might be necessary to deactivate OpenMP support
by passing the option
--disable-openmp to the
since the OpenMP support is only partial in earlier versions of gcc shipped for MacOS X.
Additionally, since MacOS X 10.5 the perl installation distributed with MacOS X seems to always include so called
fat-binaries, i.e. binaries for multiple architecture types.
Although this may be a nice portability feature of MacOS X it will break compilation of the perl interface to the RNAlib using default options!
As of v2.1.7, the above problems can be circumvented by executing the configure script with at least the following options and additional environment variables to turn on multi architecture compilation/linking:
./configure --disable-openmp \ --disable-dependency-tracking \ CFLAGS="-arch i386 -arch x86_64 -O2" \ CXXFLAGS="-arch i386 -arch x86_64 -O2"
Optional sub-packages and configure options
This release includes the
which can also be obtained as independent packages. Running
in the ViennaRNA directory will configure those two packages as well. However, for
detailed information and compile time options, see the
INSTALL files in the respective subdirectories.
The ViennaRNA Package also comes with a scripting language interface for Perl and Python,
that allows one to use the implemented algorithms directly without the need of calling an
executable program. You can build the ViennaRNA package without Perl or Python support
by switching this support off at configure time, before the actual installation.
./confgure --without-perl --without-pythonCluster Analysis
AnalyseDists offer some
cluster analysis tools (split decomposition, statistical geometry, neighbor joining,
Ward's method) for sequences and distance data. To also build these programs add
--with-cluster to your configure options.
Kinfold program can be used to simulate the folding dynamics of an
RNA molecule, and is compiled by default. Use the
option to skip compilation and installation of
RNAforester program is used for comparing secondary structures using
tree alignment. Similar to
Kinfold, use the
option to skip compilation and installation of
readseq program is not integrated in the build process. If desired,
readseq manually, following the instructions in the readseq/
Calculation of partition functions (via
RNAfold -p) uses double
precision floats by default, to avoid overflow errors on longer sequences.
If your machine has little memory and you dont't plan to fold sequences
over 1000 bases in length you can compile the package to do the computions
in single precision by running
For a a complete list of all
./configure options and important
environment variables, type
./configure --helpFor more general information on the buid process see the
Although the man pages are also included in the ViennaRNA Package itself it is sometime useful to have an HTML translation making them accessible through a web browser.
|AnalyseDists||Analyse a distance matrix|
|AnalyseSeqs||Analyse a set of sequences of common length|
|Kinfold||Simulate kinetic folding of RNA secondary structures|
|RNA2Dfold||Compute MFE structure, partition function and representative sample structures of k,l neighborhoods|
|RNAaliduplex||Predict conserved RNA-RNA interactions between two alignments|
|RNAalifold||Calculate secondary structures for a set of aligned RNA sequences|
|RNAcofold||Calculate secondary structures of two RNAs with dimerization|
|RNAdistance||Calculate distances between RNA secondary structures|
|RNAduplex||Compute the structure upon hybridization of two RNA strands|
|RNAeval||Evaluate free energy of RNA sequences with given secondary structure|
|RNAfold||Calculate minimum free energy secondary structures and partition function of RNAs|
|RNAforester||Compare RNA secondary structures via forest alignment|
|RNAheat||Calculate the specific heat (melting curve) of an RNA sequence|
|RNAinverse||Find RNA sequences with given secondary structure (sequence design)|
|RNALalifold||Calculate locally stable secondary structures for a set of aligned RNAs|
|RNALfold||Calculate locally stable secondary structures of long RNAs|
|RNApaln||RNA alignment based on sequence base pairing propensities|
|RNApdist||Calculate distances between thermodynamic RNA secondary structures ensembles|
|RNAparconv||Convert energy parameter files from ViennaRNA 1.8 to 2.0 format|
|RNAPKplex||Predict RNA secondary structures including pseudoknots|
|RNAplex||Find targets of a query RNA|
|RNAplfold||Calculate average pair probabilities for locally stable secondary structures|
|RNAplot||Draw RNA Secondary Structures in PostScript, SVG, or GML|
|RNAsnoop||Find targets of a query H/ACA snoRNA|
|RNAsubopt||Calculate suboptimal secondary structures of RNAs|
|RNAup||Calculate the thermodynamics of RNA-RNA interactions|
The Vienna RNA package comes with a number of small utilities, many of them to manipulate the
PostScript files produced by the structure prediction programs
Most of the Perl utilities contain embedded pod documentation. Type e.g.
perldoc relplot.plfor detailed instructions.
|ct2db||Produce dot bracket notation of an RNA secondary structure given as mfold .ct file|
Produce a mountain representation of a secondary structure from it's
dot-bracket notation, as produced by
RNAfold < my.seq | b2mt.pl | xmgrace -pipe
Produce a PostScript mountain plot from a color dot plot as created by
cmount.pl alidot.ps > cmount.ps
Reads a sequence alignment in CLUSTAL format and a consensus secondary structure (which
it extracts from a secondary structure plot as produced by RNAalifold), and produces a
postscript figure of the alignment annotated using the consensus structure, coloring
base pair using the same color scheme as cmount.pl, RNAalifold and alidot.
coloraln.pl -s alirna.ps file.aln > coloraln.ps
Reads a consensus secondary structure plot and a color dot plot as produced by
colorrna.pl alirna.ps alidot.ps > colorRNA.ps
mountain.pl dot.ps | xmgrace -pipe
|refold.pl||Refold using consensus structure as constraint|
Reads a postscript secondary structure plot and a dot plot containing pair probabilities
as produced by
relplot.pl foo_ss.ps foo_dp.ps > foo_rss.ps
Reads a postscript secondary structure plot as produced by
rotate_ss.pl -a 30 -m foo_ss.ps > foo_new_ss.ps
Design sequences that can adopt two different structure, i.e. design RNA switches.
The program will sample the set of sequences compatible with two input structures
in order to find sequences with desired thermodynamic and kinetic properties. In
particular it is possible to specify
RNAlib Reference Manual
The core of the ViennaRNA Package is formed by a collection of routines for the prediction and comparison of RNA secondary structures. These routines can be accessed through the stand-alone programs and utilities described above, which should be sufficient for most users. For those who wish to develop their own programs we provide a library that can either be linked to your own C/C++ code, or accessed through our scripting language interface. Currently, we provide support for Perl and Python.
Follow this link to view the HTML version of the RNAlib API Reference Manual.
The documentation can also be downloaded as a PDF document
Terms and Definitions
Throughout these webpages, we use many terms related to RNA secondary structure prediction. Below you'll find a list of some often used vocabulary and its corresponding definition.
Pseudo-knot free secondary structures can be represented in the
space-efficient bracket notation, which is used throughout
the ViennaRNA package. A structure on a sequence of length n is
represented by a string of equal length consisting of matching
brackets and dots. A base pair between base i and j is represented by
(((..((((...)))).)))is equivalent to:
i.e. a stem-loop structure consisting of a an outer helix of 3 base pairs followed by an interior loop of size 3, a second helix of length 4, and a hairpin loop of size 3.
Base pair probabilities are sometimes summarized in pseudo bracket
notation with the additional symbols
Comments and Bug Reports
If in doubt our program is right, nature is at fault.
Comments and bug reports should be sent to firstname.lastname@example.org