juglab / napari-n2v

A self-supervised denoising algorithm.
https://juglab.github.io/napari-n2v/
BSD 3-Clause "New" or "Revised" License
24 stars 3 forks source link

N2V Demo prediction doesn't launch #27

Closed psobolewskiPhD closed 1 year ago

psobolewskiPhD commented 1 year ago

Trying to open the widget, based on the Quick Start (https://github.com/juglab/napari-n2v#quick-demo) and it gives me an error. I think the sample data isn't (down)loading?

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
File ~/Dev/miniforge3/envs/apple-TF210/lib/python3.9/site-packages/napari/_qt/menus/plugins_menu.py:97, in PluginsMenu._add_plugin_actions.._add_toggle_widget(key=('napari-n2v', 'N2V Demo prediction'), hook_type='dock')
     94     return
     96 if hook_type == 'dock':
---> 97     dock_widget, _w = self._win.add_plugin_dock_widget(*key)
        key = ('napari-n2v', 'N2V Demo prediction')
        self._win = 
        self = 
     98 else:
     99     dock_widget = self._win._add_plugin_function_widget(*key)

File ~/Dev/miniforge3/envs/apple-TF210/lib/python3.9/site-packages/napari/_qt/qt_main_window.py:685, in Window.add_plugin_dock_widget(self=, plugin_name='napari-n2v', widget_name='N2V Demo prediction')
    682         wdg = wdg._magic_widget
    683     return dock_widget, wdg
--> 685 wdg = _instantiate_dock_widget(Widget, self._qt_viewer.viewer)
        Widget = 
        self = 
    687 # Add dock widget
    688 dock_kwargs.pop('name', None)

File ~/Dev/miniforge3/envs/apple-TF210/lib/python3.9/site-packages/napari/_qt/qt_main_window.py:1248, in _instantiate_dock_widget(wdg_cls=, viewer=Viewer(axes=Axes(visible=False, labels=True, col...indings._transform_active_layer at 0x149a2edc0>}))
   1243             break
   1244         # cannot look for param.kind == param.VAR_KEYWORD because
   1245         # QWidget allows **kwargs but errs on unknown keyword arguments
   1246 
   1247 # instantiate the widget
-> 1248 return wdg_cls(**kwargs)
        kwargs = {'napari_viewer': Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0, interactive=True), cursor=Cursor(position=(1, 1), scaled=True, size=1, style=), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, ticks=True, position=, font_size=10, unit=None), text_overlay=TextOverlay(visible=False, color=(0.5, 0.5, 0.5, 1.0), font_size=10, position=, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=, transform_drag=, transform_final=, transform=, allow_new_selection=True, selected_vertex=None)), help='', status='Ready', tooltip=Tooltip(visible=True, text=''), theme='dark', title='napari', mouse_move_callbacks=[.mouse_move at 0x149a57dc0>], mouse_drag_callbacks=[.mouse_drag at 0x149a2e1f0>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': .hold_to_lock_aspect_ratio at 0x149a2e040>, 'Control-Shift-R': , 'Control-Shift-A': })}
        wdg_cls = 

File ~/Dev/miniforge3/envs/apple-TF210/lib/python3.9/site-packages/napari_n2v/_predict_widget.py:318, in DemoPrediction.__init__(self=, napari_viewer=Viewer(axes=Axes(visible=False, labels=True, col...indings._transform_active_layer at 0x149a2edc0>}))
    315 ntf.show_info('Downloading data can take a few minutes.')
    317 # get files
--> 318 img, model = demo_files()
    320 # add image to viewer
    321 name = 'Demo image'

File ~/Dev/miniforge3/envs/apple-TF210/lib/python3.9/site-packages/napari_n2v/_sample_data.py:110, in demo_files()
    107 def demo_files():
    108     with cwd(get_temp_path()):
    109         # load sem validation
--> 110         img = _load_sem()[1][1]
    112         # create models folder if it doesn't already exist
    113         model_path = Path('models', 'trained_sem')

File ~/Dev/miniforge3/envs/apple-TF210/lib/python3.9/site-packages/napari_n2v/_sample_data.py:86, in _load_sem()
     84 data_path = Path('data', 'sem')
     85 if not data_path.exists():
---> 86     data_path.mkdir()
        data_path = PosixPath('data/sem')
     88 # download sem data
     89 img_zip_path = Path(data_path, 'SEM.zip')

File ~/Dev/miniforge3/envs/apple-TF210/lib/python3.9/pathlib.py:1323, in Path.mkdir(self=PosixPath('data/sem'), mode=511, parents=False, exist_ok=False)
   1319 """
   1320 Create a new directory at this given path.
   1321 """
   1322 try:
-> 1323     self._accessor.mkdir(self, mode)
        self = PosixPath('data/sem')
        mode = 511
        self._accessor = 
   1324 except FileNotFoundError:
   1325     if not parents or self.parent == self:

FileNotFoundError: [Errno 2] No such file or directory: 'data/sem'
jdeschamps commented 1 year ago

Fixed, thanks again!