Skip to content

Releases: NeurodataWithoutBorders/pynwb

2.3.1

27 Feb 08:29
2.3.1
71d880a
Compare
Choose a tag to compare

PyNWB 2.3.1 (February 24, 2023)

Bug fixes

  • Fixed an issue where NWB files with version "2.0b" could not be read.
    @rly #1651

2.3.0

23 Feb 18:33
1dc9125
Compare
Choose a tag to compare

PyNWB 2.3.0 (February 23, 2023)

Enhancements and minor changes

  • Added support for NWB Schema 2.6.0. @mavaylon1 #1636
  • Added a class and tests for the OnePhotonSeries new in NWB v2.6.0. @CodyCBakerPhD #1593(see also NWB Schema #523
  • Subject.age can be input as a timedelta type. @bendichter #1590
  • Added Subject.age__reference field. @bendichter (#1540)
  • IntracellularRecordingsTable.add_recording: the electrode arg is now optional, and is automatically populated from the stimulus or response.
    #1597
  • Added module pynwb.testing.mock.icephys and corresponding tests. @bendichter
    1595
  • Removed redundant object mapper code. @rly #1600
  • Fixed pending deprecations and issues in CI. @rly #1594
  • Added NWBHDF5IO.nwb_version property to get the NWB version from an NWB HDF5 file @oruebel #1612
  • Updated NWBHDF5IO.read to check NWB version before read and raise more informative error if an unsupported version is found @oruebel #1612
  • Added the driver keyword argument to the pynwb.validate function as well as the corresponding namespace caching. @CodyCBakerPhD #1588
  • Updated HDMF requirement to version 3.5.1. #1611
  • Increased the stacklevel of the warning from _add_missing_timezone in pynwb.file to make identification of which datetime field is missing a timezone easier. @CodyCBakerPhD #1641

Documentation and tutorial enhancements:

Bug fixes

  • Added shape constraint to PatchClampSeries.data. @bendichter
    #1596
  • Updated the images tutorial to provide example usage of an IndexSeries
    with a reference to Images. @bendichter #1602
  • Fixed an issue with the tox tool when upgrading to tox 4. @rly #1608
  • Fixed an issue where Images were not allowed as stimulus templates. @rly #1638

2.2.0

20 Oct 00:59
fdb0297
Compare
Choose a tag to compare

PyNWB 2.2.0 (October 19, 2022)

Enhancements and minor changes

  • Enhanced pynwb.validate API function to accept a list of file paths as well as the ability to operate on cached
    namespaces. Also adjusted the validate CLI to directly use the API function. @CodyCBakerPhD
    #1511

Internal enhancements

Bug fixes

2.1.1

25 Oct 04:28
@rly rly
2.1.1
92ed81b
Compare
Choose a tag to compare

PyNWB 2.1.1 (September 1, 2022)

Documentation and tutorial enhancements:

Enhancements and minor changes

  • Updated coverage workflow, report separate unit vs integration coverage. @rly
    #1509
  • Deleted test files generated from running sphinx gallery examples. @rly
    #1517
  • Enabled passing an S3File created through s3fs, which provides a method for reading an NWB file directly
    from s3 that is an alternative to ros3. This required relaxing of NWBHDF5IO input validation. The path
    arg is not needed if file is provided. mode now has a default value of "r".
    @bendichter
    #1499
  • Added a method to NWBMixin that only raises an error when a check is violated on instance creation,
    otherwise throws a warning when reading from a file. The new checks in ImageSeries when external_file
    is provided is used with this method to ensure that that files with invalid data can be read, but prohibits
    the user from creating new instances when these checks are violated. @weiglszonja
    #1516
  • Created a GitHub Actions workflow to generate test files for testing backward compatibility. @rly
    #1548
  • Updated requirements, including allowing numpy 1.23. @rly
    #1550
  • Enhanced docs for LabMetaData to clarify its usage. @oruebel
    #1546
  • Add testing/mock, which provides mock neurodata objects for testing. @bendichter
    #1454

2.1.0

07 Jul 06:14
2.1.0
2bf5d19
Compare
Choose a tag to compare

PyNWB 2.1.0 (July 6, 2022)

Breaking changes:

  • Updated TimeIntervals to use the new TimeSeriesReferenceVectorData type. This does not alter the overall
    structure of TimeIntervals in a major way aside from changing the value of the neurodata_type attribute of the
    TimeIntervals.timeseries column from VectorData to TimeSeriesReferenceVectorData. This change facilitates
    creating common functionality around TimeSeriesReferenceVectorData. For NWB files with version 2.4.0 and earlier,
    the TimeIntervals.timeseries column is automatically migrated on read in the TimeIntervalsMap
    object mapper class to use the TimeSeriesReferenceVectorData container class, so that users are presented a
    consistent API for existing and new files. This change affects all existing TimeIntervals tables
    e.g., NBWFile.epochs, NWBFile.trials, and NWBFile.invalid_times. While this is technically a breaking
    change, the impact user codes should be minimal as this change primarily adds functionality while the overall
    behavior of the API is largely consistent with existing behavior. @oruebel, @rly (#1390)

Enhancements and minor changes

  • A warning is now raised if SpatialSeries.data has more than 3 columns. @bendichter, @rly (#1455, #1480)
  • The arguments x, y, z, imp, location, filtering are no longer required in the electrodes table.
    @h-mayorquin, @rly (#1448)
  • Added cell_id attribute to IntracellularElectrode. @bendichter (#1459)
  • Added offset field to TimeSeries and its subtypes. @CodyCBakerPhD (#1424)
  • Added support for NWB 2.5.0.
    • Added support for updated IndexSeries type, new order_of_images field in Images, and new neurodata_type
      ImageReferences. @rly (#1483)
  • Added support for HDMF 3.3.1. This is now the minimum version of HDMF supported. Importantly, HDMF 3.3 introduces
    warnings when the constructor of a class mapped to an HDMF-common data type or an autogenerated data type class
    is passed positional arguments instead of all keyword arguments. @rly (#1484)
  • Moved logic that checks the 0th dimension of TimeSeries data equals the length of timestamps to a private method in the
    TimeSeries class. This is to avoid raising a warning when an ImageSeries is used with external file.
    @weiglszonja (#1486)
  • Improved warning text when dimensions are not matched in TimeSeries, ElectricalSeries, and RoiResponseSeries.
    @rly (#1491)

Documentation and tutorial enhancements:

Bug fixes:

  • Fixed input data types to allow only float for fields conversion and offset in definition of
    TimeSeries. @CodyCBakerPhD (#1424)
  • Fixed incorrect warning in RoiResponseSeries.__init__ about mismatch between the second dimension of data and
    the length of rois. @rly (#1491)

2.0.1

17 Mar 02:49
2.0.1
0238a37
Compare
Choose a tag to compare

PyNWB 2.0.1 (March 16, 2022)

Bug fixes:

  • Add environment-ros3.yml to MANIFEST.in for inclusion in source distributions. @rly (#1398)
  • Fix bad error check in IntracellularRecordingsTable.add_recording when adding IZeroClampSeries. @oruebel (#1410)
  • Skip ros3 tests if internet access or the ros3 driver are not available. @oruebel (#1414)
  • Fix CI issues. @rly (#1427)

Documentation and tutorial enhancements:

  • Enhanced ordering of sphinx gallery tutorials to use alphabetic ordering based on tutorial headings. @oruebel (#1399)
  • Updated the general tutorial to add documentation about the Images type. @bendichter (#1353)
  • Updated the main index of the documentation to make the documentation easier to navigate. @oruebel (#1402)
  • Merged the "NWB File" overview section with the "NWB File Basics" tutorial. @oruebel (#1402)
  • Updated and created separated installation instructions for users and developers . @oruebel (#1402)
  • Updated the Extracellular electrophysiology tutorial. @bendichter, @weiglszonja (#1391)
  • Extended the general tutorial with more data types (e.g., Subject, SpatialSeries, Position).
    @weiglszonja (#1403)
  • Improved constructor docstrings for Image types. @weiglszonja (#1418)
  • Added documentation for exporting NWB files. @rly (#1417)
  • Improved documentation formatting. @bendichter (#1438)
  • Minor text fixes. @bendichter (#1437, #1400)

Minor improvements:

  • Added checks for data orientation in TimeSeries, ElectricalSeries, and RoiResponseSeries.
    @bendichter (#1426)
  • Enhanced issue template forms on GitHub. @CodyCBakerPhD (#1434)

2.0.0

13 Aug 21:32
2.0.0
a27200d
Compare
Choose a tag to compare

Breaking changes:

  • SweepTable has been deprecated in favor of the new icephys metadata tables. Use of SweepTable
    is still possible but no longer recommended. @oruebel (#1349
  • TimeSeries.__init__ now requires the data argument because the 'data' dataset is required by the schema.
    If a TimeSeries is read without a value for data, it will be set to a default value. For most
    TimeSeries, this is a 1-dimensional empty array with dtype uint8. For ImageSeries and
    DecompositionSeries, this is a 3-dimensional empty array with dtype uint8. @rly (#1274)
  • TimeSeries.__init__ now requires the unit argument because the 'unit' attribute is required by the schema.
    If a TimeSeries is read without a value for unit, it will be set to a default value. For most
    TimeSeries, this is "unknown". For IndexSeries, this is "N/A" according to the NWB 2.4.0 schema. @rly (#1274)

New features:

  • Added new intracellular electrophysiology hierarchical table structure from ndx-icephys-meta to NWB core.
    This includes the new types TimeSeriesReferenceVectorData, IntracellularRecordingsTable,
    SimultaneousRecordingsTable, SequentialRecordingsTable, RepetitionsTable and
    ExperimentalConditionsTable as well as corresponding updates to NWBFile to support interaction
    with the new tables. @oruebel (#1349)
  • Added support for NWB 2.4.0. See Release Notes
    for more details. @oruebel, @rly (#1349)
  • Dropped Python 3.6 support, added Python 3.9 support. @rly (#1377)
  • Updated requirements to allow compatibility with HDMF 3 and h5py 3. @rly (#1377)
    • When using HDMF 3 and h5py 3, users can now stream NWB files from an S3 bucket.

Tutorial enhancements:

  • Added new tutorial for intracellular electrophysiology to describe the use of the new metadata tables
    and declared the previous tutoral using SweepTable as deprecated. @oruebel (#1349)
  • Added new tutorial for querying intracellular electrophysiology metadata
    (docs/gallery/domain/plot_icephys_pandas.py). @oruebel (#1349, #1383)
  • Added thumbnails for tutorials to improve presentation of online docs. @oruebel (#1349)
  • Used sphinx.ext.extlinks extension in docs to simplify linking to common targets. @oruebel (#1349)
  • Created new section for advanced I/O tutorials and moved parallel I/O tutorial to its own file. @oruebel (#1349)
  • Overhauled documentation on extensions. @bendichter, @rly, @oruebel (#1350)
  • Updated the optical physiology / Calcium imaging tutorial. @bendichter, @weiglszonja (#1375)
  • Added a tutorial on streaming using the ROS3 driver. @rly (#1393)

Minor new features:

Bug fixes:

  • Updated behavior of make clean command for docs to ensure tutorial files are cleaned up. @oruebel (#1349)
  • Enforced electrode ID uniqueness during insertion into table. @CodyCBakerPhD (#1344)
  • Fixed integration tests with invalid test data that will be caught by future hdmf validator version.
    @dsleiter, @rly (#1366, #1376)
  • Fixed build warnings in docs. @oruebel (#1380)
  • Fix intersphinx links in docs for numpy. @oruebel (#1386)
  • Previously, the data argument was required in OpticalSeries.__init__ even though external_file could
    be provided in place of data. OpticalSeries.__init__ now makes data optional. However, this has the
    side effect of moving the position of data to later in the argument list, which may break code that relies
    on positional arguments for OpticalSeries.__init__. @rly (#1274)
  • Fixed setup.py not being able to import versioneer when installing in an embedded Python environment. @ikhramts
    (#1395)
  • Removed broken option to validate against a given namespace file and updated associated documentation. @rly (#1397)

1.5.1

25 May 17:07
1.5.1
c1f4bd7
Compare
Choose a tag to compare
pynwb 1.5.1

1.5.0

19 May 18:30
1.5.0
49ad17a
Compare
Choose a tag to compare

New features:

  • NWBFile.add_scratch(...) and ScratchData.__init__(...) now accept scalar data in addition to the currently
    accepted types. @rly (#1309)
  • Support pathlib.Path paths when opening files with NWBHDF5IO. @dsleiter (#1314)
  • Use HDMF 2.5.1. See the HDMF release notes for details.
  • Support driver='ros3' in NWBHDF5IO for streaming NWB files directly from s3. @bendichter (#1331)
  • Update documentation, CI GitHub processes. @oruebel @yarikoptic, @bendichter, @TomDonoghue, @rly
    (#1311, #1336, #1351, #1352, #1345, #1340, #1327)
  • Set default neurodata_type_inc for NWBGroupSpec, NWBDatasetSpec. @rly (#1295)
  • Block usage of h5py 3+ for now. h5py>=2.9, <3 is supported. (#1355)
  • Fix incompatibility issue with downstream github-release tool used to deploy releases to GitHub. @rly (#1245)
  • Fix issue with Sphinx gallery. @rly
  • Add citation information to documentation and support for duecredit tool. @rly
  • Remove use of ColoredTestRunner for more readable verbose test output. @rly
  • Add support for nwb-schema 2.3.0. @rly (#1245, #1330)
    • Add optional waveforms column to the Units table.
    • Add optional strain field to Subject.
    • Add to DecompositionSeries an optional DynamicTableRegion called source_channels.
    • Add to ImageSeries an optional link to Device.
    • Add optional continuity field to TimeSeries.
    • Add optional filtering attribute to ElectricalSeries.
    • Clarify documentation for electrode impedance and filtering.
    • Set the stimulus_description for IZeroCurrentClamp to have the fixed value "N/A".
    • See https://nwb-schema.readthedocs.io/en/latest/format_release_notes.html for full schema release notes.
  • Add support for HDMF 2.5.5 and upgrade HDMF requirement from 2.1.0 to 2.5.5. @rly @ajtritt
    (#1325, #1355, #1360, #1245, #1287). This includes several relevant features and bug fixes, including:
    • Fix issue where dependencies of included types were not being loaded in namespaces / extensions.
    • Add HDF5IO.get_namespaces(path=path, file=file) method which returns a dict of namespace name mapped to the
      namespace version (the largest one if there are multiple) for each namespace cached in the given HDF5 file.
    • Add methods for automatic creation of MultiContainerInterface classes.
    • Add ability to specify a custom class for new columns to a DynamicTable that are not VectorData,
      DynamicTableRegion, or VocabData using DynamicTable.__columns__ or DynamicTable.add_column(...).
    • Add support for creating and specifying multi-index columns in a DynamicTable using add_column(...).
    • Add capability to add a row to a column after IO.
    • Add method AbstractContainer.get_fields_conf.
    • Add functionality for storing external resource references.
    • Add method hdmf.utils.get_docval_macro to get a tuple of the current values for a docval_macro, e.g., 'array_data'
      and 'scalar_data'.
    • DynamicTable can be automatically generated using get_class. Now the HDMF API can read files with extensions
      that contain a DynamicTable without needing to import the extension first.
    • Add EnumData type for storing data that comes from a fixed set of values.
    • Add AlignedDynamicTable type which defines a DynamicTable that supports storing a collection of subtables.
    • Allow np.bool_ as a valid bool dtype when validating.
    • See https://github.com/hdmf-dev/hdmf/releases for full HDMF release notes.

1.4.0

13 Aug 16:50
1.4.0
e37425d
Compare
Choose a tag to compare

Users can now add/remove containers from a written NWB file and export the modified NWBFile to a new file path.
@rly (#1280)

Internal improvements:

  • Update requirements to use HDMF 2.1.0. @rly (#1256)
  • Start FAQ section in documentation. @rly (#1249)
  • Improve deprecation warnings. @rly (#1261)
  • Update CI to test Python 3.8, update requirements. @rly (#1267, #1275)
  • Make use of MultiContainerInterface and LabelledDict that have been moved to HDMF. @bendichter @rly (#1260)

Bug fixes:

  • For ImageSeries, add check if external_file is provided without starting_frame in __init__. @rly (#1264)
  • Improve docstrings for TimeSeries.data and for the electrode table. @rly (#1271, #1272)
  • Fix Azure Pipelines configuration. @rly (#1281)