datajoint / element-array-ephys

DataJoint Element for Neuropixels analysis with Kilosort
https://datajoint.com/docs
MIT License
5 stars 34 forks source link

FileNotFoundError in demo_prepare.ipynb #154

Open vncntprvst opened 1 year ago

vncntprvst commented 1 year ago

Bug Report

Description

The repo's Instructions say: "We recommend you start by navigating to the notebooks directory on the left panel and go through the demo_prepare.ipynb". When executing code cell 5 in that notebook

populate_settings = {"display_progress": True}

ephys.EphysRecording.populate(**populate_settings)

a FileNotFoundError occurs.

Reproducibility

Repository environment created with Dev Containers extension. Navigate to demo_prepare.ipynb notebook, select kernel and execute code. Error stack:

Output exceeds the [size limit](command:workbench.action.openSettings?[). Open the full output data [in a text editor](command:workbench.action.openLargeOutput?5cae5363-0515-4d6b-9fe4-f0979c9a6448)
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Cell In[5], line 3
      1 populate_settings = {"display_progress": True}
----> 3 ephys.EphysRecording.populate(**populate_settings)

File /usr/local/lib/python3.9/site-packages/datajoint/autopopulate.py:241, in AutoPopulate.populate(self, suppress_errors, return_exception_objects, reserve_jobs, order, limit, max_calls, display_progress, processes, make_kwargs, *restrictions)
    237 if processes == 1:
    238     for key in (
    239         tqdm(keys, desc=self.__class__.__name__) if display_progress else keys
    240     ):
--> 241         error = self._populate1(key, jobs, **populate_kwargs)
    242         if error is not None:
    243             error_list.append(error)

File /usr/local/lib/python3.9/site-packages/datajoint/autopopulate.py:292, in AutoPopulate._populate1(self, key, jobs, suppress_errors, return_exception_objects, make_kwargs)
    290 self.__class__._allow_insert = True
    291 try:
--> 292     make(dict(key), **(make_kwargs or {}))
    293 except (KeyboardInterrupt, SystemExit, Exception) as error:
    294     try:

File /usr/local/lib/python3.9/site-packages/element_array_ephys/ephys_acute.py:291, in EphysRecording.make(self, key)
    289 def make(self, key):
    290     """Populates table with electrophysiology recording information."""
...
     43     "No valid full-path found (from {})"
     44     " for {}".format(root_directories, relative_path)
     45 )

FileNotFoundError: No valid full-path found (from [PosixPath('/workspaces/workflow-array-ephys/example_data/raw'), PosixPath('/workspaces/workflow-array-ephys/example_data/processed')]) for subject5/session1

Expected Behavior

The data should be downloaded first then used to populate the database.

kabilar commented 1 year ago

Thanks for the report @vncntprvst.