Back to Recipes Homepage
recipe picture
Recipe: CG303 GAB+EO V7.923
Your rating: None Average: 4.6 (19 votes)


Name: CG303 GAB+EO V7.923
ID: 46098
Created on: Tue, 05/21/2013 - 13:45
Updated on: Tue, 05/21/2013 - 20:45

General: A complete rework of my old script, object-oriented parameter-/variable-structure allowing more features. Manual is included. See script code for details.

This script detects "important"/"cardinal" segments, but only if there is a change in secondary structure. This means segment detection won't work nice on loop-only-puzzles, but you can add more segments by selection interface (blue), too! It is also able to detect locked (grey) segments.

New: Added a meta-dialog: The first dialog will allow you to select a couple of dialog-boxes if you want to change script parameters (= options). Check nothing, if you just want to start the script with default parameters.

Best For


Joined: 09/18/2009
Groups: SETI.Germany
Code as text...
Joined: 09/18/2009
Groups: SETI.Germany
Manual excerpt

Manual excerpt (for complete content, see script code):

1. introduction:
1.1 inspired by:
Cartoon Villain (GA idea & first random band script of this kind)
Rav3n_pl (OO parameter/variable handling)
jeff101 (EO & input-boxes idea)
Batz ( input-boxes layout)

1.2 idea:
-- further development of my last GAB+EO
i wrote this version from scratch to improve table handling & modularity
(coding did take 1 month,
testing, documenting & frontend did take another month!)

-- this script doesn't simply band to random segs,
it will create:
a list of "cardinal" origin segs (see
& connect them to target segs

-- origin segs:
-- are detected and/or set by user via selection interface (blue) before.
-- don't change (they are just turned off or on)

-- target segs:
-- do vary (see
-- they can be
-- each of uselist (see all except "random 2")
-- complete random (see "random 2")
-> this will avoid double banding

-- new idea is to keep the number of random band parameters as small as they can be:
the script works with 2 fixed band strengths (as the length is already random)
-- primary bands: do seg movement in space or relative to any other seg (depending on band mode)
-- secondary bands: do seg movement between proximate segs.
they can be used to stabilize or move internal puzzle structure,
so their job is supporting the primary bands with their major task

-- as i didn't want to overload the starting sequence
with too many input boxes & selectable vals (more than 7 boxes at the moment!).
-> you can set all vals (even the other) in the declaration section.

1.3 features:
-- cardinal seg auto-detection: (see
-- secondary-structure changes, amino-acids, etc will create a uselist
-- locked (grey) segs will be detected
-- and won't be used as origin segs
-- but used as target segs
++ selected (blue) segs via game interface can be used as origin segs, too

-- 3 breeding modes: (see 3.2)

-- 2 gene modes: (see

-- 6 banding modes (see 3.3)

++ further settings for each

1.4 known bugs/problems:
1.4.1 ligand puzzles:
-- are supported by script, but i couldn't test if it works properly!
-> to band ligand:
use band to "user", then slide to last segment!

1.4.2 locked (grey) puzzle segs:
-- will be detected & used as target segs only (see 1.3)
-- you have to select them, if they should be used as origin segs

1.5 more:
1.5.1 Further support:
In future, I will have some examinations (and to learn other programming languages),
so I won't have the time do care much about:
-- script extensions,
-- feature requests &
-- spelling mistakes (or other lingual issues, as I'm not a native English speaker)
I hope, the manual is complete in this way that it answers most questions.
Maybe some other scripters can help you if there is a minor problem
(setting default values etc).

1.5.2 "Frontend":
There are already many input-boxes for the most important values included in this script.
I neither wanted to write a full-automatic banding-robot (so I offered "a couple" of parameters)
nor to annoy anybody with tons of inputboxes.
But as long as we can't store files, we can change settings only:
-- via input dialog boxes or
-- by writing them directly into script code.

So it's up to you to choose, which parameters you change and in which way.
The strategy we choose is our human part in this game, the rest can ROSETTA do.
The script should be stable if you don't mess up vital things.
I tested it as good as I could with my limited internet-connection.

1.5.3 (default) Parameter customizing and uploading:
If you find useful puzzle-adapted settings or script changes, you are free to post them
(and your version of the script, too).
Maybe you can recommend some settings (useful banding modes, thresholds... well, some puzzle-related things).

Advice for coders/users with few experience:
-please- don't just unlock some "hidden" features
(e.g. by uncommenting some debugging functions or
just adding some "prints", making the script more verbose but nothing more)
and upload you personal customization as "reinvention of the wheel".
A car doesn't go faster if you put some racing-stickers on it ;)
For scripts, let's concentrate on functionality, the beauty will be found in good puzzle solutions.
If everybody would change the script's appearance, we won't be able to fish out functional code anymore.

I want the script to be kept modular and relatively universal
+ genetic, there are enough pure-random-band scripts already existing.
This means removing some of "vital" code is a bad idea, too
(apart from bug & performance fixes, of course).
So, if you do some changes and upload your script, please tell us what you did change ;)
(by posting the complete function section you did change, from "function" to "end")

If you want your own (personal) default values instead of using dialog-boxes,
use the declaration section to initialize them.
Most people who are able to fill out their annual tax declaration (especially those with business education),
should be able to modify some existing values in a complete script.
It's just putting "the right" numbers to "the right" position.

As changing the "fuse" batches (order & number of CIs, wiggles, shakes & mutates) is a more complex thing,
I will help you with this... but please help other users, too ;)

Want to try?
Add to Cookbook!
To download recipes to your cookbook, you need to have the game client running.





Developed by: UW Center for Game Science, UW Institute for Protein Design, Northeastern University, Vanderbilt University Meiler Lab, UC Davis
Supported by: DARPA, NSF, NIH, HHMI, Amazon, Microsoft, Adobe, Boehringer Ingelheim, RosettaCommons