Skip to content

Releases: NeurodataWithoutBorders/pynwb

2.1.0

07 Jul 06:14
2.1.0
2bf5d19

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

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

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

Choose a tag to compare

pynwb 1.5.1

1.5.0

19 May 18:30
1.5.0
49ad17a

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

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)

1.3.3

01 Jul 00:03
1.3.3
0a0d6b9

Choose a tag to compare

Internal improvements:

  • Update requirements to use HDMF 1.6.4. @rly (#1256)

Bug fixes:

  • Fix writing optional args to electrodes table. @rly (#1246)
  • Fix missing method UnitsMap.get_nwb_file. @rly (#1227)

1.3.2

02 Jun 07:35
1.3.2
b1e4697

Choose a tag to compare

Bug fixes:

  • Add support for nwb-schema 2.2.5. @rly (#1243)
    • This schema version fixes incorrect dims and shape for ImagingPlane.origin_coords and ImagingPlane.grid_spacing,
      and fixes incorrect dims for TwoPhotonSeries.field_of_view.

1.3.1

28 May 18:30
1.3.1
c124687

Choose a tag to compare

Bug fixes:

Internal improvements:

  • Update CI to use supported MacOS version. @rly (#1211)
  • Clean up tests to remove conversion warnings and use keyword args. @rly (#1202)
  • Fix flake8 errors. @rly (#1235)
  • Add changelog. @rly (#1215)
  • Update release process with notes about coordinating with nwb-schema. @rly (#1214)
  • Inform which unit value is actually overwritten. @yarikoptic (#1219)
  • Do not print out logging.DEBUG statements to stdout for test.py. @rly (#1240)
  • Add support for nwb-schema 2.2.4. @rly (#1213)
    • Make ImagingPlane.imaging_rate optional. This moves the imaging_rate argument down the list of constructor for ImagingPlane.__init__. This will break existing code that calls the constructor of ImagingPlane with at least 6 positional arguments, such that one positional argument matches imaging_rate.

1.3.0

04 Mar 21:26
1.3.0
929972d

Choose a tag to compare

New features:

Internal improvements:

  • Add nightly testing of validation CLI. @t-b, @rly (#1164, #1195, #1197)
  • Treat ipython notebooks as binary in git. @t-b (#1168)
  • Use proper file removal in tests. @t-b (#1165)
  • Use hdmf-docutils instead of nwb-docutils for documentation. @jcfr (#1176)
  • Run minimum requirements testing n Python 3.6. @rly (#1194)

Bug fixes:

  • Fix API documentation. @bendichter (#1159)
  • Fix unit testing output. @rly (#1158)
  • Fix copying files with Subject. @rly (#1171)
  • Add "unit" attribute back as an optional attribute in icephys classes. @rly (#1188)
  • Fix reported development status in setup.py. @rly (#1201)