Jmol/Interactivity
Interactive Jmol elementsSome pages contain buttons, radio buttons and other elements that allow the reader to manipulate the 3D Jmol scene by clicking on them. ButtonThis 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]. LinkYou 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 boxThis 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 buttonPlease 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 orientationThis 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 viewHere 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;}}
|
|
AdvantagesAdvantages
The commands issued by these interactive elements are in effect immediately, i.e. without delay. You could accomplish the same effect by saving a separate 3D scene, but this will always have a loading delay. The effect is that "playing" with interactive elements is much more immediate than switching between green links.
CaveatsCaveats
The commands will be issued to the Jmol window irrespective of what is shown there. If you click on a green link elsewhere and then try the buttons etc, the effect is unpredictable. You can try this here by using the interactive elements before clicking on the button that loads the lysozyme structure. If you do that, the commands associated with the interactive elements will act on the UvrB structure instead.