# 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](https://pynapple-org.github.io/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:
```bash
$ pip install pynaviz[qt]
$ pynaviz
```
## NeMoS

[NeMoS](https://nemos.readthedocs.io/en/latest/index.html) 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](https://nemos.readthedocs.io/en/latest/tutorials/README.html) for many examples of neural modelling using nemos and pynapple.
```{eval-rst}
.. 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](https://github.com/pynapple-org/pynajax), a pynapple backend for jax.
```
## SpikeInterface
[SpikeInterface](https://spikeinterface.readthedocs.io/en/latest/) 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](https://spikeinterface.readthedocs.io/en/stable/modules/exporters.html#exporting-to-pynapple) for more details.
``` python
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](https://github.com/pynapple-org/claude-skills) is a collection of
[Claude Code](https://claude.com/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.
```{eval-rst}
.. Note::
This repository derives from `catalystneuro/claude-skills `_,
which covers the broader neurophysiology ecosystem. The pynapple fork focuses solely on pynapple.
```