cortex-lab / phy

phy: interactive visualization and manual spike sorting of large-scale ephys data
BSD 3-Clause "New" or "Revised" License
313 stars 157 forks source link

Permission error with memmap.py #1064

Closed EmmettJT closed 3 years ago

EmmettJT commented 3 years ago

Hi, thanks for the great software!

When I run phy template-gui params.py it tells me that permission is denied for access to the Raw data dir. I am running this as admin and have checked all access privileges to the dir but the error persists.

This issue seems similar to #865 with the difference being that I am already running windows 10

OS: Windows 10 GPU: GeForceRTX2080Ti Python 3.7.9 Anaconda 2020.07

Possibly there is something very simple I am missing but I am at a total loss!

Error (running in debug mode - phy template-gui params.py --debug):

(phy2) D:\Neuropixel_data_temp\EJT48_2020-10-19_14-14-28 - Copy>phy template-gui params.py --debug
13:18:05.964 [D] __init__:68          Start capturing exceptions.
13:18:06.631 [W] model:545            Unreferenced clusters found in templates (generally not a problem)
13:18:06.631 [D] model:560            Loading spike clusters.
13:18:06.943 [W] model:567            Unreferenced clusters found in spike_clusters (generally not a problem)
13:18:06.959 [D] model:507            No channel shank file found.
13:18:06.959 [D] model:627            Loading templates.
13:18:06.959 [D] model:654            Templates are dense.
13:18:06.959 [D] model:604            Loading spike waveforms.
13:18:06.959 [D] model:609            Skipping spike waveforms that do not exist, they will be extracted on the fly from the raw data as needed.
13:18:06.959 [D] model:660            Loading the whitening matrix.
13:18:06.974 [D] model:667            Loading the inverse of the whitening matrix.
13:18:06.974 [D] model:164            Loading traces at `D:\Neuropixel_data_temp\EJT48_raw`.
13:18:06.974 [E] __init__:62          An error has occurred (PermissionError): [Errno 13] Permission denied: 'D:\\Neuropixel_data_temp\\EJT48_raw'
Traceback (most recent call last):
  File "c:\users\emmett\anaconda3\envs\phy2\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\Emmett\anaconda3\envs\phy2\Scripts\phy.exe\__main__.py", line 7, in <module>
    sys.exit(phycli())
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\click\core.py", line 1025, in __call__
    return self.main(*args, **kwargs)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\click\core.py", line 955, in main
    rv = self.invoke(ctx)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\click\core.py", line 1517, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\click\core.py", line 1279, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\click\core.py", line 710, in invoke
    return callback(*args, **kwargs)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\click\decorators.py", line 18, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phy\apps\__init__.py", line 159, in cli_template_gui
    template_gui(params_path, **kwargs)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phy\apps\template\gui.py", line 198, in template_gui
    controller = TemplateController(model=load_model(params_path), dir_path=dir_path, **kwargs)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phylib\io\model.py", line 1178, in load_model
    return TemplateModel(**get_template_params(params_path))
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phylib\io\model.py", line 297, in __init__
    self._load_data()
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phylib\io\model.py", line 389, in _load_data
    self.traces = self._load_traces(self.channel_mapping)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phylib\io\model.py", line 523, in _load_traces
    for path in paths]
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phylib\io\model.py", line 523, in <listcomp>
    for path in paths]
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phylib\io\model.py", line 176, in load_raw_data
    return _dat_to_traces(path, n_channels=n_channels_dat, dtype=dtype, offset=offset, order=order)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\phylib\io\model.py", line 149, in _dat_to_traces
    str(dat_path), dtype=dtype, shape=(n_samples, n_channels), offset=offset, order=order)
  File "c:\users\emmett\anaconda3\envs\phy2\lib\site-packages\numpy\core\memmap.py", line 225, in __new__
    f_ctx = open(os_fspath(filename), ('r' if mode == 'c' else mode)+'b')
PermissionError: [Errno 13] Permission denied: 'D:\\Neuropixel_data_temp\\EJT48_raw'
EmmettJT commented 3 years ago

solved: I was missing '\continuous.dat' from the end of my path in params.py