Direct Refolding Paths between two Secondary Structures
Heuristics to explore direct, optimal (re)folding paths between two secondary structures.
Functions

int vrna_path_findpath_saddle(vrna_fold_compound_t *fc, const char *s1, const char *s2, int width)
 #include <ViennaRNA/landscape/findpath.h>
Find energy of a saddle point between 2 structures (search only direct path)
This function uses an inplementation of the findpath algorithm [Flamm et al., 2001] for nearoptimal direct refolding path prediction.
Model details, and energy parameters are used as provided via the parameter ‘fc’. The vrna_fold_compound_t does not require memory for any DP matrices, but requires all most basic init values as one would get from a call like this:
fc = vrna_fold_compound(sequence, NULL, VRNA_OPTION_DEFAULT);
 SWIG Wrapper Notes:
This function is attached as an overloaded method
path_findpath_saddle()
to objects of typefold_compound
. The optional parameterwidth
defaults to 1 if it is omitted. See, e.g.RNA.fold_compound.path_findpath_saddle()
in the Python API.
See also
vrna_path_findpath_saddle_ub(), vrna_fold_compound(), vrna_fold_compound_t, vrna_path_findpath()
 Parameters:
fc – The vrna_fold_compound_t with precomputed sequence encoding and model details
s1 – The start structure in dotbracket notation
s2 – The target structure in dotbracket notation
width – A number specifying how many strutures are being kept at each step during the search
 Returns:
The saddle energy in 10cal/mol

int vrna_path_findpath_saddle_ub(vrna_fold_compound_t *fc, const char *s1, const char *s2, int width, int maxE)
 #include <ViennaRNA/landscape/findpath.h>
Find energy of a saddle point between 2 structures (search only direct path)
This function uses an inplementation of the findpath algorithm [Flamm et al., 2001] for nearoptimal direct refolding path prediction.
Model details, and energy parameters are used as provided via the parameter ‘fc’. The vrna_fold_compound_t does not require memory for any DP matrices, but requires all most basic init values as one would get from a call like this:
fc = vrna_fold_compound(sequence, NULL, VRNA_OPTION_DEFAULT);
 SWIG Wrapper Notes:
This function is attached as an overloaded method
path_findpath_saddle()
to objects of typefold_compound
. The optional parameterwidth
defaults to 1 if it is omitted, while the optional parametermaxE
defaults to INF. In case the function did not find a path with \(E_{saddle} < E_{max}\) the function returns aNULL
object, i.e.undef
for Perl andNone
for Python. See, e.g.RNA.fold_compound.path_findpath_saddle()
in the Python API.
See also
vrna_path_findpath_saddle(), vrna_fold_compound(), vrna_fold_compound_t, vrna_path_findpath()
Warning
The argument
maxE
( \(E_{max}\)) enables one to specify an upper bound, or maximum free energy for the saddle point between the two input structures. If no path with \(E_{saddle} < E_{max}\) is found, the function simply returnsmaxE
 Parameters:
fc – The vrna_fold_compound_t with precomputed sequence encoding and model details
s1 – The start structure in dotbracket notation
s2 – The target structure in dotbracket notation
width – A number specifying how many strutures are being kept at each step during the search
maxE – An upper bound for the saddle point energy in 10cal/mol
 Returns:
The saddle energy in 10cal/mol

vrna_path_t *vrna_path_findpath(vrna_fold_compound_t *fc, const char *s1, const char *s2, int width)
 #include <ViennaRNA/landscape/findpath.h>
Find refolding path between 2 structures (search only direct path)
This function uses an inplementation of the findpath algorithm [Flamm et al., 2001] for nearoptimal direct refolding path prediction.
Model details, and energy parameters are used as provided via the parameter ‘fc’. The vrna_fold_compound_t does not require memory for any DP matrices, but requires all most basic init values as one would get from a call like this:
fc = vrna_fold_compound(sequence, NULL, VRNA_OPTION_DEFAULT);
 SWIG Wrapper Notes:
This function is attached as an overloaded method
path_findpath()
to objects of typefold_compound
. The optional parameterwidth
defaults to 1 if it is omitted. See, e.g.RNA.fold_compound.path_findpath()
in the Python API.
See also
vrna_path_findpath_ub(), vrna_fold_compound(), vrna_fold_compound_t, vrna_path_findpath_saddle()
 Parameters:
fc – The vrna_fold_compound_t with precomputed sequence encoding and model details
s1 – The start structure in dotbracket notation
s2 – The target structure in dotbracket notation
width – A number specifying how many strutures are being kept at each step during the search
 Returns:
The saddle energy in 10cal/mol

vrna_path_t *vrna_path_findpath_ub(vrna_fold_compound_t *fc, const char *s1, const char *s2, int width, int maxE)
 #include <ViennaRNA/landscape/findpath.h>
Find refolding path between 2 structures (search only direct path)
This function uses an inplementation of the findpath algorithm [Flamm et al., 2001] for nearoptimal direct refolding path prediction.
Model details, and energy parameters are used as provided via the parameter ‘fc’. The vrna_fold_compound_t does not require memory for any DP matrices, but requires all most basic init values as one would get from a call like this:
fc = vrna_fold_compound(sequence, NULL, VRNA_OPTION_DEFAULT);
 SWIG Wrapper Notes:
This function is attached as an overloaded method
path_findpath()
to objects of typefold_compound
. The optional parameterwidth
defaults to 1 if it is omitted, while the optional parametermaxE
defaults to INF. In case the function did not find a path with \(E_{saddle} < E_{max}\) the function returns an empty list. See, e.g.RNA.fold_compound.path_findpath()
in the Python API.
See also
vrna_path_findpath(), vrna_fold_compound(), vrna_fold_compound_t, vrna_path_findpath_saddle()
Warning
The argument
maxE
enables one to specify an upper bound, or maximum free energy for the saddle point between the two input structures. If no path with \(E_{saddle} < E_{max}\) is found, the function simply returns NULL Parameters:
fc – The vrna_fold_compound_t with precomputed sequence encoding and model details
s1 – The start structure in dotbracket notation
s2 – The target structure in dotbracket notation
width – A number specifying how many strutures are being kept at each step during the search
maxE – An upper bound for the saddle point energy in 10cal/mol
 Returns:
The saddle energy in 10cal/mol

vrna_path_options_t vrna_path_options_findpath(int width, unsigned int type)
 #include <ViennaRNA/landscape/paths.h>
Create options data structure for findpath direct (re)folding path heuristic.
This function returns an options data structure that switches the vrna_path_direct() and vrna_path_direct_ub() API functions to use the findpath [Flamm et al., 2001] heuristic. The parameter
width
specifies the width of the breadthfirst search while the second parametertype
allows one to set the type of the returned (re)folding path.Currently, the following return types are available:
A list of dotbracket structures and corresponding free energy (flag: VRNA_PATH_TYPE_DOT_BRACKET)
A list of transition moves and corresponding free energy changes (flag: VRNA_PATH_TYPE_MOVES)
 SWIG Wrapper Notes:
This function is available as overloaded function
path_options_findpath()
. The optional parameterwidth
defaults to 10 if omitted, while the optional parametertype
defaults to VRNA_PATH_TYPE_DOT_BRACKET. See, e.g.RNA.path_options_findpath()
in the Python API.
See also
VRNA_PATH_TYPE_DOT_BRACKET, VRNA_PATH_TYPE_MOVES, vrna_path_options_free(), vrna_path_direct(), vrna_path_direct_ub()
 Parameters:
width – Width of the breathfirst search strategy
type – Setting that specifies how the return (re)folding path should be encoded
 Returns:
An options data structure with settings for the findpath direct path heuristic

vrna_path_t *vrna_path_direct(vrna_fold_compound_t *fc, const char *s1, const char *s2, vrna_path_options_t options)
 #include <ViennaRNA/landscape/paths.h>
Determine an optimal direct (re)folding path between two secondary structures.
This is the generic wrapper function to retrieve (an optimal) (re)folding path between two secondary structures
s1
ands2
. The actual algorithm that is used to generate the (re)folding path is determined by the settings specified in theoptions
data structure. This data structure also determines the return type, which might be either:a list of dotbracket structures with corresponding free energy, or
a list of transition moves with corresponding free energy change
If the
options
parameter is passed a NULL pointer, this function defaults to the findpath heuristic [Flamm et al., 2001] with a breadthfirst search width of \( 10 \), and the returned path consists of dotbracket structures with corresponding free energies. SWIG Wrapper Notes:
This function is attached as an overloaded method
path_direct()
to objects of typefold_compound
. The optional parameteroptions
defaults toNULL
if it is omitted. See, e.g.RNA.fold_compound.path_direct()
in the Python API.
See also
vrna_path_direct_ub(), vrna_path_options_findpath(), vrna_path_options_free(), vrna_path_free()
 Parameters:
fc – The vrna_fold_compound_t with precomputed sequence encoding and model details
s1 – The start structure in dotbracket notation
s2 – The target structure in dotbracket notation
options – An options data structure that specifies the path heuristic and corresponding settings (maybe NULL)
 Returns:
An optimal (re)folding path between the two input structures

vrna_path_t *vrna_path_direct_ub(vrna_fold_compound_t *fc, const char *s1, const char *s2, int maxE, vrna_path_options_t options)
 #include <ViennaRNA/landscape/paths.h>
Determine an optimal direct (re)folding path between two secondary structures.
This function is similar to vrna_path_direct(), but allows to specify an upperbound for the saddle point energy. The underlying algorithms will stop determining an (optimal) (re)folding path, if none can be found that has a saddle point below the specified upperbound threshold
maxE
. SWIG Wrapper Notes:
This function is attached as an overloaded method
path_direct()
to objects of typefold_compound
. The optional parametermaxE
defaults to #INT_MAX  1 if it is omitted, while the optional parameteroptions
defaults toNULL
. In case the function did not find a path with \(E_{saddle} < E_{max}\) it returns an empty list. See, e.g.RNA.fold_compound.path_direct()
in the Python API.
See also
vrna_path_direct_ub(), vrna_path_options_findpath(), vrna_path_options_free(), vrna_path_free()
Warning
The argument
maxE
enables one to specify an upper bound, or maximum free energy for the saddle point between the two input structures. If no path with \(E_{saddle} < E_{max}\) is found, the function simply returns NULL Parameters:
fc – The vrna_fold_compound_t with precomputed sequence encoding and model details
s1 – The start structure in dotbracket notation
s2 – The target structure in dotbracket notation
maxE – Upper bound for the saddle point along the (re)folding path
options – An options data structure that specifies the path heuristic and corresponding settings (maybe NULL)
 Returns:
An optimal (re)folding path between the two input structures

int vrna_path_findpath_saddle(vrna_fold_compound_t *fc, const char *s1, const char *s2, int width)