Compute the centroid structure

Overview

// global functions

char* vrna_centroid (
    vrna_fold_compound_t* vc,
    double* dist
    )

char* vrna_centroid_from_plist (
    int length,
    double* dist,
    vrna_ep_t* pl
    )

char* vrna_centroid_from_probs (
    int length,
    double* dist,
    FLT_OR_DBL* probs
    )

Detailed Documentation

Global Functions

char* vrna_centroid (
    vrna_fold_compound_t* vc,
    double* dist
    )
Get the centroid structure of the ensemble.

The centroid is the structure with the minimal average distance to all other structures

:math:` <d(S)> = sum_{(i,j) in S} (1-p_{ij}) + sum_{(i,j) notin S} p_{ij} `

Thus, the centroid is simply the structure containing all pairs with \(p_ij>0.5\) The distance of the centroid to the ensemble is written to the memory adressed by dist .

Parameters:

vc The fold compound data structure
dist A pointer to the distance variable where the centroid distance will be written to

Returns:

The centroid structure of the ensemble in dot-bracket notation

char* vrna_centroid_from_plist (
    int length,
    double* dist,
    vrna_ep_t* pl
    )
Get the centroid structure of the ensemble.

This function is a threadsafe replacement for centroid() with a vrna_ep_t input

The centroid is the structure with the minimal average distance to all other structures

:math:` <d(S)> = sum_{(i,j) in S} (1-p_{ij}) + sum_{(i,j) notin S} p_{ij} `

Thus, the centroid is simply the structure containing all pairs with \(p_ij>0.5\) The distance of the centroid to the ensemble is written to the memory adressed by dist .

Parameters:

length The length of the sequence
dist A pointer to the distance variable where the centroid distance will be written to
pl A pair list containing base pair probability information about the ensemble

Returns:

The centroid structure of the ensemble in dot-bracket notation

char* vrna_centroid_from_probs (
    int length,
    double* dist,
    FLT_OR_DBL* probs
    )
Get the centroid structure of the ensemble.

This function is a threadsafe replacement for centroid() with a probability array input

The centroid is the structure with the minimal average distance to all other structures

:math:` <d(S)> = sum_{(i,j) in S} (1-p_{ij}) + sum_{(i,j) notin S} p_{ij} `

Thus, the centroid is simply the structure containing all pairs with \(p_ij>0.5\) The distance of the centroid to the ensemble is written to the memory adressed by dist .

Parameters:

length The length of the sequence
dist A pointer to the distance variable where the centroid distance will be written to
probs An upper triangular matrix containing base pair probabilities (access via iindx vrna_idx_row_wise() )

Returns:

The centroid structure of the ensemble in dot-bracket notation