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")

Claude Code skills#

claude-skills is a collection of Claude Code skills for pynapple, maintained by the pynapple developers.

Large language models tend to write neurophysiology code the way they write pandas code: manual binning loops, .loc indexing, and time alignment done by hand. The using-pynapple skill teaches Claude the library’s own idioms instead, covering:

  • the core data structures (Ts, Tsd, TsdFrame, TsdTensor, TsGroup, IntervalSet)

  • time series manipulation (restrict, count, smooth, interpolate, bin_average, derivative)

  • metadata filtering, tuning curves, and Bayesian and template decoding

  • signal processing (filtering, wavelets), correlograms and perievent analysis

To install it, run the following in Claude Code:

/plugin marketplace add pynapple-org/claude-skills
/plugin install using-pynapple@pynapple-skills
/reload-plugins

The skill is invoked automatically whenever Claude detects that it is working with pynapple, so there is nothing else to do once it is installed.

Note

This repository derives from catalystneuro/claude-skills, which covers the broader neurophysiology ecosystem. The pynapple fork focuses solely on pynapple.