Proteopedia:DIY:Macros: Difference between revisions

From Proteopedia
Jump to navigation Jump to search
Wayne Decatur (talk | contribs)
mNo edit summary
Wayne Decatur (talk | contribs)
mNo edit summary
Line 110: Line 110:
<jmol>
<jmol>
<jmolLink>
<jmolLink>
     <script>script /mc/ktheis.spt;peekaboo(HEM)</script>
     <script>script /mc/ktheis.spt;peekaboo('[HEM]')</script>
     <text>Hide Heme for a moment</text>
     <text>Hide Heme for a moment</text>
   </jmolLink>
   </jmolLink>
Line 121: Line 121:
<jmol>
<jmol>
<jmolLink>
<jmolLink>
     <script>script /mc/ktheis.spt;peekaboo(HEM)</script>
     <script>script /mc/ktheis.spt;peekaboo('[HEM]')</script>
     <text>Hide Heme for a moment</text>
     <text>Hide Heme for a moment</text>
   </jmolLink>
   </jmolLink>

Revision as of 06:40, 4 January 2021

Macros as a tool

Macros can be used in Proteopedia pages to call commonly used JSmol code. Macro functions can take parameters so that the code is general but can act on the specified item or items. Additional macros can be made.

This page is meant to be a resource for finding and using macros.


Defined Macros

Example #1: Calling a basic macro function

The currently listing of defined macro functions can be found at Proteopedia:Macros.

Using Macros

Integrating macro use into JSmol code is straightforward.

This example doesn't require any parameter to act. It causes the structure shown to 'bobble()'.

<jmol>
  <jmolButton>
    <script>script /mc/ktheis.spt;bobble()</script>
    <text>Start Bobbling</text>
  </jmolButton>
</jmol> <jmol>
  <jmolButton>
    <script>exit</script>
    <text>Stop Bobble</text>
  </jmolButton>
</jmol>

The bobble() button triggers the action. The other button uses exit to stop the looping bobble.

You can try the result here:


Example #2: Supply the macro a parameter

This example shows how to specify an item or items to act on by passing in a parameter. It is based on the 'Link' example at Jmol/Interactivity where the ligand 'blinks'.

Example code:

(<jmol>
  <jmolLink>
    <script>script /mc/ktheis.spt;blink('ligand')</script>
    <text>☼</text>
  </jmolLink>
</jmol>)

Doesn't seem to allow anything other than ligand!?!? Why doesn't 'HEM' or '[HEM]' work as the peekaboo example seems to indicate it should?!?!

You can try the result here:

To show ligand(s), click on the green sun symbol in the parentheses --> ()


Example #3: Another showing supplying the macro a parameter


Example code:

<jmol>
<jmolLink>
    <script>script /mc/ktheis.spt;peekaboo('[HEM]')</script>
    <text>Hide Heme for a moment</text>
  </jmolLink>
</jmol>

Doesn't seem to allow anything other than ligand!?!? Why doesn't 'HEM' or '[HEM]' work as the peekaboo example seems to indicate it should?!?! It seems to hide all ligands!??! I also tried peekaboo(HEM) and peekaboo([HEM])

You can try the result here:



Coding New Macros

Advanced users who want to code additional macros can get a flavor for the JSmol operating behind the scenes and ideas on how they'd code their own by examining the code for macros already available. To view an example go the Proteopedia:Macros page and note that examples such as the 'bobble()' example include notes on how you import it using script /mc/ktheis.spt. In particular note the /mc/ktheis.spt part after 'script'. That is the address of the script code stored at Proteopeida. Place that part after after http://proteopedia.org/wiki/ so you end up at http://proteopedia.org/wiki//mc/ktheis.spt where you can see the code for several defined macro functions.


Structure of myoglobin in complex with heme and oxygen

Drag the structure with the mouse to rotate

Proteopedia Page Contributors and Editors (what is this?)Proteopedia Page Contributors and Editors (what is this?)

Wayne Decatur