Puzzle 2353 ED puzzle issues (recipe idealize and trim tool)

Started by rosie4loop

rosie4loop Lv 1

In Puzzle 2353, the game crashes when a recipe attempts to idealize the DNA (quickfix 3.6.3). This action is not allowed in GUI but the Lua command somehow bypass the restriction.

Logfiles attached here:
scriptlog.default.xml
debug.txt
log.txt

Selected contents in "scriptlog.default.xml":

<?xml version="1.0" encoding="UTF-8"?>
<Foldit:Script xmlns:Foldit="http://fold.it/scriptlog">
<Foldit:Head>
<Foldit:ScriptName>Quickfix 3.6.3</Foldit:ScriptName>
<Foldit:ScriptDesc>Option to keep freezes and bands, manage slow filters</Foldit:ScriptDesc>
<Foldit:MacroID>100698</Foldit:MacroID>
<Foldit:ParentID>0</Foldit:ParentID>
</Foldit:Head>
<Foldit:ScriptOutput>
Monomer
Electron density
Recording results in Note for segment 2
Quickfix 3.6.3

Start score : 21936.342
No generic filter disabling
lw = Local Wiggle
id = Idealize
rb = Rebuild
ws = Wiggle Sidechains
ws h= Wiggle worst hiding Sidechains
cw= Cut Worst and wiggle all
rb i= Rebuild worst ideality
sh = Quick Shake
rx = Remix
sh h= Quick Shake worst hiding

######################
----
LOOP 1.0
----
ws
sh
lw 78-80
  Improvement to 21936.443
lw 77-79
  Improvement to 21940.217
lw 76-78
rx 77-80
rx 76-79
rx 75-78
1 remixes found
Idealizing 9-11

Selected contents in "debug.log" :

"backtrace" : "  1: core::conformation::carbohydrates::find_seqpos_of_saccharides_parent_residue +65 bytes (no line)\n  2: core::conformation::carbohydrates::get_glycosidic_bond_residues +600 bytes (no line)\n  3: core::conformation::carbohydrates::get_reference_atoms_for_1st_omega +79 bytes (no line)\n  4: core::conformation::carbohydrates::get_reference_atoms +228 bytes (no line)\n  5: core::conformation::carbohydrates::set_glycosidic_torsion +36 bytes (no line)\n  6: core::pose::Pose::set_omega +203 bytes (no line)\n  7: interactive::application::actions::cart::ActionCartIdealize::thread_body_loop_unlocked +233 bytes (no line)\n  8: interactive::application::actions::cart::PoseLoopThreadActionCart::on_thread_run +6953 bytes (no line)\n  9: interactive::util::detail::checked_fxn_wrapper<void (__cdecl interactive::application::shared::ToolActionThreaded::*)(void) __ptr64>::operator()<interactive::application::shared::ToolActionThreaded,void (__cdecl interactive::application::shared::ToolActionThreaded::*)(void) __ptr64,0> +440 bytes (no line)\n 10: boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<boost::_bi::unspecified,interactive::util::detail::checked_fxn_wrapper<void (__cdecl interactive::application::shared::ToolActionThreaded::*)(void) __ptr64>,boost::_bi::list1<boost::_bi::value<interactive::util::access_ptr<interactive::application::shared::ToolActionThreaded> > > >,void>::invoke +66 bytes (no line)\n 11: interactive::util::Thread::thread_entry_func +45 bytes (no line)\n 12: interactive::util::Thread::win32_thread_startup_helper +17 bytes (no line)\n 13: BaseThreadInitThunk +20 bytes (no line)\n 14: RtlUserThreadStart +33 bytes (no line)\n",
    "build_id" : "20230404-5148dace4d-win_x64",
    "crash_id" : "336d9c18-2c5e-4e73-aceb-6a55426e348d",
    "crash_time" : 1694775078,
    "current_actions" : "RecipeRunnerAction,ActionIdealize",
    "current_tool" : "Selection Interface",
    "file" : "Unknown File:0",
    "machine_id" : "d35b4f49-eae8-4d2c-bad9-47644471ff76",
    "message" : "Unknown Exception",
    "puzzle_id" : 2013693,
    "puzzle_running_time" : 159,
    "recipe_id" : 100698,
    "release_id" : 24,
    "running_time" : 106838.15592439999,

rosie4loop Lv 1

The trim tool is also broken, using it after selecting the whole protein makes all the buttons greyed out.
Trimming a single segment is fine, trimming the protein sometimes broke the game, need to restart the game to fix.
In some cases, an error message appears and the buttons are back without needing to restart the game.

rosie4loop Lv 1

A workaround of the protein trimming bug is to select all protein segments except the terminal segment, probably because the Trim tool would keep the adjacent segment after trimming and there is still problems handling the DNA.

After trimming this way, quickfix is finally working!

Artoria2e5 Lv 1

From the function names in the backtrace, it looks like there is some code in place to tweak sugar torsions. I guess it just never got tested?

rosie4loop Lv 1

As far as I know Foldit always has a disclaimer on the "limited support of nucleic acid and small molecule". I'm guessing the code is there, but maybe parameters missing or code yet to be optimized? Maybe can fix it by including a parameter file like in small-molecule puzzle? In case it's just missing parameters but not a bug in the code.

jeff101 Lv 1

I wanted to be helpful, so I looked for old puzzles that included RNA or DNA.

There used to be Intro Puzzles called "DNA and Protein" and "DNA Pairing":
https://foldit.fandom.com/wiki/Historic/Intro_Puzzles/DNA_and_Protein
https://foldit.fandom.com/wiki/Historic/Intro_Puzzles/DNA_Pairing

There was also a cryo-EM puzzle with electron density for both RNA and protein:
https://fold.it/puzzles/2011305 (Puzzle 1964: Unsolved Huge Cryo-EM Density: Beet Virus)
but our job there was to find where the protein fit into this electron density.
We weren't given explicit RNA to fit into the electron density.

Unfortunately, after putting in the work to find these puzzles, it isn't so clear how this info can help.

rmoretti Staff Lv 1

I think I've figured out the issue with the crashing, and there should be a fix for Idealization with DNA-containing puzzles making its way to devprev (eventually).

jeff101 Lv 1

That's good news @rmoretti. Thanks for looking into things.

On 2353, I've tried moving the backbone pin around.
I think it can only be at segments 17-80 (the protein segments) not 1-16 (the DNA segments).
I also think if you put a cut in the range 1-16, there is no way to repair it (their cut bands stay blue).
Meanwhile cuts in the range 17-80 can be fixed (their cut bands can become yellow).
If anyone knows ways around these things, please let me know. Thanks!

NinjaGreg Lv 1

Hey @rmoretti, it look like there's an "off-by-one" error in the Trim Tool (see attached image). I selected from one end of a strand to the other, then Invoked the Trim Tool. Note the completely separate dot (arrow), which is part of the other segment.

FYI.