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 function cb. The data reported to the callback depends on the options flag.

Options:

Options may be OR-ed together

Note

The parameter ulength only affects computation and resulting data if unpaired probability computations are requested through the options 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 exceeding ulength. 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 exceeding ulength. 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] .

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] .

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.

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_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.

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:

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

to indicate the particular type of data available through the pr pointer.

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>