Opened 3 years ago

Closed 3 years ago

#7491 closed defect (fixed)

Make --cmd startup option behave like executing a script in its treatment of semi-colons

Reported by: christian.tueting@… Owned by: Tom Goddard
Priority: moderate Milestone:
Component: Input/Output Version:
Keywords: Cc: Elaine Meng
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Christian noted that the shell --cmd option in ChimeraX where several commands are given separated by semi-colons does not update volume surfaces between commands. This is because no graphics is rendered between the commands and the surface is only updated when it is drawn. In command scripts (.cxc files) the volumes are updated immediately. It would be good to change the the --cmd option so it treats those commands as a command script.

Here is Christian's original description of the problem on the ChimeraX mailing list:

From: Christian Tüting
Subject: [chimerax-users] Measure volume at multiple threshold levels not function
Date: August 17, 2022 at 3:54:40 AM PDT
To: <chimerax-users@cgl.ucsf.edu>

Dear ChimeraX-Team,

I have an issue with the volume measure tool. I would like to measure the volume at different thresholds.
Using the gui mode, I can type the following:

volume #1 level 1
measure volume #1
LOG: Enclosed volume for surface (#1.1) = 4.012e+06

volume #1 level 2
measure volume #1
LOG: Enclosed volume for surface (#1.1) = 2.144e+06

So this is functional in principle. But I would like to run this in no gui mode, so the commands are ";" seperated. 


But, even in gui mode, I got the following:

(threshold was set to 1 before executing)

volume #1 level 1; measure volume #1
LOG: Enclosed volume for surface (#1.1) = 4.012e+06

volume #1 level 2; measure volume #1
LOG: Enclosed volume for surface (#1.1) = 4.012e+06

So the threshold level is not applied, prior to the measurement of the volume. 

And this is the same in the no-gui mode. I would like to check the volume at 5 different levels, but I got always the same value when executing:

"/usr/libexec/UCSF-ChimeraX-daily/bin/ChimeraX --nogui --cmd 'open cryosparc_P42_J241_002_volume_map_sharp.mrc; volume #1 level 0.5; measure volume #1.1; volume #1 level 0.5; measure volume #1.1; volume #1 level 0.5; measure volume #1.1; volume #1 level 1; measure volume #1.1; volume #1 level 1; measure volume #1.1; volume #1 level 1; measure volume #1.1; volume #1 level 1.5; measure volume #1.1; volume #1 level 1.5; measure volume #1.1; volume #1 level 1.5; measure volume #1.1; volume #1 level 2; measure volume #1.1; volume #1 level 2; measure volume #1.1; volume #1 level 2; measure volume #1.1; volume #1 level 2.5; measure volume #1.1; volume #1 level 2.5; measure volume #1.1; volume #1 level 2.5; measure volume #1.1' --exit"


Is there any command, that the threshold level is somehow applied, and the measure volume is executed correctly?

The problem is present in
UCSF ChimeraX version: 1.4.dev202202240543
and
UCSF ChimeraX version: 1.5.dev202207221833

Best
Christian

Change History (1)

comment:1 by Tom Goddard, 3 years ago

Resolution: fixed
Status: assignedclosed

Fixed.

Made the commands given with the --cmd option run as if they are a script with immediate volume surface updates.

Note: See TracTickets for help on using tickets.