Proteopedia:DIY:Macros: Difference between revisions
mNo edit summary |
m fix text |
||
(21 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
This page is meant to be a resource for finding and using macros. | This page is meant to be a resource for finding and using macros. | ||
<StructureSection load=' | <StructureSection load='1mbo' size='340' side='right' caption='Structure of myoglobin in complex with heme and oxygen' scene=''> | ||
==Defined Macros== | ==Defined Macros== | ||
The currently listing of defined macro functions can be found at [[Proteopedia:Macros]]. | The currently listing of defined macro functions can be found at [[Proteopedia:Macros]]. | ||
Line 15: | Line 14: | ||
Integrating macro use into JSmol code is straightforward. | Integrating macro use into JSmol code is straightforward. | ||
This example doesn't require any parameter to act. It causes the structure shown to 'bobble | |||
'''Example #1: Calling a simple macro function''' | |||
This example doesn't require any parameter to act. It causes the structure shown to 'bobble'. | |||
<!-- | <!-- | ||
<pre> | <pre> | ||
Line 29: | Line 31: | ||
</pre> | </pre> | ||
The <code><nowiki>bobble()</nowiki></code> part triggers the action. The <code><nowiki>exit</nowiki></code> ends the looping bobble.</ | The <code><nowiki>bobble()</nowiki></code> part triggers the action. The <code><nowiki>exit</nowiki></code> ends the looping bobble.<br/> | ||
You can try the result here: | You can try the result here: | ||
Line 59: | Line 61: | ||
</pre> | </pre> | ||
The <code><nowiki>bobble()</nowiki></code> button triggers the action. The other button uses <code><nowiki>exit</nowiki></code> to stop the looping bobble.</ | The <code><nowiki>bobble()</nowiki></code> button triggers the action. The other button uses <code><nowiki>exit</nowiki></code> to stop the looping bobble.<br/> | ||
You can try the result here: | You can try the result here: | ||
Line 75: | Line 77: | ||
'''Example #2: | '''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#Link|Jmol/Interactivity]] where the ligand 'blinks'. | 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#Link|Jmol/Interactivity]] where the ligand 'blinks'. | ||
Line 81: | Line 83: | ||
Example code: | Example code: | ||
< | <pre> | ||
(<jmol> | (<jmol> | ||
<jmolLink> | <jmolLink> | ||
<script>script /mc/ktheis.spt;blink( | <script>script /mc/ktheis.spt;blink({HEM})</script> | ||
<text>☼</text> | <text>☼</text> | ||
</jmolLink> | </jmolLink> | ||
</jmol>) | </jmol>) | ||
</ | </pre> | ||
You can try the result here:<br/> | |||
You can try the result here: | To highlight the heme group, click on the green sun symbol in the parentheses --> (<jmol> | ||
To | |||
<jmolLink> | <jmolLink> | ||
<script>script /mc/ktheis.spt;blink( | <script>script /mc/ktheis.spt;blink({HEM})</script> | ||
<text>☼</text> | <text>☼</text> | ||
</jmolLink> | </jmolLink> | ||
</jmol>) | </jmol>) | ||
'''Example #3: Another showing supplying the macro a parameter''' | |||
Example code: | |||
<pre> | |||
<jmol> | |||
<jmolLink> | |||
<script>script /mc/ktheis.spt;peekaboo({HEM})</script> | |||
<text>Hide Heme for a moment</text> | |||
</jmolLink> | |||
</jmol> | |||
</pre> | |||
You can try the result here:<br/> | |||
<jmol> | |||
<jmolLink> | |||
<script>script /mc/ktheis.spt;peekaboo({HEM})</script> | |||
<text>Hide Heme for a moment</text> | |||
</jmolLink> | |||
</jmol> | |||
Line 105: | Line 128: | ||
==Coding New Macros== | ==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 <code><nowiki> script /mc/ktheis.spt</nowiki></code>. In particular note the <code><nowiki>/mc/ktheis.spt</nowiki></code> part after 'script'. That is the address of the script code stored at Proteopeida. Place that part after after <code><nowiki>http://proteopedia.org/wiki/</nowiki></code> so you end up at <code><nowiki>http://proteopedia.org/wiki//mc/ktheis.spt</nowiki></code> where you can see the code for several defined macro functions. | 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 <code><nowiki> script /mc/ktheis.spt</nowiki></code>. In particular note the <code><nowiki>/mc/ktheis.spt</nowiki></code> part after 'script'. That is the address of the script code stored at Proteopeida. Place that part after after <code><nowiki>http://proteopedia.org/wiki/</nowiki></code> so you end up at <code><nowiki>http://proteopedia.org/wiki//mc/ktheis.spt</nowiki></code> where you can see the code for several defined macro functions. Jmol's documentation for user-defined functions, that serve as the basis the use of macros on Proteopedia, can be found [https://chemapps.stolaf.edu/jmol/docs/#functionsuser-definedfunctions here]. | ||
</StructureSection> | </StructureSection> |