Foldit Wiki
Advertisement

A puzzle setup file is optional for a basic Foldit private puzzle. A puzzle setup file can enabled advanced features that are required for some puzzles.

The information here is adapted from the supplementary information section of Creating custom Foldit puzzles for teaching biochemistry, published in Biochemistry and Molecular Biology Education in January 2019.

Format

A puzzle setup file consists of keyword-value pairs, and uses the same format as other Foldit configuration files, as shown in this example:

version: 1
{
"chain_cutpoint" : "37||57||86||97||"
"backbone_locked" : "1||9-37||38-43||57||58-65||72-86||87||97||98-105||116-126||"
"jump_locked" : "1-126||"
"sidechain_locked" : "1||9-37||38-43||57||58-65||72-86||87||97||98-105||116-126||"
"move_tool_mode" : "segment"
}

In this format, both keywords and values are quoted, and a colon separates a keyword from its value.

The example uses the keywords "chain_cutpoint", "backbone_locked", "jump_locked", "sidechain locked", and "move_tool_mode". These keywords are explained or at least referenced below.

Naming

Puzzle setup files use the extension ".puzzle_setup", for example, "example_pdb.puzzle_setup".

Types

The values in a puzzle setup file can be one of several types:

Type Description Example
reslist A list of residue indices, formatted as a residue index, a pipe ("|"), a value, and then another pipe; then repeat.

Multiple residue indices with the same value can also be formatted with the starting and ending residue index separated with a dash.

Some keywords, such as "backbone_locked", use only the residue indices, and no values. A double pipe ("||") separates the indices for these keywords.

The message "residue range has odd count" appears when there's a problem with a reslist keyword. Each residue index or range of residues must be followed by a pipe, even if there's no value specified.

"2|val1|3|val2|8|val3|"

"14-108||"
"1|0|2-3|1|"

int an integer "145"
real a real value "3.5"
bool a boolean value, integers can be used for formatting "0"

"1"

Keywords

A puzzle setup file can contain keywords that include the following :

Keyword Type Description Example
notes reslist of string notes that will appear in residue info "notes" : "3-5|click here|"
can_design reslist which residues can be designed "can_design" : "3-5||"
can_delete reslist which residues can be deleted
can_insert_after reslist which residues can have another residue inserted after them
can_insert_before reslist which residues can have another residue inserted before them
can_delete_any_inserted bool should deletion of any inserted residues be allowed "can_delete_any_inserted" : "0"
min_actual_length int the minimum length allowed by deletions "min_actual_length" : "15"
max_actual_length int the maximum length allowed by insertions
backbone_locked reslist which residues will have their backbone locked
sidechain_locked reslist which residues will have their sidechain locked
jump_locked reslist which residues will have any jump attached to them locked
chain_cutpoint reslist where to insert additional cutpoints within a chain
seg_cutpoint reslist a cutpoint will be inserted after this residue, with no new chain, and the cut will be constrained as if it were a peptide bond with ideal constraints
sidechains_always_show reslist which sidechains to always show fully, regardless of visualization settings
residue_weights reslist of real a weighting to apply to the per-residue scoring "residue_weights" : "3-5|0.5|"
replonly reslist residues to only score the repulsive term, by applying the RepulsiveOnlyMover and REPLONLY variant to them
detect_disulfides bool should disulfides be automatically redetected as structure changes
can_share bool if set to "0", players cannot share solutions
allowed_macros string if set to "none”, allows no macros, if set to “gui” allows only gui macros, if set to “all” allows gui and script macros
parent_pids comma separated ints users can load in solutions from these puzzles
upload_macro_runs bool automatically upload data to server whenever a player uses a recipe
use_loop_hash bool if set to "1", enables the Remix tool (LoopHash)
use_cut_tool bool if set to "1", enables the cut tool
use_disulfide_tool bool if set to "1", enables manual making and breaking of disulfides
use_rama_map bool if set to "1", enables the rama map
enable_blueprint bool if set to "1", enables the blueprint tool
move_tool_mode string
hide_constraints bool if set to "1", prevents the red constraint lines from being drawn for the puzzle
user_cutpoints_only bool
starting_score_check real

Under "allowed_macros", the reference to GUI macros is obsolete. All macros (recipes) are now scripts written in Lua. It's not clear if the "none" setting for this keyword is working.

Many other keywords are possible, but there's no known list of them all. There are a number of unencrypted .puzzle_setup files in a typical Foldit installation. These files are used for Campaign and Education puzzles, and some other features, such as Dojo mode. They may contain keywords not listed above. Many of these keywords enable or disable certain Foldit features.

Observed keywords

The table below shows keywords found by scanning the unencrypted .puzzle_setup files used for the Campaign and Education puzzles. Many of these keywords are also found in the list above, which is based on a published paper.

The "Example" column shows some of the values found in the .puzzle_setup files. When there are multiple discrete values, a vertical bar separates them, for example "0" | "1", indicating at least one value of "0" and at least one value of "1".

The type of keywords has been identified based on the types found in the preceding table.

Most of the observed keywords appear to be type bool, and seem to relate to enabling or disabling Foldit features on specific puzzles. Many of the keywords show only the "0" value or the "1" value, which probably indicates the default associated with the keyword.

There are also a number of keywords which use the reslist type.

There are a few keywords which are comma-separated lists, URLs, or other types.

Keywords that begin with "gui" probably involve Foldit's original interface, and so, may be obsolete.

In some cases, there may be more than one keyword which appears to relate to the same feature. For example, there's the keyword "actions/ActionRebuild", but then "ActionRebuild" also appears under the keyword "banned_actions".

Since there is no authoritative source for this information, testing is the only way to discover exactly what a given keyword does.

While several keywords reference "actions", there's no known list of all possible values. Values like "ActionsJumpWidget" and "ActionCartLoopHash" remain obscure.

Keyword Type Description Example
actions/ALIGN_GUIDE bool "1"
actions/ActionBandAddDrag bool "1"
actions/ActionBandDelete bool "0"
actions/ActionBandEnableAll bool "0"
actions/ActionCartLoopHash bool "1"
actions/ActionDeleteResidue bool "1"
actions/ActionGlobalMinimize bool "1"
actions/ActionGlobalMinimizeSidechains bool "1"
actions/ActionIdealize bool "0"
actions/ActionIdealizeSS bool "1"
actions/ActionInsertCut bool "1"
actions/ActionInsertResidue bool "1"
actions/ActionLigandMMFF bool "0"
actions/ActionLocalMinimizePull bool "1"
actions/ActionLockCopy bool "0"
actions/ActionLockToggle bool "1"
actions/ActionPullSidechain bool "1"
actions/ActionRebuild bool "1"
actions/ActionRebuildPROTEIN bool "0"
actions/ActionRepack bool "1"
actions/ActionRepackDesign bool "1"
actions/ActionRotamerPicker bool "0"
actions/ActionSecStructFloatMenu bool "1"
actions/ActionShowBlueprintPanel bool "0"
actions/ActionShowNoteTool bool "0"
actions/ActionShowStructureTool bool "1"
actions/ActionStandaloneResetPuzzle bool "1"
actions/ActionThreadCut bool "1"
actions/ActionTweak bool "1"
actions/LIGANDVIEW bool "0"
actions/MinimizeNotes bool "0"
allow_extended_dofs bool "1"
allowed_macros "none"
backbone_locked reslist "1-22||31-66||"
banned_actions "ActionRebuild,ActionRebuildPROTEIN,ActionRepack,ActionRepackDesign,ActionGlobalMinimize,ActionGlobalMinimizeBackbone,ActionGlobalMinimizeJumps,ActionGlobalMinimizeSidechains,ActionLocalMinimize,ActionLocalMinimizePull,ActionTransform,ActionJumpWidget,ActionIdealize,ActionIdealizeSS"
building_block_cnstr_weight int "100"
can_delete reslist "186-201||216-259||"
can_delete_any_inserted bool "1"
can_design reslist "2||4-10||12-14||17-27||30-35||37-39||41-47||49-50||52-58||60-62||65-75||78-83||85-87||89||92||"
can_design_ligand reslist "92||"
can_design_ligand_reaction reslist "118||"
can_insert_after reslist "185-201||215-259||"
can_insert_before reslist "186-202||216-259||"
chain_cutpoint reslist "37||57||86||97||"
detect_disulfides bool "1"
enable_blueprint bool "1"
gui/disable_action_options_tab bool "1"
gui/disable_advanced_mode bool "1"
gui/disable_interface_switch bool "1"
gui/disable_pull_pie_menu bool "1"
gui/disable_save_load bool "0"
gui/disable_screenshot bool "0"
gui/disable_view_options bool "1"
gui/hide_main_menu_on_start bool "1"
gui/simple_undo bool "1"
gui/simplified_filter_display bool "0"
gui/start_with_selection_interface bool "1"
gui/use_new_bubble_format bool "0"
hide_aa_icons bool "1"
hide_constraints bool "1"
jump_locked reslist "1-126||"
max_actual_length int "259"
min_actual_length int "125"
move_tool_mode "segment"
notes reslist "1| Toggle the guide by opening up the View Options and changing Show Guide checkbox |5| Hint: Build secondary structures with the secondary structure tool [L] |19|Hint: Try using cutpoints here. |38|Hint: Try using cutpoints here |53| Toggle notes on/off using hotkey 1"
parent_pids int "2008925"
puzzle_setup "intro_standard"
residue_weights reslist "117|6.0|"
sidechain_locked reslist "1-185||203||206-207||210-211||214||"
sidechains_always_show reslist "1||4||"
use_cut_tool bool "1"
use_loop_hash bool "1"
use_rama_map bool "1"
user_cutpoint reslist "12||21||29||35||44||"
wiki_url "https://foldit.fandom.com/wiki/Intro_Puzzles/Close_the_Gap"


Advertisement