# Calculate Partition Functions of a Distance Based Partitioning
[Distance based partitioning of the Secondary Structure Space, Calculating Partition Functions and Pair Probabilities]

Compute the partition function and stochastically sample secondary structures for a partitioning of the secondary structure space according to the base pair distance to two fixed reference structures. More...

Collaboration diagram for Calculate Partition Functions of a Distance Based Partitioning:

## Files
file | 2Dpfold.h
## Functions
TwoDpfold_vars * | get_TwoDpfold_variables (const char *seq, const char *structure1, char *structure2, int circ)
| Get a datastructure containing all necessary attributes and global folding switches.
TwoDpfold_vars * | get_TwoDpfold_variables_from_MFE (TwoDfold_vars *mfe_vars)
| Get the datastructure containing all necessary attributes and global folding switches from a pre-filled mfe-datastructure.
void | destroy_TwoDpfold_variables (TwoDpfold_vars *vars)
| Free all memory occupied by a TwoDpfold_vars datastructure.
TwoDpfold_solution * | TwoDpfoldList (TwoDpfold_vars *vars, int maxDistance1, int maxDistance2)
| Compute the partition function for all distance classes.

## Detailed Description

Compute the partition function and stochastically sample secondary structures for a partitioning of the secondary structure space according to the base pair distance to two fixed reference structures.

## Function Documentation

TwoDpfold_vars* get_TwoDpfold_variables | ( | const char * | seq,
|  | const char * | structure1,
|  | char * | structure2,
|  | int | circ |
| ) |  |  |

Get a datastructure containing all necessary attributes and global folding switches.

This function prepares all necessary attributes and matrices etc which are needed for a call of TwoDpfoldList. A snapshot of all current global model switches (dangles, temperature and so on) is done and stored in the returned datastructure. Additionally, all matrices that will hold the partition function values are prepared.

Parameters:

  | seq | the RNA sequence in uppercase format with letters from the alphabet {AUCG}
  | structure1 | the first reference structure in dot-bracket notation
  | structure2 | the second reference structure in dot-bracket notation
  | circ | a switch indicating if the sequence is linear (0) or circular (1)

Returns:
  the datastructure containing all necessary partition function attributes

TwoDpfold_vars* get_TwoDpfold_variables_from_MFE | ( | TwoDfold_vars * | mfe_vars | ) |

Get the datastructure containing all necessary attributes and global folding switches from a pre-filled mfe-datastructure.

This function actually does the same as get_TwoDpfold_variables but takes its switches and settings from a pre-filled MFE equivalent datastructure

See also:
  get_TwoDfold_variables(), get_TwoDpfold_variables()

Parameters:

  | mfe_vars | the pre-filled mfe datastructure

Returns:
  the datastructure containing all necessary partition function attributes

void destroy_TwoDpfold_variables | ( | TwoDpfold_vars * | vars | ) |

Free all memory occupied by a TwoDpfold_vars datastructure.

This function free's all memory occupied by a datastructure obtained from from get_TwoDpfold_variables() or get_TwoDpfold_variables_from_MFE()

See also:
  get_TwoDpfold_variables(), get_TwoDpfold_variables_from_MFE()

Parameters:

  | vars | the datastructure to be free'd

TwoDpfold_solution* TwoDpfoldList | ( | TwoDpfold_vars * | vars,
|  | int | maxDistance1,
|  | int | maxDistance2 |
| ) |  |  |

Compute the partition function for all distance classes.

This function computes the partition functions for all distance classes according the two reference structures specified in the datastructure 'vars'. Similar to TwoDfoldList() the arguments maxDistance1 and maxDistance2 specify the maximum distance to both reference structures. A value of '-1' in either of them makes the appropriate distance restrictionless, i.e. all basepair distancies to the reference are taken into account during computation. In case there is a restriction, the returned solution contains an entry where the attribute k=l=-1 contains the partition function for all structures exceeding the restriction. A values of INF in the attribute 'k' of the returned list denotes the end of the list

See also:
  get_TwoDpfold_variables(), destroy_TwoDpfold_variables(), TwoDpfold_solution

Parameters:

  | vars | the datastructure containing all necessary folding attributes and matrices
  | maxDistance1 | the maximum basepair distance to reference1 (may be -1)
  | maxDistance2 | the maximum basepair distance to reference2 (may be -1)

Returns:
  a list of partition funtions for the appropriate distance classes