Hi Ben, There is no mechanism for stopping a Chimera script (python or commands) in the middle. The planes.py script I gave you quickly finishes and the cycling through the planes is handled by the volume dialog which uses a timer to periodically update the plane being displayed. Running the script a second time tells the volume dialog to cancel that timer. Tom Benoit Zuber wrote:
Thanks very much Tom, it works fine! In this case, I understand that opening the script a second time stops the loop.
In a more general case, once a script has started, how can I interrupt it before it ends?
Cheers, Ben On Mon, 2008-10-27 at 14:54 -0700, Thomas Goddard wrote:
Oops! Forgot to attach the script described in the previous email. Here it is.
Tom
Tom Goddard wrote:
Hi Ben,
The current Chimera daily builds have a more flexible volume plane cycling interface. In the planes panel it now has a switch
Cycle through [20] planes at speed [30]
It lets you play through a specified number of planes centered on the currently shown plane. You start it by clicking a switch and stop it the same way. There is no control to stop after N planes, and the initial direction of play is the same as when you last stopped playback.
There is currently no Chimera command equivalent which would obviously be handy for making movies. I've attached a Python script which can be used with Chimera commands (example given in script) to control exactly which frames to show in a movie. Note that the frame rate is only relevant for real-time cycling in Chimera. Movie recording captures every new frame no matter how slow they are rendered and plays in a movie player at 25 frames per second (adjustable with a movie encode command option). Chimera movie recording capabilities are very limited now but it is an area we intend to improve.
Tom
Benoit Zuber wrote:
Hi,
I have got some questions regarding plane display of volumes: Is there a way to cycle through a limited range of planes? For example if the thickness of my volume is 300, is it possible to cycle from z = 100 to z = 120, instead of from z = 0 to z = 299?
Is there a way to make the cycling through the planes start in the other direction than when it stopped last time? For example, I click stop while the display is cycling from low z value to high z value. If I then click start, the display is going to cycle again from low to high z value but I would like it to cycle from high to low z value.
Is it possible to specify a starting plane and an end plane, and to have the display going from the starting plane to the end plane only once (without cycling)?
Finally, can all of this be specified through the command line?
Cheers, Ben
BenoƮt Zuber MRC Laboratory of Molecular Biology Hills Road Cambridge CB2 0QH United Kingdom +44 1223 402209 bzuber@mrc-lmb.cam.ac.uk
_______________________________________________ Chimera-users mailing list Chimera-users@cgl.ucsf.edu http://www.cgl.ucsf.edu/mailman/listinfo/chimera-users
_______________________________________________ Chimera-users mailing list Chimera-users@cgl.ucsf.edu http://www.cgl.ucsf.edu/mailman/listinfo/chimera-users
plain text document attachment (planes.py) # ----------------------------------------------------------------------------- # Start or stop volume plane display. Useful for making a movie that steps # through data planes. Example Chimera command sequence to make movie # showing 10 planes starting at plane 47 of a 2048x2048x100 data set. # # volume #0 region 0,0,47,2047,2047,47 # cd /location/of/planes/script # movie record supersample 3 # open planes.py ; wait 10 ; open planes.py # movie stop # movie encode output planes.mov # from VolumeViewer.volumedialog import volume_dialog p = volume_dialog().plane_panel if p.cycle_planes.get(): p.cycle_planes.set(False) # Stop playback. else: # p.axis.set(p.axis_names[2]) # Set plane axis 0 is x, 1 is y, 2 is z # p.plane.set(50) # Set starting plane number (0,1,2...) p.play_direction = 1 # Forward. Use -1 for backward play. p.cycle_planes_count.set(100000) # Reverse direction after N planes. p.cycle_frame_rate.set(30) # Maximum frames per second. p.cycle_planes.set(True) # Start playback.