RNAlib-2.0.1
H/part_func_co.h File Reference

Partition function for two RNA sequences. More...

Include dependency graph for part_func_co.h:

Go to the source code of this file.

Functions

cofoldF co_pf_fold (char *sequence, char *structure)
 Calculate partition function and base pair probabilities.
FLT_OR_DBL * export_co_bppm (void)
 Get a pointer to the base pair probability array.
void free_co_pf_arrays (void)
 Free the memory occupied by co_pf_fold()
void update_co_pf_params (int length)
 Recalculate energy parameters.
void compute_probabilities (double FAB, double FEA, double FEB, struct plist *prAB, struct plist *prA, struct plist *prB, int Alength)
 Compute Boltzmann probabilities of dimerization without homodimers.
ConcEntget_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.
plistget_plist (struct plist *pl, int length, double cut_off)
 DO NOT USE THIS FUNCTION ANYMORE.
void init_co_pf_fold (int length)
 DO NOT USE THIS FUNCTION ANYMORE.

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

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

Parameters:
sequenceConcatenated RNA sequences
structureWill hold the structure or constraints
Returns:
cofoldF structure containing a set of energies needed for concentration computations.
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]; 
See also:
get_iindx()
Returns:
A pointer to the base pair probability array
void compute_probabilities ( double  FAB,
double  FEA,
double  FEB,
struct plist prAB,
struct plist prA,
struct plist 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.

Parameters:
FABfree energy of dimer AB
FEAfree energy of monomer A
FEBfree energy of monomer B
prABpair probabilities for dimer
prApair probabilities monomer
prBpair probabilities monomer
AlengthLength of molecule A
ConcEnt* 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 cofoldF struct.

Parameters:
FEABFree energy of AB dimer (FcAB entry)
FEAAFree energy of AA dimer (FcAB entry)
FEBBFree energy of BB dimer (FcAB entry)
FEAFree energy of monomer A
FEBFree energy of monomer B
startconcList of start concentrations [a0],[b0],[a1],[b1],...,[an][bn],[0],[0]
Returns:
ConcEnt array containing the equilibrium energies and start concentrations
plist* get_plist ( struct plist 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 init_co_pf_fold ( int  length)

DO NOT USE THIS FUNCTION ANYMORE.

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