Merge pull request #6263 from RosettaCommons/roccomoretti/interactive_compound_data_store
[Foldit] Add a Compound Library Objective
Add a compound library objective. This should give players a bonus if the compounds are in the library.
This required a bit of reworking of some things, primarily because we don't have easy access to the complete compound library.
Instead, I added the CompoundDataStore, which is populated by the Compound Library panel from the server results for the compound library query. These then get stored locally, such that you don't actually have to open the compound library dialog (again) to pull the compounds from the server. For some semblance of safety (e.g. so people can't just manually edit the stored smiles), I had to move the rc4 encryption to interactive/util and added a string/stream encryption function, so I can encrypt the results. (Not with the game key, though.)
The other issue I ran into was that the compound library compounds don't necessarily have fully specified stereoisomers. This makes smiles/smiles comparisons (even canonicalized ones) difficult. The fix was to add a stereoisomer enumeration facility, which is cribbed from the Python-level RDKit code. This multiplies the number of results from the library search, though it should allow players to select particular stereoisomers, rather than it just defaulting to the random configuration which it's currently doing. (I've also adjusted the compound labeling to use a/b/c/d to separate out stereoisomers.) The CompoundDataStore gets an additional duty to cache the non-trivial amount of computation needed to compute this enumeration, though I'm not currently saving that to disk.
RELEASE NOTES: Add a Compound Library objective
RELEASE NOTES: Better handling of stereoisomers in the compound library.
Merge pull request #6258 from RosettaCommons/roccomoretti/interactive_less_log_noise
[Foldit] Reduce some log noise.
There were a few functions in Server which are rather chatty in the log, and which I don't think need to be quite so verbose.
Turn these down to debug level, such that they're present but not cluttering the standard log.
(No release notes needed.)
Merge pull request #6236 from RosettaCommons/koepnick/foldit_current_energy
[Foldit] Display current score of online players
Release Notes:
- Display the current score of other players in the puzzle leaderboard
Merge pull request #6241 from RosettaCommons/roccomoretti/interactive_none_preset_crash
[Foldit] Fix crash when selecting None preset.
The None preset was being built as a base class object, but the actual application needed to dynamic cast to a Standalone-level object. This resulted in a nullpointer when you tried to activate the None preset.
Now when you select "None", the actual view doesn't change, but you no longer have the preset selected.
RELEASE NOTES: Fix crash when None preset is selected.
Merge pull request #6246 from RosettaCommons/roccomoretti/interactive_cl_name_takes_focus
[Foldit] Name takes focus in Compound Library Save Dialog.
RELEASE NOTES: Start cursor in the Name field of the Compound Library upload dialog.
Merge pull request #6244 from RosettaCommons/roccomoretti/interactive_sort_compound_library
[Foldit] Add Compound Library sorting
Add sorting and labeling of Compound Library compounds based on similarity to the compound.
RELEASE NOTES: Compound library entries are now sorted by similarity to the small molecule present in the puzzle when the Load Library Compound panel is opened.
Merge pull request #6240 from RosettaCommons/roccmoretti/interactive_fix_cl_load
[Foldit] Fix issue with Load Library Compound panel.
When closed, the panel was being turned 100% transparent, but not actually disappearing, which leads to it capturing mouse actions.
RELEASE NOTES: Fix issue where Load Library Compound panel created dead spots.
Merge pull request #6243 from RosettaCommons/koepnick/foldit_puzzle_menu_rank
[Foldit] Get puzzles and puzzle scores on login
Release Notes:
- Display current rank and score for puzzles in Science Puzzles menu