Skip to content

Releases: NeurodataWithoutBorders/pynwb

Latest (updated on 2025-01-29 17:01 UTC)

29 Jan 17:58
716e3ce
Compare
Choose a tag to compare
update default mock_NWBFile start time (#2018)

* update default mock_NWBFile start time

* Update src/pynwb/testing/mock/file.py

Co-authored-by: Ryan Ly <[email protected]>

---------

Co-authored-by: Ben Dichter <[email protected]>
Co-authored-by: Ryan Ly <[email protected]>

3.0.0rc1

29 Jan 02:02
81b0a49
Compare
Choose a tag to compare
3.0.0rc1 Pre-release
Pre-release

Breaking changes

  • The validation methods have been updated with multiple breaking changes. @stephprince #1911
    • The behavior of pynwb.validate(io=...) now matches the behavior of pynwb.validate(path=...). In previous pynwb versions, pynwb.validate(io=...) did not use the cached namespaces during validation. To obtain the same behavior as in previous versions, you can update the function call to pynwb.validate(io=..., use_cached_namespaces=False)
    • pynwb.validate will return only a list of validation errors instead of a tuple: (list of validation_errors, status code)
    • the pynwb.validate(path=...) argument has been added as a replacement for pynwb.validate(paths=[...]), which will be deprecated in a future major release #2024
    • The validate module has been renamed to validation.py. The validate method can be
      imported using import pynwb; pynwb.validate or from pynwb import validate

Deprecations

  • The following deprecated classes will now raise errors when creating new instances of these classes: ClusteringWaveforms, Clustering, SweepTable. Reading files using these data types will continue to be supported.
  • The following methods and arguments have been deprecated:
    • ProcessingModule.add_container and ProcessingModule.add_data_interface are replaced by ProcessingModule.add
    • ProcessingModule.get_container and ProcessingModule.get_data_interface are replaced by ProcessingModule.get
    • ScratchData.notes is deprecated. Use ScratchData.description instead.
    • NWBFile.ic_electrodes is deprecated. Use NWBFile.icephys_electrodes instead.
    • NWBFile.ec_electrodes is deprecated. Use NWBFile.electrodes instead.
    • NWBFile.icephys_filtering is deprecated. Use IntracellularElectrode.filtering instead.
    • NWBFile.modules is deprecated. Use NWBFile.processing instead.
    • ImageSeries.format is fixed to 'external' if an external file is provided.
    • ImageSeries.bits_per_pixel is deprecated.
    • ImagingPlane.manifold, ImagingPlane.conversion and ImagingPlane.unit are deprecated. Use ImagingPlane.origin_coords and ImagingPlane.grid_spacing instead.
    • IndexSeries.unit is fixed to "N\A".
    • IndexSeries.indexed_timeseries is deprecated. Use IndexSeries.indexed_images instead.
  • The following deprecated methods have been removed:
    • NWBFile.add_ic_electrode is removed. Use NWBFile.add_icephys_electrode instead.
    • NWBFile.create_ic_electrode is removed. Use NWBFile.create_icephys_electrode instead.
    • NWBFile.get_ic_electrode is removed. Use NWBFile.get_icephys_electrode instead.
    • pynwb._get_resources is removed.

Enhancements and minor changes

  • Added pynwb.read_nwb convenience method to simplify reading an NWBFile written with any backend @h-mayorquin #1994
  • Added support for NWB schema 2.8.0. @rly #2001
    • Removed SpatialSeries.bounds field that was not functional. This will be fixed in a future release. @rly #1907, #1996
    • Added support for NWBFile.was_generated_by field. @stephprince #1924
    • Added support for model_number, model_name, and serial_number fields to Device. @stephprince #1997
    • Deprecated EventWaveform neurodata type. @rly #1940
    • Deprecated ImageMaskSeries neurodata type. @rly #1941
  • Added enhancements to the validation CLI. @stephprince #1911
    • Added an entry point for the validation module. You can now use pynwb-validate "file.nwb".
    • Added the --json-outpath-path CLI argument to output validation results in a machine readable format.
  • Removed python 3.8 support, added python 3.13 support. @stephprince #2007
  • Added warnings when using positional arguments in Container constructor methods. Positional arguments will raise errors in the next major release. @stephprince #1972
  • mock_ElectricalSeries. Make number of electrodes between data and electrode region agree when explicitly passing data @h-mayorquin #2019

Documentation and tutorial enhancements

  • Updated SpikeEventSeries, DecompositionSeries, and FilteredEphys examples. @stephprince #2012
  • Replaced deprecated scipy.misc.face dataset in the images tutorial with another example. @stephprince #2016

2.8.3

20 Nov 01:23
bb782e8
Compare
Choose a tag to compare

Enhancements and minor changes

  • Made gain an optional argument for PatchClampSeries to match the schema. @stephprince #1975
  • Added warning when writing files with NWBHDF5IO without the .nwb extension. @stephprince #1978
  • Added NWBHDF5IO.read_nwb convenience method to simplify reading an NWB file. @h-mayorquin #1979
  • Removed unused references to region references and builders in preparation for changes in HDMF 4.0. @rly #1991

Documentation and tutorial enhancements

Performance

Bug fixes

  • Fixed bug in how ElectrodeGroup.__init__ validates its position argument. @oruebel #1770
  • Changed SpatialSeries.reference_frame from required to optional as specified in the schema. @rly #1986

2.8.2

09 Sep 19:34
b9f9e5a
Compare
Choose a tag to compare

Enhancements and minor changes

Documentation and tutorial enhancements

  • Added pre-release pull request instructions to release process documentation @stephprince #1928
  • Added section on how to use the family driver in h5py for splitting data across multiple files @oruebel #1949

Bug fixes

  • Fixed can_read method to return False if no nwbfile version can be found @stephprince #1934
  • Changed epoch_tags to be a NWBFile property instead of constructor argument. @stephprince #1935
  • Exposed option to not cache the spec in NWBHDF5IO.export. @rly #1959

2.8.1

03 Jul 21:57
d3ac4b9
Compare
Choose a tag to compare

Documentation and tutorial enhancements

  • Simplified the introduction to NWB tutorial. @rly #1914
  • Simplified the ecephys and ophys tutorials. #1915
  • Add comments to src/pynwb/io/file.py to improve developer documentation. @rly #1925

Bug fixes

  • Fixed use of channel_conversion in TimeSeries get_data_in_units. @rohanshah 1923

2.8.0

29 May 15:36
2.8.0
04a6506
Compare
Choose a tag to compare

Enhancements and minor changes

  • Set rate default value inside mock_ElectricalSeries to avoid having to set rate=None explicitly when passing timestamps. @h-mayorquin #1894
  • Integrate validation through the TypeConfigurator. @mavaylon1 #1829
  • Exposed aws_region to NWBHDF5IO. @rly #1903

Bug fixes

  • Revert changes in PyNWB 2.7.0 that allow datetimes without a timezone and without a time while issues with DANDI upload of NWB files missing timezone are resolved. @rly #1908

2.7.0

03 May 00:55
86b274d
Compare
Choose a tag to compare

PyNWB 2.7.0 (May 2, 2024)

Enhancements and minor changes

  • Added bounds field to SpatialSeries to set optional boundary range (min, max) for each dimension of data. @mavaylon1 #1869
  • Added support for NWB schema 2.7.0. See 2.7.0 release notes for details
  • Deprecated ImagingRetinotopy neurodata type. @rly #1813
  • Modified OptogeneticSeries to allow 2D data, primarily in extensions of OptogeneticSeries. @rly #1812
  • Support stimulus_template as optional predefined column in IntracellularStimuliTable. @stephprince #1815
  • Support NWBDataInterface and DynamicTable in NWBFile.stimulus. @rly #1842
  • Added support for python 3.12 and upgraded dependency versions. This also includes infrastructure updates for developers. @mavaylon1 #1853
  • Added grid_spacing, grid_spacing_unit, origin_coords, origin_coords_unit to ImagingPlane fields. @h-mayorquin #1892
  • Added mock_Units for generating Units tables. @h-mayorquin #1875 and #1883
  • Allow datetimes without a timezone and without a time. @rly #1886
  • No longer automatically set the timezone to the local timezone when not provided. #1886
  • Updated testing to not install in editable mode and not run coverage by default. #1897

Bug fixes

  • Fix bug with reading file with linked TimeSeriesReferenceVectorData @rly #1865
  • Fix bug where extra keyword arguments could not be passed to NWBFile.add_{x}_column for use in custom VectorData classes. @rly #1861

2.6.0

21 Feb 22:10
7d19192
Compare
Choose a tag to compare

PyNWB 2.6.0 (February 21, 2024)

Enhancements and minor changes

  • For NWBHDF5IO(), change the default of arg load_namespaces from False to True. @bendichter #1748
  • Add NWBHDF5IO.can_read(). @bendichter #1703
  • Add pynwb.get_nwbfile_version(). @bendichter #1703
  • Fix usage of the validate function in the pynwb.testing.testh5io classes and cache the spec by default in those classes. @rly #1782
  • Updated timeseries data checks to warn instead of error when reading invalid files. @stephprince #1793 and #1809
  • Expose the offset, conversion and channel conversion parameters in mock_ElectricalSeries. @h-mayorquin #1796
  • Expose starting_time in mock_ElectricalSeries. @h-mayorquin #1805
  • Enhance get_data_in_units() to work with objects that have a channel_conversion attribute like the ElectricalSeries. @h-mayorquin #1806
  • Refactor validation CLI tests to use {sys.executable} -m coverage to use the same Python version and run correctly on Debian systems. @yarikoptic #1811
  • Fixed tests to address newly caught validation errors. @rly #1839

Bug fixes

  • Fix bug where namespaces were loaded in "w-" mode. @h-mayorquin #1795
  • Fix bug where pynwb version was reported as "unknown" to readthedocs @stephprince #1810
  • Fixed bug to allow linking of TimeSeries.data by setting the data constructor argument to another TimeSeries. @oruebel #1766
  • Fix recursion error in html representation generation in jupyter notebooks. @stephprince #1831

Documentation and tutorial enhancements

2.5.0

18 Aug 22:26
68c4f56
Compare
Choose a tag to compare
pynwb 2.5.0

2.4.0

24 Jul 14:39
2.4.0
12522d5
Compare
Choose a tag to compare

PyNWB 2.4.0 (July 23, 2023)

Enhancements and minor changes

Bug fixes

  • Fixed sphinx-gallery setting to correctly display index in the docs with sphinx-gallery>=0.11. @oruebel #1733

Documentation and tutorial enhancements