Ideally, all tutorials in MatNWB should pass the NWB Inspector.
Steps to Reproduce
When run on the file produced by `tutorials/icephys.mlx` an error is thrown.
The run call being `nwbinspector .\test_new_icephys.nwb`
Error Message
(nwb-inspector) PS C:\code\matnwb> nwbinspector.exe .\test_new_icephys.nwb
C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\spec\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.5.0 because version 1.7.0 is already loaded.
warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\spec\namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.1.0 because version 0.4.0 is already loaded.
warn("Ignoring cached namespace '%s' version %s because version %s is already loaded."
Traceback (most recent call last):
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1256, in construct
obj = self.__new_container__(cls, builder.source, parent, builder.attributes.get(self.__spec.id_key()),
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1269, in __new_container__
obj.__init__(**kwargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\pynwb\icephys.py", line 507, in __init__
super().__init__(**kwargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\common\alignedtable.py", line 72, in __init__
self.id.append(i)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\container.py", line 784, in append
self.__data = append_data(self.__data, arg)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\data_utils.py", line 24, in append_data
data.resize(shape)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\h5py\_hl\dataset.py", line 666, in resize
raise TypeError("Only chunked datasets can be resized")
TypeError: Only chunked datasets can be resized
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\Scripts\nwbinspector.exe\__main__.py", line 7, in <module>
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\click\core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\click\core.py", line 1078, in main
rv = self.invoke(ctx)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\click\core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\click\core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\nwbinspector\nwbinspector.py", line 271, in inspect_all_cli
messages = list(
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\nwbinspector\nwbinspector.py", line 403, in inspect_all
nwbfile = robust_s3_read(io.read)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\nwbinspector\utils.py", line 173, in robust_s3_read
raise exc
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\nwbinspector\utils.py", line 168, in robust_s3_read
return command(*command_args, **command_kwargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\pynwb\__init__.py", line 304, in read
file = super().read(**kwargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\backends\hdf5\h5tools.py", line 477, in read
return super().read(**kwargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\backends\io.py", line 60, in read
container = self.__manager.construct(f_builder)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\manager.py", line 284, in construct
result = self.__type_map.construct(builder, self, None)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\manager.py", line 795, in construct
return obj_mapper.construct(builder, build_manager, parent)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1226, in construct
subspecs = self.__get_subspec_values(builder, self.spec, manager)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1155, in __get_subspec_values
self.__get_sub_builders(groups, spec.groups, manager, ret)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1206, in __get_sub_builders
ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1155, in __get_subspec_values
self.__get_sub_builders(groups, spec.groups, manager, ret)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1206, in __get_sub_builders
ret.update(self.__get_subspec_values(sub_builder, subspec, manager))
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1155, in __get_subspec_values
self.__get_sub_builders(groups, spec.groups, manager, ret)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1208, in __get_sub_builders
ret[subspec] = manager.construct(sub_builder)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\manager.py", line 280, in construct
result = self.__type_map.construct(builder, self, parent)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\manager.py", line 795, in construct
return obj_mapper.construct(builder, build_manager, parent)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\utils.py", line 644, in func_call
return func(args[0], **pargs)
File "C:\Users\lawrence\AppData\Local\miniconda3\envs\nwb-inspector\lib\site-packages\hdmf\build\objectmapper.py", line 1260, in construct
raise ConstructError(builder, msg) from ex
hdmf.build.errors.ConstructError: (root/general/intracellular_ephys/intracellular_recordings GroupBuilder {'attributes': {'categories': array(['electrodes', 'stimiuli', 'responses', 'recording_lab_data'],
dtype=object), 'colnames': array(['recordings_tag'], dtype=object), 'description': 'A table to group together a stimulus and response from a single electrode and a single simultaneous recording and for storing metadata about the intracellular recording.', 'namespace': 'core', 'neurodata_type': 'IntracellularRecordingsTable', 'object_id': 'c986b9ee-da96-4ae8-9c97-88a2d949a8f2'}, 'groups': {'electrodes': root/general/intracellular_ephys/intracellular_recordings/electrodes GroupBuilder {'attributes': {'colnames': array(['electrode', 'voltage_threshold'], dtype=object), 'description': 'Table for storing intracellular electrode related metadata.', 'namespace': 'core', 'neurodata_type': 'IntracellularElectrodesTable', 'object_id': 'a7cc6d5f-8e14-462c-9589-faff8ccd7e03'}, 'groups': {}, 'datasets': {'electrode': root/general/intracellular_ephys/intracellular_recordings/electrodes/electrode DatasetBuilder {'attributes': {'description': 'Column for storing the reference to the intracellular electrode', 'namespace': 'hdmf-common', 'neurodata_type': 'VectorData', 'object_id': 'ecbb5287-613d-4d82-83fd-379b1f6adfc3'}, 'data': <hdmf.backends.hdf5.h5_utils.BuilderH5ReferenceDataset object at 0x000002638E7E6110>}, 'id': root/general/intracellular_ephys/intracellular_recordings/electrodes/id DatasetBuilder {'attributes': {'namespace': 'hdmf-common', 'neurodata_type': 'ElementIdentifiers', 'object_id': 'f7b73811-f428-4ce2-af13-c70ab29b8a06'}, 'data': <Closed HDF5 dataset>}, 'voltage_threshold': root/general/intracellular_ephys/intracellular_recordings/electrodes/voltage_threshold DatasetBuilder {'attributes': {'description': 'Just an example column on the electrodes category table', 'namespace': 'hdmf-common', 'neurodata_type': 'VectorData', 'object_id': 'ae7b2fda-bd01-4b53-9c2f-5aefe63e0380'}, 'data': <Closed HDF5 dataset>}}, 'links': {}}, 'recording_lab_data': root/general/intracellular_ephys/intracellular_recordings/recording_lab_data GroupBuilder {'attributes': {'colnames': array(['location'], dtype=object), 'description': 'category table for lab-specific recording metadata', 'namespace': 'hdmf-common', 'neurodata_type': 'DynamicTable', 'object_id': '2099f2a7-9fd1-417c-b253-1db399a3c63a'}, 'groups': {}, 'datasets': {'id': root/general/intracellular_ephys/intracellular_recordings/recording_lab_data/id DatasetBuilder {'attributes': {'namespace': 'hdmf-common', 'neurodata_type': 'ElementIdentifiers', 'object_id': '0cb800f9-45e9-4a16-ab07-567fdaed4d95'}, 'data': <Closed HDF5 dataset>}, 'location': root/general/intracellular_ephys/intracellular_recordings/recording_lab_data/location DatasetBuilder {'attributes': {'description': 'Recording location in Middle Earth', 'namespace': 'hdmf-common', 'neurodata_type': 'VectorData', 'object_id': '81f95a95-d096-4487-b54c-030b6cbf2f2f'}, 'data': <StrDataset for Closed HDF5 dataset>}}, 'links': {}}, 'responses': root/general/intracellular_ephys/intracellular_recordings/responses GroupBuilder {'attributes': {'colnames': array(['response'], dtype=object), 'description': 'Table for storing intracellular response related metadata.', 'namespace': 'core', 'neurodata_type': 'IntracellularResponsesTable', 'object_id': 'e25e18fc-796a-4cdc-9fe5-d99697439f56'}, 'groups': {}, 'datasets': {'id': root/general/intracellular_ephys/intracellular_recordings/responses/id DatasetBuilder {'attributes': {'namespace': 'hdmf-common', 'neurodata_type': 'ElementIdentifiers', 'object_id': 'e759473c-36a7-409f-96bb-8e3541a7bf2b'}, 'data': <Closed HDF5 dataset>}, 'response': root/general/intracellular_ephys/intracellular_recordings/responses/response DatasetBuilder {'attributes': {'description': 'Column storing the reference to the recorded response for the recording (rows)', 'namespace': 'core', 'neurodata_type': 'TimeSeriesReferenceVectorData', 'object_id': 'd7eb7bf8-2fce-4f6c-937d-bfb1f5d9d69c'}, 'data': <hdmf.backends.hdf5.h5_utils.BuilderH5TableDataset object at 0x000002638E7E66E0>}}, 'links': {}}, 'stimuli': root/general/intracellular_ephys/intracellular_recordings/stimuli GroupBuilder {'attributes': {'colnames': array(['stimulus'], dtype=object), 'description': 'Table for storing intracellular stimulus related metadata.', 'namespace': 'core', 'neurodata_type': 'IntracellularStimuliTable', 'object_id': '97af7739-c6e5-4bd8-a8d9-fe97e37be801'}, 'groups': {}, 'datasets': {'id': root/general/intracellular_ephys/intracellular_recordings/stimuli/id DatasetBuilder {'attributes': {'namespace': 'hdmf-common', 'neurodata_type': 'ElementIdentifiers', 'object_id': '9ae1e7db-3bd3-42fa-ac95-5d4bf645aa4c'}, 'data': <Closed HDF5 dataset>}, 'stimulus': root/general/intracellular_ephys/intracellular_recordings/stimuli/stimulus DatasetBuilder {'attributes': {'description': 'Column storing the reference to the recorded stimulus for the recording (rows)', 'namespace': 'core', 'neurodata_type': 'TimeSeriesReferenceVectorData', 'object_id': 'e3647b32-7cd7-400b-984a-4596ac37bacb'}, 'data': <hdmf.backends.hdf5.h5_utils.BuilderH5TableDataset object at 0x000002638E7E63E0>}}, 'links': {}}}, 'datasets': {'id': root/general/intracellular_ephys/intracellular_recordings/id DatasetBuilder {'attributes': {'namespace': 'hdmf-common', 'neurodata_type': 'ElementIdentifiers', 'object_id': 'd19533ff-a05d-400f-ab08-69ed0538b95d'}, 'data': <Closed HDF5 dataset>}, 'recordings_tag': root/general/intracellular_ephys/intracellular_recordings/recordings_tag DatasetBuilder {'attributes': {'description': 'description', 'namespace': 'hdmf-common', 'neurodata_type': 'VectorData', 'object_id': '306e1194-0e44-428c-8422-6b9821f8ebe1'}, 'data': <Closed HDF5 dataset>}}, 'links': {}}, 'Could not construct IntracellularRecordingsTable object due to: Only chunked datasets can be resized')
The cause of this error can be resolved by fixing the icephys.mlx live script. However, the redraw call on a read should be investigated in the hdmf side.
What happened?
Ideally, all tutorials in MatNWB should pass the NWB Inspector.
Steps to Reproduce
Error Message
Operating System
Windows
Matlab Version
R2018b
Code of Conduct