Backtracking MFE structures

Backtracking related interfaces

Functions

int vrna_backtrack_from_intervals(vrna_fold_compound_t *fc, vrna_bp_stack_t *bp_stack, sect bt_stack[], int s)
#include <ViennaRNA/mfe.h>
float vrna_backtrack5(vrna_fold_compound_t *fc, unsigned int length, char *structure)
#include <ViennaRNA/mfe.h>

Backtrack an MFE (sub)structure.

This function allows one to backtrack the MFE structure for a (sub)sequence

SWIG Wrapper Notes:

This function is attached as overloaded method backtrack() to objects of type fold_compound. The parameter length defaults to the total length of the RNA sequence and may be omitted. The parameter structure is returned along with the MFE und must not be provided. See e.g. RNA.fold_compound.backtrack() in the Python API.

Note

On error, the function returns INF / 100. and stores the empty string in structure.

Parameters:
  • fc – fold compound

  • length – The length of the subsequence, starting from the 5’ end

  • structure – A pointer to the character array where the secondary structure in dot-bracket notation will be written to. (Must have size of at least $p length + 1)

Pre:

Requires pre-filled MFE dynamic programming matrices, i.e. one has to call vrna_mfe() prior to calling this function

Returns:

The minimum free energy (MFE) for the specified length in kcal/mol and a corresponding secondary structure in dot-bracket notation (stored in structure)

int vrna_backtrack_window(vrna_fold_compound_t *fc, const char *Lfold_filename, long file_pos, char **structure, double mfe)
#include <ViennaRNA/mfe.h>
int vrna_BT_ext_loop_f5(vrna_fold_compound_t *fc, int *k, int *i, int *j, vrna_bp_stack_t *bp_stack, int *stack_count)
#include <ViennaRNA/loops/external.h>
int vrna_BT_ext_loop_f3(vrna_fold_compound_t *fc, int *k, int maxdist, int *i, int *j, vrna_bp_stack_t *bp_stack, int *stack_count)
#include <ViennaRNA/loops/external.h>
int vrna_BT_ext_loop_f3_pp(vrna_fold_compound_t *fc, int *i, int maxdist)
#include <ViennaRNA/loops/external.h>
int vrna_BT_hp_loop(vrna_fold_compound_t *fc, int i, int j, int en, vrna_bp_stack_t *bp_stack, int *stack_count)
#include <ViennaRNA/loops/hairpin.h>

Backtrack a hairpin loop closed by \( (i,j) \).

Note

This function is polymorphic! The provided vrna_fold_compound_t may be of type VRNA_FC_TYPE_SINGLE or VRNA_FC_TYPE_COMPARATIVE

int vrna_BT_stack(vrna_fold_compound_t *fc, int *i, int *j, int *en, vrna_bp_stack_t *bp_stack, int *stack_count)
#include <ViennaRNA/loops/internal.h>

Backtrack a stacked pair closed by \( (i,j) \).

int vrna_BT_int_loop(vrna_fold_compound_t *fc, int *i, int *j, int en, vrna_bp_stack_t *bp_stack, int *stack_count)
#include <ViennaRNA/loops/internal.h>

Backtrack an interior loop closed by \( (i,j) \).

int vrna_BT_mb_loop(vrna_fold_compound_t *fc, int *i, int *j, int *k, int en, int *component1, int *component2)
#include <ViennaRNA/loops/multibranch.h>

Backtrack the decomposition of a multi branch loop closed by \( (i,j) \).

Parameters:
  • fc – The vrna_fold_compound_t filled with all relevant data for backtracking

  • i – 5’ position of base pair closing the loop (will be set to 5’ position of leftmost decomposed block upon successful backtracking)

  • j – 3’ position of base pair closing the loop (will be set to 3’ position of rightmost decomposed block upon successful backtracking)

  • k – Split position that delimits leftmost from rightmost block, [i,k] and [k+1, j], respectively. (Will be set upon successful backtracking)

  • en – The energy contribution of the substructure enclosed by \( (i,j) \)

  • component1 – Type of leftmost block (1 = ML, 2 = C)

  • component2 – Type of rightmost block (1 = ML, 2 = C)

Returns:

1, if backtracking succeeded, 0 otherwise.

int vrna_BT_mb_loop_split(vrna_fold_compound_t *fc, int *i, int *j, int *k, int *l, int *component1, int *component2, vrna_bp_stack_t *bp_stack, int *stack_count)
#include <ViennaRNA/loops/multibranch.h>