Partition Function and Equilibrium Probabilities for Locally Stable Secondary Structures

Overview

// global functions

vrna_ep_t* vrna_pfl_fold (
    const char* sequence,
    int window_size,
    int max_bp_span,
    float cutoff
    )

void vrna_pfl_fold_cb (
    const char* sequence,
    int window_size,
    int max_bp_span,
    vrna_probs_window_callback* cb,
    void* data
    )

double** vrna_pfl_fold_up (
    const char* sequence,
    int ulength,
    int window_size,
    int max_bp_span
    )

void vrna_pfl_fold_up_cb (
    const char* sequence,
    int ulength,
    int window_size,
    int max_bp_span,
    vrna_probs_window_callback* cb,
    void* data
    )

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

void update_pf_paramsLP (int length)

void update_pf_paramsLP_par (
    int length,
    vrna_exp_param_t* parameters
    )

vrna_ep_t* pfl_fold (
    char* sequence,
    int winSize,
    int pairSize,
    float cutoffb,
    double** pU,
    vrna_ep_t** dpp2,
    FILE* pUfp,
    FILE* spup
    )

vrna_ep_t* pfl_fold_par (
    char* sequence,
    int winSize,
    int pairSize,
    float cutoffb,
    double** pU,
    vrna_ep_t** dpp2,
    FILE* pUfp,
    FILE* spup,
    vrna_exp_param_t* parameters
    )

void putoutpU_prob (
    double** pU,
    int length,
    int ulength,
    FILE* fp,
    int energies
    )

void putoutpU_prob_bin (
    double** pU,
    int length,
    int ulength,
    FILE* fp,
    int energies
    )

// macros

#define VRNA_PROBS_WINDOW_BPP
#define VRNA_PROBS_WINDOW_STACKP
#define VRNA_PROBS_WINDOW_UP
#define VRNA_PROBS_WINDOW_UP_SPLIT

Detailed Documentation

Global Functions

vrna_ep_t* vrna_pfl_fold (
    const char* sequence,
    int window_size,
    int max_bp_span,
    float cutoff
    )
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.

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

Note

This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window() .

void vrna_pfl_fold_cb (
    const char* sequence,
    int window_size,
    int max_bp_span,
    vrna_probs_window_callback* cb,
    void* data
    )
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!

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

Note

This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window() .

double** vrna_pfl_fold_up (
    const char* sequence,
    int ulength,
    int window_size,
    int max_bp_span
    )
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 :math:` 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.

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

Note

This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window() .

void vrna_pfl_fold_up_cb (
    const char* sequence,
    int ulength,
    int window_size,
    int max_bp_span,
    vrna_probs_window_callback* cb,
    void* data
    )
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!

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:

The probabilities to be unpaired for any segment not exceeding ulength

Note

This function uses default model settings! For custom model settings, we refer to the function vrna_probs_window() .

void vrna_probs_window (
    vrna_fold_compound_t* fc,
    int ulength,
    unsigned int options,
    vrna_probs_window_callback* cb,
    void* data
    )
Compute various equilibrium probabilities under a sliding window approach.

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
void update_pf_paramsLP (int length)

Parameters:

length  
vrna_ep_t* pfl_fold (
    char* sequence,
    int winSize,
    int pairSize,
    float cutoffb,
    double** pU,
    vrna_ep_t** dpp2,
    FILE* pUfp,
    FILE* spup
    )
Compute partition functions for locally stable secondary structures.

pfl_fold computes partition functions for every window of size ‘winSize’ possible in a RNA molecule, allowing only pairs with a span smaller than ‘pairSize’. It returns the mean pair probabilities averaged over all windows containing the pair in ‘pl’. ‘winSize’ should always be >= ‘pairSize’. Note that in contrast to Lfold() , bases outside of the window do not influence the structure at all. Only probabilities higher than ‘cutoffb’ are kept.

If ‘pU’ is supplied (i.e is not the NULL pointer), pfl_fold() will also compute the mean probability that regions of length ‘u’ and smaller are unpaired. The parameter ‘u’ is supplied in ‘pup[0][0]’. On return the ‘pup’ array will contain these probabilities, with the entry on ‘pup[x][y]’ containing the mean probability that x and the y-1 preceding bases are unpaired. The ‘pU’ array needs to be large enough to hold n+1 float* entries, where n is the sequence length.

If an array dpp2 is supplied, the probability of base pair (i,j) given that there already exists a base pair (i+1,j-1) is also computed and saved in this array. If pUfp is given (i.e. not NULL), pU is not saved but put out imediately. If spup is given (i.e. is not NULL), the pair probabilities in pl are not saved but put out imediately.

Parameters:

sequence RNA sequence
winSize size of the window
pairSize maximum size of base pair
cutoffb cutoffb for base pairs
pU array holding all unpaired probabilities
dpp2 array of dependent pair probabilities
pUfp file pointer for pU
spup file pointer for pair probabilities

Returns:

list of pair probabilities

vrna_ep_t* pfl_fold_par (
    char* sequence,
    int winSize,
    int pairSize,
    float cutoffb,
    double** pU,
    vrna_ep_t** dpp2,
    FILE* pUfp,
    FILE* spup,
    vrna_exp_param_t* parameters
    )
Compute partition functions for locally stable secondary structures.
void putoutpU_prob (
    double** pU,
    int length,
    int ulength,
    FILE* fp,
    int energies
    )
Writes the unpaired probabilities (pU) or opening energies into a file.

Can write either the unpaired probabilities (accessibilities) pU or the opening energies -log(pU)kT into a file

Parameters:

pU pair probabilities
length length of RNA sequence
ulength maximum length of unpaired stretch
fp file pointer of destination file
energies switch to put out as opening energies
void putoutpU_prob_bin (
    double** pU,
    int length,
    int ulength,
    FILE* fp,
    int energies
    )
Writes the unpaired probabilities (pU) or opening energies into a binary file.

Can write either the unpaired probabilities (accessibilities) pU or the opening energies -log(pU)kT into a file

Parameters:

pU pair probabilities
length length of RNA sequence
ulength maximum length of unpaired stretch
fp file pointer of destination file
energies switch to put out as opening energies

Macros

#define VRNA_PROBS_WINDOW_BPP
Option flag to activate callback triggers for pairing probabilities.
#define VRNA_PROBS_WINDOW_STACKP
Option flag to activate callback triggers for stacking probabilities.
#define VRNA_PROBS_WINDOW_UP
Option flag to activate callback triggers for unpaired probabilities.
#define VRNA_PROBS_WINDOW_UP_SPLIT
Option flag to activate callback triggers for unpaired probabilities (split up into different loop types)