Opened 7 years ago

Closed 6 years ago

#1855 closed defect (fixed)

Can't set 'vertices' attribute on Drawing

Reported by: sean.connell@… Owned by: Conrad Huang
Priority: normal Milestone:
Component: Tool Shed Version:
Keywords: Cc: Tom Goddard, Tristan Croll
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-3.10.0-957.10.1.el7.x86_64-x86_64-with-centos-7.6.1810-Core
ChimeraX Version: 0.8 (2018-12-17)
Description
load ISOLDE

Log:
Startup Messages  
---  
warning | 'clip' is a prefix of an existing command 'clipper'  
note | available bundle cache has not been initialized yet  
  
UCSF ChimeraX version: 0.8 (2018-12-17)  
How to cite UCSF ChimeraX  

> toolshed show ISOLDE

Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/toolshed/info.py", line 579, in start_tool  
ti = api._api_caller.start_tool(api, session, self, tool_info)  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/toolshed/__init__.py", line 1188, in start_tool  
return cls._get_func(api, "start_tool")(session, ti.name)  
File "/home/CICBIOGUNE/sconnell/.local/share/ChimeraX/0.8/site-
packages/chimerax/isolde/__init__.py", line 29, in start_tool  
return tools.get_singleton(session, ISOLDE_ToolUI, 'ISOLDE', create=True)  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-packages/chimerax/core/tools.py",
line 214, in get_singleton  
tinst = tool_class(session, tool_name, **kw)  
File "/home/CICBIOGUNE/sconnell/.local/share/ChimeraX/0.8/site-
packages/chimerax/isolde/tool.py", line 166, in __init__  
self.isolde = isolde.Isolde(self)  
File "/home/CICBIOGUNE/sconnell/.local/share/ChimeraX/0.8/site-
packages/chimerax/isolde/isolde.py", line 310, in __init__  
self.omega_validator = validation.OmegaValidator(self._annotations)  
File "/home/CICBIOGUNE/sconnell/.local/share/ChimeraX/0.8/site-
packages/chimerax/isolde/validation.py", line 687, in __init__  
self._initialize_drawings()  
File "/home/CICBIOGUNE/sconnell/.local/share/ChimeraX/0.8/site-
packages/chimerax/isolde/validation.py", line 708, in _initialize_drawings  
d.vertices = numpy.zeros([0,3],numpy.float32)  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/graphics/drawing.py", line 228, in __setattr__  
super(Drawing, self).__setattr__(key, value)  
AttributeError: can't set attribute  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-packages/chimerax/ui/gui.py", line
941, in <lambda>  
run(ses, "toolshed show %s" % quote_if_necessary(tool_name)))  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/commands/run.py", line 31, in run  
results = command.run(text, log=log)  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/commands/cli.py", line 2587, in run  
result = ci.function(session, **kw_args)  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/commands/toolshed.py", line 337, in toolshed_show  
bi.start_tool(session, tool_name)  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/toolshed/info.py", line 585, in start_tool  
"start_tool() failed for tool %s in bundle %s:\n%s" % (tool_name, self.name,
str(e)))  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool ISOLDE in
bundle ChimeraX-ISOLDE:  
can't set attribute  
  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool ISOLDE in
bundle ChimeraX-ISOLDE:  
can't set attribute  
  
File "/opt/UCSF/ChimeraX/lib/python3.6/site-
packages/chimerax/core/toolshed/info.py", line 585, in start_tool  
"start_tool() failed for tool %s in bundle %s:\n%s" % (tool_name, self.name,
str(e)))  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 418.56
OpenGL renderer: Quadro K4000/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Change History (7)

comment:1 by Eric Pettersen, 7 years ago

Cc: Tom Goddard added
Component: UnassignedThird Party
Owner: set to Tristan Croll
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionCan't set 'vertices' attribute on Drawing

comment:2 by Tom Goddard, 7 years ago

Tristan needs to use Drawing.set_geometry(vertices, normals, triangles) in ISOLDE, not drawing.vertices = v. This was a change in ChimeraX made about 6 months ago. The reason is that the vertices, normals and triangles have to be all consistent with each other. By setting only the vertices it is very easy to make them inconsistent, for instance, where the triangle array points beyond the end of the new vertex array. In the rare case where you really just want to move the vertices and keep the triangles the same, you would call d.set_geometry(vertices, normals, d.triangles).

in reply to:  3 ; comment:3 by tic20@…, 7 years ago

I’m not sure what’s happening here - I think the ToolShed may have fed the user the wrong version of ISOLDE? This error doesn’t occur in the 1.0b2 release. In any case, I’ve given him the links to my latest dev builds, and those are working fine.


 


comment:4 by Tristan Croll, 6 years ago

Cc: Tristan Croll added
Component: Third PartyTool Shed
Owner: changed from Tristan Croll to Conrad Huang

Looking at the ToolShed download statistics for the last few weeks, it appears this is arising from the changes introduced by #1787. The ToolShed now shows two download/install links for each platform: the last "number only" version, and the last version with a non-numeric string in its ID. This means that in ChimeraX 0.8, the first "Install" button the user now sees for ISOLDE points to version 0.9.24, which dates all the way back to ChimeraX 0.5 (around last February). About half of all downloads since that change was made have been 0.9.24, with the remainder being 1.0b2. The only thing I could do to remedy this from my end would be to make an official 1.0 release, but I'm not going to be in a position to do that for quite some time yet.

comment:5 by Conrad Huang, 6 years ago

I'm not clear what you want users to do. When should any user download 0.9.24? If the answer is never, then I suggest rebranding the current 1.0b2 as 0.9.25 and move forward with the next beta of 1.0b3. If the answer is not "never", then shouldn't it be displayed the way it is now?

in reply to:  6 ; comment:6 by tic20@…, 6 years ago

Users should never be downloading 0.9.24 any more. I guess rebranding 1.0b2 as 0.9.25 is a possible solution, but that’s (a) going to be somewhat confusing to existing users, and (b) not something I think I’m able to do - I believe the ToolShed only allows me to upload a new wheel if it has a version number higher than the last.

Until we can get this sorted out, would it be feasible to roll back to the old ToolShed scheme with a single install/download link for each platform?
 

 


comment:7 by Conrad Huang, 6 years ago

Resolution: fixed
Status: assignedclosed

All the old versions of ISOLDE/Clipper have been removed and the latest toolshed code should select the correct one for the user's platform.

Note: See TracTickets for help on using tickets.