Releases: catalystneuro/nwb-conversion-tools
v0.11.38
v0.11.38
Upcoming deprecations
- Introduced a soft deprecation of keyword argument 'save_path' from various interface and tool-specific write and conversion functions. This argument should now be named 'nwbfile_path' for consistency with the main converter calls.
- For the
spikeinterface.add_unit
s auxiliary function, argumentwrite_as: str
has been changed towrite_in_processing_module: bool
. Default behavior has not changed. Also removed override of ElectrodeTable descriptions, allowing PyNWB to set these instead.
New Features and Improvements
- For latest security fixes, bumps minimum required version of numpy to >=1.22.0 for Python versions >=3.8. Python 3.7 can only go up to numpy 1.21.0, however.
- Enables the
nwbct-run-conversion
entrypoint for calling the YAML conversion specification from the command line. - Adds a stubbing option to all ophys ImagingInterfaces.
- Improved the local version of the GenericDataChunkIterator by padding the buffer when beneficial.
- Various improvements to automated metadata extraction for various recording interfaces.
- Allows the JSON validators to parse datetime objects as iso and adds a context helper for making or appending NWBFiles.
- Enables recording, imaging, and sorting interfaces to perform standalone write of an NWBFile (that is, without requiring an NWBConverter with only a single interface).
- Added appending functionality to
spikeinterface.add_units
. - Added a data transfer tool for submitting and tracking tasks over Globus endpoints.
- Added a helper function for performing a fully automated DANDI upload process, assuming the token has been set as an environment variable.
- Added helper functions for automatically downloading data from Figshare.
- Added verbosity control to the NWBConverter class and base DataInterfaces.
- Added support for string-valued channel_ids from SpikeInterface. It does so by introducing a new column 'channel_names' to any ElectrodeTable written by add_electrodes or write_recording. This is enforced to be unique across rows of the table both here and in individual SpikeInterface recordings.
New Interfaces
- Introduced the BaseIcephysInterface and the first intracellular format interface - the AbfInterface!
- Added the KilosortSortingInterface.
Interface Changes
- Added SpikeInterface support for the NeuralynxRecordingInterface, SpikeGadgetsRecordingInterface, BlackrockRecordingInterface, PhySortingInterface, IntanRecordingInterface, and NeuroscopeSortingInterface. The CEDRecordingInterface now only uses SpikeInterface as the backend (and has dropped a priori setting of channel IDs - this is planned to be automatically reintroduced as a non-class method to subset channels after initialization, but for now that must be done manually).
- Removed the
nwbfile
object as a required argument of theBaseRecordingInterface. run_conversion
.
Tool Changes
- Prevents any response series associated with a TwoPhotonSeries from being written if it is simply an array of zeros.
- Introduced a util function for calculating the rate of a regular series.
- Introduced deprecation of
use_times
toroiextractors.add_two_photon_series
, as the behavior now mimics the modern SpikeInterface approach of always using them when available, and falling back to sampling frequency usage if not.
Bug Fixes
- Disabled the
nwb-gui
entrypoint as it has not worked for some time now. - Fixed a bug where metadata values were duplicated in
roiextractors.write_imaging
. - Prevented duplicate ophys metadata from becoming set during a manual override.
- Small fixes to ophys imaging metadata construction.
- Corrects the metadata schema for segmentation interfaces to be compatible with the ImagingInterfaces.
- Allows timestamps to be used with
external_file=True
in the MovieInterface. - Fixed the matching of unique group_names with groups on the ElectrodesTable.
- Fixed a problem when running the YAML conversion feature on the Windows platform.
v0.11.1
v0.11.1
- Forces
session_start_time
to be a required field of the metadata immediately prior to any instantiation of an NWBFile. - Reorganizes the
tools
andutils
into more internally manageable and convenient-to-import structure.
Simple instructions for updating any scripts that are broken in going from v0.9.9 to any version after and including v0.11.1 are:
pre-v0.11.1: from nwb_conversion_tools.utils.json_schema import xyz
post-v0.11.1: from nwb_conversion_tools.utils import xyz
pre-v0.11.1: from nwb_conversion_tools.utils.conversion_tools import check_regular_timestamps
post-v0.11.1: from nwbinspector.utils import check_regular_series
pre-v0.11.1: from nwb_conversion_tools.utils.nwbfile_tools import xyz
post-v0.11.1: from nwb_conversion_tools.tools.nwb_helpers
pre-v0.11.1: from nwb_conversion_tools.utils.spike_interface import xyz
or nwb_conversion_tools.utils.roiextractors import zyx
post-v0.11.1:
from nwb_conversion_tools import spikeinterface, roiextractors
spikeinterface.xyz
roiextractors.zyx
For any questions, or if you need any help in updating from v0.9.9 to v0.11.1 and beyond, feel free to reach out to [email protected]
v0.9.9
v0.9.9 introduces
- New BaseSorting object support for the new SpikeInterface API. Note that unit_spike_features are only supported for old SortingExtractor objects, but aside from that there should be no behavioral differences when writing from a SortingExtractor vs. BaseSorting object.
- Allows ecephys util write functions to return nwbfile objects, and correctly indicates add_* helper functions to require nwbfile objects
- Critical metadata debugs and testing for ophys data interfaces.
- Extends support of spikeinterface add_* functions to BaseRecording objects (the new spikeinterface/spikeinterface version) while maintaining back compatibility with old RecordingExtractor objects. No change in behavior is expected in how the functions write to NWB.
- Adds starting_time control over ecephys ElectricalSeries.
- Adds bug fixes for CED on certain Mac and Python versions, Neuroscope fixes for newly discovered files, and CellExplorer unit property fixes. - Remaps all file path type inputs to the name 'file_path' where they may have previously been 'filename' or something format specific.
v0.9.4
The last round of bug fixes and performance enhancements before the next big version bump with the new ecephys writers.
v0.9.4 bug fixes:
- Naming increment error with NeuroscopeRecordingInterface resulting in spurious ElectrodeGroups.
v0.9.4 performance enhancements:
- Around10% average speed improvement for the RecordingExtractorDataChunkIterator.
- More efficient header parsing for BlackrockRecordingInterface.
v0.9.3
v0.9.3 includes fixes to the NeuroscopeDataInterface, specifically the metadata components.
Also includes the new GitHub workflow treatment of the GIN dataset, which is now cached for improved speed.
v0.9.2
In v0.9.2 of nwb-conversion-tools, we...
- All DataInterfaces now infer their
source_schema
from properly annotated__init__
- Fixes to the
BaseSortingInterface
metadata handling to remove references to 'data' field. These should be set as unit properties or features to the extractor during__init__
, andmetadata["UnitProperties"] = [dict(name=property_name, description=...)]
for the custom column metainfo for each property. - Some fixes to arguments to
BlackRockRecordingInterface
v0.9.1
v0.9.1 introduces
New interfaces for Axona (Position, Units, LFP)
General schema fixes for lfp interface metadata
GIN compatible tests for compatible ecephys interfaces
New DataChunkIterator for write_recording as well as a change to the keyword arguments of all routers to that function (minor version incrementing change for anyone using buffer arguments as conversion options previously)
NeuralynxDataInterface
0.8.11
- Package refactored into domain-specific modules
- SpikeInterface-specific
write_sorting()
andwrite_recording()
functions - Several bug fixes
- SpikeGLX LFP source_schema
- Writing brain location to the electrode columns
- Module control for writing of movie data
- Lazy loading of imports for movie interface
- Loading metadata from yaml/json files
- Enhanced control of compression in write_recording
- Enhanced keyword arguments to the Blackrock data interface
- SpikeGadgets Interface
- conversion_tool function for testing writing speed of a RecordingExtractor object
- Control of Units table description and write location for greater provenance
0.3.3
- include template_metafile.yml
- fix version of jupyter-client==5.3.4
0.3.0
Changes in GUI:
- basic forms are used as the base for any forms group, many groups already changed to that.
- pynwb extensions and their forms classes can be passed as arguments. This allows any extension to also include their own forms. These forms should be based on the basic forms mentioned above.
- Ogen classes included