Releases: catalystneuro/neuroconv
Releases · catalystneuro/neuroconv
v0.9.3
v0.9.3 (February 19, 2026)
Removals, Deprecations and Changes
Bug Fixes
- Fixed timestamp writing logic in
_add_photon_series_to_nwbfile,add_photon_series_to_nwbfile, and_add_fluorescence_traces_to_nwbfileto checkget_native_timestamps()whenhas_time_vector()is False. Previously, native hardware timestamps from source formats (e.g. Minian, ScanImage) were silently dropped, falling back to sampling rate only. PR #1662 - Fixed
TypeError: Object of type type is not JSON serializablewhen passingtypeorcallableobjects (e.g.progress_bar_class) inconversion_options. The validation step now serializes these to their qualified module path for JSON schema validation while passing the original objects through to conversion unchanged. PR #1667
Features
Improvements
v0.9.2
v0.9.2 (February 13, 2026)
Removals, Deprecations and Changes
- Enforced keyword-only arguments across all data interfaces:
__init__methods now only acceptfile_path/folder_path/file_pathsas positional arguments, andadd_to_nwbfilemethods only acceptnwbfileandmetadataas positional arguments. Existing positional usage inadd_to_nwbfilewill emit aFutureWarningand will be removed on or after August 2026. PR #1663 - Deprecated using
write_imaging_to_nwbfileandwrite_segmentation_to_nwbfilewithoutnwbfile_path. Useadd_imaging_to_nwbfileandadd_segmentation_to_nwbfileinstead for adding data to in-memory NWBFile objects. Will be removed on or after June 2026. PR #1649 - Deprecated returning NWBFile when using
append_on_disk_nwbfile=Trueinwrite_imaging_to_nwbfileandwrite_segmentation_to_nwbfile. Will return None on or after June 2026. PR #1649
Bug Fixes
- Fixed
UnicodeDecodeErroron Windows when reading YAML and JSON files containing UTF-8 characters by adding explicitencoding='utf-8'parameter to all text file operations. This ensures cross-platform compatibility per PEP 597 recommendations. PR #1657 - Fixed bug in
write_imaging_to_nwbfilewherenwbfilewas incorrectly passed toadd_imaging_to_nwbfileinstead of the created/loaded nwbfile. PR #1649 - Fixed bug in
write_segmentation_to_nwbfilewhere invalidplane_numparameter was passed toadd_segmentation_to_nwbfile. PR #1649 - Fixed
get_json_schema_from_method_signatureto skip*args(VAR_POSITIONAL) parameters, which was causing schema validation errors when methods used the*argspattern for deprecating positional arguments. PR #1647 - Fixed a bug in unit table addition to nwbfile where
unit_namevalues containing apostrophes could fail matching due to pandasto_dataframe().query(...)parsing. Replaced query-based matching with directunit_namecolumn mapping, with improved memory efficiency as a side effect. Added regression coverage for quoted unit names. PR #1666
Features
- Added
roi_ids_to_addparameter toBaseSegmentationExtractorInterface.add_to_nwbfile()to select a subset of ROIs during conversion, reducing file size by excluding rejected or unwanted ROIs. Also addedroi_idsproperty to inspect available ROI IDs. Requires roiextractors >= 0.8.0. PR #1658 - Added
backend,backend_configuration, andappend_on_disk_nwbfileparameters towrite_imaging_to_nwbfileandwrite_segmentation_to_nwbfilefor better control over file writing, matching the pattern from spikeinterface write functions. PR #1649 - Added support for stream_name to TDT recording interface #1645
- Added
backend,backend_configuration, andappend_on_disk_nwbfileparameters towrite_imaging_to_nwbfileandwrite_segmentation_to_nwbfilefor better control over file writing, matching the pattern from spikeinterface write functions. PR #1649 - Added
backend,backend_configuration, andappend_on_disk_nwbfilesupport toLightningPoseConverter. PR #1652 - Added
backend,backend_configuration, andappend_on_disk_nwbfileparameters towrite_imaging_to_nwbfileandwrite_segmentation_to_nwbfilefor better control over file writing, matching the pattern from spikeinterface write functions. PR #1649
Improvements
- Added explicit numpy conversion for pandas data to ensure HDMF compatibility with pandas 3.0+. Changed
.valuesto.to_numpy()in interfaces that read CSV data (TimeIntervalsInterface, FicTracDataInterface, MiniscopeHeadOrientationInterface, LightningPoseDataInterface) and added.item()conversion for row iteration inconvert_df_to_time_intervals. PR #1646 - Renamed test variables
values_dictoelectrode_row_kwargsandunit_row_kwargsin SpikeInterface tests for improved clarity. PR #1651 - Removed cap on NumPy version for ecephys and icephys formats now that python-quantities v0.16.4 supports NumPy 2.4. #1648
- Added
EncodingWarningenforcement viapytest-envto catch missingencoding=inopen()calls during tests (PEP 597). PR #1660
v0.9.1
v0.9.1 (January 28, 2026)
Removals, Deprecations and Changes
- Deprecated
_VideoInterfaceinLightningPoseConverterwith migration toExternalVideoInterface#1596 - Deprecated
waveform_meansandwaveform_sdsparameters inadd_sorting_to_nwbfile. Use the newwaveform_data_dictparameter instead, which bundles waveform data with associated metadata. Will be removed on or after July 2026. PR #1628
Bug Fixes
- Fixed
add_electrodes_to_nwbfileandadd_sorting_to_nwbfilefunctions to only compute null values for existing table properties when new rows will actually be added. Previously, null values were computed preemptively even when no new electrodes/units needed to be added, causing errors when properties lacked sensible defaults. #1633, #1640 - Added cap on NumPy version for all ecephys formats. #1626
- Added Numba as a dependency of the sorting_analyzer environment. #1627, #1635
- Added cap on NumPy version for all icephys formats. #1634
- Updated DANDI instance names to fix Ember DANDI upload. #1631
- Added cap on OpenCV version for Mac OS Intel. #1637
- Replaced pytz with zoneinfo #1638
- Removed deprecated
exclude_channel_comparisonparameter fromcheck_imaging_equalcall in imaging interface tests to fix compatibility with updated roiextractors. #1642
Features
- Added
waveform_data_dictkeyword-only parameter toadd_sorting_to_nwbfileandBaseSortingExtractorInterface.add_to_nwbfilefor passing waveform data with associated metadata (means,sds,sampling_rate,unit). The Units table now properly setswaveform_rate,waveform_unit, andresolutionattributes, enabling proper HDF5 attribute propagation for downstream tools like MatNWB. PR #1628
Improvements
- Improved warning message in
get_moduleto show both existing and new (ignored) descriptions when there's a mismatch, making it easier to debug processing module conflicts. PR #1620 - Corrected
MiniscopeImagingInterfacedocumentation and docstrings:timeStamps.csvis now correctly documented as required (an error is raised if missing), and removed inaccurate statement about automatic timestamp generation from sampling frequency. PR #1621 null_values_for_propertiesis exposed to more functions inspikeinterfacetools allowing user to manually specify the default properties. This is especially helpful when there exists properties which it has no default value when using any adding function related toadd_electrodes_to_nwbfile. PR #1624- Made
dichroic_mirroroptional inTDTFiberPhotometryInterfaceto match latest version ofndx-fiber-photometrywhere this field is not required. PR #1636 - Fixed multiple errors in backend configuration documentation: removed unused imports, corrected NWBHDF5IO parameter name from
nwbfile_pathtopath, fixed undefinednwbfilevariable in streamlined example, corrected compression options key fromcleveltocompression_opts, and removed non-existentexportparameter. Updated examples to useread_nwbfor cleaner code. PR #1641
v0.9.0
v0.9.0 (December 4, 2025)
Removals, Deprecations and Changes
- Removed
VideoInterfaceclass scheduled for removal in September 2025. The class is now private (_VideoInterface) and used internally byLightningPoseConverter. Users should useExternalVideoInterfaceorInternalVideoInterfaceinstead. PR #1589 - Removed deprecated ScanImage interfaces that were scheduled for removal in October 2025:
ScanImageMultiFileImagingInterface,ScanImageMultiPlaneImagingInterface,ScanImageMultiPlaneMultiFileImagingInterface,ScanImageSinglePlaneImagingInterface, andScanImageSinglePlaneMultiFileImagingInterface. UseScanImageImagingInterfaceinstead. PR #1576 - Removed deprecated SpikeInterface functions scheduled for removal in October 2025:
add_electrical_series_to_nwbfile,check_if_recording_traces_fit_into_memory,add_electrodes_info_to_nwbfile, andadd_units_table_to_nwbfile. Useadd_recording_to_nwbfile,add_recording_metadata_to_nwbfile, andadd_sorting_to_nwbfileinstead. PR #1583 - Removed deprecated
BaseRecordingExtractorInterface.subset_recording()method scheduled for removal in October 2025. PR #1583 - Removed deprecated
write_electrical_seriesparameter fromadd_recording_to_nwbfilescheduled for removal in October 2025. Useadd_recording_metadata_to_nwbfileif only metadata addition is desired. PR #1583 - Removed deprecated
write_scaledparameter fromadd_recording_to_nwbfileandwrite_recording_to_nwbfilescheduled for removal in October 2025. The functions now automatically handle channel conversion and offsets. PR #1583 - Removed deprecated
num_framesparameter fromMockImagingInterfaceandMockSegmentationInterfacescheduled for removal in February 2025. Usenum_samplesinstead. PR #1583 - Removed deprecated
output_filepathparameter fromconfigure_and_write_nwbfile. Usenwbfile_pathinstead. PR #1582 - Deprecated
configuration_file_pathparameter inMiniscopeImagingInterfaceand will be removed on or after May 2026. Usefolder_pathinstead for standard folder structures. PR #1593 - Deprecated
get_device_metadatafunction inspikeglx_utilsand will be removed on or after May 2026. UseSpikeGLXRecordingInterface._get_device_metadata_from_probe()instead, which extracts device metadata directly from probe information. PR #1599 - Deprecated
iterator_optsparameter in favor ofiterator_optionsacross all SpikeInterface conversion functions and data interfaces. The deprecated parameter will be removed on or after May 2026. This change improves consistency with naming conventions. PR #1603 - Deprecated
es_keyparameter inSpikeGLXNIDQInterfaceand will be removed on or after May 2026. This parameter has no effect as the interface writes analog data as TimeSeries and digital data as LabeledEvents, not ElectricalSeries. PR #1615 - Removed deprecated
file_pathparameter fromSpikeGLXRecordingInterfaceandSpikeGLXNIDQInterface. Usefolder_pathandstream_idinstead. PR #1616
Bug Fixes
- Fixed bug with TDTFiberPhotometryInterface tests by swapping out test_all_conversion_checks_stub_test_invalid with test_check_run_conversion_stub_test_invalid (avoiding unittest.TestCase.subTests). PR #1579
- Fixed DANDI live service tests to support dandi-cli 0.73.2 instance-specific API key environment variables (
DANDI_SANDBOX_API_KEY,EMBER_SANDBOX_API_KEY, etc.). Updated all workflows and test files to use the appropriate API key for each DANDI instance. PR #1588
Features
- Miniscope converter now uses the configuration file to read general folder structures PR #1528 PR #1604
- Added a workflow to repack nwbfiles that have already been written to disk with desired chunking and compression settings: PR #1003 PR #1592
- Enhanced
TiffImagingInterfaceto support multi-file TIFF datasets usingMultiTIFFMultiPageExtractorfrom roiextractors. Added support for configurable dimension orders (dimension_order), multi-channel data (num_channels,channel_name), and volumetric imaging (num_planes). Bothfile_path(single file) andfile_paths(multiple files) parameters are now supported for backward compatibility. PR #1577 PR #1578 - Added
add_recording_as_spatial_series_to_nwbfilefunction to write SpikeInterface recordings asSpatialSeriesfor behavioral tracking data (e.g., position, head direction, gaze tracking). PR #1574 - Enhanced
SpikeGLXNIDQInterfaceto support custom metadata for digital channels, enabling users to specify semantic labels, descriptions, and names for NIDQ digital events. Addedmetadata_keyparameter to support multiple NIDQ interfaces in the same conversion. Addeddigital_channel_groupsparameter for init-time configuration of digital channels, matching the pattern used byanalog_channel_groups. PR #1580 PR #1615 - Enhanced
SpikeGLXNIDQInterfaceto support custom metadata for analog channels, enabling users to split NIDQ analog channels into multiple TimeSeries objects with custom groupings via the newanalog_channel_groupsparameter. Users can now organize analog channels semantically (e.g., audio, accelerometer, temperature sensors). The default behavior (single TimeSeries for all analog channels) remains unchanged. PR #1601 PR #1615 - Added ADC multiplexing properties (
adc_groupandadc_sample_order) to SpikeGLX recordings. These properties preserve hardware provenance information about which ADC each electrode is connected to and its sampling order, enabling downstream computation of inter-sample shifts even when channels are sliced. Requires probeinterface >= 0.3.1. PR #1597 PR #1609 - Added
SpikeGLXSyncChannelInterfacefor converting Neuropixel synchronization channels from SpikeGLX recordings. PR #1600 - The
SpikeGLXConverterPipenow includes sync channels. PR #1600 - Added
MiniscopeHeadOrientationInterfacefor converting Miniscope head orientation data from BNO055 IMU sensor.PR #1610
Improvements
- Improved SpikeGLX device metadata extraction to use probe information from probeinterface instead of parsing meta files. Device metadata now includes serial number as a separate field and enriched description with part number, port, slot, model name, and manufacturer from probe annotations. PR #1599
- Added comprehensive how-to guide "How to Add Behavioral and Sensor Data from Acquisition Systems" documenting usage of
add_recording_as_time_series_to_nwbfileandadd_recording_as_spatial_series_to_nwbfilefor adding behavioral data from any SpikeInterface-supported format. PR #1575 - Enhanced CSV interface documentation with comprehensive tutorial-style examples showing CSV format requirements, basic usage with column descriptions, customization options for storage location (trials/epochs/custom intervals), and advanced reading options. Fixed in-memory access to
nwbfile.trialsandnwbfile.epochs. Improved docstrings acrossTimeIntervalsInterfaceandconvert_df_to_time_intervals. PR #1572 - Enhanced live service testing CI to fail explicitly with clear error messages when repository secrets are unavailable for external contributors. Added validation step in workflow to check required credentials and updated documentation to explain the workflow for external contributors (maintainers fork PRs to run live tests). PR #1590 PR #1598
v0.8.3
v0.8.3 (November 6, 2025)
Removals, Deprecations and Changes
- Ophys: Low-level helper functions
add_background_plane_segmentation_to_nwbfile,add_fluorescence_traces_to_nwbfile,add_background_fluorescence_traces_to_nwbfile, andadd_summary_images_to_nwbfileare deprecated and will be removed on or after March 2026. These are low-level functions that should not be called directly. PR #1559 - Refactored extractor interfaces to use explicit
_initialize_extractormethod instead of implicit string-based initialization, improving code clarity and maintainability across all recording, sorting, imaging, and segmentation interfaces PR #1515 - SpikeInterface tools: Using
write_recording_to_nwbfile,write_sorting_to_nwbfile, orwrite_sorting_analyzer_to_nwbfilewithoutnwbfile_pathto only add data to an in-memory nwbfile is deprecated and will be removed in or after March 2026. Use the correspondingadd_*_to_nwbfilefunctions instead. PR #1565 - SpikeInterface tools: Returning an NWBFile object from
write_recording_to_nwbfile,write_sorting_to_nwbfile, andwrite_sorting_analyzer_to_nwbfilein append mode is deprecated and will return None in or after March 2026. This matches the pattern used in `BaseDataInterface.run_conversionPR #1565 - Extractor interfaces: The
extractorattribute andget_extractor()method are deprecated and will be removed on or after March 2026. These were confusingly named as they return extractor classes, not instances. Use the private_extractor_classattribute or access the instance directly via_extractor_instancePR #1513
Bug Fixes
- Excluded
contact_idsproperty from being added as a duplicate column in the electrodes table. This property is already represented via theelectrode_namecolumn which uses probe contact identifiers. PR #1560 - Fixed
DeepLabCutInterfaceto support output files without 'DLC' in the filename by extracting scorer from CSV/H5 header instead of parsing filename. This improves compatibility with DeepLabCut outputs that don't follow the typical naming convention while maintaining backward compatibility. PR #1573
Features
- Support roiextractors 0.7.2 PR #1566
Improvements
- SpikeInterface tools: Enhanced
write_recording_to_nwbfile,write_sorting_to_nwbfile, andwrite_sorting_analyzer_to_nwbfileto support backend configuration parameters (backend,backend_configuration) for controlling HDF5/Zarr compression and chunking settings, matching the pattern used inBaseDataInterface.run_conversion. PR #1565 - Added citation information to README, documentation, and CITATION.cff with reference to the SciPy 2025 conference paper PR #1569
v0.8.2
v0.8.2 (October 17, 2025)
Removals, Deprecations and Changes
- Ophys: Low-level helper functions
add_imaging_plane_to_nwbfile,add_image_segmentation_to_nwbfile,add_photon_series_to_nwbfile, andadd_plane_segmentation_to_nwbfileare deprecated and will be removed on or after March 2026. These are low-level functions that should not be called directly. PR #1552 - Ophys: Passing
pynwb.device.Deviceobjects inmetadata['Ophys']['Device']toadd_devices_to_nwbfilenow issues aFutureWarningand is deprecated. This feature will be removed on or after March 2026. Pass device definitions as dictionaries instead (e.g.,{ "name": "Microscope" }). . PR #1513 - Ecephys: The
iterator_optsparameter is deprecated across all ecephys interfaces and will be removed on or after March 2026. Useiterator_optionsinstead for consistent naming with ophys and behavior interfaces. PR #1546 - Ophys: The
iterator_type='v1'option for imaging data is deprecated and will be removed on or after March 2026. Useiterator_type='v2'orNone(no chunking). This aligns ophys with ecephys, which only supports 'v2' and None. PR #1546 - Bump minimal python-neo version to 0.14.3 PR #1550
- Add macos-15 intel to CI testing matrix. We no longer support macos 13 and 14 with intel as there is no free runner available PR #1555
- Ophys: Passing
ratein trace metadata (e.g.,metadata['Ophys']['Fluorescence']['PlaneSegmentation']['raw']['rate']) is deprecated and will be removed on or after March 2026. PR #1543
Bug Fixes
- Capped h5py to <3.15 for macOS to prevent compatibility issues PR #1551
- Temporary ceiling on hdmf-zarr (<0.12) to retain compatibility with existing code that uses read_io.file.store PR #1547
- Fixed
append_on_disk_nwbfile=Trueraising ValueError when file exists. Replacedmake_or_load_nwbfilewith direct pynwbNWBHDF5IOusage in append mode and improved code organization with private helper methods_write_nwbfileand_append_nwbfilein bothBaseDataInterfaceandNWBConverterPR #1540 - Refactored
_is_dataset_written_to_fileto use path comparison with publicsourceattribute instead of protected_fileattribute, avoiding dependency on hdmf-zarr internal APIs. Now usespathlib.Path.resolve()for robust cross-platform path comparison. PR #1545 - Enhanced SpikeGLX interface to set
channel_nameproperty showing all available streams (e.g., "AP0,LF0") for multi-stream deduplication, properly handling cases where AP and LF bands record from the same physical electrodes. PR #1553
Features
- Support NIDQ analog streams in
OpenEphysBinaryAnalogInterfacePR #1503 - Added
MiniscopeImagingInterfacefor single Miniscope acquisition folders with automatic session_start_time extraction, improved docstrings, and comprehensive documentation showingMiniscopeConverterfor multi-acquisition data,MiniscopeImagingInterfacefor individual folders, andConverterPipefor custom multi-acquisition workflows PR #1524 - Added
iterator_optionsparameter toInternalVideoInterfaceto support tqdm progress bars and custom chunking options during video write operations. PR #1546
Improvements
- Refactored electrode table infrastructure to add
electrode_namecolumn for probe-based recordings. The electrode table now uses(group_name, electrode_name, channel_name)as the unique identifier, enabling channel-specific metadata storage whileelectrode_nameindicates which channels share physical electrodes. This supports multi-band recordings (e.g., AP/LF in Neuropixels) and multi-probe setups. PR #1548 - Refactored
_add_fluorescence_traces_to_nwbfileand_create_roi_table_regionto removedeepcopy(metadata)anddict_deep_updatepatterns. Now extracts DfOverF and Fluorescence metadata separately from user or defaults, checks user metadata first before falling back to defaults for each trace, and passes unmodified metadata to dependencies without mutation. PR #1543 - Aligned iterator type support across ecephys and ophys modules. Both now support only
iterator_type='v2'andNone. Fixed misleading error message in spikeinterface that incorrectly mentioned 'v1' support. PR #1546 - Standardized iterator parameter naming across the codebase by introducing
iterator_optionsas the preferred parameter name. UpdatedBaseRecordingExtractorInterfaceandadd_recording_to_nwbfileto accept bothiterator_options(new) anditerator_opts(deprecated) for backward compatibility. Improved documentation with comprehensive iterator options descriptions including tqdm progress bar support. PR #1546 - Refactored
add_imaging_plane_to_nwbfileto avoiddict_deep_updateand metadata mutation, applying targeted defaults only for required fields at point of object creation (issue #1511) PR #1530 - Refactored
add_devices_to_nwbfileandadd_imaging_plane_to_nwbfileto avoiddict_deep_updateand metadata mutation, using defaults directly from single source of truth_get_default_ophys_metadata()PR #1527 - Refactored ecephys metadata functions to use a single source of truth pattern, eliminating hardcoded duplications and improving maintainability PR #1522
- Refactored ophys metadata functions to use a single source of truth pattern, preventing accidental mutation of global state and improving maintainability PR #1521
- Add ruff-rule to detect non-pep585 annotation PR #1520
- Replaced deprecated
frame_to_time()method calls withget_timestamps()in optical physiology interfaces PR #1513 - Added SpikeGLXNIDQ interface to conversion gallery with documentation on how different channel types (XA, MA, MD, XD) are converted to NWB PR #1505
- Updated
TDTFiberPhotometryInterfaceto support the latest version ofndx-fiber-photometry(v0.2.1) PR #1430 - Updated ophys roiextractors tests to use only public APIs instead of accessing private attributes, improving compatibility with roiextractors segmentation model changes PR #1526
- Refactored
add_photon_series_to_nwbfileto removeget_nwb_imaging_metadatamiddleman and inline extractor derivation. Now only derivesdimensionfrom imaging extractor when user doesn't provide it, ensuring user-provided values are always respected. Passes unmodified metadata to dependencies without mutation. PR #1537 - Refactored
_add_plane_segmentationto removedeepcopy(metadata)anddict_deep_updatepatterns. Now extracts user plane segmentation metadata directly, fills missing required fields with defaults, and passes unmodified metadata to dependencies without mutation. Tracks user intent to provide clear error messages when custom plane segmentation names are not found. PR #1539 - Refactored
add_summary_images_to_nwbfileto removedeepcopy(metadata)anddict_deep_updatepatterns. Now uses_get_default_ophys_metadata()directly and extracts SegmentationImages metadata from user or uses defaults. Changed error handling fromAssertionErrortoValueErrorfor invalid plane segmentation names. PR #1540
v0.8.1
v0.8.1 (September 16, 2025)
Removals, Deprecations and Changes
- Changed
automatic_dandi_upload()function parameter fromstaging: bool = Falsetosandbox: bool = Falseto align with DANDI Archive's server name change from "staging" to "sandbox". The oldstagingparameter is deprecated and will be removed in February 2026. PR #1437
Bug Fixes
- Fixed
write/add_sorting_analyzer_to_nwbfiledocstring for requirements of the recording object PR #1506 - Fixed deprecated SpikeInterface extractor imports to use
spikeinterface.extractors.extractor_classesand updated docstring references to wrapper functions for compatibility with SpikeInterface changes PR #1490 - Fixed documentation version switcher not properly distinguishing between stable and development versions PR #1483
- Fixed sleap-io compatibility by updating to version 0.5.2 and adjusting import path for
append_nwb_datafunction PR #1496
Features
- Added
SortedSpikeGLXConverterfor handling multiple SpikeGLX streams with their corresponding sorting data, enabling proper unit-to-electrode linkage across multiple probes PR #1449 - Added
EDFAnalogInterfacefor converting non-electrode/analog channels from EDF files to NWB TimeSeries and a conversion gallery example showing how to combineEDFRecordingInterfaceandEDFAnalogInterfaceto handle mixed EDF files. PR #1487
Improvements
- Added test to mimic bad channel removal in
write_sorting_analyzer_to_nwbfilePR #1506 - Enhanced
SortedRecordingConverterdocumentation with detailed explanation of the timing problem it solves when linking units to electrodes, and moved electrode linking guide from user guide to how-to section PR #1479 - Use attestation instead of token for publish action PR #1497
v0.8.0
v0.8.0 (August 21, 2025)
Removals, Deprecations and Changes
- Segmentation writing pipeline no longer supports writing segmentation data without image or pixel masks PR #1400
- Removed deprecated arguments:
load_sync_channelinSpikeGLXNIDQInterfaceinitialization andstart_time,write_asandwrite_electrical_seriesinSpikeGLXNIDQInterface.add_to_nwbfile(). PR #1378 - Removed
starting_timeas an argument from the recording interfacesadd_to_nwbfilemethod and the stand aloneadd_recording_segmentutility PR #1378 - Deprecated the
container_nameparameter inImageInterface.add_to_nwbfile()method. Usemetadata_keyin__init__instead. This parameter will be removed on or after February 2026. PR #1439 - Removed deprecated type aliases
FolderPathType,FilePath,OptionalFilePath, andOptionalFolderPathTypefrom utils. Usepydantic.DirectoryPath,pydantic.FilePath, or their optional variants directly. PR #1442
Bug Fixes
- Fixed SpikeInterface physical unit properties being incorrectly included in electrodes table PR #1406
- Fixed deprecated ROI extractor method calls: replaced
get_image_size()withget_frame_shape(),get_num_frames()withget_num_samples(), andframe_slice()withslice_samples()in ophys interfaces PR #1443 - Fixed logic bug in
get_packagefunction where boolean check was incorrectly compared toNonePR #1477 - Fixed docstring typos: corrected "default: Falsee" to "default: False" in multiple datainterface files PR #1472
Features
- Segmentation interfaces now support roi ids that are strings PR #1390
- Added
InscopixImagingInterfacefor converting Inscopix imaging data. PR #1361 - Added
InscopixSegmentationInterfacefor converting Inscopix segmentation data. PR #1364 - Added
AxonRecordingInterfacefor converting extracellular electrophysiology data from Axon Binary Format (ABF) files with automatic session start time extraction PR #1413 - Added
FemtonicsImagingInterfacefor converting Femtonics imaging data. PR #1408 - Added
get_available_subjectsstatic method toDeepLabCutInterfacefor extracting subject names from DeepLabCut output files PR #1425 - Added
MockPoseEstimationInterfacefor testing pose estimation workflows with deterministic Lissajous figure motion patterns PR #1435 - Added
IntanAnalogInterfacefor converting non-amplifier analog streams from Intan data files, supporting RHD2000 auxiliary input channels, RHD2000 supply voltage channels, USB board ADC input channels, and DC amplifier channels (RHS system only) PR #1440 - Added
metadata_keyparameter toImageInterfaceto allow custom naming and organization of image containers in NWB files. This enables multiple image interfaces to coexist with distinct container names. PR #1439 - Added per-image metadata support to
ImageInterfaceallowing users to specify individualresolution(pixels/cm), name anddescriptionfor each image through metadata structure. PR #1441 - Added
rename_unit_ids()method toBaseSortingExtractorInterfacefor dictionary-based unit ID renaming, enabling clean handling of multiple sorting interfaces with overlapping unit IDs PR #1451 - Added support for setting ProbeGroup objects in
BaseRecordingExtractorInterface.set_probe()methodPR #1464 - Added comprehensive tests for
set_probemethod inBaseRecordingExtractorInterfaceto verify probe and probe group functionality with proper electrode group organization in NWB files PR #1464 - Added PyData Sphinx Theme version switcher to documentation navbar, enabling users to switch between stable (latest release) and main (development) versions PR #1478
Improvements
- Added comprehensive FFmpeg video conversion how-to guide for converting bespoke video formats to DANDI-compatible formats PR #1426
- Refactored Femtonics Imaging Interface session, munit and channel selection logic. PR #1433
- Implemented PEP 735 dependency groups for test, docs, and dev dependencies PR #1434
- Expanded test coverage for
CaimanSegmentationInterfaceto include all stub files and added quality metrics properties (r_values, SNR_comp, cnn_preds) to the PlaneSegmentation table as segmentation_extractor_properties PR #1436 - Added comprehensive how-to guide "Adding Multiple Sorting Interfaces" documenting approaches for handling multiple spike sorting outputs, including unit renaming strategies, separate processing tables, and adding custom properties for provenance tracking PR #1451 PR #1473
- The copy button no longer copies the prompt (>>>) in the conversion gallery PR 1467
v0.7.5
v0.7.5 (June 11, 2025)
Removals, Deprecations and Changes
- Removed automatic subject addition for DeepLabCutInterface. A link is now created only if the skeleton metadata matches the subject ID. PR #1362
Bug Fixes
- Fix a bug for avoiding loading the sync stream in
SpikeGLXConverterPipePR #1373 - Fixed a bug in the
BrukerTiffSinglePlaneImagingInterfacewhere the criteria to identify frames belonging to a specific stream relied on the file name instead of the stream name. PR #1375 - Fixed a bug with the Docker dev build PR #1376
Features
- Added
apply_global_compressionmethod toBackendConfigurationclasses to apply compression settings globally across all datasets in a backend configuration. This method allows users to easily configure compression options for all datasets at once rather than setting them individually. PR #1379 - Extra optional kwargs to
BlackrockRecordingInterfaceandBlackrockSortingInterfacefor finer control of the neo reader PR #1290
Improvements
- Add a
how todocumentation for adding extracellular electrophysiology metadata PR #1311 - Improved the docker dailies PR #1372
- Re-enable and improve conversion gallery testing PR #1380
- Implemented cross-OS caches in GitHub Actions load-data action to enable cache sharing between Ubuntu, Windows, and macOS runners, reducing cache storage usage and improving CI efficiency PR #1385
MedPCformat is now tested on the conversion gallery PR #1382- Added conversion gallery testing to daily workflows PR #1387
- Added full metadata support for PoseEstimation container in DeepLabCutInterface PR #1392.
v0.7.4
v0.7.4 (May 23, 2025)
Removals, Deprecations and Changes
- Drop support for python 3.9 PR #1313
- Updated type hints to take advantage of the | operator PR #1316
- Deprecated the following ScanImage interfaces:
ScanImageMultiFileImagingInterface,ScanImageMultiPlaneImagingInterface,ScanImageMultiPlaneMultiFileImagingInterface,ScanImageSinglePlaneImagingInterface, andScanImageSinglePlaneMultiFileImagingInterface. These interfaces will be removed in or after October 2025. UseScanImageImagingInterfacefor all those cases instead. PR #1330 PR #1331 - Set minimum version requirement for
ndx-poseto 0.2.0 PR #1322 - Set minimum version for roiextractors as 0.5.13 PR #1339
- ndx-events is now a required dependency by spikeglx PR #1353
Bug Fixes
- Fix
AudioInterfaceto correctly handle WAV filenames with multiple dots by validating only the last suffix. PR #1327 - Fix a stubbing bug in
SpikeGLXNIDQInterfaceandOpenEphysBinaryAnalogInterfacePR #1360
Features
- Add metadata support for
DeepLabCutInterface. PR #1319 AudioInterfaceAdding support for IEEE float in WAV format PR #1325- Added a RecordingInterface for WhiteMatter ephys data PR #1297 PR #1333
- Improved
ScanImageIntefaceto support both single and multi-file data PR #1330 DeepDictnow behaves as a python dict when printed in notebooks PR #1351- Enable chunking for
InternalVideoInterfacePR #1338 ImageSeriesandTwoPhotonSeriesnow are chunked by default even if the data is passed as a plain array PR #1338- Added support for 'I;16' mode in
ImageInterface. This mode is mapped toGrayscaleImagein NWB PR #1365
Improvements
- Make metadata optional in
NWBConverter.add_to_nwbfilePR #1309 - Add installation instructions on the documentation for
neuroconvPR #1344 - Separate dailies and dev-dailies workflows PR #1343
- Added support for renaming Skeletons with
DeepLabCutInterfacePR #1359 - Updated default
PoseEstimationSeriesnames inDeepLabCutInterfacePR #1363 - Testing dependencies include only testing packages (.e.g pytest, pytest-cov) PR #1357
- Testing modalities now run in their separated environment to avoid sequence contamination of dependencies PR #1357