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)