I tired to use your plugin to visualize existing tracks generated using TrackMate, but encounter an erro once I pressed the compute button:
axes is TZYX
(42, 36, 1024, 1024)
(42, 36, 1024, 1024)
INFO: GPU available: False, used: False
15:34:57 INFO GPU available: False, used: False
INFO: TPU available: False, using: 0 TPU cores
15:34:57 INFO TPU available: False, using: 0 TPU cores
INFO: IPU available: False, using: 0 IPUs
15:34:57 INFO IPU available: False, using: 0 IPUs
INFO: HPU available: False, using: 0 HPUs
15:34:57 INFO HPU available: False, using: 0 HPUs
---------------------------------------------------------------------------
PermissionError Traceback (most recent call last)
File src\psygnal\_signal.py:990, in _run_emit_loop()
File src\psygnal\_weak_callback.py:321, in cb()
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\vollseg_na
pari_trackmate\_widget.py:135, in plugin_wrapper_track.<locals>.change_handler.<
locals>.decorator_change_handler.<locals>.wrapper(*args=())
134 print(f"{str(emitter.name).upper()}: {source.name}")
--> 135 return handler(*args)
handler = <function plugin_wrapper_track.<locals>._compute at 0x00000069
239A8F70>
args = ()
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\vollseg_na
pari_trackmate\_widget.py:2011, in plugin_wrapper_track.<locals>._compute()
2008 @change_handler(plugin_data.compute_button)
2009 def _compute():
-> 2011 _actual_computer()
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\vollseg_na
pari_trackmate\_widget.py:2083, in plugin_wrapper_track.<locals>._actual_compute
r()
2081 accelerator = "cpu"
-> 2083 _trackmate_objects = TrackMate(
_trackmate_objects = None
plugin_data = <FunctionGui plugin_data(image: napari.layers.image.image.
Image = <Image layer 'KO2_ATG5LECKO_231123_c3_cropped.ome' at 0x691cfb3940>, seg
_image: napari.layers.labels.labels.Labels = <Labels layer 'KO2_ATG5LECKO_231123
_cell_labels_cropped.ome' at 0x6920894730>, channel_seg_image: napari.layers.lab
els.labels.Labels = None, mask_image: napari.layers.labels.labels.Labels = None,
xml_path=WindowsPath('E:/Benjamin/Diede/test/KO2_ATG5LECKO_231123_cell_labels_c
ropped.ome.xml'), master_xml_path=WindowsPath('.'), track_csv_path=WindowsPath('
E:/Benjamin/Diede/test/tracks.csv'), spot_csv_path=WindowsPath('E:/Benjamin/Died
e/test/spots.csv'), edges_csv_path=WindowsPath('.'), cluster_csv_path=WindowsPat
h('.'), axes='TZYX', batch_size=8, device_type='cpu', compute_button=False) -> L
ist[LayerDataTuple]>
AttributeBoxname = 'AttributeIDBox'
TrackAttributeBoxname = 'TrackAttributeIDBox'
TrackidBox = 'All'
x_channel_seg = None
x_seg = <class 'numpy.ndarray'> (42, 36, 1024, 1024) uint16
x = <class 'numpy.ndarray'> (42, 36, 1024, 1024) uint16
x_mask = None
autoencoder_model = None
num_points = 0
plugin = <FunctionGui plugin(viewer: napari.viewer.Viewer = Viewer(camer
a=Camera(center=(0.0, 511.5, 511.5), zoom=0.11617840495573231, angles=(0.0, 0.0,
90.0), perspective=0.0, mouse_pan=True, mouse_zoom=True), cursor=Cursor(positio
n=(20.0, 17.0, -1067.9672703528113, 1006.4284454212805), scaled=True, size=10, s
tyle=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=4, ndisplay=2, last_use
d=0, range=((0.0, 42.0, 1.0), (0.0, 36.0, 1.0), (0.0, 1024.0, 1.0), (0.0, 1024.0
, 1.0)), current_step=(20, 17, 511, 511), order=(0, 1, 2, 3), axis_labels=('0',
'1', '2', '3')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layer
s=[<Image layer 'KO2_ATG5LECKO_231123_c3_cropped.ome' at 0x691cfb3940>, <Labels
layer 'KO2_ATG5LECKO_231123_cell_labels_cropped.ome' at 0x6920894730>], help='',
status='', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari
', mouse_over_canvas=False, mouse_move_callbacks=[], mouse_drag_callbacks=[], mo
use_double_click_callbacks=[<function plugin_wrapper_track.<locals>.get_event at
0x000000691CCDA160>, <function plugin_wrapper_track.<locals>.get_event at 0x000
0006925C6FE50>], mouse_wheel_callbacks=[<function dims_scroll at 0x000000697B235
550>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keyma
p={}), label_head='<br>Citation <tt><a href="https://doi.org/10.25080/majora-1b6
fd038-014" style="color:gray;">NapaTrackMater Scipy</a></tt>', track_model_type=
'Non-Dividing', track_id_box=None, track_id_value='', cloud_auto_encoder_model_t
ype='No(Encoder)', cloud_auto_encoder_model='xenopus_nuclei_autoencoder', cloud_
auto_encoder_model_none='', model_folder_cloud_auto=WindowsPath('C:/Users/bpavie
'), progress_bar: magicgui.widgets.ProgressBar = ProgressBar(value=<function mat
ch_type.<locals>.<lambda> at 0x0000006925FB28B0>, annotation=<class 'magicgui.wi
dgets.ProgressBar'>, name='progress_bar')) -> List[LayerDataTuple]>
accelerator = 'cpu'
scale_z = 1
scale_xy = 1
2084 plugin_data.xml_path.value,
2085 plugin_data.spot_csv_path.value,
2086 plugin_data.track_csv_path.value,
2087 plugin_data.edges_csv_path.value,
2088 AttributeBoxname,
2089 TrackAttributeBoxname,
2090 TrackidBox,
2091 plugin_data.axes.value,
2092 master_xml_path=plugin_data.master_xml_path.value,
2093 channel_seg_image=x_channel_seg,
2094 seg_image=x_seg,
2095 image=x,
2096 mask=x_mask,
2097 autoencoder_model=autoencoder_model,
2098 num_points=num_points,
2099 progress_bar=plugin.progress_bar,
2100 batch_size=plugin_data.batch_size.value,
2101 accelerator=accelerator,
2102 devices=1,
2103 scale_z=scale_z,
2104 scale_xy=scale_xy,
2105 )
2106 nonlocal track_centroid_tree, track_centroid_list
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\napatrackm
ater\Trackmate.py:90, in TrackMate.__init__(self=<napatrackmater.Trackmate.Track
Mate object>, xml_path=WindowsPath('E:/Benjamin/Diede/test/KO2_ATG5LECKO_231123_
cell_labels_cropped.ome.xml'), spot_csv_path=WindowsPath('E:/Benjamin/Diede/test
/spots.csv'), track_csv_path=WindowsPath('E:/Benjamin/Diede/test/tracks.csv'), e
dges_csv_path=WindowsPath('.'), AttributeBoxname='AttributeIDBox', TrackAttribut
eBoxname='TrackAttributeIDBox', TrackidBox='All', axes='TZYX', scale_z=1, scale_
xy=1, latent_features=1, center=True, progress_bar=ProgressBar(value=<function m
atch_type.<locals>....icgui.widgets.ProgressBar'>, name='progress_bar'), acceler
ator='cpu', devices=1, master_xml_path=WindowsPath('.'), master_extra_name='', s
eg_image=<class 'numpy.ndarray'> (42, 36, 1024, 1024) uint16, channel_seg_image=
None, image=<class 'numpy.ndarray'> (42, 36, 1024, 1024) uint16, mask=None, four
ier=True, autoencoder_model=None, num_points=0, batch_size=8, compute_with_autoe
ncoder=True)
89 self.track_dataset, self.track_dataset_index = get_csv_data(self.track_c
sv_path)
---> 90 self.edges_dataset, self.edges_dataset_index = get_csv_data(self.edges_c
sv_path)
self.edges_csv_path = WindowsPath('.')
self = <napatrackmater.Trackmate.TrackMate object at 0x000000692193FEB0>
91 self.progress_bar = progress_bar
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\napatrackm
ater\Trackmate.py:2726, in get_csv_data(csv=WindowsPath('.'))
2724 def get_csv_data(csv):
-> 2726 dataset = pd.read_csv(
pd = <module 'pandas' from 'D:\\CONDA_ENV\\napatrackmater-aiscimageio-na
pari\\lib\\site-packages\\pandas\\__init__.py'>
csv = WindowsPath('.')
2727 csv, delimiter=",", encoding="unicode_escape", low_memory=False
2728 )[3:]
2729 dataset_index = dataset.index
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\pandas\io\
parsers\readers.py:912, in read_csv(filepath_or_buffer=WindowsPath('.'), sep=<no
_default>, delimiter=',', header='infer', names=<no_default>, index_col=None, us
ecols=None, dtype=None, engine=None, converters=None, true_values=None, false_va
lues=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_v
alues=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_line
s=True, parse_dates=None, infer_datetime_format=<no_default>, keep_date_col=Fals
e, date_parser=<no_default>, date_format=None, dayfirst=False, cache_dates=True,
iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.
', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=N
one, comment=None, encoding='unicode_escape', encoding_errors='strict', dialect=
None, on_bad_lines='error', delim_whitespace=False, low_memory=False, memory_map
=False, float_precision=None, storage_options=None, dtype_backend=<no_default>)
910 kwds.update(kwds_defaults)
--> 912 return _read(filepath_or_buffer, kwds)
kwds = {'delimiter': ',', 'header': 'infer', 'names': None, 'index_col':
None, 'usecols': None, 'dtype': None, 'engine': 'c', 'converters': None, 'true_
values': None, 'false_values': None, 'skipinitialspace': False, 'skiprows': None
, 'skipfooter': 0, 'nrows': None, 'na_values': None, 'keep_default_na': True, 'n
a_filter': True, 'verbose': False, 'skip_blank_lines': True, 'parse_dates': Fals
e, 'infer_datetime_format': <no_default>, 'keep_date_col': False, 'date_parser':
<no_default>, 'date_format': None, 'dayfirst': False, 'cache_dates': True, 'ite
rator': False, 'chunksize': None, 'compression': 'infer', 'thousands': None, 'de
cimal': '.', 'lineterminator': None, 'quotechar': '"', 'quoting': 0, 'doublequot
e': True, 'escapechar': None, 'comment': None, 'encoding': 'unicode_escape', 'en
coding_errors': 'strict', 'dialect': None, 'on_bad_lines': <BadLineHandleMethod.
ERROR: 0>, 'delim_whitespace': False, 'low_memory': False, 'memory_map': False,
'float_precision': None, 'storage_options': None, 'dtype_backend': <no_default>,
'engine_specified': False}
filepath_or_buffer = WindowsPath('.')
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\pandas\io\
parsers\readers.py:577, in _read(filepath_or_buffer=WindowsPath('.'), kwds={'cac
he_dates': True, 'chunksize': None, 'comment': None, 'compression': 'infer', 'co
nverters': None, 'date_format': None, 'date_parser': <no_default>, 'dayfirst': F
alse, 'decimal': '.', 'delim_whitespace': False, ...})
576 # Create the parser.
--> 577 parser = TextFileReader(filepath_or_buffer, **kwds)
TextFileReader = <class 'pandas.io.parsers.readers.TextFileReader'>
filepath_or_buffer = WindowsPath('.')
kwds = {'delimiter': ',', 'header': 'infer', 'names': None, 'index_col':
None, 'usecols': None, 'dtype': None, 'engine': 'c', 'converters': None, 'true_
values': None, 'false_values': None, 'skipinitialspace': False, 'skiprows': None
, 'skipfooter': 0, 'nrows': None, 'na_values': None, 'keep_default_na': True, 'n
a_filter': True, 'verbose': False, 'skip_blank_lines': True, 'parse_dates': Fals
e, 'infer_datetime_format': <no_default>, 'keep_date_col': False, 'date_parser':
<no_default>, 'date_format': None, 'dayfirst': False, 'cache_dates': True, 'ite
rator': False, 'chunksize': None, 'compression': 'infer', 'thousands': None, 'de
cimal': '.', 'lineterminator': None, 'quotechar': '"', 'quoting': 0, 'doublequot
e': True, 'escapechar': None, 'comment': None, 'encoding': 'unicode_escape', 'en
coding_errors': 'strict', 'dialect': None, 'on_bad_lines': <BadLineHandleMethod.
ERROR: 0>, 'delim_whitespace': False, 'low_memory': False, 'memory_map': False,
'float_precision': None, 'storage_options': None, 'dtype_backend': <no_default>,
'engine_specified': False}
579 if chunksize or iterator:
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\pandas\io\
parsers\readers.py:1407, in TextFileReader.__init__(self=<pandas.io.parsers.read
ers.TextFileReader object>, f=WindowsPath('.'), engine='c', **kwds={'cache_dates
': True, 'chunksize': None, 'comment': None, 'compression': 'infer', 'converters
': None, 'date_format': None, 'date_parser': <no_default>, 'dayfirst': False, 'd
ecimal': '.', 'delim_whitespace': False, ...})
1406 self.handles: IOHandles | None = None
-> 1407 self._engine = self._make_engine(f, self.engine)
self.engine = 'c'
self = <pandas.io.parsers.readers.TextFileReader object at 0x0000006926C
7E250>
f = WindowsPath('.')
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\pandas\io\
parsers\readers.py:1661, in TextFileReader._make_engine(self=<pandas.io.parsers.
readers.TextFileReader object>, f=WindowsPath('.'), engine='c')
1660 mode += "b"
-> 1661 self.handles = get_handle(
self.handles = None
self = <pandas.io.parsers.readers.TextFileReader object at 0x0000006926C
7E250>
f = WindowsPath('.')
mode = 'r'
self.options = {'delimiter': ',', 'escapechar': None, 'quotechar': '"',
'quoting': 0, 'doublequote': True, 'skipinitialspace': False, 'lineterminator':
None, 'header': 0, 'index_col': None, 'names': None, 'skiprows': set(), 'na_valu
es': {'', '#N/A', '-NaN', '-1.#QNAN', 'null', '-1.#IND', 'NULL', 'n/a', '-nan',
'N/A', 'NaN', '1.#QNAN', '1.#IND', 'None', '#NA', 'nan', 'NA', '#N/A N/A', '<NA>
'}, 'keep_default_na': True, 'true_values': None, 'false_values': None, 'convert
ers': {}, 'dtype': None, 'cache_dates': True, 'thousands': None, 'comment': None
, 'decimal': '.', 'parse_dates': False, 'keep_date_col': False, 'dayfirst': Fals
e, 'date_parser': <no_default>, 'date_format': None, 'usecols': None, 'verbose':
False, 'encoding': 'unicode_escape', 'compression': 'infer', 'skip_blank_lines'
: True, 'encoding_errors': 'strict', 'on_bad_lines': <BadLineHandleMethod.ERROR:
0>, 'dtype_backend': <no_default>, 'delim_whitespace': False, 'na_filter': True
, 'low_memory': False, 'memory_map': False, 'float_precision': None, 'storage_op
tions': None, 'na_fvalues': set()}
is_text = True
1662 f,
1663 mode,
1664 encoding=self.options.get("encoding", None),
1665 compression=self.options.get("compression", None),
1666 memory_map=self.options.get("memory_map", False),
1667 is_text=is_text,
1668 errors=self.options.get("encoding_errors", "strict"),
1669 storage_options=self.options.get("storage_options", None),
1670 )
1671 assert self.handles is not None
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\pandas\io\
common.py:859, in get_handle(path_or_buf=WindowsPath('.'), mode='r', encoding='u
nicode_escape', compression=None, memory_map=False, is_text=True, errors='strict
', storage_options=None)
857 if ioargs.encoding and "b" not in ioargs.mode:
858 # Encoding
--> 859 handle = open(
handle = '.'
ioargs = IOArgs(filepath_or_buffer='.', encoding='unicode_escape', mode=
'r', compression={'method': None}, should_close=False)
ioargs.mode = 'r'
ioargs.encoding = 'unicode_escape'
errors = 'strict'
860 handle,
861 ioargs.mode,
862 encoding=ioargs.encoding,
863 errors=errors,
864 newline="",
865 )
866 else:
867 # Binary mode
PermissionError: [Errno 13] Permission denied: '.'
The above exception was the direct cause of the following exception:
EmitLoopError Traceback (most recent call last)
File D:\CONDA_ENV\napatrackmater-aiscimageio-napari\lib\site-packages\magicgui\w
idgets\bases\_value_widget.py:71, in ValueWidget._on_value_change(self=PushButto
n(value=False, annotation=<class 'inspect._empty'>, name='compute_button'), valu
e=False)
69 if value is self.null_value and not self._nullable:
70 return
---> 71 self.changed.emit(value)
value = False
self.changed = <SignalInstance 'changed' on PushButton(value=False, anno
tation=<class 'inspect._empty'>, name='compute_button')>
self = PushButton(value=False, annotation=<class 'inspect._empty'>, name
='compute_button')
File src\psygnal\_signal.py:945, in emit()
File src\psygnal\_signal.py:992, in _run_emit_loop()
EmitLoopError:
While emitting signal 'magicgui.widgets.PushButton.changed', an error occurred i
n callback 'vollseg_napari_trackmate._widget.plugin_wrapper_track.<locals>._comp
ute'.
The args passed to the callback were: (False,)
This is not a bug in psygnal. See 'PermissionError' above for details.