# SWITCH

## NAME

switch.pl − design bistable RNA sequences

## SYNOPSIS

switch.pl [options] [infile]

## DESCRIPTION

switch.pl 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.

switch.pl uses the Vienna RNA package for energy evaluation, the Vienna RNA package and corresponding Perl module therefore have to be installed.

## OPTIONS

**−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.

## AUTHORS

Ivo L. Hofacker, Christoph Flamm, Peter Stadler, Sebastian Maurer-Stroh, Martin Zehl. Send comments to <ivo@tbi.univie.ac.at>.