Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Creating dataset with R leads to nwbinspector errors "incorrect type for 'subject_id' (got 'bytes', expected 'str')")" #483

Closed
nrsc opened this issue Aug 8, 2024 · 7 comments

Comments

@nrsc
Copy link

nrsc commented Aug 8, 2024

Hello,

I've been trying to write metadata information into my nwb files using R and the rhdf5 package. I have been successfully able to write my metadata into the general/subject subjection of the file, but when using the nwbinspector to check over the file, I get an error indicating that what seems to have been written into the nwb file is in the incorrect format. I.e., "got bytes, expected str".

subject_id, age, sex, and species is written to the file with the following code, (of course with the variables defined):

  nwb = rhdf5::H5Fopen(nwb_file)

  rhdf5::h5writeDataset(subject_id, nwb, "general/subject/subject_id")
  rhdf5::h5writeDataset(species, nwb, "general/subject/species")
  rhdf5::h5writeDataset(sex, nwb, "general/subject/sex")
  rhdf5::h5writeDataset(age, nwb, "general/subject/age")

I have been trying to change the encoding type, but have had no luck. Any insight into this problem would be much appreciated.

Error output from running nwbinspector on the nwb file after writing in in R:

/ ...$ nwbinspector /home/nrsc/source_nwb/QN22.26.011.1A.38.01-compressed.nwb --config dandi

hdmf.build.errors.ConstructError: (root/general/subject GroupBuilder {'attributes': {'namespace': 'core', 'neurodata_type': 'Subject', 'object_id': '26c03440-b70a-49c2-ab08-99f72047c724'}, 'groups': {}, 'datasets': {'subject_id': root/general/subject/subject_id DatasetBuilder {'attributes': {}, 'data': b'QN22.26.011.1A.38.01'}, 'species': root/general/subject/species DatasetBuilder {'attributes': {}, 'data': b'Macaca nemestrina'}, 'sex': root/general/subject/sex DatasetBuilder {'attributes': {}, 'data': b'M'}, 'age': root/general/subject/age DatasetBuilder {'attributes': {}, 'data': b'P3Y6M'}}, 'links': {}}, "Could not construct Subject object due to: Subject.init: incorrect type for 'age' (got 'bytes_', expected 'str'), incorrect type for 'sex' (got 'bytes_', expected 'str'), incorrect type for 'species' (got 'bytes_', expected 'str'), incorrect type for 'subject_id' (got 'bytes', expected 'str')")

Full output including library information:

/

/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py:668: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.8.0 is already loaded.
return func(args[0], **pargs)
/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py:668: UserWarning: Ignoring cached namespace 'core' version 2.2.4 because version 2.5.0 is already loaded.
return func(args[0], **pargs)
Traceback (most recent call last):
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1262, in construct
obj = self.new_container(cls, builder.source, parent, builder.attributes.get(self._spec.id_key()),
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1275, in new_container
obj.init(**kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 667, in func_call
pargs = check_args(args, kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 660, in check_args
raise ExceptionType(msg)
TypeError: Subject.init: incorrect type for 'age' (got 'bytes
', expected 'str'), incorrect type for 'sex' (got 'bytes
', expected 'str'), incorrect type for 'species' (got 'bytes
', expected 'str'), incorrect type for 'subject_id' (got 'bytes', expected 'str')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/nrsc/.local/bin/nwbinspector", line 8, in
sys.exit(inspect_all_cli())
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/nwbinspector.py", line 275, in inspect_all_cli
messages = list(
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/nwbinspector.py", line 414, in inspect_all
nwbfile = robust_s3_read(io.read)
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/utils.py", line 174, in robust_s3_read
raise exc
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/utils.py", line 169, in robust_s3_read
return command(*command_args, **command_kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/backends/hdf5/h5tools.py", line 500, in read
return super().read(**kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/backends/io.py", line 60, in read
container = self.__manager.construct(f_builder)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 286, in construct
result = self.__type_map.construct(builder, self, None)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 814, in construct
return obj_mapper.construct(builder, build_manager, parent)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1232, in construct
subspecs = self.__get_subspec_values(builder, self.spec, manager)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1161, in __get_subspec_values
self.__get_sub_builders(groups, spec.groups, manager, ret)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1212, in __get_sub_builders
ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1161, in __get_subspec_values
self.__get_sub_builders(groups, spec.groups, manager, ret)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1214, in __get_sub_builders
ret[subspec] = manager.construct(sub_builder)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 282, in construct
result = self.__type_map.construct(builder, self, parent)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 814, in construct
return obj_mapper.construct(builder, build_manager, parent)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1266, in construct
raise ConstructError(builder, msg) from ex

hdmf.build.errors.ConstructError: (root/general/subject GroupBuilder {'attributes': {'namespace': 'core', 'neurodata_type': 'Subject', 'object_id': '26c03440-b70a-49c2-ab08-99f72047c724'}, 'groups': {}, 'datasets': {'subject_id': root/general/subject/subject_id DatasetBuilder {'attributes': {}, 'data': b'QN22.26.011.1A.38.01'}, 'species': root/general/subject/species DatasetBuilder {'attributes': {}, 'data': b'Macaca nemestrina'}, 'sex': root/general/subject/sex DatasetBuilder {'attributes': {}, 'data': b'M'}, 'age': root/general/subject/age DatasetBuilder {'attributes': {}, 'data': b'P3Y6M'}}, 'links': {}}, "Could not construct Subject object due to: Subject.init: incorrect type for 'age' (got 'bytes_', expected 'str'), incorrect type for 'sex' (got 'bytes_', expected 'str'), incorrect type for 'species' (got 'bytes_', expected 'str'), incorrect type for 'subject_id' (got 'bytes', expected 'str')")

@CodyCBakerPhD
Copy link
Contributor

Hi there @nrsc, welcome to NWB Inspector.

A few small suggestions for making such big issues easier to read for other fellow developers

Consider styling code blocks on GitHub using '```' enclosure, such as

/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py:668: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.8.0 is already loaded.
return func(args[0], **pargs)
/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py:668: UserWarning: Ignoring cached namespace 'core' version 2.2.4 because version 2.5.0 is already loaded.
return func(args[0], **pargs)
Traceback (most recent call last):
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1262, in construct
obj = self.new_container(cls, builder.source, parent, builder.attributes.get(self._spec.id_key()),
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1275, in new_container
obj.init(**kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 667, in func_call
pargs = check_args(args, kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 660, in check_args
raise ExceptionType(msg)
TypeError: Subject.init: incorrect type for 'age' (got 'bytes', expected 'str'), incorrect type for 'sex' (got 'bytes', expected 'str'), incorrect type for 'species' (got 'bytes', expected 'str'), incorrect type for 'subject_id' (got 'bytes', expected 'str')

...

hdmf.build.errors.ConstructError: (root/general/subject GroupBuilder {'attributes': {'namespace': 'core', 'neurodata_type': 'Subject', 'object_id': '26c03440-b70a-49c2-ab08-99f72047c724'}, 'groups': {}, 'datasets': {'subject_id': root/general/subject/subject_id DatasetBuilder {'attributes': {}, 'data': b'QN22.26.011.1A.38.01'}, 'species': root/general/subject/species DatasetBuilder {'attributes': {}, 'data': b'Macaca nemestrina'}, 'sex': root/general/subject/sex DatasetBuilder {'attributes': {}, 'data': b'M'}, 'age': root/general/subject/age DatasetBuilder {'attributes': {}, 'data': b'P3Y6M'}}, 'links': {}}, "Could not construct Subject object due to: Subject.init: incorrect type for 'age' (got 'bytes_', expected 'str'), incorrect type for 'sex' (got 'bytes_', expected 'str'), incorrect type for 'species' (got 'bytes_', expected 'str'), incorrect type for 'subject_id' (got 'bytes', expected 'str')")

Makes it easier to identify things

Also consider hiding long stacks of details inside < details > / </details> blocks like so

Traceback (most recent call last):
File "/home/nrsc/.local/bin/nwbinspector", line 8, in
sys.exit(inspect_all_cli())
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/nwbinspector.py", line 275, in inspect_all_cli
messages = list(
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/nwbinspector.py", line 414, in inspect_all
nwbfile = robust_s3_read(io.read)
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/utils.py", line 174, in robust_s3_read
raise exc
File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/utils.py", line 169, in robust_s3_read
return command(*command_args, **command_kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/backends/hdf5/h5tools.py", line 500, in read
return super().read(**kwargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/backends/io.py", line 60, in read
container = self.__manager.construct(f_builder)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 286, in construct
result = self.__type_map.construct(builder, self, None)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 814, in construct
return obj_mapper.construct(builder, build_manager, parent)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1232, in construct
subspecs = self.__get_subspec_values(builder, self.spec, manager)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1161, in __get_subspec_values
self.__get_sub_builders(groups, spec.groups, manager, ret)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1212, in __get_sub_builders
ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1161, in __get_subspec_values
self.__get_sub_builders(groups, spec.groups, manager, ret)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1214, in __get_sub_builders
ret[subspec] = manager.construct(sub_builder)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 282, in construct
result = self.__type_map.construct(builder, self, parent)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 814, in construct
return obj_mapper.construct(builder, build_manager, parent)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
return func(args[0], **pargs)
File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1266, in construct
raise ConstructError(builder, msg) from ex

Anyway, as the error tracebacks indicate this does not seem to be an NWB Inspector specific issue but instead indicates via HDMF and PyNWB that we cannot even open the file in Python

A simpler approach to debug the interoperability of your R code would be to simply try opening the file with

import pynwb

with pynwb.NWBHDF5IO(path="path to your file", mode="r") as io:
    nwbfile = io.read()

which should give the same errors

At the low level, I'm guessing the R HDF5 API is creating a dataset of dtype 'bytes' (variable-length strings) when NWB seems to expect dtype 'S' (fixed length)

See https://docs.h5py.org/en/stable/strings.html#reading-strings for more info

@rly
Copy link
Contributor

rly commented Aug 8, 2024

Hi @nrsc , thanks for creating the issue.

Try:

rhdf5::h5writeDataset(subject_id, nwb, "general/subject/subject_id", variableLengthString=TRUE, encoding="UTF-8")
rhdf5::h5writeDataset(species, nwb, "general/subject/species", variableLengthString=TRUE, encoding="UTF-8")
rhdf5::h5writeDataset(sex, nwb, "general/subject/sex", variableLengthString=TRUE, encoding="UTF-8")
rhdf5::h5writeDataset(age, nwb, "general/subject/age", variableLengthString=TRUE, encoding="UTF-8")

@nrsc
Copy link
Author

nrsc commented Aug 9, 2024

Thank you @rly. Looks like that may have done the trick and I no loger get the error regarding the string type.

Also a special shout out to @CodyCBakerPhD. Thank you for the tips on formatting.

Following up on the issue, I am now running into a problem that looks to be associated with hdmf when trying to validate the nwb files with nwbinspector that have been manipulated by writing the metadata to the dataset with the rhdf5 package.

/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py:668: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.1.3 because version 1.8.0 is already loaded.
  return func(args[0], **pargs)
/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py:668: UserWarning: Ignoring cached namespace 'core' version 2.2.4 because version 2.5.0 is already loaded.
  return func(args[0], **pargs)
Traceback (most recent call last):                                                                                                
  File "/home/nrsc/.local/bin/nwbinspector", line 8, in <module>
    sys.exit(inspect_all_cli())
  File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/nrsc/.local/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/nwbinspector.py", line 275, in inspect_all_cli
    messages = list(
  File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/nwbinspector.py", line 462, in inspect_all
    for message in inspect_nwbfile(nwbfile_path=nwbfile_path, checks=checks, driver=driver):
  File "/home/nrsc/.local/lib/python3.10/site-packages/nwbinspector/nwbinspector.py", line 565, in inspect_nwbfile
    validation_error_list, _ = pynwb.validate(paths=[nwbfile_path], driver=driver)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 671, in func_call
    pargs = _check_args(args, kwargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 660, in _check_args
    raise ExceptionType(msg)
TypeError: validate: unrecognized argument: 'driver'

Following the advice of @CodyCBakerPhD I tried to load the and read the nwb file using python the python terminal, and run into errors also associated with hdmf. Details below.

>>> with pynwb.NWBHDF5IO(path="QN22.26.011.1A.38.01-compressed.nwb", mode="r") as io:
...     nwbfile = io.read()
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/backends/hdf5/h5tools.py", line 500, in read
    return super().read(**kwargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
    return func(args[0], **pargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/backends/io.py", line 60, in read
    container = self.__manager.construct(f_builder)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
    return func(args[0], **pargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 286, in construct
    result = self.__type_map.construct(builder, self, None)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
    return func(args[0], **pargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/manager.py", line 814, in construct
    return obj_mapper.construct(builder, build_manager, parent)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
    return func(args[0], **pargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1232, in construct
    subspecs = self.__get_subspec_values(builder, self.spec, manager)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1161, in __get_subspec_values
    self.__get_sub_builders(groups, spec.groups, manager, ret)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1212, in __get_sub_builders
    ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1161, in __get_subspec_values
    self.__get_sub_builders(groups, spec.groups, manager, ret)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/build/objectmapper.py", line 1190, in __get_sub_builders
    for parent_dt in manager.namespace_catalog.get_hierarchy(ns, dt):
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/utils.py", line 668, in func_call
    return func(args[0], **pargs)
  File "/home/nrsc/.local/lib/python3.10/site-packages/hdmf/spec/namespace.py", line 328, in get_hierarchy
    raise KeyError("'%s' not a namespace" % namespace)
KeyError: "'ndx-mies' not a namespace"

Thank you all for your time and insight,

Scott

@CodyCBakerPhD
Copy link
Contributor

Both of those errors indicate to me a potential version issue. Any version of PyNWB in the last year or more should have the driver argument in pynwb.validate (https://github.com/NeurodataWithoutBorders/pynwb/blob/dev/src/pynwb/validate.py#L118), and likewise the modern behavior of pynwb.NWBHDF5IO should load all namespaces by default (you can also set load_namespaces=True explicitly if you want too)

Are you working in a clean, fresh Python (conda preferably) environment?

Can you copy/paste the results of pip show pynwb hdmf h5py?

@nrsc
Copy link
Author

nrsc commented Aug 9, 2024

Hey Cody,

Here is the output.

Name: pynwb
Version: 2.2.0
Summary: Package for working with Neurodata stored in the NWB format
Home-page: https://github.com/NeurodataWithoutBorders/pynwb
Author: Andrew Tritt
Author-email: [email protected]
License: BSD
Location: /home/nrsc/.local/lib/python3.10/site-packages
Requires: h5py, hdmf, numpy, pandas, python-dateutil, setuptools
Required-by: allensdk, dandi, ndx-events, ndx-grayscalevolume, ndx-icephys-meta, ndx-spectrum, nwbinspector, nwbwidgets
---
Name: hdmf
Version: 3.14.0
Summary: A hierarchical data modeling framework for modern science data standards
Home-page: https://github.com/hdmf-dev/hdmf
Author: 
Author-email: Ryan Ly <[email protected]>, Andrew Tritt <[email protected]>, Oliver Ruebel <[email protected]>, Ben Dichter <[email protected]>, Matthew Avaylon <[email protected]>
License: BSD-3-Clause
Location: /home/nrsc/.local/lib/python3.10/site-packages
Requires: h5py, jsonschema, numpy, pandas, ruamel-yaml, scipy
Required-by: allensdk, dandi, pynwb
---
Name: h5py
Version: 3.7.0
Summary: Read and write HDF5 files from Python
Home-page: http://www.h5py.org
Author: Andrew Collette
Author-email: [email protected]
License: BSD
Location: /home/nrsc/.local/lib/python3.10/site-packages
Requires: numpy
Required-by: allensdk, hdmf, pynwb

@CodyCBakerPhD
Copy link
Contributor

Thanks

As expected, several of those packages are quite out of date

Try using latest of each

Either in a new, clean environment, do pip install nwbinspector and it should install everything needed with latest compatible versions

or in current environment

pip install -U pynwb
pip install -U hdmf
pip install -U h5py

(may cause more strange errors though, which is why a clean environment is suggested)

@nrsc
Copy link
Author

nrsc commented Aug 9, 2024

Thank you everyone. Packages have been updated and the inspector has been run successfully.

@nrsc nrsc closed this as completed Aug 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants