part_func_co.h File Reference
RNA Secondary Structure Prediction » Calculate Secondary Structures of two RNAs upon Dimerization RNA Secondary Structure Prediction » | Computing Partition Functions and Pair Probabilities » Partition Function for two hybridized Sequences

Partition function for two RNA sequences. More...

Include dependency graph for part_func_co.h:

Go to the source code of this file.

## Data Structures

struct | vrna_dimer_pf_s
struct | vrna_dimer_conc_s

## Typedefs

typedef struct vrna_dimer_pf_s | vrna_dimer_pf_t
| Typename for the data structure that stores the dimer partition functions, vrna_dimer_pf_s, as returned by vrna_pf_dimer()
typedef struct vrna_dimer_conc_s | vrna_dimer_conc_t
| Typename for the data structure that stores the dimer concentrations, vrna_dimer_conc_s, as required by vrna_pf_dimer_concentration()

## Functions

vrna_dimer_pf_t | vrna_pf_dimer (vrna_fold_compound_t *vc, char *structure)
| Calculate partition function and base pair probabilities of nucleic acid/nucleic acid dimers. More...
void | vrna_pf_dimer_probs (double FAB, double FA, double FB, vrna_plist_t *prAB, const vrna_plist_t *prA, const vrna_plist_t *prB, int Alength, const vrna_exp_param_t *exp_params)
| Compute Boltzmann probabilities of dimerization without homodimers. More...
vrna_dimer_conc_t * | vrna_pf_dimer_concentrations (double FcAB, double FcAA, double FcBB, double FEA, double FEB, const double *startconc, const vrna_exp_param_t *exp_params)
| Given two start monomer concentrations a and b, compute the concentrations in thermodynamic equilibrium of all dimers and the monomers. More...
vrna_dimer_pf_t | co_pf_fold (char *sequence, char *structure)
| Calculate partition function and base pair probabilities. More...
vrna_dimer_pf_t | co_pf_fold_par (char *sequence, char *structure, vrna_exp_param_t *parameters, int calculate_bppm, int is_constrained)
| Calculate partition function and base pair probabilities. More...
vrna_plist_t * | get_plist (vrna_plist_t *pl, int length, double cut_off)
void | compute_probabilities (double FAB, double FEA, double FEB, vrna_plist_t *prAB, vrna_plist_t *prA, vrna_plist_t *prB, int Alength)
| Compute Boltzmann probabilities of dimerization without homodimers. More...
vrna_dimer_conc_t * | get_concentrations (double FEAB, double FEAA, double FEBB, double FEA, double FEB, double *startconc)
| Given two start monomer concentrations a and b, compute the concentrations in thermodynamic equilibrium of all dimers and the monomers. More...
void | init_co_pf_fold (int length)
FLT_OR_DBL * | export_co_bppm (void)
| Get a pointer to the base pair probability array. More...
void | free_co_pf_arrays (void)
| Free the memory occupied by co_pf_fold() More...
void | update_co_pf_params (int length)
| Recalculate energy parameters. More...
void | update_co_pf_params_par (int length, vrna_exp_param_t *parameters)
| Recalculate energy parameters. More...

## Variables

int | mirnatog
| Toggles no intrabp in 2nd mol.
double | F_monomer [2]
| Free energies of the two monomers.

## Detailed Description

Partition function for two RNA sequences.

As for folding one RNA molecule, this computes the partition function of all possible structures and the base pair probabilities. Uses the same global pf_scale variable to avoid overflows.

To simplify the implementation the partition function computation is done internally in a null model that does not include the duplex initiation energy, i.e. the entropic penalty for producing a dimer from two monomers). The resulting free energies and pair probabilities are initially relative to that null model. In a second step the free energies can be corrected to include the dimerization penalty, and the pair probabilities can be divided into the conditional pair probabilities given that a re dimer is formed or not formed.

After computing the partition functions of all possible dimeres one can compute the probabilities of base pairs, the concentrations out of start concentrations and sofar and soaway.

Dimer formation is inherently concentration dependent. Given the free energies of the monomers A and B and dimers AB, AA, and BB one can compute the equilibrium concentrations, given input concentrations of A and B, see e.g. Dimitrov & Zuker (2004)

## Function Documentation

vrna_dimer_pf_t co_pf_fold | ( | char * | sequence,
|  | char * | structure
| ) |  |

Calculate partition function and base pair probabilities.

This is the cofold partition function folding. The second molecule starts at the cut_point nucleotide.

Note
  OpenMP: Since this function relies on the global parameters do_backtrack, dangles, temperature and pf_scale it is not threadsafe according to concurrent changes in these variables! Use co_pf_fold_par() instead to circumvent this issue.

Deprecated:
  {Use vrna_pf_dimer() instead!}

Parameters

  sequence | Concatenated RNA sequences
  structure | Will hold the structure or constraints

Returns
  vrna_dimer_pf_t structure containing a set of energies needed for concentration computations.

vrna_dimer_pf_t co_pf_fold_par | ( | char * | sequence,
|  | char * | structure,
|  | vrna_exp_param_t * | parameters,
|  | int | calculate_bppm,
|  | int | is_constrained
| ) |  |

Calculate partition function and base pair probabilities.

This is the cofold partition function folding. The second molecule starts at the cut_point nucleotide.

Deprecated:
  Use vrna_pf_dimer() instead!

See also
  get_boltzmann_factors(), co_pf_fold()

Parameters

  sequence | Concatenated RNA sequences
  structure | Pointer to the structure constraint
  parameters | Data structure containing the precalculated Boltzmann factors
  calculate_bppm | Switch to turn Base pair probability calculations on/off (0==off)
  is_constrained | Switch to indicate that a structure contraint is passed via the structure argument (0==off)

Returns
  vrna_dimer_pf_t structure containing a set of energies needed for concentration computations.

vrna_plist_t* get_plist | ( | vrna_plist_t * | pl,
|  | int | length,
|  | double | cut_off
| ) |  |

DO NOT USE THIS FUNCTION ANYMORE

Deprecated:
  { This function is deprecated and will be removed soon!} use assign_plist_from_pr() instead!

void compute_probabilities | ( | double | FAB,
|  | double | FEA,
|  | double | FEB,
|  | vrna_plist_t * | prAB,
|  | vrna_plist_t * | prA,
|  | vrna_plist_t * | prB,
|  | int | Alength
| ) |  |

Compute Boltzmann probabilities of dimerization without homodimers.

Given the pair probabilities and free energies (in the null model) for a dimer AB and the two constituent monomers A and B, compute the conditional pair probabilities given that a dimer AB actually forms. Null model pair probabilities are given as a list as produced by assign_plist_from_pr(), the dimer probabilities 'prAB' are modified in place.

Deprecated:
  { Use vrna_pf_dimer_probs() instead!}

Parameters

  FAB | free energy of dimer AB
  FEA | free energy of monomer A
  FEB | free energy of monomer B
  prAB | pair probabilities for dimer
  prA | pair probabilities monomer
  prB | pair probabilities monomer
  Alength | Length of molecule A

vrna_dimer_conc_t* get_concentrations | ( | double | FEAB,
|  | double | FEAA,
|  | double | FEBB,
|  | double | FEA,
|  | double | FEB,
|  | double * | startconc
| ) |  |

Given two start monomer concentrations a and b, compute the concentrations in thermodynamic equilibrium of all dimers and the monomers.

This function takes an array 'startconc' of input concentrations with alternating entries for the initial concentrations of molecules A and B (terminated by two zeroes), then computes the resulting equilibrium concentrations from the free energies for the dimers. Dimer free energies should be the dimer-only free energies, i.e. the FcAB entries from the vrna_dimer_pf_t struct.

Deprecated:
  { Use vrna_pf_dimer_concentrations() instead!}

Parameters

  FEAB | Free energy of AB dimer (FcAB entry)
  FEAA | Free energy of AA dimer (FcAB entry)
  FEBB | Free energy of BB dimer (FcAB entry)
  FEA | Free energy of monomer A
  FEB | Free energy of monomer B
  startconc | List of start concentrations [a0],[b0],[a1],[b1],...,[an][bn],[0],[0]

Returns
  vrna_dimer_conc_t array containing the equilibrium energies and start concentrations

void init_co_pf_fold | ( | int | length | ) |

DO NOT USE THIS FUNCTION ANYMORE

Deprecated:
  { This function is deprecated and will be removed soon!}

FLT_OR_DBL* export_co_bppm | ( | void |  | ) |

Get a pointer to the base pair probability array.

Accessing the base pair probabilities for a pair (i,j) is achieved by

    FLT_OR_DBL *pr = export_bppm(); pr_ij = pr[iindx[i]-j];

Deprecated:
  This function is deprecated and will be removed soon! The base pair probability array is available through the vrna_fold_compound_t data structure, and its associated vrna_mx_pf_t member.

See also
  vrna_idx_row_wise()

Returns
  A pointer to the base pair probability array

void free_co_pf_arrays | ( | void |  | ) |

Free the memory occupied by co_pf_fold()

Deprecated:
  This function will be removed for the new API soon! See vrna_pf_dimer(), vrna_fold_compound(), and vrna_fold_compound_free() for an alternative

void update_co_pf_params | ( | int | length | ) |

Recalculate energy parameters.

This function recalculates all energy parameters given the current model settings.

Deprecated:
  Use vrna_exp_params_subst() instead!

Parameters

  length | Length of the current RNA sequence

void update_co_pf_params_par | ( | int | length,
|  | vrna_exp_param_t * | parameters
| ) |  |

Recalculate energy parameters.

This function recalculates all energy parameters given the current model settings. It's second argument can either be NULL or a data structure containing the precomputed Boltzmann factors. In the first scenario, the necessary data structure will be created automatically according to the current global model settings, i.e. this mode might not be threadsafe. However, if the provided data structure is not NULL, threadsafety for the model parameters dangles, pf_scale and temperature is regained, since their values are taken from this data structure during subsequent calculations.

Deprecated:
  Use vrna_exp_params_subst() instead!

Parameters

  length | Length of the current RNA sequence
  parameters | data structure containing the precomputed Boltzmann factors