Hi Folks:

Awhile ago I suggested using "hyperlinks" in powerpoint to call pymol in order to embed this in a presentation. The disadvantages of this are that it requires a lag for pymol startup time, powerpoint warns you about the possibility that you are opening a macrovirus with a warning that you can't turn off in preferences even though it claims you can (as if pymol, rather than a microsoft product, was the software that could be mistaken for a virus), etc.

I think someone already suggested running powerpoint from within pymol.

This in fact works FAR better. Here's how to do it in OS X, although I imagine it would be similar in other operating systems but with slightly different syntax.

First, define an alias, for example,

alias pymol /Applications/PyMOL/Darwin/pymol.com -q -e /Users/homedirectory/pymol/alias.pml

The -q and -e options give you a full screen that is blank. Here I tell it to read a file that contains further aliases in /Users/homedirectory/pymol/alias.pml


Second, divide your powerpoint presentations up into subsets that flank the positions in which you would want to insert a pymol-based demonstration. Save each of these as a powerpoint "show" or "package" with a .pps suffix. Check the option to show at full screen when opening. (Keep a normal ppt version for future edits, as saving in this format isn't readily reversible.)

Third, use the python os.system() command to open the powerpoint show file.

[The os.system() command lets you run any operating system command, program, shell script, etc, eg: os.system("date") runs the unix date command, which can be very handy if you are like me and don't know what day and time it is.]

On OS X you can use the open filename command as the equivalent of double-clicking a file to open it. I imagine there is something similar for windows but I don't know what it is.

Here is part of my /Users/homedirectory/pymol/alias.pml file to give an idea for how this is implemented:

alias 1, os.system("open /Users/wgscott/pymol/part_1/part_1.pps");
alias 2, @/Users/wgscott/pymol/low.pml;
alias 3, mstop; mclear; hide all; os.system("open /Users/wgscott/pymol/part_2/part_2.pps");
alias 4, @/Users/wgscott/pymol/high.pml


So when I invoke pymol at the command line using the above alias for pymol, I will get a black screen, blank, with the PyMOL> prompt at the bottom left.

If I issue 1 at the prompt, i.e.,

PyMOL>  1

Then the file /Users/wgscott/pymol/part_1/part_1.pps opens. This will go faster if powerpoint has already been started. Then powerpoint takes over the screen and I go through the powerpoint presentation to the end. At the end, the file spontaneously shuts and I am back to the pymol screen. I have to click on it (although would prefer a better way) and then I type in the screen 2, i.e.,

PyMOL>  2

and this runs another pymol script that plays a movie for me, /Users/wgscott/pymol/low.pml

When I am done, I type 3,

PyMOL>  3

and we are back to the second part of my powerpoint presentation. mstop; mclear; hide all; clears the screen and movie memory and then the next presentation is opened again and I can go through it. Upon termination, I get a blank pymol screen back, click on it, enter 4, and I am into my next pymol movie, scripted in high.pml

Both powerpoint and pymol remain open but in the background, so transition times are kept to a minimum.

 Bill




William G. Scott

Associate Professor
Department of Chemistry and Biochemistry
and The Center for the Molecular Biology of RNA
Sinsheimer Laboratories
University of California at Santa Cruz
Santa Cruz, California 95064
USA

phone:  +1-831-459-5367 (office)
               +1-831-459-5292 (lab)
fax:         +1-831-4593139  (fax)


Reply via email to