Hi Martin,

  Thanks for the script.  This is something others have requested.  So I added it to Chimera today, in tonight's daily builds.  

volume #0 encloseVolume 150000

Uses bisection of the density value until the enclosed volume differs from the target volume by less than 1e-5 of the target volume. Uses at most 30 bisection steps.  Can set the level for multiple maps at once

volume #0-5 encl 250000

Can specify multiple volume values to get multiple surfaces, for example

volume #0 enclose 150000,300000

The enclosed volume is in cubic Angstroms if your map grid spacing is in Angstroms.  You can report the current enclosed volume with the "measure volume" command

measure volume #0

Thanks for figuring out code to do this.  I used a slight variation of what you did.

  Tom



On Nov 23, 2013, at 8:41 AM, Martin Turk  wrote:

Hi,

added another step for fine tunning and reduced number of steps, now it works much faster. Maybe there is a better way of doing the threshold steps. I overshoot up, down then up again, but it works :)

Best,
Martin



On 23.11.2013 16:29, Martin Turk wrote:
Hi Shawn, Tom, Eric,

thanks a lot for the help and for pointing me in the right direction. Finally I had some time and I've come up with a script that adjusts the volume level threshold from the active model to all opened models. For one model it's not a problem, but when one wants to adjust the levels for a series of volumes (for example after a 3d classification run in relion), it becomes cumbersome to do so for the ~50 models/run. Maybe other EM users find it handy, that's why I'd like to share it.
It took me quite some time to find the right functions, which do the actual measurement. Got lost in the OpenModels.h, volume.py, volumedialog.py, and the gui scripts. The rest was easy :-) Thanks again for your help!

Best,
Martin Turk

Beckmann Lab
LMU Gence Center Munich


On 18.11.2013 20:49, Eric Pettersen wrote:
To supplement Shawn and Tom's answers, obviously it would be best if everything were documented, but in the absence of that if there is a command that implements something similar to what you want to do, you can chase it down in the code base by:

a) looking at Midas/__init__.py and see if it's one of the functions in there (they're arranged approximately alphabetically by command name), and if it's not in there…
b) grep share/*/ChimeraExtension.py for the command name to find which module defines the command.  Then look in that module's ChimeraExtension.py to see what file/method in the module implements the command.

--Eric

Eric Pettersen
UCSF Computer Graphics Lab

On Nov 18, 2013, at 9:06 AM, Shawn Waldon <swaldon@cs.unc.edu> wrote:

Hi Martin,

I am not aware that there is a python library reference.  If there is, I would appreciate a pointer to it as well.  Here are a few links I have found helpful when writing python code for Chimera:

This shows how to execute command line commands, it may be what you want:
http://www.cgl.ucsf.edu/chimera/data/downloads/1.8/docs/ProgrammersGuide/basicPrimer.html

This goes through how to make plugins and such, but is helpful since the examples show more of the API:

HTH,
Shawn Waldon


On Mon, Nov 18, 2013 at 9:10 AM, Martin Turk <turk@lmb.uni-muenchen.de> wrote:
Hi,

I am trying to write a simple python script that will iterate over opened volumes and adjust the contour level to a certain mass. This shouldn't be more than ~10 lines. However, I can't find chimera's python library reference to look up the class structure and operator names.

Does someone know how, for example, set volume level to 0.01 would look like in python?
in the command line it would be for all models: volume #0-99 level 0.01

for models I've found chimera.openModels and then you can list over them, but that's about it.

Thanks,
Martin Turk
_______________________________________________
Chimera-dev mailing list
Chimera-dev@cgl.ucsf.edu
http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev



--
Shawn Waldon
Graduate Research Assistant
Department of Computer Science
University of North Carolina at Chapel Hill
_______________________________________________
Chimera-dev mailing list
Chimera-dev@cgl.ucsf.edu
http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev



<chimera-volbymass3.py>