Skip to content

Latest commit

 

History

History
221 lines (171 loc) · 22.8 KB

CHANGELOG.md

File metadata and controls

221 lines (171 loc) · 22.8 KB

Upcoming

Features

  • The OpenEphysRecordingInterface is now a wrapper for OpenEphysBinaryRecordingInterface. PR #294

v0.2.4

Deprecation

  • All usages of use_times have been removed from spikeinterface tools and interfaces. The function add_electrical_series now determines whether the timestamps of the spikeinterface recording extractor are uniform or not and automatically stores the data according to best practices PR #40
  • Dropped Python 3.7 support. PR #237

Features

  • Added a tool for determining rising and falling frames from TTL signals (parse_rising_frames_from_ttl and get_falling_frames_from_ttl). PR #244
  • Added the SpikeGLXNIDQInterface for reading data from .nidq.bin files, as well as the ability to parse event times from specific channels via the get_event_starting_times_from_ttl method. Also included a neuroconv.tools.testing.MockSpikeGLXNIDQInterface for testing purposes. PR #247
  • Improved handling of writing multiple probes to the same NWB file PR #255
  • Added basic temporal alignment methods to all DataInterfaces. These are get_timestamps, align_starting_time, align_timestamps, and align_by_interpolation. Added tests that serve as a first demonstration of the intended uses in a variety of cases. PR #237

Pending deprecation

  • Added DeprecationWarnings to all spikeextractors backends. PR #265
  • Added DeprecationWarnings for spikeextractors objects in neuroconv.tools.spikeinterface. PR #266

Fixes

  • Temporarily hotfixed the tensorflow dependency after the release of deeplabcut==2.3.0. PR #268
  • Fixed cleanup of waveform tests in SI tools. PR #277
  • Fixed metadata structure for the CsvTimeIntervalsInterface, which was previously not passed validation in NWBConverters. PR #237
  • Added propagation of the load_sync_channel argument for the SpikeGLXNIDQInterface. PR #282
  • Fixed the default es_key used by stand-alone write using any RecordingExtractorInterface or LFPExtractorInterface. PR #288
  • Fixed the default ExtractorName used to load the spikeinterface extractor of the SpikeGLXLFPInterface. PR #288

Testing

  • Re-organized the test_gin_ecephys file by splitting into each sub-modality. PR #282
  • Add testing support for Python 3.11. PR #234

v0.2.3

Documentation and tutorial enhancements

  • Remove Path(path_to_save_nwbfile).is_file() from each of the gallery pages. PR #177
  • Improve docstring for SpikeGLXRecordingInterface. PR #226
  • Correct typing of SpikeGLX in conversion gallery. PR #223
  • Added tutorial for utilizing YAML metadata in a conversion pipeline. PR #240
  • Added page in User Guide for how to use CSVs to specifiy metadata. PR #241
  • Added the BaseDataInterface in the API docs. PR #242
  • Fixed typo in styling section. PR #253
  • Updated docs on JSON schema. PR #256
  • Improved compliance with numpy-style docstring PR #260

Features

  • Added AudioInterface for files in WAV format using the add_acoustic_waveform_series utility function from tools/audio to write audio data to NWB. PR #196
  • Added the MCSRaw for writing data stored in MCSRaw (.raw) format. PR #220
  • Added the MEArecRecordingInterface for writing data stored in MEArec (structured .h5) format. PR #218
  • Added the AlphaOmegaRecordingInterface for writing data stored in AlphaOmega (folder of .mrx) format. PR #212
  • Added the PlexonRecordingInterface for writing data stored in Plexon (.plx) format. PR #206
  • Added the BiocamRecordingInterface for writing data stored in Biocam (.bwr) format. PR #210
  • Added function to add acoustic series as AcousticWaveformSeries object as acquisition or stimulus to NWB. PR #201
  • Added new form to the GitHub repo for requesting support for new formats. PR #207
  • Simplified the writing of channel_conversion during add_electrical_series if the vector of gains is uniform; in this case, they are now combined into the scalar conversion value. PR #218
  • Implement timestamp extraction from videos for the SLEAPInterface PR #238
  • Prevented writing of default values for optional columns on the ElectrodeTable. PR #219
  • Add interfaces for Excel and Csv time intervals tables. PR #252

Testing

  • Added a session_id to the test file for the automatic_dandi_upload helper function. PR #199
  • pre-commit version bump. PR #235
  • Added a testing sub-module to src and added a method (generate_mock_ttl_signal) for generating synthetic TTL pulses. PR #245

Fixes

  • VideoInterface. Only raise a warning if the difference between the rate estimated from timestamps and the fps (frames per seconds) is larger than two decimals. PR #200
  • Fixed the bug in a VideoInterface where it would use DataChunkIterator even if the conversion options indicated that it should not. PR #200
  • Update usage requirements for HDMF to prevent a buffer overflow isssue fixed in hdmf-dev/hdmf#780. PR #195
  • Remove the deprecated distutils.version in favor of packaging.version PR #233

v0.2.2

Testing

  • Added a set of dev branch gallery tests for PyNWB, HDMF, SI, and NEO. PR #113
  • Added tests for the TypeError and ValueError raising for the new starting_frames argument of MovieDataInterface.run_conversion(). PR #113
  • Added workflow for automatic detection of CHANGELOG.md updates for PRs. PR #187
  • Added support for python 3.10 PR #229

Fixes

  • Fixed a new docval typing error that arose in hdmf>3.4.6 versions. PR #113
  • Fixed a new input argument issue for starting_frames when using external_file for an ImageSeries in pynwb>2.1.0 versions. PR #113
  • Fixed issues regarding interaction between metadata rate values and extractor rate values in tools.roiextractors. PR #159
  • Fixed sampling frequency resolution issue when detecting this from timestamps in roiextractors.write_imaging and roiextractors.write_segmentation. PR #159

Documentation and tutorial enhancements

  • Added a note in User Guide/DataInterfaces to help installing custom dependencies for users who use Z-shell (zsh). PR #180
  • Added MovieInterface example in the conversion gallery. PR #183

Features

  • Added ConverterPipe, a class that allows chaining previously intialized interfaces for batch conversion and corresponding tests PR #169
  • Added automatic extraction of metadata for NeuralynxRecordingInterface including filtering information for channels, device and recording time information PR #170
  • Added stubbing capabilities to timestamp extraction in the MovieInterface avoiding scanning through the whole file when stub_test=True PR #181
  • Added a flag include_roi_acceptance to tools.roiextractors.write_segmentation and corresponding interfaces to allow disabling the addition of boolean columns indicating ROI acceptance. PR #193
  • Added write_waveforms() function in tools.spikeinterface to write WaveformExtractor objects PR #217

Pending deprecation

  • Replaced the MovieInterface with VideoInterface and introduced deprecation warnings for the former. PR #74

v0.2.1

Fixes

  • Updated BlackrockRecordingInterface to support multi stream file and added gin corresponding gin tests PR #176

v0.2.0

Back-compatability break

  • All built-in DataInterfaces are now nested under the neuroconv.datainterfaces import structure - they are no longer available from the outer level. To import a data interface, use the syntax from neuroconv.datainterfaces import <name of interface>. PR #74
  • The AxonaRecordingExtractorInterface has been renamed to AxonaRecordingInterface. PR #74
  • The AxonaUnitRecordingExtractorInterface has been renamed to AxonaUnitRecordingInterface. PR #74
  • The BlackrockRecordingExtractorInterface has been renamed to BlackrockRecordingInterface. PR #74
  • The BlackrockSortingExtractorInterface has been renamed to BlackrockSortingInterface. PR #74
  • The OpenEphysRecordingExtractorInterface has been renamed to OpenEphysRecordingInterface. PR #74
  • The OpenEphysSortingExtractorInterface has been renamed to OpenEphysSortingInterface. PR #74
  • The KilosortSortingInterface has been renamed to KiloSortSortingInterface to be more consistent with SpikeInterface. PR #107
  • The Neuroscope interfaces have been renamed to NeuroScope to be more consistent with SpikeInterface. PR #107
  • The tools.roiextractors.add_epoch functionality has been retired in the newest versions of ROIExtractors. PR #112
  • Removed deprecation warnings for save_path argument (which is now nwbfile_path everywhere in the package). PR #124
  • Changed default device name for the ecephys pipeline. Device_ecephys -> DeviceEcephys PR #154
  • Change names of written electrical series on the ecephys pipeline. ElectricalSeries_raw -> ElectricalSeriesRaw, ElectricalSeries_processed -> ElectricalSeriesProcessed, ElectricalSeries_lfp -> ElectricalSeriesLFP PR #153
  • Drop spikeextractor backend support for NeuralynxRecordingInterface PR #174

Fixes

  • Prevented the CEDRecordingInterface from writing non-ecephys channel data. PR #37
  • Fixed description in write_sorting and in add_units_table to have "neuroconv" in the description. PR #104
  • Updated spikeinterface version number to 0.95.1 to fix issue with SpikeGLXInterface probe annotations. The issue is described here. PR #132

Improvements

  • Unified the run_conversion method of BaseSegmentationExtractorInterface with that of all the other base interfaces. The method write_segmentation now uses the common make_or_load_nwbfile context manager PR #29
  • Coerced the recording extractors with spikeextractors_backend=True to BaseRecording objects for Axona, Blackrock, Openephys, and SpikeGadgets. PR #38
  • Added function to add PlaneSegmentation objects to an nwbfile in roiextractors and corresponding unit tests. PR #23
  • use_times argument to be deprecated on the ecephys pipeline. The function add_electrical_series now determines whether the timestamps of the spikeinterface recording extractor are uniform or not and automatically stores the data according to best practices PR #40
  • Add NWBFile metadata key at the level of the base data interface so it can always be inherited to be available. PR #51.
  • Added spikeinterface support to Axona LFP and coerece gin tests for LFP to be spikeinterface objects PR #85
  • Added function to add fluorescence traces to an nwbfile in roiextractors and corresponding unit tests. The df over f traces are now added to a DfOverF container instead of the Fluorescence container. The metadata schema has been changed for the BaseSegmentationExtractorInterface to allow metadata for DfOverF, and Flurorescence is now not required in the metadata schema. PR #41
  • Improved default values of OpticalChannel object names and other descriptions for Imaging data. PR #88
  • Extended the ImagingDataChunkIterator to be compatible with volumetric data. PR #90
  • Integrated the ImagingDataChunkIterator with the write_imaging methods. PR #90
  • Began work towards making SpikeInterface, SpikeExtractors, and ROIExtractors all non-minimal dependencies. PR #74
  • Implemented format-wise and modality-wise extra installation requirements. If there are any requirements to use a module or data interface, these are defined in individual requirements files at the corresponding level of the package. These are in turn easily accessible from the commands pip install neuroconv[format_name]. pip install neuroconv[modality_name] will also install all dependencies necessary to make full use of any interfaces from that modality. PR #100
  • Added frame stubbing to the BaseSegmentationExtractorInterface. PR #116
  • Added mask_type: str and include_roi_centroids: bool to the add_plane_segmentation helper and write_segmentation functions for the tools.roiextractors submodule. PR #117
  • Propagate output_struct_name argument to ExtractSegmentationInterface to match its extractor arguments. PR #128
  • Added compression and iteration (with options control) to all Fluorescence traces in write_segmentation. PR #120
  • For irregular recordings, timestamps can now be saved along with all traces in write_segmentation. PR #130
  • Added mask_type argument to tools.roiextractors.add_plane_segmentation function and all upstream calls. This allows users to request writing not just the image_masks (still the default) but also pixels, voxels or None of the above. PR #119
  • utils.json_schema.get_schema_from_method_signature now allows Optional[...] annotation typing and subsequent None values during validation as long as it is still only applied to a simple non-conflicting type (no Optional[Union[..., ...]]). PR #119

Documentation and tutorial enhancements:

  • Unified the documentation of NeuroConv structure in the User Guide readthedocs. PR #39
  • Added package for viewing source code in the neuroconv documentation PR #62
  • Added Contributing guide for the Developer section of readthedocs. PR #73
  • Added style guide to the readthedocs PR #28
  • Added ABF data conversion tutorial @luiztauffer PR #89
  • Added Icephys API documentation @luiztauffer PR #103
  • Added Blackrock sorting conversion gallery example PR #134
  • Extended the User Guide Get metadata section in DataInterfaces with a demonstration for loading metadata from YAML. PR #144
  • Fixed a redundancy in PR #144 and API links. PR #154
  • Added SLEAP conversion gallery example PR #161

Features

  • Added conversion interface for Neuralynx sorting data together with gin data test and a conversion example in the gallery. PR #58
  • Added conversion interface for DeepLabCut data together with gin data test and a conversion example in the gallery. PR #24
  • Allow writing of offsets to ElectricalSeries objects from SpikeInterface (requires PyNWB>=2.1.0). PR #37
  • Added conversion interface for EDF (European Data Format) data together with corresponding unit tests and a conversion example in the gallery. PR #45
  • Created ImagingExtractorDataChunkIterator, a data chunk iterator for ImagingExtractor objects. PR #54
  • Added support for writing spikeinterface recording extractor with multiple segments and corresponding unit test PR #67
  • Added spikeinterface support to the Axona data interface PR #61
  • Added new util function get_package for safely attempting to attempt a package import and informatively notifying the user of how to perform the installation otherwise. PR #74
  • All built-in DataInterfaces now load their external dependencies on-demand at time of object initialization instead of on package or interface import. PR #74
  • Adde spikeinterface support for Blackrock sorting interfacePR #134
  • Added conversion interface for TDT recording data together with gin data test. PR #135
  • Added conversion interface for SLEAP pose estimation data together with gin test for data. PR #160

Testing

  • Added unittests for correctly writing the scaling factors to the nwbfile in the add_electrical_series function of the spikeinterface module. PR #37
  • Added unittest for compresion options in the add_electrical_series function of the spikeinterface module. PR #64
  • Added unittests for chunking in the add_electrical_series function of the spikeinterface module. PR #84
  • Tests are now organized according to modality-wise lazy installations. PR #100

v0.1.1

Fixes

  • Fixed the behavior of the file_paths usage in the MovieInterface when run via the YAML conversion specification. PR #33

Improvements

  • Added function to add ImagingPlane objects to an nwbfile in roiextractors and corresponding unit tests. PR #19
  • Added function to add summary images from a SegmentationExtractor object to an nwbfile in the roiextractors module and corresponding unit tests PR #22
  • Small improvements on ABFInterface @luiztauffer PR #89

Features

  • Add non-iterative writing capabilities to add_electrical_series. PR #32

Testing

  • Added unittests for the write_as functionality in the add_electrical_series of the spikeinterface module. PR #32

v0.1.0

  • The first release of NeuroConv.