Suboptimal Structures within an Energy Band around the MFE

Typedefs

typedef void (*vrna_subopt_result_f)(const char *stucture, float energy, void *data)

Callback for vrna_subopt_cb().

#include <ViennaRNA/subopt/basic.h>

Notes on Callback Functions:

This function will be called for each suboptimal secondary structure that is successfully backtraced.

See also

vrna_subopt_cb()

Param structure:

The suboptimal secondary structure in dot-bracket notation

Param energy:

The free energy of the secondary structure in kcal/mol

Param data:

Some arbitrary, auxiliary data address as passed to vrna_subopt_cb()

Functions

vrna_subopt_solution_t *vrna_subopt(vrna_fold_compound_t *fc, int delta, int sorted, FILE *fp)

Returns list of subopt structures or writes to fp.

#include <ViennaRNA/subopt/wuchty.h>

This function produces all suboptimal secondary structures within ‘delta’ * 0.01 kcal/mol of the optimum, see Wuchty et al. [1999] . The results are either directly written to a ‘fp’ (if ‘fp’ is not NULL), or (fp==NULL) returned in a vrna_subopt_solution_t * list terminated by an entry were the ‘structure’ member is NULL.

SWIG Wrapper Notes:

This function is attached as method subopt() to objects of type fold_compound. See, e.g. RNA.fold_compound.subopt() in the Python API.

Note

This function requires all multibranch loop DP matrices for unique multibranch loop backtracing. Therefore, the supplied vrna_fold_compound_t fc (argument 1) must be initialized with vrna_md_t.uniq_ML = 1, for instance like this:

vrna_md_t md;
vrna_md_set_default(&md);
md.uniq_ML = 1;

vrna_fold_compound_t *fc=vrna_fold_compound("GGGGGGAAAAAACCCCCC", &md, VRNA_OPTION_DEFAULT);

Parameters:
  • fc

  • delta

  • sorted – Sort results by energy in ascending order

  • fp

Returns:

void vrna_subopt_cb(vrna_fold_compound_t *fc, int delta, vrna_subopt_result_f cb, void *data)

Generate suboptimal structures within an energy band arround the MFE.

#include <ViennaRNA/subopt/wuchty.h>

This is the most generic implementation of the suboptimal structure generator according to Wuchty et al. [1999] . Identical to vrna_subopt(), it computes all secondary structures within an energy band delta arround the MFE. However, this function does not print the resulting structures and their corresponding free energies to a file pointer, or returns them as a list. Instead, it calls a user-provided callback function which it passes the structure in dot-bracket format, the corresponding free energy in kcal/mol, and a user-provided data structure each time a structure was backtracked successfully. This function indicates the final output, i.e. the end of the backtracking procedure by passing NULL instead of an actual dot-bracket string to the callback.

SWIG Wrapper Notes:

This function is attached as method subopt_cb() to objects of type fold_compound. See, e.g. RNA.fold_compound.subopt_cb() in the Python API.

Note

This function requires all multibranch loop DP matrices for unique multibranch loop backtracing. Therefore, the supplied vrna_fold_compound_t fc (argument 1) must be initialized with vrna_md_t.uniq_ML = 1, for instance like this:

vrna_md_t md;
vrna_md_set_default(&md);
md.uniq_ML = 1;

vrna_fold_compound_t *fc=vrna_fold_compound("GGGGGGAAAAAACCCCCC", &md, VRNA_OPTION_DEFAULT);

Parameters:
  • fc – fold compount with the sequence data

  • delta – Energy band arround the MFE in 10cal/mol, i.e. deka-calories

  • cb – Pointer to a callback function that handles the backtracked structure and its free energy in kcal/mol

  • data – Pointer to some data structure that is passed along to the callback

SOLUTION *subopt(char *seq, char *structure, int delta, FILE *fp)

Returns list of subopt structures or writes to fp.

#include <ViennaRNA/subopt/wuchty.h>

This function produces all suboptimal secondary structures within ‘delta’ * 0.01 kcal/mol of the optimum. The results are either directly written to a ‘fp’ (if ‘fp’ is not NULL), or (fp==NULL) returned in a SOLUTION * list terminated by an entry were the ‘structure’ pointer is NULL.

Parameters:
  • seq

  • structure

  • delta

  • fp

Returns:

SOLUTION *subopt_par(char *seq, char *structure, vrna_param_t *parameters, int delta, int is_constrained, int is_circular, FILE *fp)

Returns list of subopt structures or writes to fp.

#include <ViennaRNA/subopt/wuchty.h>
SOLUTION *subopt_circ(char *seq, char *sequence, int delta, FILE *fp)

Returns list of circular subopt structures or writes to fp.

#include <ViennaRNA/subopt/wuchty.h>

This function is similar to subopt() but calculates secondary structures assuming the RNA sequence to be circular instead of linear

Parameters:
  • seq

  • sequence

  • delta

  • fp

Returns:

Variables

double print_energy

printing threshold for use with logML

#include <ViennaRNA/subopt/wuchty.h>
int subopt_sorted

Sort output by energy.

#include <ViennaRNA/subopt/wuchty.h>