Scripting Interface Feedback

I wrote an alternative shape parser that seems to get more cases right.… You might find some ideas in there that will help you to resolve the issue with the RNA parser.

Can we get back some way to run a puzzle solver on a random (non-switch) puzzle? It is helpful for debugging. Thanks!

I totally agree with Janderson. We will like to be able to see how many percentage of the puzzles a script is solving. It will be very useful.

I do like the full testing of the script on all puzzles, but it would also be helpful to have a fixed, short, benchmark list of around 100 puzzles that a new script could be tested against in under 5 minutes. (Perhaps even under 2 minutes!) That would give Puzzle Solver script writers (well, Mat and Eli and myself for now) much quicker feedback on how strategy changes seem to be working. Having to wait a few days for the full test suite to run slows down the creative process.

I very much agree with JL. It would make things so much easier.

I wish to get the bot notice back on the puzzle entrance picture, so we can see directly if the bots have solved the puzzle or not. I miss that. Also it is valuable information for when we are picking puzzles for benchmarking of the scripts.

Hi JL and Eli. I totally agree with your opinion.I temporarily recover “test on player puzzles” button now so you can test your script on 6 random puzzles. (

About testing whole puzzles on demand, I think it’s almost impossible to use remote evaluation server to handle those request. As you know, it will be a burden on server and above all, you will never get right results if server runs auto testing or multiple users test at the same time. If you need this features even if you don’t mind, I’ll make it :slight_smile:

But I want to suggest an idea. How about testing your script with whole puzzles on your machine through local script interface?
(… )
Currently, I’m implementing features you said on local script interface. And this is much faster than getting results from remote server since it evaluate your script on your machine and return results directly. I hope this can help you make great scripts.

If you have any idea, please let me know, thanks!!

Hi Eli, It seems like a bug.

This has been added to our issue tracker with ticker number #154

You can check the issue at…


EteRNA team

Thanks. I haven’t had much luck with the local script interface yet - of course I haven’t tried very hard either; maybe when I have more tie to play with it. For the moment we are adding our own mini-bench set into the Random Mutations script.

Thanks very much, Justin.

I was wondering if something could be added to the scripting interface or AjaxManager.querySync() such that a script could grab a list of lab ids? It might also be helpful to do separate queries that could return just active lab ids, or lab ids with synthesized results, and switch or non-switch labs.

Similarly, grabbing a list of puzzle ids, switches and/or non-switches, and with a range of solver numbers and/or sequence lengths.

Those sorts of queries could be helpful for writing scripts that can do data-mining on lab results or to discover puzzles that can be used for bench-marking and testing.

When you use “Fetch and Dump Puzzle/Lab Descriptor”… it returns a string with a space at the end for the secstruct string:

secstruct: "…(((.(((((((((((((((…(((((((.((((.((.(.(…).).)))))))))))))((((.(((…(((((…))))).))).)))).)))))…))))))))))…))). "

The game player normally treats non-(.) characters as ‘.’ so I solve the puzzle as if it ends in “)…)))…”.

And if you look at the puzzle in the game, that is how the player displays it:

If the Puzzle Solver script tester tries to match the folded result sting against the stored secstruct string (with a blank in it) it will claim a failure even though the folded sequence matches the shape that the puzzle player displays:

(1) This is why we need the database cleaned up!

OR: (2) before verifying the result, the tester should use the same cleanup function on the secstruct string before matching:

// a number of the puzzle shape strings have spaces or other junk
// characters. this just replaces them by ‘.’
function cleanShapeStr(ss)
// replace all non DOT LP RP with DOT
return ss.replace(/[^\x2E()]/g,’.’);

OR: (3) before passing secstruct strings to a Puzzle tester script it should clean them up and also test the result against the cleaned string,

OR: (4) don’t test the Puzzle Solver scripts against malformed secstruct strings!

This is not an isolated case. So please, if it is too hard to clean the database, then at least can the tester be changed to do one of (3) or (4)?


Sorry for your inconvenience JL. You can regard any malformed character as “.” (dot). I will repair wrong datas but it may take a lot of time because I have to change them manually one by one!! I’ll retest your script as soon as those datas are corrected. Thank you!!


Thanks for the new background color mod. However the drawings now fail to scroll with the text in the results Console window - in fact they overflow it!

See for an example.

This is a serious setback to our development work. To see how it affects us, try the script with input “22147,1,RN,10000,6” (omitting the quotes). You will see some debug output tracing the execution of the script showing the sequence as-it-stands after each major step. However, since the recent upgrade, the graphical output no longer scrolls with the text and spills out of the Result Console frame, making it difficult to determine where steps are not working as we would like.

Hi jandersonlee, please check again now that bug has been fixed. You can show appropriate rna image through result console ( I tested on chrome, Windows please tell me if your browser still has that bug)

Thanks so much for your prompt fix! It works wonderfully once again on both Chrome and Firefox on Windows and Chrome and Safari on MacOS. Much appreciated.

Finally bug has been fixed. And you can check it here (… ). Feel free to say anything if it still has a bug. Thanks!!

Seem to work now on the dev server. Thanks!

Ability to reset input/output boxes to default. Sample input?