[Chimera-users] python and MD

Eric Pettersen pett at cgl.ucsf.edu
Mon Aug 8 11:45:13 PDT 2011

Hi Dan,
	You are correct that "coordset" can't go to a frame that hasn't been  
loaded yet.  Right now, only the MD Movie tool knows how to load a  
frame from a trajectory, therefore what you have to do is find the  
Python instance of the MD Movie interface and call its LoadFrame  
method.  So here's some code to do that:

def findMDMovie():
     # locate and return the newest instance
     # of MD Movie
     from Movie.gui import MovieDialog
     from chimera.extension import manager
     mdms = [inst for inst in manager.instances
                     if isinstance(inst, MovieDialog)]
     if not mdms:
         raise AssertionError("No MD Movie instances!")
     return mdms[-1]

mdm = findMDMovie()

	So, not too bad.  LoadFrame() will not only load the frame but will  
also go to that frame.  Let me know if you have more questions.


                         Eric Pettersen
                         UCSF Computer Graphics Lab

On Aug 7, 2011, at 11:14 AM, Daniel Gurnon wrote:

> Hi everyone,
> I have a question for the python experts:
> Suppose I have opened an MD trajectory using MD movie.
> I want a script that will capture images along the trajectory spaced  
> by user-defined timespans. Problem is, I don't know how to use a  
> script to go to a specific frame in MD movie. As I understand it,  
> coordset, as employed in the following example, requires the user to  
> first play through the entire trajectory. With a million frames,  
> that's not practical. Here's what I have so far, cobbled together  
> from examples and my own limited understanding of Python.
> ----------------------------
> from chimera import runCommand
> timestep=input ("How many picoseconds pass between frames?")
> spacing=input ("What spacing, in ps, do you want between structures?")
> start=input ("Which frame do you want to start with?")
> end=input ("What frame do you want to end with?")
> runCommand("coordset #0" + start)
> runCommand("focus")
> runCommand("copy file C:\Users\Dan\Desktop" + "\\" +start + ".png" +  
> " width 2000 width 2000 supersample 3")
> ----------------------------
> So in place of coordest, what could I use to jump to frames within  
> MD movie?
> And while I'm at it,
> How can I generically specify the desktop in a windows environment  
> (so that I could give this to a student and they wouldn't have to  
> change "Dan" in c:\users\Dan\Desktp")
> How can I change the filename for the image to reflect framenumber?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20110808/24f5fa65/attachment.html>

More information about the Chimera-users mailing list