Interactive Jmol elements
Some pages contain buttons, radio buttons and other elements that allow the reader to manipulate the 3D Jmol scene by clicking on them.
Button
This button loads a different molecule and scene, and makes sure waters are hidden and zshade is turned off:
The following code was used to build the button and make it work:
<jmol>
<jmolButton>
<script>script /scripts/37/376372/Overall/3.spt;
hide water; set zshade off</script>
<text>Lysozyme</text>
</jmolButton>
</jmol>
As a shortcut, you can use a template that inserts the code for you by entering:
{{subst:Scene button|Lysozyme|37/376372/Overall/3|hide water; set zshade off}}
The string behind the first vertical line (the first parameter) is the button label, the string behind the second vertical line (the second parameter) is the scene like given by the SAT, and the string behind the third vertical line (the third parameter is the list of commands called right after the scene is loaded. Once you type this (or paste it) into the editor and save it, the code above will be inserted. You can learn more about templates at [1].
Link
You can associate a couple of commands with a green link (instead of the usual behavior of a green link to load a new scene). For example, the link below make parts of the structure "blink":
To show ligand(s), click on the sun symbol in the parentheses ()
(<jmol>
<jmolLink>
<script> select ligand; selectionHalos ON;
delay 0.5; selectionHalos OFF;</script>
<text>☼</text>
</jmolLink>
</jmol>)
As a shortcut for making a part of the structure "blink", you can use a template that inserts the code for you by entering:
{{subst:blink|ligand or ATP}}
Check box
This checkbox shows the ligand only when checked.
<jmol>
<jmolCheckbox>
<scriptWhenUnChecked>hide ligand or ATP or hidden
</scriptWhenUnChecked>
<scriptWhenchecked>hide hidden and not (ligand or ATP)
</scriptWhenchecked>
<checked>true</checked>
<text>ligand</text>
</jmolCheckbox>
</jmol>
Again, you can use a template to type less:
{{subst:Hide button|ligand or ATP|(ligand or ATP)}}
Radio button
Please load before trying out the radiobuttons.
This set of buttons selects one side chain to be shown (or none).
<jmol>
<jmolRadioGroup>
<item>
<script>select sidechain; spacefill off;
select sidechain and 35; spacefill on</script>
<text>Residue 35</text>
<checked>false</checked>
</item>
<item>
<script>select sidechain; spacefill off;
select sidechain and 52; spacefill on</script>
<text>Residue 52</text>
<checked>false</checked>
</item>
<item>
<script>select sidechain; spacefill off</script>
<text>No side chains</text>
<checked>true</checked>
</item>
</jmolRadioGroup>
</jmol>
Again, you can use a template to type less:
{{subst:Triple radiobutton
|Residue 35|select sidechain; spacefill off; select sidechain and 35; spacefill on
|Residue 52|select sidechain; spacefill off; select sidechain and 52; spacefill on
|No side chains|select sidechain; spacefill off}}
Before you use the template above, please remove the line breaks so that the entire command is on a single line, otherwise it does not work.
Buttons to store and retrieve orientation
This pair of buttons allows to save an orientation by pressing the first button, and return to the same orienation by pressing the second. Multiple pairs of these buttons allow to choreograph an animation and play it by pushing the buttons. The orientations are not saved beyond a session, though.
<jmol>
<jmolButton>
<script>view1 = script("show moveto")[11][0]</script>
<text>store view 1</text>
</jmolButton>
</jmol> <jmol>
<jmolButton>
<script>script inline @{"moveto 1.0" + view1}</script>
<text>retrieve view 1</text>
</jmolButton>
</jmol>
Again, you can use a template to type less:
{{subst:Store view buttons}}
For more than one view, just add another pair of buttons and change view1 to view2. For a more elaborate example how to use buttons to dock a ligand, see User:Karsten Theis/Animation course.
Button to choose a fixed orientation and view
Here is the . To zoom into different areas, use the two buttons below. The orientation and view are set manually and retrieved with the command "show moveto".
<jmol>
<jmolButton>
<script>moveto 1.0 { -953 -276 126 132.73} 305.9 0.0 0.0
{61.51899999999999 9.498000000000001 60.450250000000004}
66.2379949723743 {0 0 0} 0 0 0 3.0 0.0 0.0;</script>
<text>🔎DNA padlock</text>
</jmolButton>
</jmol>
Again, you can use a template to type less:
{{subst:Lookat button|ATP binding|1.0 { -905 -235 355 100.12}
535.03 0.0 0.0 {42.099225806451614 43.53887096774192 61.17029032258063}
68.42333343999844 {0 0 0} 0 0 0 3.0 0.0 0.0;}}