Perl5
Simple MFE prediction for a given sequence
use RNA;
# The RNA sequence
my $seq = "GAGUAGUGGAACCAGGCUAUGUUUGUGACUCGCAGACUAACA";
# compute minimum free energy (MFE) and corresponding structure
my ($ss, $mfe) = RNA::fold($seq);
# print output
printf "%s\n%s [ %6.2f ]\n", $seq, $ss, $mfe;
Simple MFE prediction for a multiple sequence alignment
use RNA;
# The RNA sequence alignment
my @sequences = (
"CUGCCUCACAACGUUUGUGCCUCAGUUACCCGUAGAUGUAGUGAGGGU",
"CUGCCUCACAACAUUUGUGCCUCAGUUACUCAUAGAUGUAGUGAGGGU",
"---CUCGACACCACU---GCCUCGGUUACCCAUCGGUGCAGUGCGGGU"
);
# compute the consensus sequence
my $cons = RNA::consensus(\@sequences);
# predict Minmum Free Energy and corresponding secondary structure
my ($ss, $mfe) = RNA::alifold(\@sequences);
# print output
printf "%s\n%s [ %6.2f ]\n", $cons, $ss, $mfe;
Deviating from the Default Model
use RNA;
# The RNA sequence
my $seq = "GAGUAGUGGAACCAGGCUAUGUUUGUGACUCGCAGACUAACA";
# create a new model details structure
my $md = new RNA::md();
# change temperature and dangle model
$md->{temperature} = 20.0; # 20 Deg Celcius
$md->{dangles} = 1; # Dangle Model 1
# create a fold compound
my $fc = new RNA::fold_compound($seq, $md);
# predict Minmum Free Energy and corresponding secondary structure
my ($ss, $mfe) = $fc->mfe();
# print sequence, structure and MFE
printf "%s\n%s [ %6.2f ]\n", $seq, $ss, $mfe;
Python
Simple MFE prediction for a given sequence
import RNA
seq = "GAGUAGUGGAACCAGGCUAUGUUUGUGACUCGCAGACUAACA"
(ss, mfe) = RNA.fold(seq)
print("{}\n{} [ {:6.2f} ]".format(seq, ss, mfe))
Simple MFE prediction for a multiple sequence alignment
import RNA
sequences = [
"CUGCCUCACAACGUUUGUGCCUCAGUUACCCGUAGAUGUAGUGAGGGU",
"CUGCCUCACAACAUUUGUGCCUCAGUUACUCAUAGAUGUAGUGAGGGU",
"---CUCGACACCACU---GCCUCGGUUACCCAUCGGUGCAGUGCGGGU"
]
cons = RNA.consensus(sequences)
(ss, mfe) = RNA.alifold(sequences);
print("{}\n{} [ {:6.2f} ]".format(cons, ss, mfe))
Deviating from the Default Model
import RNA
seq = "GAGUAGUGGAACCAGGCUAUGUUUGUGACUCGCAGACUAACA"
md = RNA.md()
md.temperature = 20.0
md.dangles = 1
fc = RNA.fold_compound(seq, md)
(ss, mfe) = fc.mfe()
print("{}\n{} [ {:6.2f} ]".format(seq, ss, mfe))