The Program RNAinverse
Introduction
RNAinverse searches for sequences folding into a predefined structure,
thereby inverting the folding algorithm. Input consists of the target
structures (in dot-bracket notation) and a starting sequence, which is
optional.
Lower case characters in the start sequence indicate fixed positions,
i.e. they can be used to add sequence constraints. N’s in the
starting sequence will be replaced by a random nucleotide.
For each search the best sequence found and its Hamming distance to the
start sequence are printed to stdout. If the the search was
unsuccessful a structure distance to the target is appended.
By default the program stops as soon as it finds a sequence that has the
target as MFE structure. The option -Fp switches RNAinverse to
the partition function mode where the probability of the target structure
\(\exp(-E(S)/RT) / Z\) is maximized. This tends to produce sequences
with a more well-defined structure.
This probability is written in dot-brackets after the found sequence
and Hamming distance. With the option -R you can specify how often
the search should be repeated.
Sequence Design
Prepare an input file
inv.incontaining the target structure and sequence constraints:(((.(((....))).))) NNNgNNNNNNNNNNaNNN
Design sequences using
RNAinverse:$ RNAinverse < inv.in GGUgUUGGAUCCGAaACC 5
or design even more sequences with:
$ RNAinverse -R5 -Fp < inv.in GGUgUGAACCCUCGaACC 5 GGCgCCCUUUUGGGaGCC 12 (0.967418) CUCgAUCUCACGAUaGGG 6 GGCgCCCGAAAGGGaGCC 13 (0.967548) GUUgAGCCCAUGCUaAGC 6 GGCgCCCUUAUGGGaGCC 10 (0.967418) CGGgUGUUGUGACAaCCG 5 GCGgGUCGAAAGGCaCGC 12 (0.925482) GCCgUAUCCGGGUGaGGC 6 GGCgCCCUUUUGGGaGCC 13 (0.967418)
The output consists of the calculated sequence and the number of mutations
needed to get the MFE-structure from the start sequence (start sequence not
shown). Additionaly, with the partition function folding (-Fp) set, the
second output is another refinement so that the ensemble preferes the MFE
and folds into your given structure with a distinct probability, shown in
brackets.
Other RNA design tools
Another useful program for inverse folding is RNA designer, see
http://www.rnasoft.ca. RNA Designer takes a secondary structure description
as input and returns an RNA strand that is likely to fold in the given
secondary structure.
The sequence design application of the ViennaRNA Design Webservices,
see http://nibiru.tbi.univie.ac.at/rnadesign/index.html, uses a different approach,
allowing for more than one secondary structure as input. For more detail read
the online Documentation and the next section of this tutorial.