relion
relion copied to clipboard
"nd3 spheres" layer disappears from napari when running Pick job in RELION 5
Describe your problem
When picking particles with spheres in napari, if no particles were picked in tomogram 1, then the n3d spheres
layer disappears when pressing ']' to view tomogram 2. The layer does not disappear if a sphere was defined in tomogram 1. It seems that it expects the user to define a sphere in every tomogram. The run.out
error message is more informative.
Environment:
- OS: Ubuntu 22.04.4 LTS
- MPI runtime: OpenMPI 4.1.2
- RELION version RELION-5.0-beta-3-commit-ad0c1f
- Memory: 512 GB
- GPU: RTX 3090
Job options:
- Full command (see
note.txt
in the job directory):
`which relion_python_tomo_pick` spheres --tilt-series-star-file Denoise/job015/tomograms.star --output-directory Picks/job033/ --pipeline_control Picks/job033/ && `which relion_python_tomo_get_particle_poses` spheres --tilt-series-star-file Denoise/job015/tomograms.star --annotations-directory Picks/job033/annotations --output-directory Picks/job033/ --spacing-angstroms 60 --pipeline_control Picks/job033/
Error message:
run.out
[0;31m---------------------------------------------------------------------------[0m
[0;31mValueError[0m Traceback (most recent call last)
File [0;32msrc/psygnal/_signal.py:1196[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1225[0m, in [0;36m_run_emit_loop_immediate[0;34m()[0m
File [0;32msrc/psygnal/_weak_callback.py:453[0m, in [0;36mcb[0;34m()[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/pick/spheres.py:69[0m, in [0;36mPickSpheresWidget.synchronise_annotator[0;34m(self=<tomography_python_programs.pick.spheres.PickSpheresWidget object>)[0m
[1;32m 68[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mremove([38;5;28mself[39m[38;5;241m.[39mpoints_layer)
[0;32m---> 69[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mviewer[49m[38;5;241;43m.[39;49m[43mlayers[49m[38;5;241;43m.[39;49m[43mremove[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mannotator[49m[38;5;241;43m.[39;49m[43msurface_layer[49m[43m)[49m
self.annotator [0;34m= <napari_threedee.annotators.spheres.annotator.SphereAnnotator object at 0x754b342d3460>[0m[0;34m
[0mself [0;34m= <tomography_python_programs.pick.spheres.PickSpheresWidget object at 0x754bc9f0c430>[0m[0;34m
[0mself.viewer.layers [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mself.annotator.surface_layer [0;34m= None[0m[0;34m
[0mself.viewer [0;34m= Viewer(camera=Camera(center=(134.25097504957012, 624.4804183213577, 472.5304129756257), zoom=1.6198914971997482, angles=(-19.093573125126735, 15.977671555947397, 137.60177770462866), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(138.31620318898487, 580.496436869052, 595.5458249047225), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=3, ndisplay=3, last_used=0, range=((0.0, 296.0, 1.0), (0.0, 1270.0, 1.0), (0.0, 952.0, 1.0)), current_step=(147, 634, 475), order=(0, 1, 2), axis_labels=('0', '1', '2')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'tomogram' at 0x754b844d82e0>], help='use <2> for transform', status={'layer_base': 'tomogram', 'source_type': '', 'plugin': '', 'coordinates': ' [138 580 596]'}, tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x754bd67603a0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'[': <bound method TomogramBrowserWidget.previous_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>, ']': <bound method TomogramBrowserWidget.next_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>})[0m
[1;32m 70[0m [38;5;28;01mtry[39;00m:
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/_collections_abc.py:1163[0m, in [0;36mMutableSequence.remove[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=None)[0m
[1;32m 1160[0m [38;5;250m[39m[38;5;124;03m'''S.remove(value) -- remove first occurrence of value.[39;00m
[1;32m 1161[0m [38;5;124;03m Raise ValueError if the value is not present.[39;00m
[1;32m 1162[0m [38;5;124;03m'''[39;00m
[0;32m-> 1163[0m [38;5;28;01mdel[39;00m [38;5;28mself[39m[[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mindex[49m[43m([49m[43mvalue[49m[43m)[49m]
self [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mvalue [0;34m= None[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230[0m, in [0;36mTypedMutableSequence.index[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=None, start=0, stop=None)[0m
[1;32m 228[0m [38;5;28;01mreturn[39;00m i
[0;32m--> 230[0m [38;5;28;01mraise[39;00m [38;5;167;01mValueError[39;00m(
trans [0;34m= <napari.utils.translations.TranslationBundle object at 0x754bddab8c70>[0m[0;34m
[0mvalue [0;34m= None[0m
[1;32m 231[0m trans[38;5;241m.[39m_(
[1;32m 232[0m [38;5;124m"[39m[38;5;132;01m{value!r}[39;00m[38;5;124m is not in list[39m[38;5;124m"[39m,
[1;32m 233[0m deferred[38;5;241m=[39m[38;5;28;01mTrue[39;00m,
[1;32m 234[0m value[38;5;241m=[39mvalue,
[1;32m 235[0m )
[1;32m 236[0m )
[0;31mValueError[0m: None is not in list
The above exception was the direct cause of the following exception:
[0;31mEmitLoopError[0m Traceback (most recent call last)
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:69[0m, in [0;36mTomogramBrowserWidget._on_tomogram_selection_change[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>)[0m
[1;32m 67[0m [38;5;28mself[39m[38;5;241m.[39mchanging_tomogram[38;5;241m.[39memit()
[1;32m 68[0m [38;5;28mself[39m[38;5;241m.[39mselected_tilt_series [38;5;241m=[39m [38;5;28mself[39m[38;5;241m.[39mtilt_series_list_widget[38;5;241m.[39mselected_tilt_series_in_view()
[0;32m---> 69[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_load_tomogram[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mselected_tilt_series[49m[38;5;241;43m.[39;49m[43mname[49m[43m,[49m[43m [49m[43madd_to_viewer[49m[38;5;241;43m=[39;49m[38;5;28;43;01mTrue[39;49;00m[43m)[49m
self [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
[1;32m 70[0m [38;5;28mself[39m[38;5;241m.[39m_preload_next_tomograms()
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:88[0m, in [0;36mTomogramBrowserWidget._load_tomogram[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>, tilt_series_id='AQB1tomo006', add_to_viewer=True)[0m
[1;32m 86[0m [38;5;28;01mdef[39;00m [38;5;21m_load_tomogram[39m([38;5;28mself[39m, tilt_series_id: [38;5;28mstr[39m, add_to_viewer: [38;5;28mbool[39m) [38;5;241m-[39m[38;5;241m>[39m [38;5;28;01mNone[39;00m:
[1;32m 87[0m [38;5;28;01mif[39;00m tilt_series_id [38;5;129;01min[39;00m [38;5;28mself[39m[38;5;241m.[39m_cache:
[0;32m---> 88[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_load_tomogram_from_cache[49m[43m([49m[43mtilt_series_id[49m[43m,[49m[43m [49m[43madd_to_viewer[49m[43m)[49m
add_to_viewer [0;34m= True[0m[0;34m
[0mtilt_series_id [0;34m= 'AQB1tomo006'[0m[0;34m
[0mself [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
[1;32m 89[0m [38;5;28;01mreturn[39;00m
[1;32m 90[0m denoised_tomogram_file [38;5;241m=[39m [38;5;28mself[39m[38;5;241m.[39mtilt_series[tilt_series_id][38;5;241m.[39mdenoised_tomogram_file
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:100[0m, in [0;36mTomogramBrowserWidget._load_tomogram_from_cache[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>, tilt_series_id='AQB1tomo006', add_to_viewer=True)[0m
[1;32m 98[0m [38;5;28;01mdef[39;00m [38;5;21m_load_tomogram_from_cache[39m([38;5;28mself[39m, tilt_series_id: [38;5;28mstr[39m, add_to_viewer: [38;5;28mbool[39m):
[1;32m 99[0m [38;5;28;01mif[39;00m add_to_viewer [38;5;129;01mis[39;00m [38;5;28;01mTrue[39;00m:
[0;32m--> 100[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_update_tomogram_in_viewer[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_cache[49m[43m[[49m[43mtilt_series_id[49m[43m][49m[43m)[49m
self [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m[0;34m
[0mself._cache [0;34m= {'AQB1tomo002': <class 'numpy.ndarray'> (296, 1270, 952) float32, 'AQB1tomo005': <class 'numpy.ndarray'> (296, 1270, 952) float32, 'AQB1tomo006': <class 'numpy.ndarray'> (296, 1270, 952) float32}[0m[0;34m
[0mtilt_series_id [0;34m= 'AQB1tomo006'[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:84[0m, in [0;36mTomogramBrowserWidget._update_tomogram_in_viewer[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>, tomogram=<class 'numpy.ndarray'> (296, 1270, 952) float32)[0m
[1;32m 75[0m [38;5;28;01melse[39;00m:
[1;32m 76[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39madd_image(
[1;32m 77[0m data[38;5;241m=[39mtomogram,
[1;32m 78[0m name[38;5;241m=[39mIMAGE_LAYER_NAME,
[0;32m (...)[0m
[1;32m 82[0m blending[38;5;241m=[39m[38;5;124m'[39m[38;5;124mtranslucent[39m[38;5;124m'[39m,
[1;32m 83[0m )
[0;32m---> 84[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_on_tomogram_loaded[49m[43m([49m[43m)[49m
self [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:108[0m, in [0;36mTomogramBrowserWidget._on_tomogram_loaded[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>)[0m
[1;32m 106[0m layer[38;5;241m.[39mplane[38;5;241m.[39mnormal [38;5;241m=[39m ([38;5;241m1[39m, [38;5;241m0[39m, [38;5;241m0[39m)
[1;32m 107[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mselection [38;5;241m=[39m [layer]
[0;32m--> 108[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mtomogram_changed[49m[38;5;241;43m.[39;49m[43memit[49m[43m([49m[43m)[49m
self.tomogram_changed [0;34m= <SignalInstance 'tomogram_changed' on <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>[0m[0;34m
[0mself [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32msrc/psygnal/_signal.py:1176[0m, in [0;36memit[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1213[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1196[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1225[0m, in [0;36m_run_emit_loop_immediate[0;34m()[0m
File [0;32msrc/psygnal/_weak_callback.py:453[0m, in [0;36mcb[0;34m()[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/pick/spheres.py:69[0m, in [0;36mPickSpheresWidget.synchronise_annotator[0;34m(self=<tomography_python_programs.pick.spheres.PickSpheresWidget object>)[0m
[1;32m 67[0m [38;5;28;01mif[39;00m [38;5;28mself[39m[38;5;241m.[39mpoints_layer [38;5;129;01mis[39;00m [38;5;129;01mnot[39;00m [38;5;28;01mNone[39;00m:
[1;32m 68[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mremove([38;5;28mself[39m[38;5;241m.[39mpoints_layer)
[0;32m---> 69[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mviewer[49m[38;5;241;43m.[39;49m[43mlayers[49m[38;5;241;43m.[39;49m[43mremove[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mannotator[49m[38;5;241;43m.[39;49m[43msurface_layer[49m[43m)[49m
self.annotator [0;34m= <napari_threedee.annotators.spheres.annotator.SphereAnnotator object at 0x754b342d3460>[0m[0;34m
[0mself [0;34m= <tomography_python_programs.pick.spheres.PickSpheresWidget object at 0x754bc9f0c430>[0m[0;34m
[0mself.viewer.layers [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mself.annotator.surface_layer [0;34m= None[0m[0;34m
[0mself.viewer [0;34m= Viewer(camera=Camera(center=(134.25097504957012, 624.4804183213577, 472.5304129756257), zoom=1.6198914971997482, angles=(-19.093573125126735, 15.977671555947397, 137.60177770462866), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(138.31620318898487, 580.496436869052, 595.5458249047225), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=3, ndisplay=3, last_used=0, range=((0.0, 296.0, 1.0), (0.0, 1270.0, 1.0), (0.0, 952.0, 1.0)), current_step=(147, 634, 475), order=(0, 1, 2), axis_labels=('0', '1', '2')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'tomogram' at 0x754b844d82e0>], help='use <2> for transform', status={'layer_base': 'tomogram', 'source_type': '', 'plugin': '', 'coordinates': ' [138 580 596]'}, tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x754bd67603a0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'[': <bound method TomogramBrowserWidget.previous_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>, ']': <bound method TomogramBrowserWidget.next_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>})[0m
[1;32m 70[0m [38;5;28;01mtry[39;00m:
[1;32m 71[0m n3d_spheres [38;5;241m=[39m [38;5;28mself[39m[38;5;241m.[39mload_particles()
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/_collections_abc.py:1163[0m, in [0;36mMutableSequence.remove[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=None)[0m
[1;32m 1159[0m [38;5;28;01mdef[39;00m [38;5;21mremove[39m([38;5;28mself[39m, value):
[1;32m 1160[0m [38;5;250m [39m[38;5;124;03m'''S.remove(value) -- remove first occurrence of value.[39;00m
[1;32m 1161[0m [38;5;124;03m Raise ValueError if the value is not present.[39;00m
[1;32m 1162[0m [38;5;124;03m '''[39;00m
[0;32m-> 1163[0m [38;5;28;01mdel[39;00m [38;5;28mself[39m[[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mindex[49m[43m([49m[43mvalue[49m[43m)[49m]
self [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mvalue [0;34m= None[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230[0m, in [0;36mTypedMutableSequence.index[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=None, start=0, stop=None)[0m
[1;32m 227[0m [38;5;28;01mif[39;00m v [38;5;129;01mis[39;00m value [38;5;129;01mor[39;00m v [38;5;241m==[39m value:
[1;32m 228[0m [38;5;28;01mreturn[39;00m i
[0;32m--> 230[0m [38;5;28;01mraise[39;00m [38;5;167;01mValueError[39;00m(
trans [0;34m= <napari.utils.translations.TranslationBundle object at 0x754bddab8c70>[0m[0;34m
[0mvalue [0;34m= None[0m
[1;32m 231[0m trans[38;5;241m.[39m_(
[1;32m 232[0m [38;5;124m"[39m[38;5;132;01m{value!r}[39;00m[38;5;124m is not in list[39m[38;5;124m"[39m,
[1;32m 233[0m deferred[38;5;241m=[39m[38;5;28;01mTrue[39;00m,
[1;32m 234[0m value[38;5;241m=[39mvalue,
[1;32m 235[0m )
[1;32m 236[0m )
[0;31mEmitLoopError[0m:
While emitting signal 'tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget.tomogram_changed', a ValueError occurred in a callback:
Signal emitted at: /home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:108, in _on_tomogram_loaded
> self.tomogram_changed.emit()
Callback error at: /home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230, in index
> raise ValueError(
Local variables:
value = None
start = 0
stop = None
convert = <function _noop at 0x754bddb0a5f0>
i = 0
v = <Image layer 'tomogram' at 0x754b844d82e0>
See ValueError above for original traceback.
[0;31m---------------------------------------------------------------------------[0m
[0;31mValueError[0m Traceback (most recent call last)
File [0;32msrc/psygnal/_signal.py:1196[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1225[0m, in [0;36m_run_emit_loop_immediate[0;34m()[0m
File [0;32msrc/psygnal/_weak_callback.py:453[0m, in [0;36mcb[0;34m()[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/pick/spheres.py:68[0m, in [0;36mPickSpheresWidget.synchronise_annotator[0;34m(self=<tomography_python_programs.pick.spheres.PickSpheresWidget object>)[0m
[1;32m 67[0m [38;5;28;01mif[39;00m [38;5;28mself[39m[38;5;241m.[39mpoints_layer [38;5;129;01mis[39;00m [38;5;129;01mnot[39;00m [38;5;28;01mNone[39;00m:
[0;32m---> 68[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mviewer[49m[38;5;241;43m.[39;49m[43mlayers[49m[38;5;241;43m.[39;49m[43mremove[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mpoints_layer[49m[43m)[49m
self.points_layer [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m[0;34m
[0mself [0;34m= <tomography_python_programs.pick.spheres.PickSpheresWidget object at 0x754bc9f0c430>[0m[0;34m
[0mself.viewer.layers [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mself.viewer [0;34m= Viewer(camera=Camera(center=(134.25097504957012, 624.4804183213577, 472.5304129756257), zoom=1.6198914971997482, angles=(-19.093573125126735, 15.977671555947397, 137.60177770462866), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(168.02505784420777, 609.1196656123706, 591.684795982022), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=3, ndisplay=3, last_used=0, range=((0.0, 296.0, 1.0), (0.0, 1270.0, 1.0), (0.0, 952.0, 1.0)), current_step=(147, 634, 475), order=(0, 1, 2), axis_labels=('0', '1', '2')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'tomogram' at 0x754b844d82e0>], help='use <2> for transform', status={'layer_base': 'tomogram', 'source_type': '', 'plugin': '', 'coordinates': ' [168 609 592]'}, tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x754bd67603a0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'[': <bound method TomogramBrowserWidget.previous_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>, ']': <bound method TomogramBrowserWidget.next_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>})[0m
[1;32m 69[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mremove([38;5;28mself[39m[38;5;241m.[39mannotator[38;5;241m.[39msurface_layer)
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/_collections_abc.py:1163[0m, in [0;36mMutableSequence.remove[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>)[0m
[1;32m 1160[0m [38;5;250m[39m[38;5;124;03m'''S.remove(value) -- remove first occurrence of value.[39;00m
[1;32m 1161[0m [38;5;124;03m Raise ValueError if the value is not present.[39;00m
[1;32m 1162[0m [38;5;124;03m'''[39;00m
[0;32m-> 1163[0m [38;5;28;01mdel[39;00m [38;5;28mself[39m[[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mindex[49m[43m([49m[43mvalue[49m[43m)[49m]
self [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230[0m, in [0;36mTypedMutableSequence.index[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>, start=0, stop=None)[0m
[1;32m 228[0m [38;5;28;01mreturn[39;00m i
[0;32m--> 230[0m [38;5;28;01mraise[39;00m [38;5;167;01mValueError[39;00m(
trans [0;34m= <napari.utils.translations.TranslationBundle object at 0x754bddab8c70>[0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
[1;32m 231[0m trans[38;5;241m.[39m_(
[1;32m 232[0m [38;5;124m"[39m[38;5;132;01m{value!r}[39;00m[38;5;124m is not in list[39m[38;5;124m"[39m,
[1;32m 233[0m deferred[38;5;241m=[39m[38;5;28;01mTrue[39;00m,
[1;32m 234[0m value[38;5;241m=[39mvalue,
[1;32m 235[0m )
[1;32m 236[0m )
[0;31mValueError[0m: <Points layer 'n3d spheres' at 0x754b7846c400> is not in list
The above exception was the direct cause of the following exception:
[0;31mEmitLoopError[0m Traceback (most recent call last)
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:69[0m, in [0;36mTomogramBrowserWidget._on_tomogram_selection_change[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>)[0m
[1;32m 67[0m [38;5;28mself[39m[38;5;241m.[39mchanging_tomogram[38;5;241m.[39memit()
[1;32m 68[0m [38;5;28mself[39m[38;5;241m.[39mselected_tilt_series [38;5;241m=[39m [38;5;28mself[39m[38;5;241m.[39mtilt_series_list_widget[38;5;241m.[39mselected_tilt_series_in_view()
[0;32m---> 69[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_load_tomogram[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mselected_tilt_series[49m[38;5;241;43m.[39;49m[43mname[49m[43m,[49m[43m [49m[43madd_to_viewer[49m[38;5;241;43m=[39;49m[38;5;28;43;01mTrue[39;49;00m[43m)[49m
self [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
[1;32m 70[0m [38;5;28mself[39m[38;5;241m.[39m_preload_next_tomograms()
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:96[0m, in [0;36mTomogramBrowserWidget._load_tomogram[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>, tilt_series_id='AQB1tomo008', add_to_viewer=True)[0m
[1;32m 94[0m [38;5;28mself[39m[38;5;241m.[39m_cache[tilt_series_id] [38;5;241m=[39m tomogram
[1;32m 95[0m [38;5;28;01mif[39;00m add_to_viewer:
[0;32m---> 96[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_update_tomogram_in_viewer[49m[43m([49m[43mtomogram[49m[43m)[49m
tomogram [0;34m= <class 'numpy.ndarray'> (296, 1270, 952) float32[0m[0;34m
[0mself [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:84[0m, in [0;36mTomogramBrowserWidget._update_tomogram_in_viewer[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>, tomogram=<class 'numpy.ndarray'> (296, 1270, 952) float32)[0m
[1;32m 75[0m [38;5;28;01melse[39;00m:
[1;32m 76[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39madd_image(
[1;32m 77[0m data[38;5;241m=[39mtomogram,
[1;32m 78[0m name[38;5;241m=[39mIMAGE_LAYER_NAME,
[0;32m (...)[0m
[1;32m 82[0m blending[38;5;241m=[39m[38;5;124m'[39m[38;5;124mtranslucent[39m[38;5;124m'[39m,
[1;32m 83[0m )
[0;32m---> 84[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_on_tomogram_loaded[49m[43m([49m[43m)[49m
self [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:108[0m, in [0;36mTomogramBrowserWidget._on_tomogram_loaded[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>)[0m
[1;32m 106[0m layer[38;5;241m.[39mplane[38;5;241m.[39mnormal [38;5;241m=[39m ([38;5;241m1[39m, [38;5;241m0[39m, [38;5;241m0[39m)
[1;32m 107[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mselection [38;5;241m=[39m [layer]
[0;32m--> 108[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mtomogram_changed[49m[38;5;241;43m.[39;49m[43memit[49m[43m([49m[43m)[49m
self.tomogram_changed [0;34m= <SignalInstance 'tomogram_changed' on <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>[0m[0;34m
[0mself [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32msrc/psygnal/_signal.py:1176[0m, in [0;36memit[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1213[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1196[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1225[0m, in [0;36m_run_emit_loop_immediate[0;34m()[0m
File [0;32msrc/psygnal/_weak_callback.py:453[0m, in [0;36mcb[0;34m()[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/pick/spheres.py:68[0m, in [0;36mPickSpheresWidget.synchronise_annotator[0;34m(self=<tomography_python_programs.pick.spheres.PickSpheresWidget object>)[0m
[1;32m 66[0m [38;5;28mself[39m[38;5;241m.[39mannotator[38;5;241m.[39menabled [38;5;241m=[39m [38;5;28;01mFalse[39;00m
[1;32m 67[0m [38;5;28;01mif[39;00m [38;5;28mself[39m[38;5;241m.[39mpoints_layer [38;5;129;01mis[39;00m [38;5;129;01mnot[39;00m [38;5;28;01mNone[39;00m:
[0;32m---> 68[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mviewer[49m[38;5;241;43m.[39;49m[43mlayers[49m[38;5;241;43m.[39;49m[43mremove[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mpoints_layer[49m[43m)[49m
self.points_layer [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m[0;34m
[0mself [0;34m= <tomography_python_programs.pick.spheres.PickSpheresWidget object at 0x754bc9f0c430>[0m[0;34m
[0mself.viewer.layers [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mself.viewer [0;34m= Viewer(camera=Camera(center=(134.25097504957012, 624.4804183213577, 472.5304129756257), zoom=1.6198914971997482, angles=(-19.093573125126735, 15.977671555947397, 137.60177770462866), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(168.02505784420777, 609.1196656123706, 591.684795982022), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=3, ndisplay=3, last_used=0, range=((0.0, 296.0, 1.0), (0.0, 1270.0, 1.0), (0.0, 952.0, 1.0)), current_step=(147, 634, 475), order=(0, 1, 2), axis_labels=('0', '1', '2')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'tomogram' at 0x754b844d82e0>], help='use <2> for transform', status={'layer_base': 'tomogram', 'source_type': '', 'plugin': '', 'coordinates': ' [168 609 592]'}, tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x754bd67603a0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'[': <bound method TomogramBrowserWidget.previous_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>, ']': <bound method TomogramBrowserWidget.next_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>})[0m
[1;32m 69[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mremove([38;5;28mself[39m[38;5;241m.[39mannotator[38;5;241m.[39msurface_layer)
[1;32m 70[0m [38;5;28;01mtry[39;00m:
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/_collections_abc.py:1163[0m, in [0;36mMutableSequence.remove[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>)[0m
[1;32m 1159[0m [38;5;28;01mdef[39;00m [38;5;21mremove[39m([38;5;28mself[39m, value):
[1;32m 1160[0m [38;5;250m [39m[38;5;124;03m'''S.remove(value) -- remove first occurrence of value.[39;00m
[1;32m 1161[0m [38;5;124;03m Raise ValueError if the value is not present.[39;00m
[1;32m 1162[0m [38;5;124;03m '''[39;00m
[0;32m-> 1163[0m [38;5;28;01mdel[39;00m [38;5;28mself[39m[[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mindex[49m[43m([49m[43mvalue[49m[43m)[49m]
self [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230[0m, in [0;36mTypedMutableSequence.index[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>, start=0, stop=None)[0m
[1;32m 227[0m [38;5;28;01mif[39;00m v [38;5;129;01mis[39;00m value [38;5;129;01mor[39;00m v [38;5;241m==[39m value:
[1;32m 228[0m [38;5;28;01mreturn[39;00m i
[0;32m--> 230[0m [38;5;28;01mraise[39;00m [38;5;167;01mValueError[39;00m(
trans [0;34m= <napari.utils.translations.TranslationBundle object at 0x754bddab8c70>[0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
[1;32m 231[0m trans[38;5;241m.[39m_(
[1;32m 232[0m [38;5;124m"[39m[38;5;132;01m{value!r}[39;00m[38;5;124m is not in list[39m[38;5;124m"[39m,
[1;32m 233[0m deferred[38;5;241m=[39m[38;5;28;01mTrue[39;00m,
[1;32m 234[0m value[38;5;241m=[39mvalue,
[1;32m 235[0m )
[1;32m 236[0m )
[0;31mEmitLoopError[0m:
While emitting signal 'tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget.tomogram_changed', a ValueError occurred in a callback:
Signal emitted at: /home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:108, in _on_tomogram_loaded
> self.tomogram_changed.emit()
Callback error at: /home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230, in index
> raise ValueError(
Local variables:
value = <Points layer 'n3d spheres' at 0x754b7846c400>
start = 0
stop = None
convert = <function _noop at 0x754bddb0a5f0>
i = 0
v = <Image layer 'tomogram' at 0x754b844d82e0>
See ValueError above for original traceback.
[0;31m---------------------------------------------------------------------------[0m
[0;31mValueError[0m Traceback (most recent call last)
File [0;32msrc/psygnal/_signal.py:1196[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1225[0m, in [0;36m_run_emit_loop_immediate[0;34m()[0m
File [0;32msrc/psygnal/_weak_callback.py:453[0m, in [0;36mcb[0;34m()[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/pick/spheres.py:68[0m, in [0;36mPickSpheresWidget.synchronise_annotator[0;34m(self=<tomography_python_programs.pick.spheres.PickSpheresWidget object>)[0m
[1;32m 67[0m [38;5;28;01mif[39;00m [38;5;28mself[39m[38;5;241m.[39mpoints_layer [38;5;129;01mis[39;00m [38;5;129;01mnot[39;00m [38;5;28;01mNone[39;00m:
[0;32m---> 68[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mviewer[49m[38;5;241;43m.[39;49m[43mlayers[49m[38;5;241;43m.[39;49m[43mremove[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mpoints_layer[49m[43m)[49m
self.points_layer [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m[0;34m
[0mself [0;34m= <tomography_python_programs.pick.spheres.PickSpheresWidget object at 0x754bc9f0c430>[0m[0;34m
[0mself.viewer.layers [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mself.viewer [0;34m= Viewer(camera=Camera(center=(134.25097504957012, 624.4804183213577, 472.5304129756257), zoom=1.6198914971997482, angles=(-19.093573125126735, 15.977671555947397, 137.60177770462866), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(168.65673457295958, 610.490941355705, 589.6356189088904), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=3, ndisplay=3, last_used=0, range=((0.0, 296.0, 1.0), (0.0, 1270.0, 1.0), (0.0, 952.0, 1.0)), current_step=(147, 634, 475), order=(0, 1, 2), axis_labels=('0', '1', '2')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'tomogram' at 0x754b844d82e0>], help='use <2> for transform', status={'layer_base': 'tomogram', 'source_type': '', 'plugin': '', 'coordinates': ' [169 610 590]'}, tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x754bd67603a0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'[': <bound method TomogramBrowserWidget.previous_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>, ']': <bound method TomogramBrowserWidget.next_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>})[0m
[1;32m 69[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mremove([38;5;28mself[39m[38;5;241m.[39mannotator[38;5;241m.[39msurface_layer)
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/_collections_abc.py:1163[0m, in [0;36mMutableSequence.remove[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>)[0m
[1;32m 1160[0m [38;5;250m[39m[38;5;124;03m'''S.remove(value) -- remove first occurrence of value.[39;00m
[1;32m 1161[0m [38;5;124;03m Raise ValueError if the value is not present.[39;00m
[1;32m 1162[0m [38;5;124;03m'''[39;00m
[0;32m-> 1163[0m [38;5;28;01mdel[39;00m [38;5;28mself[39m[[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mindex[49m[43m([49m[43mvalue[49m[43m)[49m]
self [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230[0m, in [0;36mTypedMutableSequence.index[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>, start=0, stop=None)[0m
[1;32m 228[0m [38;5;28;01mreturn[39;00m i
[0;32m--> 230[0m [38;5;28;01mraise[39;00m [38;5;167;01mValueError[39;00m(
trans [0;34m= <napari.utils.translations.TranslationBundle object at 0x754bddab8c70>[0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
[1;32m 231[0m trans[38;5;241m.[39m_(
[1;32m 232[0m [38;5;124m"[39m[38;5;132;01m{value!r}[39;00m[38;5;124m is not in list[39m[38;5;124m"[39m,
[1;32m 233[0m deferred[38;5;241m=[39m[38;5;28;01mTrue[39;00m,
[1;32m 234[0m value[38;5;241m=[39mvalue,
[1;32m 235[0m )
[1;32m 236[0m )
[0;31mValueError[0m: <Points layer 'n3d spheres' at 0x754b7846c400> is not in list
The above exception was the direct cause of the following exception:
[0;31mEmitLoopError[0m Traceback (most recent call last)
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:69[0m, in [0;36mTomogramBrowserWidget._on_tomogram_selection_change[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>)[0m
[1;32m 67[0m [38;5;28mself[39m[38;5;241m.[39mchanging_tomogram[38;5;241m.[39memit()
[1;32m 68[0m [38;5;28mself[39m[38;5;241m.[39mselected_tilt_series [38;5;241m=[39m [38;5;28mself[39m[38;5;241m.[39mtilt_series_list_widget[38;5;241m.[39mselected_tilt_series_in_view()
[0;32m---> 69[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_load_tomogram[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mselected_tilt_series[49m[38;5;241;43m.[39;49m[43mname[49m[43m,[49m[43m [49m[43madd_to_viewer[49m[38;5;241;43m=[39;49m[38;5;28;43;01mTrue[39;49;00m[43m)[49m
self [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
[1;32m 70[0m [38;5;28mself[39m[38;5;241m.[39m_preload_next_tomograms()
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:96[0m, in [0;36mTomogramBrowserWidget._load_tomogram[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>, tilt_series_id='AQB1tomo012', add_to_viewer=True)[0m
[1;32m 94[0m [38;5;28mself[39m[38;5;241m.[39m_cache[tilt_series_id] [38;5;241m=[39m tomogram
[1;32m 95[0m [38;5;28;01mif[39;00m add_to_viewer:
[0;32m---> 96[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_update_tomogram_in_viewer[49m[43m([49m[43mtomogram[49m[43m)[49m
tomogram [0;34m= <class 'numpy.ndarray'> (296, 1270, 952) float32[0m[0;34m
[0mself [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:84[0m, in [0;36mTomogramBrowserWidget._update_tomogram_in_viewer[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>, tomogram=<class 'numpy.ndarray'> (296, 1270, 952) float32)[0m
[1;32m 75[0m [38;5;28;01melse[39;00m:
[1;32m 76[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39madd_image(
[1;32m 77[0m data[38;5;241m=[39mtomogram,
[1;32m 78[0m name[38;5;241m=[39mIMAGE_LAYER_NAME,
[0;32m (...)[0m
[1;32m 82[0m blending[38;5;241m=[39m[38;5;124m'[39m[38;5;124mtranslucent[39m[38;5;124m'[39m,
[1;32m 83[0m )
[0;32m---> 84[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43m_on_tomogram_loaded[49m[43m([49m[43m)[49m
self [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:108[0m, in [0;36mTomogramBrowserWidget._on_tomogram_loaded[0;34m(self=<tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object>)[0m
[1;32m 106[0m layer[38;5;241m.[39mplane[38;5;241m.[39mnormal [38;5;241m=[39m ([38;5;241m1[39m, [38;5;241m0[39m, [38;5;241m0[39m)
[1;32m 107[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mselection [38;5;241m=[39m [layer]
[0;32m--> 108[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mtomogram_changed[49m[38;5;241;43m.[39;49m[43memit[49m[43m([49m[43m)[49m
self.tomogram_changed [0;34m= <SignalInstance 'tomogram_changed' on <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>[0m[0;34m
[0mself [0;34m= <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>[0m
File [0;32msrc/psygnal/_signal.py:1176[0m, in [0;36memit[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1213[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1196[0m, in [0;36m_run_emit_loop[0;34m()[0m
File [0;32msrc/psygnal/_signal.py:1225[0m, in [0;36m_run_emit_loop_immediate[0;34m()[0m
File [0;32msrc/psygnal/_weak_callback.py:453[0m, in [0;36mcb[0;34m()[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/pick/spheres.py:68[0m, in [0;36mPickSpheresWidget.synchronise_annotator[0;34m(self=<tomography_python_programs.pick.spheres.PickSpheresWidget object>)[0m
[1;32m 66[0m [38;5;28mself[39m[38;5;241m.[39mannotator[38;5;241m.[39menabled [38;5;241m=[39m [38;5;28;01mFalse[39;00m
[1;32m 67[0m [38;5;28;01mif[39;00m [38;5;28mself[39m[38;5;241m.[39mpoints_layer [38;5;129;01mis[39;00m [38;5;129;01mnot[39;00m [38;5;28;01mNone[39;00m:
[0;32m---> 68[0m [38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mviewer[49m[38;5;241;43m.[39;49m[43mlayers[49m[38;5;241;43m.[39;49m[43mremove[49m[43m([49m[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mpoints_layer[49m[43m)[49m
self.points_layer [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m[0;34m
[0mself [0;34m= <tomography_python_programs.pick.spheres.PickSpheresWidget object at 0x754bc9f0c430>[0m[0;34m
[0mself.viewer.layers [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mself.viewer [0;34m= Viewer(camera=Camera(center=(134.25097504957012, 624.4804183213577, 472.5304129756257), zoom=1.6198914971997482, angles=(-19.093573125126735, 15.977671555947397, 137.60177770462866), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(position=(168.65673457295958, 610.490941355705, 589.6356189088904), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=3, ndisplay=3, last_used=0, range=((0.0, 296.0, 1.0), (0.0, 1270.0, 1.0), (0.0, 952.0, 1.0)), current_step=(147, 634, 475), order=(0, 1, 2), axis_labels=('0', '1', '2')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[<Image layer 'tomogram' at 0x754b844d82e0>], help='use <2> for transform', status={'layer_base': 'tomogram', 'source_type': '', 'plugin': '', 'coordinates': ' [169 610 590]'}, tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[], mouse_drag_callbacks=[], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x754bd67603a0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'[': <bound method TomogramBrowserWidget.previous_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>, ']': <bound method TomogramBrowserWidget.next_tilt_series of <tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget object at 0x754bc9fe28c0>>})[0m
[1;32m 69[0m [38;5;28mself[39m[38;5;241m.[39mviewer[38;5;241m.[39mlayers[38;5;241m.[39mremove([38;5;28mself[39m[38;5;241m.[39mannotator[38;5;241m.[39msurface_layer)
[1;32m 70[0m [38;5;28;01mtry[39;00m:
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/_collections_abc.py:1163[0m, in [0;36mMutableSequence.remove[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>)[0m
[1;32m 1159[0m [38;5;28;01mdef[39;00m [38;5;21mremove[39m([38;5;28mself[39m, value):
[1;32m 1160[0m [38;5;250m [39m[38;5;124;03m'''S.remove(value) -- remove first occurrence of value.[39;00m
[1;32m 1161[0m [38;5;124;03m Raise ValueError if the value is not present.[39;00m
[1;32m 1162[0m [38;5;124;03m '''[39;00m
[0;32m-> 1163[0m [38;5;28;01mdel[39;00m [38;5;28mself[39m[[38;5;28;43mself[39;49m[38;5;241;43m.[39;49m[43mindex[49m[43m([49m[43mvalue[49m[43m)[49m]
self [0;34m= [<Image layer 'tomogram' at 0x754b844d82e0>][0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
File [0;32m~/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230[0m, in [0;36mTypedMutableSequence.index[0;34m(self=[<Image layer 'tomogram' at 0x754b844d82e0>], value=<Points layer 'n3d spheres'>, start=0, stop=None)[0m
[1;32m 227[0m [38;5;28;01mif[39;00m v [38;5;129;01mis[39;00m value [38;5;129;01mor[39;00m v [38;5;241m==[39m value:
[1;32m 228[0m [38;5;28;01mreturn[39;00m i
[0;32m--> 230[0m [38;5;28;01mraise[39;00m [38;5;167;01mValueError[39;00m(
trans [0;34m= <napari.utils.translations.TranslationBundle object at 0x754bddab8c70>[0m[0;34m
[0mvalue [0;34m= <Points layer 'n3d spheres' at 0x754b7846c400>[0m
[1;32m 231[0m trans[38;5;241m.[39m_(
[1;32m 232[0m [38;5;124m"[39m[38;5;132;01m{value!r}[39;00m[38;5;124m is not in list[39m[38;5;124m"[39m,
[1;32m 233[0m deferred[38;5;241m=[39m[38;5;28;01mTrue[39;00m,
[1;32m 234[0m value[38;5;241m=[39mvalue,
[1;32m 235[0m )
[1;32m 236[0m )
[0;31mEmitLoopError[0m:
While emitting signal 'tomography_python_programs._qt.components.tomogram_browser.TomogramBrowserWidget.tomogram_changed', a ValueError occurred in a callback:
Signal emitted at: /home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/tomography_python_programs/_qt/components/tomogram_browser.py:108, in _on_tomogram_loaded
> self.tomogram_changed.emit()
Callback error at: /home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/napari/utils/events/containers/_typed.py:230, in index
> raise ValueError(
Local variables:
value = <Points layer 'n3d spheres' at 0x754b7846c400>
start = 0
stop = None
convert = <function _noop at 0x754bddb0a5f0>
i = 0
v = <Image layer 'tomogram' at 0x754b844d82e0>
See ValueError above for original traceback.
run.err
/home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/starfile/parser.py:177: FutureWarning: The 'delim_whitespace' keyword in pd.read_csv is deprecated and will be removed in a future version. Use ``sep='\s+'`` instead
df = pd.read_csv(
/home/michalakdj/mambaforge/envs/relion-5.0/lib/python3.10/site-packages/starfile/parser.py:194: FutureWarning: errors='ignore' is deprecated and will raise in a future version. Use to_numeric without passing `errors` and catch exceptions explicitly instead
self.dataframes[key] = df.apply(pd.to_numeric, errors='ignore')