Opened 5 years ago

Closed 5 years ago

#3623 closed defect (duplicate)

ISOLDE: cannot import name 'save' from 'chimerax.core.commands'

Reported by: td373@… Owned by: Tristan Croll
Priority: normal Milestone:
Component: Third Party Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-4.15.0-91-generic-x86_64-with-debian-stretch-sid
ChimeraX Version: 1.0 (2020-06-04 23:15:07 UTC)
Description
I'm trying to save my model after fixing the geometry with isolde. When I click 'save current model as' and fill in a name, then hit save, I get the following error:

ImportError: cannot import name 'save' from 'chimerax.core.commands' (/opt/em/chimerax-1.0/lib/python3.7/site-packages/chimerax/core/commands/__init__.py)

File "/home/td373/.local/share/ChimeraX/1.0/site-packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file
from chimerax.core.commands import save

See log for complete Python traceback.

Any feedback would be much appreciated

Log:
Startup Messages  
---  
note | available bundle cache has not been initialized yet  
  
UCSF ChimeraX version: 1.0 (2020-06-04)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  
Some installed bundles are out of date. Please update the following bundles:

  * UI to version 1.2.1 (currently 1.0)
  * UI to version 1.2 (currently 1.0)

  

> open
> /mnt/raid0/td373/PNPase_model_refinements/PNP_ETS_Hfq/manual_Corr_refmac5_1.pdb

manual_Corr_refmac5_1.pdb title:  
\--- [more info...]  
  
Chain information for manual_Corr_refmac5_1.pdb #1  
---  
Chain | Description  
D | No description available  
E F | No description available  
I J | No description available  
K | No description available  
L | No description available  
N | No description available  
O | No description available  
P | No description available  
  

> hide atoms

> show cartoons

> ui tool show ISOLDE

> set selectionWidth 4

manual_Corr_refmac5_1.pdb title:  
\--- [more info...]  
  
Chain information for manual_Corr_refmac5_1.pdb  
---  
Chain | Description  
1.2/D | No description available  
1.2/E 1.2/F | No description available  
1.2/I 1.2/J | No description available  
1.2/K | No description available  
1.2/L | No description available  
1.2/N | No description available  
1.2/O | No description available  
1.2/P | No description available  
  
Done loading forcefield  

> open /mnt/raid0/td373/PNPase_model_refinements/PNP_ETS_Hfq/State1.mrc

Opened State1.mrc, grid size 300,300,300, pixel 1.07, shown at level 0.224,
step 2, values float32  

> volume #2 level 0.4342

> volume #2 step 1

> volume #2 level 0.4779

> volume #2 style mesh

> volume #2 style surface

> lighting simple

> addh hbond true

Summary of feedback from adding hydrogens to manual_Corr_refmac5_1.pdb #1.2  
---  
warnings | Not adding hydrogens to /I ARG 66 CB because it is missing heavy-
atom bond partners  
Not adding hydrogens to /D LYS 47 CB because it is missing heavy-atom bond
partners  
Not adding hydrogens to /D ARG 66 CB because it is missing heavy-atom bond
partners  
Not adding hydrogens to /E ARG 19 CB because it is missing heavy-atom bond
partners  
Not adding hydrogens to /E VAL 68 CB because it is missing heavy-atom bond
partners  
2 messages similar to the above omitted  
notes | No usable SEQRES records for manual_Corr_refmac5_1.pdb (#1.2) chain D;
guessing termini instead  
No usable SEQRES records for manual_Corr_refmac5_1.pdb (#1.2) chain E;
guessing termini instead  
No usable SEQRES records for manual_Corr_refmac5_1.pdb (#1.2) chain F;
guessing termini instead  
No usable SEQRES records for manual_Corr_refmac5_1.pdb (#1.2) chain I;
guessing termini instead  
No usable SEQRES records for manual_Corr_refmac5_1.pdb (#1.2) chain J;
guessing termini instead  
5 messages similar to the above omitted  
Chain-initial residues that are actual N termini: /D ASP 9, /E GLN 8, /F GLN
8, /I SER 6, /J SER 6, /K LEU 7, /L MET 1, /N MET 1, /O MET 1, /P A 1  
Chain-initial residues that are not actual N termini:  
Chain-final residues that are actual C termini: /N ILE 689, /O GLN 695, /P U
50  
Chain-final residues that are not actual C termini: /D ALA 75, /E VAL 68, /F
VAL 68, /I VAL 68, /J VAL 68, /K VAL 68, /L THR 693  
1968 hydrogen bonds  
/D ALA 75 is not terminus, removing H atom from 'C'  
/E VAL 68 is not terminus, removing H atom from 'C'  
/F VAL 68 is not terminus, removing H atom from 'C'  
/I VAL 68 is not terminus, removing H atom from 'C'  
/J VAL 68 is not terminus, removing H atom from 'C'  
2 messages similar to the above omitted  
19752 hydrogens added  
  

> volume #1.1.1.1 level 0.3167

> volume #1.1.1.1 level 0.8695

> volume #1.1.1.1 level 0.7736

> volume #1.1.1.1 level 0.4541

> set bgColor white

> show H

> hide H

> clipper spotlight radius 13.00

> clipper spotlight radius 14.00

> clipper spotlight radius 15.00

> volume #1.1.1.1 level 0.4204

> ui mousemode right "contour level"

> volume #1.1.1.1 level 0.3615

> volume #1.1.1.1 level 0.3471

> volume #1.1.1.1 level 0.3141

> volume #1.1.1.1 level 0.5264

> volume #1.1.1.1 level 0.4653

> volume #1.1.1.1 level 0.4676

> volume #1.1.1.1 level 0.4387

> volume #1.1.1.1 level 0.5172

> volume #1.1.1.1 level 0.4826

> volume #1.1.1.1 level 0.4295

> volume #1.1.1.1 level 0.7441

> select up

42 atoms, 42 bonds, 1 model selected  
Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 2597, in _xtal_step_backward  
self._xtal_mask_to_atoms(sel, focus=False)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 2617, in _xtal_mask_to_atoms  
atoms, 0, context, cutoff, focus=focus)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/symmetry.py", line 973, in
isolate_and_cover_selection  
extra_padding=extra_padding)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/map_mgr.py", line 358, in cover_atoms  
zm.set_symmetry_map(atoms, transforms, transform_indices)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/mask_handler.py", line 111, in set_symmetry_map  
self.structure = self._unique_structure(atoms)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/mask_handler.py", line 177, in
_unique_structure  
raise TypeError('All atoms for zone mask must be from a single model!')  
TypeError: All atoms for zone mask must be from a single model!  
  
TypeError: All atoms for zone mask must be from a single model!  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/mask_handler.py", line 177, in
_unique_structure  
raise TypeError('All atoms for zone mask must be from a single model!')  
  
See log for complete Python traceback.  
  

> volume #1.1.1.1 level 0.8303

> volume #1.1.1.1 level 0.6616

> volume #1.1.1.1 level 1.023

> volume #1.1.1.1 level 0.6413

> volume #1.1.1.1 level 0.6495

> volume #1.1.1.1 level 0.8458

Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 2608, in _xtal_mask_to_selection  
self._xtal_mask_to_atoms(sel, focus)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 2617, in _xtal_mask_to_atoms  
atoms, 0, context, cutoff, focus=focus)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/symmetry.py", line 973, in
isolate_and_cover_selection  
extra_padding=extra_padding)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/map_mgr.py", line 358, in cover_atoms  
zm.set_symmetry_map(atoms, transforms, transform_indices)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/mask_handler.py", line 111, in set_symmetry_map  
self.structure = self._unique_structure(atoms)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/mask_handler.py", line 177, in
_unique_structure  
raise TypeError('All atoms for zone mask must be from a single model!')  
TypeError: All atoms for zone mask must be from a single model!  
  
TypeError: All atoms for zone mask must be from a single model!  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/maps/mask_handler.py", line 177, in
_unique_structure  
raise TypeError('All atoms for zone mask must be from a single model!')  
  
See log for complete Python traceback.  
  

> select up

42 atoms, 42 bonds, 1 model selected  

> select up

104 atoms, 104 bonds, 1 model selected  
Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 2596, in _xtal_step_backward  
sel = sh.stepper.step_backward()  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 74, in step_backward  
return self._step(direction=self.BACKWARD)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 81, in _step  
return self._step_generic(direction)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 104, in _step_generic  
first_index = indices[-overlap]  
IndexError: index -5 is out of bounds for axis 0 with size 0  
  
IndexError: index -5 is out of bounds for axis 0 with size 0  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 104, in _step_generic  
first_index = indices[-overlap]  
  
See log for complete Python traceback.  
  

> select clear

> select up

12 atoms, 11 bonds, 1 model selected  

> select up

19 atoms, 18 bonds, 1 model selected  

> select up

10656 atoms, 10730 bonds, 1 model selected  

> select down

19 atoms, 18 bonds, 1 model selected  
Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 2580, in _xtal_step_forward  
sel = sh.stepper.step_forward()  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 71, in step_forward  
return self._step(direction=self.FORWARD)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 81, in _step  
return self._step_generic(direction)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 104, in _step_generic  
first_index = indices[-overlap]  
IndexError: index -5 is out of bounds for axis 0 with size 0  
  
IndexError: index -5 is out of bounds for axis 0 with size 0  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/clipper/structurestepper.py", line 104, in _step_generic  
first_index = indices[-overlap]  
  
See log for complete Python traceback.  
  

> volume #1.1.1.1 level 0.8327

> volume #1.1.1.1 level 0.8897

> clipper spotlight radius 14.00

> clipper spotlight radius 13.00

> clipper spotlight radius 12.00

> clipper spotlight radius 11.00

> select clear

> select up

24 atoms, 23 bonds, 1 model selected  

> select up

116 atoms, 115 bonds, 1 model selected  

> select up

10594 atoms, 10668 bonds, 1 model selected  

> select up

39670 atoms, 40082 bonds, 1 model selected  
Fetching CCD ILE_LL from http://ligand-
expo.rcsb.org/reports/I/ILE_LL/ILE_LL.cif  
Fetching CCD ILE_LSN3 from http://ligand-
expo.rcsb.org/reports/I/ILE_LSN3/ILE_LSN3.cif  
Fetching CCD ILE_LEO2 from http://ligand-
expo.rcsb.org/reports/I/ILE_LEO2/ILE_LEO2.cif  
Fetching CCD ILE_LFZW from http://ligand-
expo.rcsb.org/reports/I/ILE_LFZW/ILE_LFZW.cif  
Fetching CCD GLN_LL from http://ligand-
expo.rcsb.org/reports/G/GLN_LL/GLN_LL.cif  
Fetching CCD GLN_LSN3 from http://ligand-
expo.rcsb.org/reports/G/GLN_LSN3/GLN_LSN3.cif  
Fetching CCD GLN_LEO2 from http://ligand-
expo.rcsb.org/reports/G/GLN_LEO2/GLN_LEO2.cif  
Fetching CCD GLN_LFZW from http://ligand-
expo.rcsb.org/reports/G/GLN_LFZW/GLN_LFZW.cif  
Fetching CCD ORN from http://ligand-expo.rcsb.org/reports/O/ORN/ORN.cif  
Deleted the following atoms from residue A P1: H, OP1  

> select up

34 atoms, 36 bonds, 1 model selected  

> select up

1610 atoms, 1744 bonds, 1 model selected  

> select up

39674 atoms, 40086 bonds, 1 model selected  

> volume #1.1.1.1 level 0.8897

> volume #1.1.1.1 level 0.6329

> select up

17 atoms, 16 bonds, 1 model selected  

> volume #1.1.1.1 level 0.4977

Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1165, in _save_cif_file  
self.save_cif_file(self._selected_model, filename)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1165, in _save_cif_file  
self.save_cif_file(self._selected_model, filename)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1165, in _save_cif_file  
self.save_cif_file(self._selected_model, filename)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
  
See log for complete Python traceback.  
  

> select #1

39674 atoms, 40086 bonds, 18 models selected  

> ~select #1.1

39674 atoms, 40086 bonds, 13 models selected  

> ~select #1.3

39674 atoms, 40086 bonds, 12 models selected  

> select #1

39674 atoms, 40086 bonds, 18 models selected  

> ~select #1.1

39674 atoms, 40086 bonds, 13 models selected  

> ~select #1.3

39674 atoms, 40086 bonds, 12 models selected  

> select #1.2

39674 atoms, 40086 bonds, 11 models selected  

> select #1.2

39674 atoms, 40086 bonds, 11 models selected  
Traceback (most recent call last):  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1165, in _save_cif_file  
self.save_cif_file(self._selected_model, filename)  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
ImportError: cannot import name 'save' from 'chimerax.core.commands'
(/opt/em/chimerax-1.0/lib/python3.7/site-
packages/chimerax/core/commands/__init__.py)  
  
File "/home/td373/.local/share/ChimeraX/1.0/site-
packages/chimerax/isolde/isolde.py", line 1177, in save_cif_file  
from chimerax.core.commands import save  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 440.33.01
OpenGL renderer: GeForce GTX 1080 Ti/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: System manufacturer
Model: System Product Name
OS: Ubuntu 16.04 xenial
Architecture: 64bit ELF
CPU: 12 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
Cache Size: 12288 KB
Memory:
	              total        used        free      shared  buff/cache   available
	Mem:            62G        8.5G        2.7G        411M         51G         53G
	Swap:           63G        6.2G         57G

Graphics:
	01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1)	
	Subsystem: eVga.com. Corp. Device [3842:6393]	
	Kernel driver in use: nvidia
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8

Change History (2)

comment:1 by pett, 5 years ago

Component: UnassignedThird Party
Owner: set to Tristan Croll
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionISOLDE: cannot import name 'save' from 'chimerax.core.commands'

Reported by Tom Dendooven

comment:2 by Tristan Croll, 5 years ago

Resolution: duplicate
Status: assignedclosed

Thanks for reporting this. The basic problem is that this button is effectively entirely obsolete (long since superseded by ChimeraX's own mechanisms), and I'd forgotten about it due to never using it myself. It'll be removed in the next release - just use the ChimeraX File/Save menu option, or the command "save {filename} #1" where the file extension can be .cif or .pdb.

Note: See TracTickets for help on using tickets.