\hypertarget{part__func__co_8h}{
\section{/homes/fmmarquesmadeira/Projects/jabaws/binaries/src/ViennaRNA/H/part\_\-func\_\-co.h File Reference}
\label{part__func__co_8h}\index{/homes/fmmarquesmadeira/Projects/jabaws/binaries/src/ViennaRNA/H/part\_\-func\_\-co.h@{/homes/fmmarquesmadeira/Projects/jabaws/binaries/src/ViennaRNA/H/part\_\-func\_\-co.h}}
}


Partition function for two RNA sequences.  
Include dependency graph for part\_\-func\_\-co.h:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=223pt]{part__func__co_8h__incl}
\end{center}
\end{figure}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structcofoldF}{cofoldF} \hyperlink{group__pf__cofold_gaa86a5f998789ed71813d23d7307a791b}{co\_\-pf\_\-fold} (char $\ast$sequence, char $\ast$structure)
\begin{DoxyCompactList}\small\item\em Calculate partition function and base pair probabilities. \item\end{DoxyCompactList}\item 
\hyperlink{structcofoldF}{cofoldF} \hyperlink{group__pf__cofold_gabd873b450832ab5f21101fc5ab354d21}{co\_\-pf\_\-fold\_\-par} (char $\ast$sequence, char $\ast$structure, \hyperlink{structpf__paramT}{pf\_\-paramT} $\ast$parameters, int calculate\_\-bppm, int is\_\-constrained)
\begin{DoxyCompactList}\small\item\em Calculate partition function and base pair probabilities. \item\end{DoxyCompactList}\item 
double $\ast$ \hyperlink{group__pf__cofold_ga11f0252c1d2c4697253ff4b5bd392d3c}{export\_\-co\_\-bppm} (void)
\begin{DoxyCompactList}\small\item\em Get a pointer to the base pair probability array. \item\end{DoxyCompactList}\item 
\hypertarget{group__pf__cofold_gade3ce34ae8214811374b1d28a40dc247}{
void \hyperlink{group__pf__cofold_gade3ce34ae8214811374b1d28a40dc247}{free\_\-co\_\-pf\_\-arrays} (void)}
\label{group__pf__cofold_gade3ce34ae8214811374b1d28a40dc247}

\begin{DoxyCompactList}\small\item\em Free the memory occupied by \hyperlink{group__pf__cofold_gaa86a5f998789ed71813d23d7307a791b}{co\_\-pf\_\-fold()}. \item\end{DoxyCompactList}\item 
void \hyperlink{group__pf__cofold_ga6e0f36c1f9b7d9dd4bfbad914c1119e5}{update\_\-co\_\-pf\_\-params} (int length)
\begin{DoxyCompactList}\small\item\em Recalculate energy parameters. \item\end{DoxyCompactList}\item 
void \hyperlink{group__pf__cofold_ga117d880df45bef444d5e2785ffa40a53}{update\_\-co\_\-pf\_\-params\_\-par} (int length, \hyperlink{structpf__paramT}{pf\_\-paramT} $\ast$parameters)
\begin{DoxyCompactList}\small\item\em Recalculate energy parameters. \item\end{DoxyCompactList}\item 
void \hyperlink{group__pf__cofold_ga15ae04ac5ab84e876dcf0093120cb617}{compute\_\-probabilities} (double FAB, double FEA, double FEB, struct \hyperlink{structplist}{plist} $\ast$prAB, struct \hyperlink{structplist}{plist} $\ast$prA, struct \hyperlink{structplist}{plist} $\ast$prB, int Alength)
\begin{DoxyCompactList}\small\item\em Compute Boltzmann probabilities of dimerization without homodimers. \item\end{DoxyCompactList}\item 
\hyperlink{structConcEnt}{ConcEnt} $\ast$ \hyperlink{group__pf__cofold_ga5545cb936ac4ff93c7d699d46e72e8c7}{get\_\-concentrations} (double FEAB, double FEAA, double FEBB, double FEA, double FEB, double $\ast$startconc)
\begin{DoxyCompactList}\small\item\em Given two start monomer concentrations a and b, compute the concentrations in thermodynamic equilibrium of all dimers and the monomers. \item\end{DoxyCompactList}\item 
\hyperlink{structplist}{plist} $\ast$ \hyperlink{part__func__co_8h_a334de3c96e2186abfbdc0eaea6d08b14}{get\_\-plist} (struct \hyperlink{structplist}{plist} $\ast$pl, int length, double cut\_\-off)
\item 
void \hyperlink{part__func__co_8h_aa12dda9dd6179cdd22bcce87c0682c07}{init\_\-co\_\-pf\_\-fold} (int length)
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__pf__cofold_gaff27888c4088cc1f60fd59cbd589474c}{
int \hyperlink{group__pf__cofold_gaff27888c4088cc1f60fd59cbd589474c}{mirnatog}}
\label{group__pf__cofold_gaff27888c4088cc1f60fd59cbd589474c}

\begin{DoxyCompactList}\small\item\em Toggles no intrabp in 2nd mol. \item\end{DoxyCompactList}\item 
\hypertarget{group__pf__cofold_gac2d1851a710a8561390861155ca988fe}{
double \hyperlink{group__pf__cofold_gac2d1851a710a8561390861155ca988fe}{F\_\-monomer} \mbox{[}2\mbox{]}}
\label{group__pf__cofold_gac2d1851a710a8561390861155ca988fe}

\begin{DoxyCompactList}\small\item\em Free energies of the two monomers. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{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 \hyperlink{fold__vars_8h_ad3b22044065acc6dee0af68931b52cfd}{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) 

\subsection{Function Documentation}
\hypertarget{part__func__co_8h_a334de3c96e2186abfbdc0eaea6d08b14}{
\index{part\_\-func\_\-co.h@{part\_\-func\_\-co.h}!get\_\-plist@{get\_\-plist}}
\index{get\_\-plist@{get\_\-plist}!part_func_co.h@{part\_\-func\_\-co.h}}
\subsubsection[{get\_\-plist}]{\setlength{\rightskip}{0pt plus 5cm}{\bf plist}$\ast$ get\_\-plist (struct {\bf plist} $\ast$ {\em pl}, \/  int {\em length}, \/  double {\em cut\_\-off})}}
\label{part__func__co_8h_a334de3c96e2186abfbdc0eaea6d08b14}
DO NOT USE THIS FUNCTION ANYMORE \begin{Desc}
\item[\hyperlink{deprecated__deprecated000016}{Deprecated}]\{ This function is deprecated and will be removed soon!\} use \hyperlink{group__pf__fold_ga03e15e831a31b1154855ab47edbdb019}{assign\_\-plist\_\-from\_\-pr()} instead! \end{Desc}
\hypertarget{part__func__co_8h_aa12dda9dd6179cdd22bcce87c0682c07}{
\index{part\_\-func\_\-co.h@{part\_\-func\_\-co.h}!init\_\-co\_\-pf\_\-fold@{init\_\-co\_\-pf\_\-fold}}
\index{init\_\-co\_\-pf\_\-fold@{init\_\-co\_\-pf\_\-fold}!part_func_co.h@{part\_\-func\_\-co.h}}
\subsubsection[{init\_\-co\_\-pf\_\-fold}]{\setlength{\rightskip}{0pt plus 5cm}void init\_\-co\_\-pf\_\-fold (int {\em length})}}
\label{part__func__co_8h_aa12dda9dd6179cdd22bcce87c0682c07}
DO NOT USE THIS FUNCTION ANYMORE \begin{Desc}
\item[\hyperlink{deprecated__deprecated000017}{Deprecated}]\{ This function is deprecated and will be removed soon!\} \end{Desc}
