Skip to content

ezmsg-org/ezmsg-nwb

Repository files navigation

ezmsg-nwb

NWB (Neurodata Without Borders) file reading and writing for the ezmsg framework.

Overview

ezmsg-nwb provides streaming NWB file I/O as ezmsg Units.

Key features:

  • NWB Reader - Stream data from NWB files (local or remote) as AxisArray messages
  • NWB Writer - Write incoming AxisArray streams to NWB files with automatic container management
  • Flexible clock handling - Support for system, monotonic, and unknown reference clocks

Installation

Install from PyPI:

pip install ezmsg-nwb

Or install the latest development version:

pip install git+https://github.com/ezmsg-org/ezmsg-nwb@main

Dependencies

  • ezmsg
  • ezmsg-baseproc
  • numpy
  • pynwb
  • h5py
  • neuroconv
  • remfile
  • pyyaml

Usage

See the examples folder for usage examples.

import ezmsg.core as ez
from ezmsg.nwb import NWBIteratorUnit, NWBSink

For general ezmsg tutorials and guides, visit ezmsg.org.

Development

We use uv for development.

  1. Install uv if not already installed.
  2. Fork this repository and clone your fork locally.
  3. Open a terminal and cd to the cloned folder.
  4. Run uv sync to create a .venv and install dependencies.
  5. (Optional) Install pre-commit hooks: uv run pre-commit install
  6. After making changes, run the test suite: uv run pytest tests

License

MIT License - see LICENSE for details.

Acknowledgements

This project is supported by the Wyss Center for Bio and Neuroengineering and by Blackrock Neurotech.

About

NWB integration with ezmsg; playback data in chunks and sink data to NWB files

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages