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 OR-ed 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, non-zero 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 sliding-window 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 sliding-window 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, non-zero 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 1-based, 2-dimensional 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, non-zero 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 OR-ed 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 OR-ed 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 i-position (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)