Hi Rakesh,

  Here are the commands you were running (I would usually write those to a file with suffix ".cxc" and have ChimeraX open that file, makes it easier to debug).  The error is because the volume surface is not created until it is displayed.  And in a script nothing will be displayed until the end unless you put it a command to display it.  So add a "wait 1" command before the "color zone #3..." command.  The "wait 1" command means draw one frame and that will cause the surface to be computed.

  Maybe the "wait 1" is not needed.  It looks like your script on line 8 is showing the volume #1 as a surface when really you want show volume #3 as a surface.  Maybe if you change that to #3 it will make the surface without rendering.

open ../emmaps/emd_5584.mrc
volume #1 originIndex 0,0,0
save ../emmaps/emd_5584_cen.mrc
open 3j31_A.pdb
move 701.4400024414062,701.4400634765625,701.4400024414062 model #2
save 3j31_A_cen.pdb model #2
open ../emmaps/emd_5584_cen.mrc
volume #1 region all style surface level 0.05
open 3j31_A_cen.pdb
color #4/A blue
color zone #3 near #4/A distance 5.0 sharpEdges true
volume splitbyzone #3
save ../emmaps/emd_5584_seg.mrc #5.2

   Tom


On Feb 21, 2022, at 8:23 PM, Rakesh Ramachandran via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:

Hi Tom,

   I tried your suggestion however I still get this error message.

ChimeraX --nogui --exit --silent --cmd 'open ../emmaps/emd_5584.mrc; volume #1 originIndex 0,0,0; save ../emmaps/emd_5584_cen.mrc; open 3j31_A.pdb; move 701.4400024414062,701.4400634765625,701.4400024414062 model #2; save 3j31_A_cen.pdb model #2; open ../emmaps/emd_5584_cen.mrc; volume #1 region all style surface level 0.05; open 3j31_A_cen.pdb; color #4/A blue; color zone #3 near #4/A distance 5.0 sharpEdges true; volume splitbyzone #3; save ../emmaps/emd_5584_seg.mrc #5.2'
Traceback (most recent call last):
  File "/home/rakesh/WORK/Softwares/Molecular_Visualizers/chimerax/lib/python3.9/site-packages/ChimeraX_main.py", line 713, in init
    run(sess, cmd)
  File "/home/rakesh/WORK/Softwares/Molecular_Visualizers/chimerax/lib/python3.9/site-packages/chimerax/core/commands/run.py", line 38, in run
    results = command.run(text, log=log, return_json=return_json)
  File "/home/rakesh/WORK/Softwares/Molecular_Visualizers/chimerax/lib/python3.9/site-packages/chimerax/core/commands/cli.py", line 2897, in run
    result = ci.function(session, **kw_args)
  File "/home/rakesh/WORK/Softwares/Molecular_Visualizers/chimerax/lib/python3.9/site-packages/chimerax/std_commands/color.py", line 1319, in color_zone
    raise UserError('color zone: No surfaces specified.')
chimerax.core.errors.UserError: color zone: No surfaces specified.

What I am trying to do here is to change the originIndex to 0,0,0 for the original map, then move the original fitted pdb structure according to the shifted map, color the fitted pdb and use volume splitbyzone to segment the map. Let me know if I am doing something wrong here, the whole chimera command is printed above.

Also when I segment the map and save it, the box size is equal to the original map, is there a way I can resize it and keep it cubic, probably with the box size equal to the longest dimension of the segmented map. 

On Fri, Feb 18, 2022 at 8:20 PM Tom Goddard <goddard@sonic.net> wrote:
Hi Rakesh,

  ChimeraX displays just a single plane when you open a map file larger than 256 Mvoxels -- often the situation for electron microscopy tomograms, for example a 2048 by 2048 by 100 map (400 Mvoxels), but also for large electron microscopy single particle reconstructions, e.g. 800 x 800 x 800 (512 Mvoxels).  Maps larger than 16 Mvoxels will not be shown at full resolution (step 1), instead the step size will be chosen to only display at most 16 Mvoxels when the map is first opened, again to improve load speed for common interactive use cases.

  So if you are writing a script and need the full map shown always include a volume command to assure it is shown how you want, for example to show all planes,

        volume #1 region all style surface

or to assure it is shown at full resolution

        volume #1 step 1 region all style surface

and to make sure the threshold level is what you want you can specify it too

        volume #1 level 4.5 step 1 region all style surface

There are volume command options that set the 256 MVoxel limit for planes (option name "voxelLimitForPlane") and 16 MVoxel full resolution limit (option name "voxelLimit") that you can use to change the default for the current session, but unfortunately ChimeraX currently does not offer a way to save new default values.

  These are all documented

        https://www.cgl.ucsf.edu/chimerax/docs/user/commands/volume.html#sampling

  Tom


> On Feb 18, 2022, at 12:47 PM, Rakesh Ramachandran <rakeshramachandran10@gmail.com> wrote:
>
> Hi Tom,
>
>    I am trying to segment volume using 'volume splitbyzone' in ChimeraX for a large number of maps. But what I observed is that some of the maps are displayed as planes instead of surfaces and this affects the volume splitbyzone command.
>
>   I tried using 'volume style surface' but it doesn't seem to work unless I manually set it in the GUI. What option do I use to generate surfaces for map volumes automatically from the command line in such cases?
>
> --
> Regards
> Rakesh Ramachandran
> Postdoctoral Scholar
> Department of Bioengineering and Therapeutic Sciences
> University of California, San Francisco
> Byers Hall Room 501
> 1700 4th Street
> San Francisco, CA  94143, USA



--
Regards
Rakesh Ramachandran
Postdoctoral Scholar
Department of Bioengineering and Therapeutic Sciences
University of California, San Francisco
Byers Hall Room 501
1700 4th Street
San Francisco, CA  94143, USA
Mob No: +1 415-489-8017
_______________________________________________
ChimeraX-users mailing list
ChimeraX-users@cgl.ucsf.edu
Manage subscription:
https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users