Global MFE Prediction
Variations of the global Minimum Free Energy (MFE) prediction algorithm.
We provide implementations of the global MFE prediction algorithm for
Single sequences,
Multiple sequence alignments (MSA), and
RNA-RNA hybrids
API Symbols
Basic global MFE prediction interface
-
float vrna_mfe(vrna_fold_compound_t *fc, char *structure)
- #include <ViennaRNA/mfe.h>
Compute minimum free energy and an appropriate secondary structure of an RNA sequence, or RNA sequence alignment.
Depending on the type of the provided vrna_fold_compound_t, this function predicts the MFE for a single sequence (or connected component of multiple sequences), or an averaged MFE for a sequence alignment. If backtracking is activated, it also constructs the corresponding secondary structure, or consensus structure. Therefore, the second parameter, structure, has to point to an allocated block of memory with a size of at least \(\mathrm{strlen}(\mathrm{sequence})+1\) to store the backtracked MFE structure. (For consensus structures, this is the length of the alignment + 1. If
NULL
is passed, no backtracking will be performed.- SWIG Wrapper Notes:
This function is attached as method
mfe()
to objects of typefold_compound
. The parameterstructure
is returned along with the MFE und must not be provided. See e.g.RNA.fold_compound.mfe()
in the Python API.
See also
vrna_fold_compound_t, vrna_fold_compound(), vrna_fold(), vrna_circfold(), vrna_fold_compound_comparative(), vrna_alifold(), vrna_circalifold()
Note
This function is polymorphic. It accepts vrna_fold_compound_t of type VRNA_FC_TYPE_SINGLE, and VRNA_FC_TYPE_COMPARATIVE.
- Parameters
fc – fold compound
structure – A pointer to the character array where the secondary structure in dot-bracket notation will be written to (Maybe NULL)
- Returns
the minimum free energy (MFE) in kcal/mol
-
float vrna_mfe_dimer(vrna_fold_compound_t *fc, char *structure)
- #include <ViennaRNA/mfe.h>
Compute the minimum free energy of two interacting RNA molecules.
The code is analog to the vrna_mfe() function.
- Deprecated:
This function is obsolete since vrna_mfe() can handle complexes multiple sequences since v2.5.0. Use vrna_mfe() for connected component MFE instead and compute MFEs of unconnected states separately.
- SWIG Wrapper Notes:
This function is attached as method
mfe_dimer()
to objects of typefold_compound
. The parameterstructure
is returned along with the MFE und must not be provided. See e.g.RNA.fold_compound.mfe_dimer()
in the Python API.
See also
- Parameters
fc – fold compound
structure – Will hold the barcket dot structure of the dimer molecule
- Returns
minimum free energy of the structure
Simplified global MFE prediction using sequence(s) or multiple sequence alignment(s)
-
float vrna_fold(const char *sequence, char *structure)
- #include <ViennaRNA/mfe.h>
Compute Minimum Free Energy (MFE), and a corresponding secondary structure for an RNA sequence.
This simplified interface to vrna_mfe() computes the MFE and, if required, a secondary structure for an RNA sequence using default options. Memory required for dynamic programming (DP) matrices will be allocated and free’d on-the-fly. Hence, after return of this function, the recursively filled matrices are not available any more for any post-processing, e.g. suboptimal backtracking, etc.
- SWIG Wrapper Notes:
This function is available as function
fold()
in the global namespace. The parameterstructure
is returned along with the MFE und must not be provided. See e.g.RNA.fold()
in the Python API.
See also
Note
In case you want to use the filled DP matrices for any subsequent post-processing step, or you require other conditions than specified by the default model details, use vrna_mfe(), and the data structure vrna_fold_compound_t instead.
- Parameters
sequence – RNA sequence
structure – A pointer to the character array where the secondary structure in dot-bracket notation will be written to
- Returns
the minimum free energy (MFE) in kcal/mol
-
float vrna_circfold(const char *sequence, char *structure)
- #include <ViennaRNA/mfe.h>
Compute Minimum Free Energy (MFE), and a corresponding secondary structure for a circular RNA sequence.
This simplified interface to vrna_mfe() computes the MFE and, if required, a secondary structure for a circular RNA sequence using default options. Memory required for dynamic programming (DP) matrices will be allocated and free’d on-the-fly. Hence, after return of this function, the recursively filled matrices are not available any more for any post-processing, e.g. suboptimal backtracking, etc.
Folding of circular RNA sequences is handled as a post-processing step of the forward recursions. See Hofacker and Stadler [2006] for further details.
- SWIG Wrapper Notes:
This function is available as function
circfold()
in the global namespace. The parameterstructure
is returned along with the MFE und must not be provided. See e.g.RNA.circfold()
in the Python API.
See also
Note
In case you want to use the filled DP matrices for any subsequent post-processing step, or you require other conditions than specified by the default model details, use vrna_mfe(), and the data structure vrna_fold_compound_t instead.
- Parameters
sequence – RNA sequence
structure – A pointer to the character array where the secondary structure in dot-bracket notation will be written to
- Returns
the minimum free energy (MFE) in kcal/mol
-
float vrna_alifold(const char **sequences, char *structure)
- #include <ViennaRNA/mfe.h>
Compute Minimum Free Energy (MFE), and a corresponding consensus secondary structure for an RNA sequence alignment using a comparative method.
This simplified interface to vrna_mfe() computes the MFE and, if required, a consensus secondary structure for an RNA sequence alignment using default options. Memory required for dynamic programming (DP) matrices will be allocated and free’d on-the-fly. Hence, after return of this function, the recursively filled matrices are not available any more for any post-processing, e.g. suboptimal backtracking, etc.
- SWIG Wrapper Notes:
This function is available as function
alifold()
in the global namespace. The parameterstructure
is returned along with the MFE und must not be provided. See e.g.RNA.alifold()
in the Python API.
See also
Note
In case you want to use the filled DP matrices for any subsequent post-processing step, or you require other conditions than specified by the default model details, use vrna_mfe(), and the data structure vrna_fold_compound_t instead.
- Parameters
sequences – RNA sequence alignment
structure – A pointer to the character array where the secondary structure in dot-bracket notation will be written to
- Returns
the minimum free energy (MFE) in kcal/mol
-
float vrna_circalifold(const char **sequences, char *structure)
- #include <ViennaRNA/mfe.h>
Compute Minimum Free Energy (MFE), and a corresponding consensus secondary structure for a sequence alignment of circular RNAs using a comparative method.
This simplified interface to vrna_mfe() computes the MFE and, if required, a consensus secondary structure for an RNA sequence alignment using default options. Memory required for dynamic programming (DP) matrices will be allocated and free’d on-the-fly. Hence, after return of this function, the recursively filled matrices are not available any more for any post-processing, e.g. suboptimal backtracking, etc.
Folding of circular RNA sequences is handled as a post-processing step of the forward recursions. See Hofacker and Stadler [2006] for further details.
- SWIG Wrapper Notes:
This function is available as function
circalifold()
in the global namespace. The parameterstructure
is returned along with the MFE und must not be provided. See e.g.RNA.circalifold()
in the Python API.
See also
Note
In case you want to use the filled DP matrices for any subsequent post-processing step, or you require other conditions than specified by the default model details, use vrna_mfe(), and the data structure vrna_fold_compound_t instead.
- Parameters
sequences – Sequence alignment of circular RNAs
structure – A pointer to the character array where the secondary structure in dot-bracket notation will be written to
- Returns
the minimum free energy (MFE) in kcal/mol
-
float vrna_cofold(const char *sequence, char *structure)
- #include <ViennaRNA/mfe.h>
Compute Minimum Free Energy (MFE), and a corresponding secondary structure for two dimerized RNA sequences.
This simplified interface to vrna_mfe() computes the MFE and, if required, a secondary structure for two RNA sequences upon dimerization using default options. Memory required for dynamic programming (DP) matrices will be allocated and free’d on-the-fly. Hence, after return of this function, the recursively filled matrices are not available any more for any post-processing, e.g. suboptimal backtracking, etc.
- Deprecated:
This function is obsolete since vrna_mfe()/vrna_fold() can handle complexes multiple sequences since v2.5.0. Use vrna_mfe()/vrna_fold() for connected component MFE instead and compute MFEs of unconnected states separately.
- SWIG Wrapper Notes:
This function is available as function
cofold()
in the global namespace. The parameterstructure
is returned along with the MFE und must not be provided. See e.g.RNA.cofold()
in the Python API.
See also
vrna_fold(), vrna_mfe(), vrna_fold_compound(), vrna_fold_compound_t, vrna_cut_point_insert()
Note
In case you want to use the filled DP matrices for any subsequent post-processing step, or you require other conditions than specified by the default model details, use vrna_mfe(), and the data structure vrna_fold_compound_t instead.
- Parameters
sequence – two RNA sequences separated by the ‘&’ character
structure – A pointer to the character array where the secondary structure in dot-bracket notation will be written to
- Returns
the minimum free energy (MFE) in kcal/mol
-
float vrna_mfe(vrna_fold_compound_t *fc, char *structure)