Releases: NeurodataWithoutBorders/nwbinspector
v0.4.13
v0.4.13
DANDI Configuration
check_subject_sex
,check_subject_species
,check_subject_age
,check_subject_proper_age_range
are now elevated toCRITICAL
importance when using the "DANDI" configuration. Therefore, these are now required for passingdandi validate
.
Improvements
- Enhanced human-readability of the return message from
check_experimenter_form
. PR #254 - Extended check for
Subject.age
field with estimated age range using '/' separator. PR #247 - Allowed network-dependent tests to be skipped by specifying the
NWBI_SKIP_NETWORK_TESTS
environment variable. PR #261
New Checks
- Added check for existence of
IntracellularElectrode.cell_id
PR #256 - Added check that bounds of age range for
Subject.age
using the '/' separator are properly increasing. PR #247 - Added check for existence of
IntracellularElectrode.cell_id
PR #256 - Added check for shape consistency between
reference_images
and the x, y, (z) dimensions of theimage_mask
ofPlaneSegmentation
objects. PR #257
Fixes
- Fixed the folder-wide
identifier
pre-check forinspect_all
to read NWB files with extensions. PR #262
v0.4.12
v0.4.12
Re-release of v0.4.10 for the conda-forge feedstock.
v0.4.10
v0.4.10
Improvements
- Added a utillity function for retrieving the version of a package in a form that allows easy comparison.
- Added a utility function for robust S3 retrieval (retries with exponential backoff) and implemented it within the core inspection functions in an attempt to resolve the ongoing S3 curl request failures.
- Allowed importance threshold to be specified as a string rather than an instance of the enum class.
- Added negative job slicing to all n_jobs arguments.
New Checks
- For objects new in NWB 2.5 called 'Images' - for the field named "order_of_images", which specifies the order of the images within the Images object, we check that the "order_of_images" contains references to all of the images only once that are in the Images object
"order_of_images" contains no other images (e.g., from another object). - Ensure that the form of each experimenter in the NWBFile metadata is of the form DANDI expects (Last, First Middle).
- Special check for unique identifiers over a folder path given to inspect_all.
Bug Fixes
- Critical fix for the config feature which resulted in secondary fields of messages failing to be parsed.
v0.4.5
v0.4.5
Bug fix
check_compass_direction_unit
now correctly applies to CompassDirection
objects.
v0.4.4
v0.4.4
Improvements
- Makes DANDI tests lazy.
v0.4.3
v0.4.3
Improvements
- Makes DANDI a lazy import for the automated S3 resolution feature.
New Checks
- If a SpatialSeries inside a CompassDirection object have proper units (radians or degrees).
Bug Fixes
- When an NWBFile fails
io.read()
, preventing the report from being generated.
v0.4.0
v0.4.0
Improvements
- Introduces the automated streaming feature to the CLI and inspect_all whenever the path input is a DANDISet link or ID.
- Allows the CLI to save a report even when there are no messages.
New Checks
- If external_files for ImageSeries are relative paths, not absolute - it also allows the CLI to save a report even when there are no messages.
- If a serialized dictionary is within a string value of a
DynamicTable
. - If spike times fall within observed intervals on the Units table.
- If spatial series have the correct dimensionality.
- If optical series have wavelengths set in nanometers, a requirement of the NWB Schema.
- If file exists or url is valid for all items in the
external_file
field ofImageSeries
.
Check Changes
- Elevated the latin binomial species name check to
BEST_PRACTICE_VIOLATION
level. - Excludes Units tables and the ElectrodeTable of an NWBFile from the default operation of checking for single row tables.
Bug Fixes
- For particular children of TimeSeries that may have resolution set to
None
. - When reading byte strings for various checks that assert particular practices on the contents of the strings.
v0.3.9
v0.3.9
Attempting to setup a conda-forge feedstock for the NWBInspector.
v0.3.8
v0.3.8
Improvements
- Added filters for benign warnings when loading a PyNWB file with outdated cached namespaces or no namespaces at all
New Checks
- Ensuring all ogen sites are referenced by an ogen series
- If the ElectricalSeries.electrodes points to a dynamic table region that actually came from the ElectrodeTable
- The related_publications, if set, uses a proper doi format
- NWBFile contains keywords
- Slashes in names
- Incorrect session start times
- Unknown resolution for TimeSeries
- Missing unit for TimeSeries
Bug fixes
- Display output for aggregated messages was accidentally counting the first file
- Behavior of checking session_start_time after checking the nwbfile description resulted in session_start_time being set to None in memory
v0.3.1
v0.3.1 API Changes
-
Output from
inspect_nwb
andinspect_all
are now yielded generators of a simple, flat list ofInspectorMessages
, or raises aStopIteration
if no issues are present in the file(s). To automatically calculate the list of messages, simply cast these functions as a list, e.g.,list(inspect_nwb(...))
. -
Users may now create and specify configuration files that can alter the importance levels of individual check functions, as well as programmatically skip certain ones altogether. The CLI has an additional wrapper for convenience to some pre-defined configurations, such as a DANDI configuration (with the
--config dandi
flag) that emphasizes the types of metadata required by DANDI. -
organize_messages
frominspector_tools
now supports generic hierarchical organization according to the specifiedlevels
argument. -
Parallelization over NWBFiles is now supported for
inspect_all
and the CLI (with the--n-jobs
flag). -
Exposed imports of
inspect_nwb
andinspect_all
on the outer level, e.g.,from nwbinspector import inspect_all
New Checks
check_binary_capability
for columns of dynamic tables that are candidates for binary (boolean) representationcheck_roi_response_series_link_to_plane_segmentation
for ensuring proper linkage of ophys data
Minor changes
- Folder path iteration by
inspect_all
is now recursive to subfolders Severity
levelNO_SEVERITY
was removed to avoid confusion.LOW
is the new default.