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


NAME − design bistable RNA sequences

SYNOPSIS [options] [infile]

DESCRIPTION designs RNA sequences that exhibit two secondary structures of almost equal stability. For any two given structures there always exist many sequences compatible with both structures. If both structures are reasonable stable, we can find sequences where both target structures have almost equal energy, and all other structures have much higher energies.

For details of the algorithm see: Flamm et al., "Design of Multi-Stable RNA Molecules", RNA 7:254−265 (2001)

Input consists of three lines, the first two containing the target structures in dot bracket notations. The third line may be used to define sequence constraints: It contains a sequence string using IUPAC codes for nucleotide classes (i.e. "Y" for pyrimidine, "R" for purine, "N" for anything...). If the line is empty or shorter than the structures it is padded with "N"s.

Sequence constraints are not strictly enforced, instead a constraint violation term is added to the cost function. Thus it is legal to specify sequence constraints that cannot be fulfilled. uses the Vienna RNA package for energy evaluation, the Vienna RNA package and corresponding Perl module therefore have to be installed.


−n <int>

number of independent optimization runs

−trial <int>

maximum number of sequences to test per run, up to a million or so.

−g <int>

Parameter of the cost function that weights the importance of equal energies, and desired energy barriers.

The cost function primarily optimizes product of Boltzman probabilities of the two structures "p(S1)*P(S2)", in addition it contains a penalty proportional to "[E(S1)−E(S2)]^2" that enforces equal energies for both structures. With the −−bar it also tries design for a given energy barrier. The −g parameter defines the weight of these additional cost function terms.

−T <float>

Temperature in C for all energy calculations. Default 37C.

−T2 <float>

For temperature sensitive switches, use −T and −T2 to define the temperatures at which structures S1 and S2 should be prefered.

−bar <float>

Size of the desired energy barrier between the two structures in kcal/mol. A fast heuristic that looks at shortest refolding paths is used to estimate the barrier. Requires a recent version of the Vienna RNA package that includes the find_saddle() function for estimating refolding paths.

ViennaRNA standard options

the −noLP, −P <paramfile>, −d, −d2, −4, −noGU, −noClosingGU, −circ, should work as usual. See the RNAfold man page for details.


Ivo L. Hofacker, Christoph Flamm, Peter Stadler, Sebastian Maurer-Stroh, Martin Zehl. Send comments to <>.