RNAlib-2.2.7

This module contains all functions and variables related to the calculation of global minimum free energy structures for single sequences. More...

+ Collaboration diagram for MFE Structures of single Nucleic Acid Sequences:

Functions

float vrna_fold (const char *string, char *structure)
 Compute Minimum Free Energy (MFE), and a corresponding secondary structure for an RNA sequence. More...
 
float vrna_circfold (const char *string, char *structure)
 Compute Minimum Free Energy (MFE), and a corresponding secondary structure for a circular RNA sequence. More...
 
float fold_par (const char *sequence, char *structure, vrna_param_t *parameters, int is_constrained, int is_circular)
 Compute minimum free energy and an appropriate secondary structure of an RNA sequence. More...
 
float fold (const char *sequence, char *structure)
 Compute minimum free energy and an appropriate secondary structure of an RNA sequence. More...
 
float circfold (const char *sequence, char *structure)
 Compute minimum free energy and an appropriate secondary structure of a circular RNA sequence. More...
 
void free_arrays (void)
 Free arrays for mfe folding. More...
 
void update_fold_params (void)
 Recalculate energy parameters. More...
 
void update_fold_params_par (vrna_param_t *parameters)
 Recalculate energy parameters. More...
 
void export_fold_arrays (int **f5_p, int **c_p, int **fML_p, int **fM1_p, int **indx_p, char **ptype_p)
 
void export_fold_arrays_par (int **f5_p, int **c_p, int **fML_p, int **fM1_p, int **indx_p, char **ptype_p, vrna_param_t **P_p)
 
void export_circfold_arrays (int *Fc_p, int *FcH_p, int *FcI_p, int *FcM_p, int **fM2_p, int **f5_p, int **c_p, int **fML_p, int **fM1_p, int **indx_p, char **ptype_p)
 
void export_circfold_arrays_par (int *Fc_p, int *FcH_p, int *FcI_p, int *FcM_p, int **fM2_p, int **f5_p, int **c_p, int **fML_p, int **fM1_p, int **indx_p, char **ptype_p, vrna_param_t **P_p)
 
int LoopEnergy (int n1, int n2, int type, int type_2, int si1, int sj1, int sp1, int sq1)
 
int HairpinE (int size, int type, int si1, int sj1, const char *string)
 
void initialize_fold (int length)
 

Detailed Description

This module contains all functions and variables related to the calculation of global minimum free energy structures for single sequences.

The library provides a fast dynamic programming minimum free energy folding algorithm as described by "Zuker & Stiegler (1981)" [19].

Function Documentation

float vrna_fold ( const char *  string,
char *  structure 
)

#include <ViennaRNA/fold.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.

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.
See also
vrna_circfold(), vrna_mfe(), vrna_fold_compound(), vrna_fold_compound_t
Parameters
sequenceRNA sequence
structureA 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 *  string,
char *  structure 
)

#include <ViennaRNA/fold.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 [6] for further details.

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.
See also
vrna_fold(), vrna_mfe(), vrna_fold_compound(), vrna_fold_compound_t
Parameters
sequenceRNA sequence
structureA 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 fold_par ( const char *  sequence,
char *  structure,
vrna_param_t parameters,
int  is_constrained,
int  is_circular 
)

#include <ViennaRNA/fold.h>

Compute minimum free energy and an appropriate secondary structure of an RNA sequence.

The first parameter given, the RNA sequence, must be uppercase and should only contain an alphabet $\Sigma$ that is understood by the RNAlib
(e.g. $ \Sigma = \{A,U,C,G\} $)
The second parameter, structure, must always point to an allocated block of memory with a size of at least $\mathrm{strlen}(\mathrm{sequence})+1$

If the third parameter is NULL, global model detail settings are assumed for the folding recursions. Otherwise, the provided parameters are used.

The fourth parameter indicates whether a secondary structure constraint in enhanced dot-bracket notation is passed through the structure parameter or not. If so, the characters " | x < > " are recognized to mark bases that are paired, unpaired, paired upstream, or downstream, respectively. Matching brackets " ( ) " denote base pairs, dots "." are used for unconstrained bases.

To indicate that the RNA sequence is circular and thus has to be post-processed, set the last parameter to non-zero

After a successful call of fold_par(), a backtracked secondary structure (in dot-bracket notation) that exhibits the minimum of free energy will be written to the memory structure is pointing to. The function returns the minimum of free energy for any fold of the sequence given.

Note
OpenMP: Passing NULL to the 'parameters' argument involves access to several global model detail variables and thus is not to be considered threadsafe
Deprecated:
use vrna_mfe() instead!
See also
vrna_mfe(), fold(), circfold(), vrna_md_t, set_energy_model(), get_scaled_parameters()
Parameters
sequenceRNA sequence
structureA pointer to the character array where the secondary structure in dot-bracket notation will be written to
parametersA data structure containing the prescaled energy contributions and the model details. (NULL may be passed, see OpenMP notes above)
is_constrainedSwitch to indicate that a structure contraint is passed via the structure argument (0==off)
is_circularSwitch to (de-)activate postprocessing steps in case RNA sequence is circular (0==off)
Returns
the minimum free energy (MFE) in kcal/mol
float fold ( const char *  sequence,
char *  structure 
)

#include <ViennaRNA/fold.h>

Compute minimum free energy and an appropriate secondary structure of an RNA sequence.

This function essentially does the same thing as fold_par(). However, it takes its model details, i.e. temperature, dangles, tetra_loop, noGU, no_closingGU, fold_constrained, noLonelyPairs from the current global settings within the library

Deprecated:
use vrna_fold(), or vrna_mfe() instead!
See also
fold_par(), circfold()
Parameters
sequenceRNA sequence
structureA 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 circfold ( const char *  sequence,
char *  structure 
)

#include <ViennaRNA/fold.h>

Compute minimum free energy and an appropriate secondary structure of a circular RNA sequence.

This function essentially does the same thing as fold_par(). However, it takes its model details, i.e. temperature, dangles, tetra_loop, noGU, no_closingGU, fold_constrained, noLonelyPairs from the current global settings within the library

Deprecated:
Use vrna_circfold(), or vrna_mfe() instead!
See also
fold_par(), circfold()
Parameters
sequenceRNA sequence
structureA 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
void free_arrays ( void  )

#include <ViennaRNA/fold.h>

Free arrays for mfe folding.

Deprecated:
See vrna_fold(), vrna_circfold(), or vrna_mfe() and vrna_fold_compound_t for the usage of the new API!
void update_fold_params ( void  )

#include <ViennaRNA/fold.h>

Recalculate energy parameters.

Deprecated:
For non-default model settings use the new API with vrna_params_subst() and vrna_mfe() instead!
void update_fold_params_par ( vrna_param_t parameters)

#include <ViennaRNA/fold.h>

Recalculate energy parameters.

Deprecated:
For non-default model settings use the new API with vrna_params_subst() and vrna_mfe() instead!
void export_fold_arrays ( int **  f5_p,
int **  c_p,
int **  fML_p,
int **  fM1_p,
int **  indx_p,
char **  ptype_p 
)

#include <ViennaRNA/fold.h>

Deprecated:
See vrna_mfe() and vrna_fold_compound_t for the usage of the new API!
void export_fold_arrays_par ( int **  f5_p,
int **  c_p,
int **  fML_p,
int **  fM1_p,
int **  indx_p,
char **  ptype_p,
vrna_param_t **  P_p 
)

#include <ViennaRNA/fold.h>

Deprecated:
See vrna_mfe() and vrna_fold_compound_t for the usage of the new API!
void export_circfold_arrays ( int *  Fc_p,
int *  FcH_p,
int *  FcI_p,
int *  FcM_p,
int **  fM2_p,
int **  f5_p,
int **  c_p,
int **  fML_p,
int **  fM1_p,
int **  indx_p,
char **  ptype_p 
)

#include <ViennaRNA/fold.h>

Deprecated:
See vrna_mfe() and vrna_fold_compound_t for the usage of the new API!
void export_circfold_arrays_par ( int *  Fc_p,
int *  FcH_p,
int *  FcI_p,
int *  FcM_p,
int **  fM2_p,
int **  f5_p,
int **  c_p,
int **  fML_p,
int **  fM1_p,
int **  indx_p,
char **  ptype_p,
vrna_param_t **  P_p 
)

#include <ViennaRNA/fold.h>

Deprecated:
See vrna_mfe() and vrna_fold_compound_t for the usage of the new API!
int LoopEnergy ( int  n1,
int  n2,
int  type,
int  type_2,
int  si1,
int  sj1,
int  sp1,
int  sq1 
)

#include <ViennaRNA/fold.h>

Deprecated:
{This function is deprecated and will be removed soon. Use E_IntLoop() instead!}
int HairpinE ( int  size,
int  type,
int  si1,
int  sj1,
const char *  string 
)

#include <ViennaRNA/fold.h>

Deprecated:
{This function is deprecated and will be removed soon. Use E_Hairpin() instead!}
void initialize_fold ( int  length)

#include <ViennaRNA/fold.h>

Allocate arrays for folding

Deprecated:
See vrna_mfe() and vrna_fold_compound_t for the usage of the new API!