RNAlib-2.1.9
|
Partition Function Cofolding. More...
Files | |
file | part_func_co.h |
Partition function for two RNA sequences. | |
Functions | |
cofoldF | co_pf_fold (char *sequence, char *structure) |
Calculate partition function and base pair probabilities. More... | |
cofoldF | co_pf_fold_par (char *sequence, char *structure, pf_paramT *parameters, int calculate_bppm, int is_constrained) |
Calculate partition function and base pair probabilities. More... | |
double * | 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() | |
void | update_co_pf_params (int length) |
Recalculate energy parameters. More... | |
void | update_co_pf_params_par (int length, pf_paramT *parameters) |
Recalculate energy parameters. More... | |
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. More... | |
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. More... | |
Variables | |
int | mirnatog |
Toggles no intrabp in 2nd mol. | |
double | F_monomer [2] |
Free energies of the two monomers. | |
Partition Function Cofolding.
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. See[1] for further details.
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.
sequence | Concatenated RNA sequences |
structure | Will hold the structure or constraints |
cofoldF co_pf_fold_par | ( | char * | sequence, |
char * | structure, | ||
pf_paramT * | 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.
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) |
double* 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];
void update_co_pf_params | ( | int | length | ) |
Recalculate energy parameters.
This function recalculates all energy parameters given the current model settings.
length | Length of the current RNA sequence |
void update_co_pf_params_par | ( | int | length, |
pf_paramT * | 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.
length | Length of the current RNA sequence |
parameters | data structure containing the precomputed Boltzmann factors |
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.
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 |
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.
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] |