Skip to content

NWB-export.ipynb error #163

@JaerongA

Description

@JaerongA

Bug Report

NWB-export.ipynb may be outdated. It yields the following errors described below.

Description

  • It inserts "institution" into lab.Lab, which doesn't exist in the table heading.

  • (lab.Lab * lab.Lab.Organization * lab.Organization & lab_key) returns empty table since lab.Lab.Organization is empty.

Reproducibility

Include:

  • OS (WIN)

  • DataJoint Element Version
    element-animal>=0.1.5
    element-array-ephys>=0.2.4
    element-electrode-localization>=0.1.2
    element-event>=0.1.2
    element-interface>=0.5.0
    element-lab>=0.2.0
    element-session>=0.1.2

  • MySQL Deployment Strategy (local-docker)

  • Complete error stack as a result of evaluating the above steps

KeyError                                  Traceback (most recent call last)
Cell In[19], line 2
      1 ## If you don't already have data in the Element Lab
----> 2 lab.Lab.insert1(
      3     {
      4         **lab_key,
      5         "lab_name": "LabA",
      6         "institution": "",
      7         "address": "",
      8         "time_zone": "UTC+0",
      9     },
     10     skip_duplicates=True,
     11 )
     12 lab.ProtocolType.insert1({"protocol_type": "A"})
     13 lab.Protocol.insert1({**protocol_key, "protocol_type": "A"}, skip_duplicates=True)

File [c:\Users\jaero\miniconda3\envs\workflow-array-ephys\lib\site-packages\datajoint\table.py:337](file:///C:/Users/jaero/miniconda3/envs/workflow-array-ephys/lib/site-packages/datajoint/table.py:337), in Table.insert1(self, row, **kwargs)
    330 def insert1(self, row, **kwargs):
    331     """
    332     Insert one data record into the table. For ``kwargs``, see ``insert()``.
    333 
    334     :param row: a numpy record, a dict-like object, or an ordered sequence to be inserted
    335         as one row.
    336     """
...
    859                 )
    860 elif set(field_list) != set(fields).intersection(self.heading.names):
    861     raise DataJointError("Attempt to insert rows with different fields.")

KeyError: '`institution` is not in the table heading'
Output exceeds the [size limit](command:workbench.action.openSettings?%5B%22notebook.output.textLineLimit%22%5D). Open the full output data [in a text editor](command:workbench.action.openLargeOutput?8db8f3b2-9105-4915-b964-41d01d620f48)
---------------------------------------------------------------------------
DataJointError                            Traceback (most recent call last)
Cell In[18], line 2
      1 print('Lab:\n')
----> 2 print(element_lab_to_nwb_dict(lab_key=lab_key, protocol_key=protocol_key, 
      3                               project_key=project_key))
      4 print('\nAnimal:\n')
      5 print(subject_to_nwb(session_key=session_key))

File [c:\Users\jaero\miniconda3\envs\workflow-array-ephys\lib\site-packages\element_lab\export\nwb.py:112](file:///C:/Users/jaero/miniconda3/envs/workflow-array-ephys/lib/site-packages/element_lab/export/nwb.py:112), in element_lab_to_nwb_dict(lab_key, project_key, protocol_key)
    110 element_info = dict()
    111 if lab_key:
--> 112     element_info.update(_lab_to_nwb_dict(lab_key))
    113 if project_key:
    114     element_info.update(_project_to_nwb_dict(project_key))

File [c:\Users\jaero\miniconda3\envs\workflow-array-ephys\lib\site-packages\element_lab\export\nwb.py:19](file:///C:/Users/jaero/miniconda3/envs/workflow-array-ephys/lib/site-packages/element_lab/export/nwb.py:19), in _lab_to_nwb_dict(lab_key)
     10 def _lab_to_nwb_dict(lab_key: dict) -> dict:
     11     """Generate a dictionary containing all relevant lab and institution info.
     12 
     13     Args:
   (...)
     17         dict: Dictionary with NWB parameters.
     18     """
---> 19     lab_info = (lab.Lab * lab.Lab.Organization * lab.Organization & lab_key).fetch1()
...
    344         for name in heading.names
    345     )
    346 else:  # fetch some attributes, return as tuple

DataJointError: fetch1 requires exactly one tuple in the input set.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions