External Projects#

Pynapple has been designed as a lightweight package for representing time series and epochs in system neuroscience. As such, it can function as a foundational element for other analysis packages handling time series data. Here we keep track of external projects that uses pynapple.

Pynaviz#

Pynaviz overview

..

Pynaviz provides interactive, high-performance visualizations designed to work seamlessly with Pynapple time series and video data. It allows synchronized exploration of neural signals and behavioral recordings. It is build on top of pygfx, a modern GPU-based rendering engine.

The easiest way to get started with pynaviz is to use the pynaviz command line tool, which can be installed with pip:

$ pip install pynaviz[qt]
$ pynaviz

NeMoS#

image

NeMoS is a statistical modeling framework optimized for systems neuroscience and powered by JAX. It streamlines the process of defining and selecting models, through a collection of easy-to-use methods for feature design.

The core of nemos includes GPU-accelerated, well-tested implementations of standard statistical models, currently focusing on the Generalized Linear Model (GLM).

Check out this page for many examples of neural modelling using nemos and pynapple.

Note

Nemos is build on top of [jax](https://jax.readthedocs.io/en/latest/index.html), a library for high-performance numerical computing. To ensure full compatibility with nemos, consider installing [pynajax](pynapple-org/pynajax), a pynapple backend for jax.

SpikeInterface#

SpikeInterface overview

SpikeInterface is a Python library for spike sorting and electrophysiological data analysis.

With a few lines of code, SpikeInterface enables you to load and pre-process the recording, run several state-of-the-art spike sorters, post-process and curate the output, compute quality metrics, and visualize the results.

SpikeInterface can export the output of spike sorting to pynapple, allowing you to seamlessly integrate spike sorting results into your pynapple-based analysis pipeline. See here for more details.

import spikeinterface as si
from spikeinterface.exporters import to_pynapple_tsgroup

# load in an analyzer
analyzer = si.load_sorting_analyzer("path/to/analyzer")

my_tsgroup = to_pynapple_tsgroup(
    sorting_analyzer=analyzer,
    attach_unit_metadata=True,
)

# Note: can add metadata using e.g.
# my_tsgroup.set_info({'brain_region': ['MEC', 'MEC', ...]})

my_tsgroup.save("my_tsgroup_output.npz")