Opened 8 years ago

Closed 8 years ago

#763 closed defect (fixed)

undisplayed labels make everything really slow (and closing gives traceback?)

Reported by: Elaine Meng Owned by: Tom Goddard
Priority: major Milestone:
Component: Graphics Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

I don't know if the traceback is from the undisplayed labels, but I'm reporting both in this ticket since they occur with the same simple test case:

open 2gbp
hide
~cartoon
show ligand
la #1

... response time becomes very very slow. Maybe only the labels for the displayed subset of #1 should be created instead of all atoms of #1? Closing #1 at this point gives the traceback:

close
Traceback (most recent call last):
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/cmd_line/tool.py", line 178, in execute
cmd.run(cmd_text)
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/commands/cli.py", line 2395, in run
result = ci.function(session, kw_args)
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/commands/close.py", line 32, in close
m.close(cmodels)
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/models.py", line 403, in close
m.delete()
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/atomic/pbgroup.py", line 39, in delete
self.session.models.remove([self])
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/models.py", line 379, in remove
mlist.sort(key=lambda m: len(m.id), reverse=True)
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/models.py", line 379, in <lambda>
mlist.sort(key=lambda m: len(m.id), reverse=True)
TypeError: object of type 'NoneType' has no len()

TypeError: object of type 'NoneType' has no len()

File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/models.py", line 379, in
mlist.sort(key=lambda m: len(m.id), reverse=True)

See log for complete Python traceback.

If you wish to report this error, send mail to chimerax-bugs@… and describe what you were doing and include a copy of the contents of the log.

Error processing trigger "graphics update"
Traceback (most recent call last):
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/triggerset.py", line 126, in invoke
return self._func(self._name, data)
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/label/label3d.py", line 231, in _update_graphics_if_needed
ld._update_graphics()
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/label/label3d.py", line 357, in _update_graphics
self._position_label()
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/label/label3d.py", line 387, in _position_label
xyz = self.location()
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/label/label3d.py", line 416, in location
return self.atom.coord
File "/Users/chimera/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/chimerax/core/atomic/molc.py", line 67, in get_prop
cget(self._c_pointer_ref, 1, v_ref)
AttributeError: 'Atom' object has no attribute '_c_pointer_ref'

Change History (5)

comment:1 by Tom Goddard, 8 years ago

Fixed slow drawing with many hidden labels. The hidden labels were being repositioned to face the camera even when undisplayed.

The traceback appears to be a pseudobond group deletion bug unrelated to labels. I have not been able to reproduce that yet.

in reply to:  2 ; comment:2 by Elaine Meng, 8 years ago

Sorry about including that traceback.  Now I see that just opening and closing 2gbp does it.  Should I make a separate ticket assigned to Eric?

in reply to:  3 ; comment:3 by goddard@…, 8 years ago

I will fix the pseudobond group delete problem.  Should be quick.

in reply to:  4 ; comment:4 by pett, 8 years ago

Whatever your fix is, make sure 1bna also opens without error — that’s where the problematic change came from (it’s structure-based hydrogen bond group gets changed into a global pseudobond group).

—Eric


comment:5 by Tom Goddard, 8 years ago

Resolution: fixed
Status: assignedclosed

Decided to let Eric fix the pseudobond group delete problem, made new ticket #764, not sure what his code change from Friday to the PseudobondGroup delete() method was trying to do, so best if he resolve it.

Note: See TracTickets for help on using tickets.