I find myself often wanting to know what the energy would be for a given nucleotide sequence if a bond failed to form, or if an extra bond formed. I sometimes do this kind of manual “barriers” exploration by creating multiple shapes that differ by one or two bonds with puzzle maker running in different windows and trying to keep the nucleotide sequence matching in both.
Ideally I would *love* some kind of “barriers” like GUI interface for the lab and/or puzzle maker where you could:
(a) hover the mouse over a bonded node in “barriers mode” and see what changes would happen to the structure and energy if that bond failed to form; select the node to artificially break the bond, displaying the new energies
(b) hover over an unbonded node in “barriers mode” and see what bonds it might form and the energy delta for each bond, then optionally select that node and one of the offered pairings and morph the current shape, displaying the new energies.
© query the system in “barriers” mode to see what are the most likely options for bonds to “make” or “break” starting from the current shape. This could be done by coloring the ring around all nodes when the mouse is not hovering over any single node to show (by shading or color) the energy differential caused by making or breaking bonds with each node (to go to the (next) lowest energy state).
In essence, “barriers mode” would allow a sort of user-directed step-by-step “simulated annealing” of the RNA shape. It could be a replacement for or alternative mode of the current “natural shape” mode, where a “reset/MFE” option would reset the shape to the lowest energy form like the current natural mode.
A first step towards a full “barriers” implementation might be to add a bond make/break mode to the puzzle maker, where a pair of nucleotides could be selected to pair up, or a paired nucleotide could be selected to “break” the bond:
(a) In pairing mode, click on a paired nucleotide to “break” the associated bond and change the matching “(” and “)” to “.” and “.”
(b) In pairing mode, click on an unpaired node to highlight it; (i) if the same node is clicked again, unhighlight it, or (ii) if an unpaired node in the same loop or open tail is subsequently clicked, convert the appropriate “.” and “.” to “(” and “)” and shift the shape, or © if a node that is involved in closing the loop/tail containing the highlighted node is clicked, then break the bond closing the loop/tail and re-pair the highlighted node with the second node, or (d) if an “unpairable” node (already paired or not in the same loop/tail) is clicked while a node is highlighted, briefly flash both nodes, and leave the first node highlighted.
© also a “mark/restore” ability to remember the current shape/sequence and jump back to it after making one or more changes could be a helpful addition, and
(d) a “minimum free energy” button to jump to the current minimal free energy shape for the current nucleotide sequence could also help, and
(e) an “unfold” button that would linearized the shape to all "."s, and
(f) for the advanced case (stage 2?), a “simulated annealing” button that morphs the structure randomly at each click to some other shape based on a probability tied to the energy barriers to the most likely close alternative shapes (making or breaking a single bond?)
Ideally, at each step, a “delta” energy field should show the energy change from the previous shape/sequence (and/or “next” in the case of undo).
Having a “bonding” mode should help to pave the way for the system to “suggest” bonds to make or break along with delta energy estimates in a full “barriers” mode in stage 3.
I think that having the option to see what bonds are likely to be made or broken given a current shape and sequence might help improve our understanding of the steps by which RNA seems to fold (according to the model) and thereby improve the quality of the lab submissions (by potentially eliminating at least some misfolds). Even just having the ability to play with a shape by making and breaking bonds and seeing the energy changes could be useful.
And as an initial step, adding a Copy Sequence button to the puzzle maker would at least make it easier to keep the sequence consistent between two puzzle makers running two slightly different shapes.