Skip to content
This repository has been archived by the owner on Mar 15, 2023. It is now read-only.

Releases: catalystneuro/nwb-conversion-tools

v0.11.38

14 Jul 16:32
85776d5
Compare
Choose a tag to compare

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_units auxiliary function, argument write_as: str has been changed to write_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 the BaseRecordingInterface. 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 to roiextractors.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

03 Mar 21:32
a2b08fc
Compare
Choose a tag to compare

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 and utils 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 cody.baker@catalystneuro.com

v0.9.9

04 Feb 18:36
79df28a
Compare
Choose a tag to compare

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

18 Nov 18:55
7c47bf9
Compare
Choose a tag to compare

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

08 Oct 15:01
ad6074b
Compare
Choose a tag to compare

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

28 Sep 22:37
1f38a2b
Compare
Choose a tag to compare

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__, and metadata["UnitProperties"] = [dict(name=property_name, description=...)] for the custom column metainfo for each property.
  • Some fixes to arguments to BlackRockRecordingInterface

v0.9.1

27 Aug 16:13
2163038
Compare
Choose a tag to compare

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

24 Jun 09:01
6ce59c3
Compare
Choose a tag to compare
  • Package refactored into domain-specific modules
  • SpikeInterface-specific write_sorting() and write_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

02 Mar 07:56
Compare
Choose a tag to compare
  • include template_metafile.yml
  • fix version of jupyter-client==5.3.4

0.3.0

02 Mar 05:27
Compare
Choose a tag to compare

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