Skip to content

KeyError: "'ndx-aibs-ecephys' not a namespace" when loading NWB files #2513

@dervinism

Description

@dervinism

Describe the bug
I get the following error when I try to read NWB files (Visual Coding Neuropixels experiment) after loading them with NWBHDF5IO function of pynwb package:

Traceback (most recent call last):
  File "f:\infraslow-dynamics\02_material_and_methods\02_code\allensdk\loadNWB.py", line 7, in <module>       
    nwbfile = io.read()
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\backends\hdf5\h5tools.py", line 447, in read
    return call_docval_func(super().read, kwargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 434, in call_docval_func
    return func(*fargs, **fkwargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\backends\io.py", line 42, in read
    container = self.__manager.construct(f_builder)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\manager.py", line 280, in construct
    result = self.__type_map.construct(builder, self, None)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\manager.py", line 794, in construct
    return obj_mapper.construct(builder, build_manager, parent)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1218, in construct
    subspecs = self.__get_subspec_values(builder, self.spec, manager)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1147, in __get_subspec_values
    self.__get_sub_builders(groups, spec.groups, manager, ret)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1198, in __get_sub_builders
    ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1147, in __get_subspec_values
    self.__get_sub_builders(groups, spec.groups, manager, ret)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1190, in __get_sub_builders
    sub_builder = self.__flatten(sub_builder, subspec, manager)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1203, in __flatten
    tmp = [manager.construct(b) for b in sub_builder]
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1203, in <listcomp>
    tmp = [manager.construct(b) for b in sub_builder]
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\manager.py", line 276, in construct
    result = self.__type_map.construct(builder, self, parent)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\manager.py", line 794, in construct
    return obj_mapper.construct(builder, build_manager, parent)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1218, in construct
    subspecs = self.__get_subspec_values(builder, self.spec, manager)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1147, in __get_subspec_values
    self.__get_sub_builders(groups, spec.groups, manager, ret)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\build\objectmapper.py", line 1176, in __get_sub_builders
    for parent_dt in manager.namespace_catalog.get_hierarchy(ns, dt):
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\utils.py", line 593, in func_call
    return func(args[0], **pargs)
  File "C:\Users\3XS Admin\.conda\envs\nwb\lib\site-packages\hdmf\spec\namespace.py", line 329, in get_hierarchy
    raise KeyError("'%s' not a namespace" % namespace)
KeyError: "'ndx-aibs-ecephys' not a namespace"

To Reproduce
Install pynwb in a separate conda environment and execute the script below on vscode

import numpy as np
from pynwb import NWBHDF5IO
# Open the file in read mode "r"
io = NWBHDF5IO('F:/infraslow-dynamics/03_data/003_allen_raw_derived/M766640955/session_766640955.nwb', mode="r")
nwbfile = io.read()

Expected behavior
Expected not to get this error. There is no problem loading these files in HDFView.

Actual Behavior
Error

Environment (please complete the following information):

  • OS & version: Windows 10
  • Python version 3.9 via anaconda
  • AllenSDK version latest via pip install on anaconda

Additional context
None

Do you want to work on this issue?
No

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions