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()
mdm.LoadFrame(frameNumber)

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

                        Eric Pettersen
                        UCSF Computer Graphics Lab
                        http://www.cgl.ucsf.edu'

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?