Add missing doc files
[jabaws.git] / binaries / src / ViennaRNA / doc / latex / group__pf__cofold.tex
diff --git a/binaries/src/ViennaRNA/doc/latex/group__pf__cofold.tex b/binaries/src/ViennaRNA/doc/latex/group__pf__cofold.tex
new file mode 100644 (file)
index 0000000..02dfe64
--- /dev/null
@@ -0,0 +1,262 @@
+\hypertarget{group__pf__cofold}{\section{Partition Function for two hybridized Sequences}
+\label{group__pf__cofold}\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+}
+
+
+Partition Function Cofolding.  
+
+
+Collaboration diagram for Partition Function for two hybridized Sequences\-:
+\nopagebreak
+\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[width=350pt]{group__pf__cofold}
+\end{center}
+\end{figure}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item 
+file \hyperlink{part__func__co_8h}{part\-\_\-func\-\_\-co.\-h}
+\begin{DoxyCompactList}\small\item\em Partition function for two R\-N\-A sequences. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+\hyperlink{structcofoldF}{cofold\-F} \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. \end{DoxyCompactList}\item 
+\hyperlink{structcofoldF}{cofold\-F} \hyperlink{group__pf__cofold_gabd873b450832ab5f21101fc5ab354d21}{co\-\_\-pf\-\_\-fold\-\_\-par} (char $\ast$sequence, char $\ast$structure, \hyperlink{structpf__paramT}{pf\-\_\-param\-T} $\ast$parameters, int calculate\-\_\-bppm, int is\-\_\-constrained)
+\begin{DoxyCompactList}\small\item\em Calculate partition function and base pair probabilities. \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. \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()} \end{DoxyCompactList}\item 
+void \hyperlink{group__pf__cofold_ga6e0f36c1f9b7d9dd4bfbad914c1119e5}{update\-\_\-co\-\_\-pf\-\_\-params} (int length)
+\begin{DoxyCompactList}\small\item\em Recalculate energy parameters. \end{DoxyCompactList}\item 
+void \hyperlink{group__pf__cofold_ga117d880df45bef444d5e2785ffa40a53}{update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par} (int length, \hyperlink{structpf__paramT}{pf\-\_\-param\-T} $\ast$parameters)
+\begin{DoxyCompactList}\small\item\em Recalculate energy parameters. \end{DoxyCompactList}\item 
+void \hyperlink{group__pf__cofold_ga15ae04ac5ab84e876dcf0093120cb617}{compute\-\_\-probabilities} (double F\-A\-B, double F\-E\-A, double F\-E\-B, struct \hyperlink{structplist}{plist} $\ast$pr\-A\-B, struct \hyperlink{structplist}{plist} $\ast$pr\-A, struct \hyperlink{structplist}{plist} $\ast$pr\-B, int Alength)
+\begin{DoxyCompactList}\small\item\em Compute Boltzmann probabilities of dimerization without homodimers. \end{DoxyCompactList}\item 
+\hyperlink{structConcEnt}{Conc\-Ent} $\ast$ \hyperlink{group__pf__cofold_ga5545cb936ac4ff93c7d699d46e72e8c7}{get\-\_\-concentrations} (double F\-E\-A\-B, double F\-E\-A\-A, double F\-E\-B\-B, double F\-E\-A, double F\-E\-B, 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. \end{DoxyCompactList}\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. \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. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+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\cite{bernhart:2006} for further details. 
+
+\subsection{Function Documentation}
+\hypertarget{group__pf__cofold_gaa86a5f998789ed71813d23d7307a791b}{\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}!co\-\_\-pf\-\_\-fold@{co\-\_\-pf\-\_\-fold}}
+\index{co\-\_\-pf\-\_\-fold@{co\-\_\-pf\-\_\-fold}!Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+\subsubsection[{co\-\_\-pf\-\_\-fold}]{\setlength{\rightskip}{0pt plus 5cm}{\bf cofold\-F} co\-\_\-pf\-\_\-fold (
+\begin{DoxyParamCaption}
+\item[{char $\ast$}]{sequence, }
+\item[{char $\ast$}]{structure}
+\end{DoxyParamCaption}
+)}}\label{group__pf__cofold_gaa86a5f998789ed71813d23d7307a791b}
+
+
+Calculate partition function and base pair probabilities. 
+
+This is the cofold partition function folding. The second molecule starts at the \hyperlink{fold__vars_8h_ab9b2c3a37a5516614c06d0ab54b97cda}{cut\-\_\-point} nucleotide.
+
+\begin{DoxyNote}{Note}
+Open\-M\-P\-: Since this function relies on the global parameters \hyperlink{fold__vars_8h_ad512b5dd4dbec60faccfe137bb474489}{do\-\_\-backtrack}, \hyperlink{fold__vars_8h_a72b511ed1201f7e23ec437e468790d74}{dangles}, \hyperlink{fold__vars_8h_ab4b11c8d9c758430960896bc3fe82ead}{temperature} and \hyperlink{fold__vars_8h_ad3b22044065acc6dee0af68931b52cfd}{pf\-\_\-scale} it is not threadsafe according to concurrent changes in these variables! Use \hyperlink{group__pf__cofold_gabd873b450832ab5f21101fc5ab354d21}{co\-\_\-pf\-\_\-fold\-\_\-par()} instead to circumvent this issue.
+\end{DoxyNote}
+\begin{DoxySeeAlso}{See Also}
+\hyperlink{group__pf__cofold_gabd873b450832ab5f21101fc5ab354d21}{co\-\_\-pf\-\_\-fold\-\_\-par()}
+\end{DoxySeeAlso}
+
+\begin{DoxyParams}{Parameters}
+{\em sequence} & Concatenated R\-N\-A sequences \\
+\hline
+{\em structure} & Will hold the structure or constraints \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\hyperlink{structcofoldF}{cofold\-F} structure containing a set of energies needed for concentration computations. 
+\end{DoxyReturn}
+\hypertarget{group__pf__cofold_gabd873b450832ab5f21101fc5ab354d21}{\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}!co\-\_\-pf\-\_\-fold\-\_\-par@{co\-\_\-pf\-\_\-fold\-\_\-par}}
+\index{co\-\_\-pf\-\_\-fold\-\_\-par@{co\-\_\-pf\-\_\-fold\-\_\-par}!Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+\subsubsection[{co\-\_\-pf\-\_\-fold\-\_\-par}]{\setlength{\rightskip}{0pt plus 5cm}{\bf cofold\-F} co\-\_\-pf\-\_\-fold\-\_\-par (
+\begin{DoxyParamCaption}
+\item[{char $\ast$}]{sequence, }
+\item[{char $\ast$}]{structure, }
+\item[{{\bf pf\-\_\-param\-T} $\ast$}]{parameters, }
+\item[{int}]{calculate\-\_\-bppm, }
+\item[{int}]{is\-\_\-constrained}
+\end{DoxyParamCaption}
+)}}\label{group__pf__cofold_gabd873b450832ab5f21101fc5ab354d21}
+
+
+Calculate partition function and base pair probabilities. 
+
+This is the cofold partition function folding. The second molecule starts at the \hyperlink{fold__vars_8h_ab9b2c3a37a5516614c06d0ab54b97cda}{cut\-\_\-point} nucleotide.
+
+\begin{DoxySeeAlso}{See Also}
+\hyperlink{group__energy__parameters_ga6fc2f3eef5a3024d44963ac59a42e39d}{get\-\_\-boltzmann\-\_\-factors()}, \hyperlink{group__pf__cofold_gaa86a5f998789ed71813d23d7307a791b}{co\-\_\-pf\-\_\-fold()}
+\end{DoxySeeAlso}
+
+\begin{DoxyParams}{Parameters}
+{\em sequence} & Concatenated R\-N\-A sequences \\
+\hline
+{\em structure} & Pointer to the structure constraint \\
+\hline
+{\em parameters} & Data structure containing the precalculated Boltzmann factors \\
+\hline
+{\em calculate\-\_\-bppm} & Switch to turn Base pair probability calculations on/off (0==off) \\
+\hline
+{\em is\-\_\-constrained} & Switch to indicate that a structure contraint is passed via the structure argument (0==off) \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\hyperlink{structcofoldF}{cofold\-F} structure containing a set of energies needed for concentration computations. 
+\end{DoxyReturn}
+\hypertarget{group__pf__cofold_ga11f0252c1d2c4697253ff4b5bd392d3c}{\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}!export\-\_\-co\-\_\-bppm@{export\-\_\-co\-\_\-bppm}}
+\index{export\-\_\-co\-\_\-bppm@{export\-\_\-co\-\_\-bppm}!Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+\subsubsection[{export\-\_\-co\-\_\-bppm}]{\setlength{\rightskip}{0pt plus 5cm}double$\ast$ export\-\_\-co\-\_\-bppm (
+\begin{DoxyParamCaption}
+\item[{void}]{}
+\end{DoxyParamCaption}
+)}}\label{group__pf__cofold_ga11f0252c1d2c4697253ff4b5bd392d3c}
+
+
+Get a pointer to the base pair probability array. 
+
+Accessing the base pair probabilities for a pair (i,j) is achieved by \begin{DoxyVerb}FLT_OR_DBL *pr = export_bppm(); pr_ij = pr[iindx[i]-j]; \end{DoxyVerb}
+
+
+\begin{DoxySeeAlso}{See Also}
+\hyperlink{utils_8h_a55c0f6b3b07b6adf2ee235ba901fe397}{get\-\_\-iindx()} 
+\end{DoxySeeAlso}
+\begin{DoxyReturn}{Returns}
+A pointer to the base pair probability array 
+\end{DoxyReturn}
+\hypertarget{group__pf__cofold_ga6e0f36c1f9b7d9dd4bfbad914c1119e5}{\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}!update\-\_\-co\-\_\-pf\-\_\-params@{update\-\_\-co\-\_\-pf\-\_\-params}}
+\index{update\-\_\-co\-\_\-pf\-\_\-params@{update\-\_\-co\-\_\-pf\-\_\-params}!Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+\subsubsection[{update\-\_\-co\-\_\-pf\-\_\-params}]{\setlength{\rightskip}{0pt plus 5cm}void update\-\_\-co\-\_\-pf\-\_\-params (
+\begin{DoxyParamCaption}
+\item[{int}]{length}
+\end{DoxyParamCaption}
+)}}\label{group__pf__cofold_ga6e0f36c1f9b7d9dd4bfbad914c1119e5}
+
+
+Recalculate energy parameters. 
+
+This function recalculates all energy parameters given the current model settings.
+
+\begin{DoxyNote}{Note}
+This function relies on the global variables \hyperlink{fold__vars_8h_ad3b22044065acc6dee0af68931b52cfd}{pf\-\_\-scale}, \hyperlink{fold__vars_8h_a72b511ed1201f7e23ec437e468790d74}{dangles} and \hyperlink{fold__vars_8h_ab4b11c8d9c758430960896bc3fe82ead}{temperature}. Thus it might not be threadsafe in certain situations. Use \hyperlink{group__pf__cofold_ga117d880df45bef444d5e2785ffa40a53}{update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par()} instead.
+\end{DoxyNote}
+\begin{DoxySeeAlso}{See Also}
+\hyperlink{group__energy__parameters_ga6fc2f3eef5a3024d44963ac59a42e39d}{get\-\_\-boltzmann\-\_\-factors()}, \hyperlink{group__pf__cofold_ga117d880df45bef444d5e2785ffa40a53}{update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par()}
+\end{DoxySeeAlso}
+
+\begin{DoxyParams}{Parameters}
+{\em length} & Length of the current R\-N\-A sequence \\
+\hline
+\end{DoxyParams}
+\hypertarget{group__pf__cofold_ga117d880df45bef444d5e2785ffa40a53}{\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}!update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par@{update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par}}
+\index{update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par@{update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par}!Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+\subsubsection[{update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par}]{\setlength{\rightskip}{0pt plus 5cm}void update\-\_\-co\-\_\-pf\-\_\-params\-\_\-par (
+\begin{DoxyParamCaption}
+\item[{int}]{length, }
+\item[{{\bf pf\-\_\-param\-T} $\ast$}]{parameters}
+\end{DoxyParamCaption}
+)}}\label{group__pf__cofold_ga117d880df45bef444d5e2785ffa40a53}
+
+
+Recalculate energy parameters. 
+
+This function recalculates all energy parameters given the current model settings. It's second argument can either be N\-U\-L\-L 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 N\-U\-L\-L, threadsafety for the model parameters \hyperlink{fold__vars_8h_a72b511ed1201f7e23ec437e468790d74}{dangles}, \hyperlink{fold__vars_8h_ad3b22044065acc6dee0af68931b52cfd}{pf\-\_\-scale} and \hyperlink{fold__vars_8h_ab4b11c8d9c758430960896bc3fe82ead}{temperature} is regained, since their values are taken from this data structure during subsequent calculations.
+
+\begin{DoxySeeAlso}{See Also}
+\hyperlink{group__energy__parameters_ga6fc2f3eef5a3024d44963ac59a42e39d}{get\-\_\-boltzmann\-\_\-factors()}, \hyperlink{group__pf__cofold_ga6e0f36c1f9b7d9dd4bfbad914c1119e5}{update\-\_\-co\-\_\-pf\-\_\-params()}
+\end{DoxySeeAlso}
+
+\begin{DoxyParams}{Parameters}
+{\em length} & Length of the current R\-N\-A sequence \\
+\hline
+{\em parameters} & data structure containing the precomputed Boltzmann factors \\
+\hline
+\end{DoxyParams}
+\hypertarget{group__pf__cofold_ga15ae04ac5ab84e876dcf0093120cb617}{\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}!compute\-\_\-probabilities@{compute\-\_\-probabilities}}
+\index{compute\-\_\-probabilities@{compute\-\_\-probabilities}!Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+\subsubsection[{compute\-\_\-probabilities}]{\setlength{\rightskip}{0pt plus 5cm}void compute\-\_\-probabilities (
+\begin{DoxyParamCaption}
+\item[{double}]{F\-A\-B, }
+\item[{double}]{F\-E\-A, }
+\item[{double}]{F\-E\-B, }
+\item[{struct {\bf plist} $\ast$}]{pr\-A\-B, }
+\item[{struct {\bf plist} $\ast$}]{pr\-A, }
+\item[{struct {\bf plist} $\ast$}]{pr\-B, }
+\item[{int}]{Alength}
+\end{DoxyParamCaption}
+)}}\label{group__pf__cofold_ga15ae04ac5ab84e876dcf0093120cb617}
+
+
+Compute Boltzmann probabilities of dimerization without homodimers. 
+
+Given the pair probabilities and free energies (in the null model) for a dimer A\-B and the two constituent monomers A and B, compute the conditional pair probabilities given that a dimer A\-B actually forms. Null model pair probabilities are given as a list as produced by \hyperlink{group__pf__fold_ga03e15e831a31b1154855ab47edbdb019}{assign\-\_\-plist\-\_\-from\-\_\-pr()}, the dimer probabilities 'pr\-A\-B' are modified in place.
+
+
+\begin{DoxyParams}{Parameters}
+{\em F\-A\-B} & free energy of dimer A\-B \\
+\hline
+{\em F\-E\-A} & free energy of monomer A \\
+\hline
+{\em F\-E\-B} & free energy of monomer B \\
+\hline
+{\em pr\-A\-B} & pair probabilities for dimer \\
+\hline
+{\em pr\-A} & pair probabilities monomer \\
+\hline
+{\em pr\-B} & pair probabilities monomer \\
+\hline
+{\em Alength} & Length of molecule A \\
+\hline
+\end{DoxyParams}
+\hypertarget{group__pf__cofold_ga5545cb936ac4ff93c7d699d46e72e8c7}{\index{Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}!get\-\_\-concentrations@{get\-\_\-concentrations}}
+\index{get\-\_\-concentrations@{get\-\_\-concentrations}!Partition Function for two hybridized Sequences@{Partition Function for two hybridized Sequences}}
+\subsubsection[{get\-\_\-concentrations}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Conc\-Ent}$\ast$ get\-\_\-concentrations (
+\begin{DoxyParamCaption}
+\item[{double}]{F\-E\-A\-B, }
+\item[{double}]{F\-E\-A\-A, }
+\item[{double}]{F\-E\-B\-B, }
+\item[{double}]{F\-E\-A, }
+\item[{double}]{F\-E\-B, }
+\item[{double $\ast$}]{startconc}
+\end{DoxyParamCaption}
+)}}\label{group__pf__cofold_ga5545cb936ac4ff93c7d699d46e72e8c7}
+
+
+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 Fc\-A\-B entries from the \hyperlink{structcofoldF}{cofold\-F} struct.
+
+
+\begin{DoxyParams}{Parameters}
+{\em F\-E\-A\-B} & Free energy of A\-B dimer (Fc\-A\-B entry) \\
+\hline
+{\em F\-E\-A\-A} & Free energy of A\-A dimer (Fc\-A\-B entry) \\
+\hline
+{\em F\-E\-B\-B} & Free energy of B\-B dimer (Fc\-A\-B entry) \\
+\hline
+{\em F\-E\-A} & Free energy of monomer A \\
+\hline
+{\em F\-E\-B} & Free energy of monomer B \\
+\hline
+{\em startconc} & List of start concentrations \mbox{[}a0\mbox{]},\mbox{[}b0\mbox{]},\mbox{[}a1\mbox{]},\mbox{[}b1\mbox{]},...,\mbox{[}an\mbox{]}\mbox{[}bn\mbox{]},\mbox{[}0\mbox{]},\mbox{[}0\mbox{]} \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\hyperlink{structConcEnt}{Conc\-Ent} array containing the equilibrium energies and start concentrations 
+\end{DoxyReturn}