I am trying to understand the Zuker Algorithm.
What is happening during initialisation? I know in Nussinov the diagonal is filled with 0s. Are the diagonals filled with infinite energy during Zuker´s initialisation?
Also, what is happening during recursion?
I know unlike Nussinov, Zuker pays attantion to stacking energies and loop structures, not individual basepairs. But how? how does the algorithm calculate the energies for stacking and loops structures at position 1 if there is no info about its neighbors yet?
I understand there are 2 matrices - V and W. Is ist correct, that V is part of W. And is it correct, that V keeps information about stack interactions and how much energy a stack of base pairs contributes? - like keeping score on a multiplier.
Is there a code or example (prefer R), which demonstares how the algorithm goes over a sequence. Like a demonstration. I thought of one myself, but I am not sure if its correct:
sequence <- c(1, 2, 3, 4, 5,6,7,8,9,10,11,12,13,14,15)
n <- length(sequence)
for (l in 2:n) {
for (i in 1:(n - l + 1)) {
j <- i + l - 1
cat("i =", i, "j =", j, "\n")
} }
Thanks in advance.
I am using RNAFold (rna.tbi.univie.ac.at/cgi-bin/RNAWebSuite/RNAfold.cgi). I am suppose to write a shor text after my work and I am having diffuculties understanding certain espects of Zuker`s Algorithm. Nussinov is easy to understand and visualize on paper. And i was wondering how would implement Zuker in R or Python for example or how one would fill a dotplot using Zuker.
I found this set of slides that appears to describe Zuker algorithm. See if these help: https://math.mit.edu/classes/18.417/Slides/rna-prediction-zuker.pdf (about half way into the slide deck).