Hello Fellow Eterna Players,
Jonathan merged the Eterna source code with the additions I made to the NUPACK calls. These calls exposed the subopt utility found in nupack and allows us now to see the data in-game through a booster. I made a sample booster for a single sequence, but the new code does also support oligo multifold.
The unique thing for this function call is that as it is currently only available in NUPACK you must load the nupack folder after loading the mainscript and before any subopt calculations.
Command to select NuPACK folder is here and must be passed this exact way or it will not work.
The calls for the single sequence is “applet.subopt_single_sequence(sequence, Kcal_Delta_Range, psuedoknot, temp);”
The call for multi fold oligo is “applet.subopt_oligos(sequence, Oligo_sequence_string_array, Kcal_Delta_Range , psuedoknot, temp);”
These both return a object with multiple arrays for each set of type of data addressable as properties. Each index of each property belong to the same secondary structure.
Examples of the available properties aft the response are
var subopt_secondaryStructures = result.suboptStructures;
var subopt_energyError = result.suboptEnergyError;
var subopt_freeEnergy = result.suboptFreeEnergy;
var numSecondarySructures = subopt_secondaryStructures.length;
Make a note that ensembleDefect is not functional yet and returns a “0”. This was to allow for a quicker future implementation of the function. There is much work needed for it and it would have delayed the release by weeks if not months. So instead I exposed subopt and while I was there, I established a path for ensembleDefectfor the players to access immediately upon getting the source code from nupack working in Eterna’s codebase.
Please let me know in this post if you have any questions or concerns.
Here is a link to an example script for multi fold with oligos
New single state subopt displayed in a new blank window.