> So there is no way to run and control PyMol from within 
> another python program?

If PYMOL_PATH, LD_LIBRARY_PATH, and TCL_LIBRARY are correctly defined, then you 
can launch PyMOL from an external Python program as shown in 
examples/devel/start_pymol.py.  

However, this is not recommended because the PyMOL launch sequence is not 
fixed.  If you do use it, be prepared to deal with changes down the road. 

> The reason for asking is that we are working on a python platform to 
> run and evaluate protein-protein docking calculations. It would be a 
> nice feature to be able to call up interaction surfaces and 
> protein-protein clusters for display  in PyMol and then interact with 
> them from within our program.

> As things are now I'm forced to treat PyMol as I would treat any 
> molecular graphics program, that is write macros macros for it. This 
> is of course much less convenient and less flexible compared to 
> running PyMol from within our python code.

> Has anyone been able to run and quit PyMol from within python without 
> killing the interpreter? Is it possible? How?

The underlying source of the limitation here is that the GLUT and Tcl/Tk 
libraries which PyMOL uses do not support repeated set-up/take-down -- they are 
both static "global" systems which steal threads and never return.  Thus, while 
PyMOL is not inherently limited in this fashion, these building blocks which it 
employs are.  Eventually there will be versions of PyMOL which are both GLUT 
and TCL/Tk independent -- but not today.

Instead, I recommend using some kind of inter-process communication along with 
object serialization to pass data from your program into PyMOL.  Python makes 
this relatively easy, but you are looking at a little bit of development.

Sorry the news isn't better!

Warren







Reply via email to