Skip to content

History

This package somehow started about 20 years ago in Bruce McNaughton's lab. Dave Redish started the TSToolbox package in Matlab. Another postdoc in the lab, Francesco Battaglia, then made major contributions to the package. Francesco passed it on to Adrien Peyrache and other trainees in Paris and The Netherlands. Around 2016-2017, Luke Sjulson started TSToolbox2, still in Matlab and which includes some important changes.

In 2018, Francesco started neuroseries, a Python package built on Pandas. It was quickly adopted in Adrien's lab, especially by Guillaume Viejo, a postdoc in the lab. Gradually, the majority of the lab was using it and new functions were constantly added. In 2021, Guillaume and other trainees in Adrien's lab decided to fork from neuroseries and started pynapple. The core of pynapple is largely built upon neuroseries. Some of the original changes to TSToolbox made by Luke were included in this package, especially the time_support property of all ts/tsd objects.

Since 2023, the development of pynapple is lead by Guillaume Viejo and Edoardo Balzani at the Center for Computational Neuroscience of the Flatiron institute.

0.7.1 (2024-09-24)

  • Fixing nan issue when computing 1d tuning curve (See issue #334).
  • Refactor tuning curves and correlogram tests.
  • Adding validators decorators for tuning curves and correlogram modules.

0.7.0 (2024-09-16)

  • Morlet wavelets spectrogram with utility for plotting the wavelets.
  • (Mean) Power spectral density. Returns a Pandas DataFrame.
  • Convolve function works for any dimension of time series and any dimensions of kernel.
  • dtype in count function
  • get_slice: public method with a simplified API, argument start, end, time_units. returns a slice that matches behavior of Base.get.
  • _get_slice: private method, adds the argument "mode" this can be: "after_t", "before_t", "closest_t", "restrict".
  • split method for IntervalSet. Argument is interval_size in time unit.
  • Changed os import to pathlib.
  • Fixed pickling issue. TsGroup can now be saved as pickle.
  • TsGroup can be created from an iterable of Ts/Tsd objects.
  • IntervalSet can be created from (start, end) pairs

0.6.6 (2024-05-28)

  • Full lazy-loading for NWB file.
  • Parameter load_array for time series can prevent loading zarr array
  • Function to merge a list of TsGroup

0.6.5 (2024-05-14)

  • Full pynajax backend compatibility
  • Fixed TsdFrame column slicing

0.6.4 (2024-04-18)

  • Fixing IntervalSet __repr__. Tabulate conflict with numpy 1.26.

0.6.3 (2024-04-17)

  • Improving __repr__ for all objects.
  • TsGroup __getattr__ and __setattr__ added to access metadata columns directly
  • TsGroup __setitem__ now allows changes directly to metadata
  • TsGroup __getitem__ returns column of metadata if passed as string

0.6.2 (2024-04-04)

  • smooth now takes standard deviation in time units
  • Fixed TsGroup saving method.
  • __getattr__ of BaseTsd allow numpy functions to be attached as attributes of Tsd objects
  • Added get method for TsGroup
  • Tsds can be concatenate vertically if time indexes matches.

0.6.1 (2024-03-03)

  • Fixed pynapple loc method for new IntervalSet

0.6.0 (2024-03-02)

  • Refactoring IntervalSet to pure numpy ndarray.
  • Implementing new chain of inheritance for time series with abstract base class. base_class.Base holds the temporal methods for all time series and Ts. time_series.BaseTsd inherit Base and implements the common methods for Tsd, TsdFrame and Tsd.
  • Automatic conversion to numpy ndarray for all objects that are numpy-like (typically jax).

0.5.1 (2024-01-29)

  • Implementing event_trigger_average for all dimensions.
  • Hiding jitted functions from users.

0.5.0 (2023-12-12)

  • Removing GUI stack from pynapple. To create a NWB file, users need to install nwbmatic (https://github.com/pynapple-org/nwbmatic)
  • Implementing compute_perievent_continuous
  • Implementing convolve for Tsd, TsdFrame and TsdTensor
  • Implementing smooth for fast gaussian smoothing of time series

0.4.1 (2023-10-30)

  • Implementing get method that return both an interval or the closest timepoint

0.4.0 (2023-10-11)

  • Implementing the numpy array container approach within pynapple
  • TsdTensor for objects larger than 2 dimensions is now available

0.3.6 (2023-09-11)

  • Fix issue in NWB reader class with units
  • Implement a linear interpolation function.

0.3.5 (2023-08-08)

  • NWB reader class
  • NPZ reader class
  • Folder class for navigating a dataset.
  • Cross-correlograms function can take tuple
  • New doc with mkdocs-gallery

0.3.4 (2023-06-29)

  • TsGroup.to_tsd and Tsd.to_tsgroup transformations
  • count can take IntervalSet
  • Saving to npz functions for all objects.
  • tsd.value_from can take TsdFrame
  • Warning message for deprecating current IO.

0.3.3 (2023-04-17)

  • Fixed minor bug with tkinter

0.3.2 (2023-04-12)

  • PyQt removed from the list of dependencies

0.3.1 (2022-12-08)

  • Core functions rewritten with Numba

0.2.4 (2022-05-02)

0.2.3 (2022-04-05)

  • Fixed minor bug when saving DLC in NWB.

0.2.3 (2022-04-05)

  • Alpha release

0.2.2 (2022-04-05)

  • Beta testing version for public

0.2.1 (2022-02-07)

  • Beta testing version for Peyrache Lab.

0.2.0 (2022-01-10)

  • First version for pynapple with main features in core, process and IO.

0.2.0 Pre-release (2022-01-06)

  • Pre-release version for pynapple with main features in core and process.

0.1.1 (2021-10-25)

  • First release on PyPI.
  • Firt minimal version