Local (sliding window) Partition Function and Equilibrium Probabilities
Scanning version using a sliding window approach to compute equilibrium probabilities.
Basic local partition function interface

int vrna_probs_window(vrna_fold_compound_t *fc, int ulength, unsigned int options, vrna_probs_window_f cb, void *data)
 #include <ViennaRNA/part_func_window.h>
Compute various equilibrium probabilities under a sliding window approach.
This function applies a sliding window scan for the sequence provided with the argument
fc
and reports back equilibrium probabilities through the callback functioncb
. The data reported to the callback depends on theoptions
flag.Options:
VRNA_PROBS_WINDOW_BPP  Trigger base pairing probabilities.
VRNA_PROBS_WINDOW_UP  Trigger unpaired probabilities.
VRNA_PROBS_WINDOW_UP_SPLIT  Trigger detailed unpaired probabilities split up into different loop type contexts.
Options may be ORed together
See also
Note
The parameter
ulength
only affects computation and resulting data if unpaired probability computations are requested through theoptions
flag. Parameters:
fc – The fold compound with sequence data, model settings and precomputed energy parameters
ulength – The maximal length of an unpaired segment (only for unpaired probability computations)
cb – The callback function which collects the pair probability data for further processing
data – Some arbitrary data structure that is passed to the callback
cb
options – Option flags to control the behavior of this function
 Returns:
0 on failure, nonzero on success
Simplified global partition function computation using sequence(s) or multiple sequence alignment(s)

vrna_ep_t *vrna_pfl_fold(const char *sequence, int window_size, int max_bp_span, float cutoff)
 #include <ViennaRNA/part_func_window.h>
Compute base pair probabilities using a slidingwindow approach.
This is a simplified wrapper to vrna_probs_window() that given a nucleid acid sequence, a window size, a maximum base pair span, and a cutoff value computes the pair probabilities for any base pair in any window. The pair probabilities are returned as a list and the user has to take care to free() the memory occupied by the list.
Note
This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window()
.
In case of any computation errors, this function returns
NULL
 Parameters:
sequence – The nucleic acid input sequence
window_size – The size of the sliding window
max_bp_span – The maximum distance along the backbone between two nucleotides that form a base pairs
cutoff – A cutoff value that omits all pairs with lower probability
 Returns:
A list of base pair probabilities, terminated by an entry with vrna_ep_t.i and vrna_ep_t.j set to 0

int vrna_pfl_fold_cb(const char *sequence, int window_size, int max_bp_span, vrna_probs_window_f cb, void *data)
 #include <ViennaRNA/part_func_window.h>
Compute base pair probabilities using a slidingwindow approach (callback version)
This is a simplified wrapper to vrna_probs_window() that given a nucleid acid sequence, a window size, a maximum base pair span, and a cutoff value computes the pair probabilities for any base pair in any window. It is similar to vrna_pfl_fold() but uses a callback mechanism to return the pair probabilities.
Read the details for vrna_probs_window() for details on the callback implementation!
Note
This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window().
 Parameters:
sequence – The nucleic acid input sequence
window_size – The size of the sliding window
max_bp_span – The maximum distance along the backbone between two nucleotides that form a base pairs
cb – The callback function which collects the pair probability data for further processing
data – Some arbitrary data structure that is passed to the callback
cb
 Returns:
0 on failure, nonzero on success

double **vrna_pfl_fold_up(const char *sequence, int ulength, int window_size, int max_bp_span)
 #include <ViennaRNA/part_func_window.h>
Compute probability of contiguous unpaired segments.
This is a simplified wrapper to vrna_probs_window() that given a nucleic acid sequence, a maximum length of unpaired segments (
ulength
), a window size, and a maximum base pair span computes the equilibrium probability of any segment not exceedingulength
. The probabilities to be unpaired are returned as a 1based, 2dimensional matrix with dimensions \( N \times M \), where \(N\) is the length of the sequence and \(M\) is the maximum segment length. As an example, the probability of a segment of size 5 starting at position 100 is stored in the matrix entry \(X[100][5]\).It is the users responsibility to free the memory occupied by this matrix.
Note
This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window().
 Parameters:
sequence – The nucleic acid input sequence
ulength – The maximal length of an unpaired segment
window_size – The size of the sliding window
max_bp_span – The maximum distance along the backbone between two nucleotides that form a base pairs
 Returns:
The probabilities to be unpaired for any segment not exceeding
ulength

int vrna_pfl_fold_up_cb(const char *sequence, int ulength, int window_size, int max_bp_span, vrna_probs_window_f cb, void *data)
 #include <ViennaRNA/part_func_window.h>
Compute probability of contiguous unpaired segments.
This is a simplified wrapper to vrna_probs_window() that given a nucleic acid sequence, a maximum length of unpaired segments (
ulength
), a window size, and a maximum base pair span computes the equilibrium probability of any segment not exceedingulength
. It is similar to vrna_pfl_fold_up() but uses a callback mechanism to return the unpaired probabilities.Read the details for vrna_probs_window() for details on the callback implementation!
Note
This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window().
 Parameters:
sequence – The nucleic acid input sequence
ulength – The maximal length of an unpaired segment
window_size – The size of the sliding window
max_bp_span – The maximum distance along the backbone between two nucleotides that form a base pairs
cb – The callback function which collects the pair probability data for further processing
data – Some arbitrary data structure that is passed to the callback
cb
 Returns:
0 on failure, nonzero on success
Defines

VRNA_EXT_LOOP
 #include <ViennaRNA/part_func_window.h>
Exterior loop.

VRNA_HP_LOOP
 #include <ViennaRNA/part_func_window.h>
Hairpin loop.

VRNA_INT_LOOP
 #include <ViennaRNA/part_func_window.h>
Internal loop.

VRNA_MB_LOOP
 #include <ViennaRNA/part_func_window.h>
Multibranch loop.

VRNA_ANY_LOOP
 #include <ViennaRNA/part_func_window.h>
Any loop.

VRNA_PROBS_WINDOW_BPP
 #include <ViennaRNA/part_func_window.h>
Trigger base pairing probabilities.
Passing this flag to vrna_probs_window() activates callback execution for base pairing probabilities. In turn, the corresponding callback receives this flag through the
type
argument whenever base pairing probabilities are provided.Detailed information for the algorithm to compute unpaired probabilities can be taken from Bernhart et al. [2005] .
See also

VRNA_PROBS_WINDOW_UP
 #include <ViennaRNA/part_func_window.h>
Trigger unpaired probabilities.
Passing this flag to vrna_probs_window() activates callback execution for unpaired probabilities. In turn, the corresponding callback receives this flag through the
type
argument whenever unpaired probabilities are provided.Detailed information for the algorithm to compute unpaired probabilities can be taken from Bernhart et al. [2011] .
See also

VRNA_PROBS_WINDOW_STACKP
 #include <ViennaRNA/part_func_window.h>
Trigger base pair stack probabilities.
Passing this flag to vrna_probs_window() activates callback execution for stacking probabilities. In turn, the corresponding callback receives this flag through the
type
argument whenever stack probabilities are provided. Bug:
Currently, this flag is a placeholder doing nothing as the corresponding implementation for stack probability computation is missing.
See also

VRNA_PROBS_WINDOW_UP_SPLIT
 #include <ViennaRNA/part_func_window.h>
Trigger detailed unpaired probabilities split up into different loop type contexts.
Passing this flag to vrna_probs_window() activates callback execution for unpaired probabilities. In contrast to VRNA_PROBS_WINDOW_UP this flag requests unpaired probabilities to be split up into different loop type contexts. In turn, the corresponding callback receives the VRNA_PROBS_WINDOW_UP flag ORed together with the corresponding loop type, i.e.:
VRNA_EXT_LOOP  Exterior loop.
VRNA_HP_LOOP  Hairpin loop.
VRNA_INT_LOOP  Internal loop.
VRNA_MB_LOOP  Multibranch loop.
VRNA_ANY_LOOP  Any loop.
See also

VRNA_PROBS_WINDOW_PF
 #include <ViennaRNA/part_func_window.h>
Trigger partition function.
Passing this flag to vrna_probs_window() activates callback execution for partition function. In turn, the corresponding callback receives this flag through it’s
type
argument whenever partition function data is provided.See also
Note
Instead of actually providing the partition function \(Z\), the callback is always provided with the corresponding enemble free energy \(\Delta G =  RT \ln Z\).
Typedefs

typedef void (*vrna_probs_window_f)(FLT_OR_DBL *pr, int pr_size, int i, int max, unsigned int type, void *data)
 #include <ViennaRNA/part_func_window.h>
Sliding window probability computation callback.
 Notes on Callback Functions:
This function will be called for each probability data set in the sliding window probability computation implementation of vrna_probs_window(). The argument type specifies the type of probability that is passed to this function.
Types:
VRNA_PROBS_WINDOW_BPP  Trigger base pairing probabilities.
VRNA_PROBS_WINDOW_UP  Trigger unpaired probabilities.
VRNA_PROBS_WINDOW_PF  Trigger partition function.
The above types usually come exclusively. However, for unpaired probabilities, the VRNA_PROBS_WINDOW_UP flag is ORed together with one of the loop type contexts
VRNA_EXT_LOOP  Exterior loop.
VRNA_HP_LOOP  Hairpin loop.
VRNA_INT_LOOP  Internal loop.
VRNA_MB_LOOP  Multibranch loop.
VRNA_ANY_LOOP  Any loop.
to indicate the particular type of data available through the
pr
pointer.See also
 Param pr:
An array of probabilities
 Param pr_size:
The length of the probability array
 Param i:
The iposition (5’) of the probabilities
 Param max:
The (theoretical) maximum length of the probability array
 Param type:
The type of data that is provided
 Param data:
Auxiliary data
 void() vrna_probs_window_callback (FLT_OR_DBL *pr, int pr_size, int i, int max, unsigned int type, void *data)
 #include <ViennaRNA/part_func_window.h>

int vrna_probs_window(vrna_fold_compound_t *fc, int ulength, unsigned int options, vrna_probs_window_f cb, void *data)