Skip to main content

ezmsg-neo

Load and stream data from neo files into ezmsg.

Installation

pip install ezmsg-neo

Or install the latest development version:

pip install git+https://github.com/ezmsg-org/ezmsg-neo@dev

Dependencies

Usage

ezmsg-neo modules are available under import ezmsg.neo

Add the NeoIteratorUnit to your ezmsg graph as a data source. You may be interested in other ezmsg extensions for processing the data, such as ezmsg-sigproc and ezmsg-event.

import ezmsg.core as ez
from ezmsg.neo.source import NeoIteratorUnit
from ezmsg.util.messages.key import FilterOnKey
from ezmsg.util.debuglog import DebugLog
from ezmsg.event.rate import EventRate


comps = {
    "NEO": NeoIteratorUnit(filepath="path/to/file", chunk_dur=0.05),
    "FILTER": FilterOnKey(key="spike"),
    "RATE": EventRate(bin_duration=0.05),
    "LOG": DebugLog()  # Print the output to the console
}
conns = (
    (comps["NEO"].OUTPUT_SIGNAL, comps["FILTER"].INPUT_SIGNAL),
    (comps["FILTER"].OUTPUT_SIGNAL, comps["RATE"].INPUT_SIGNAL),
    (comps["RATE"].OUTPUT_SIGNAL, comps["LOG"].INPUT),
)
ez.run(components=comps, connections=conns)

Standalone

The NeoIterator class can be used outside ezmsg for offline processing:

from ezmsg.neo.source import NeoIterator, NeoIteratorSettings
from ezmsg.util.messages.axisarray import AxisArray

settings = NeoIteratorSettings(filepath="data.nev", chunk_dur=0.05)
neo_iter = NeoIterator(settings)

# Filter messages by key (e.g., "ns3" for analog signals, "spike" for spikes)
sig_msgs = [msg for msg in neo_iter if msg.key.startswith("ns")]

# Concatenate all chunks into a single AxisArray
full_signal = AxisArray.concatenate(*sig_msgs, dim="time")

NeoIterator Messages

The NeuoIteratorUnit and NeoIterator objects, when called, return AxisArray messages with a key attribute identifying the signal type:

  • Analog signals - Key matches the stream name (e.g., "ns3"). Data shape: (n_samples, n_channels)
  • Spike trains - Key is "spike". Data is a sparse array with shape (n_units, n_samples)
  • Events - Key is "events". Data contains event labels and its time axis is irregular (CoordinateAxis) with timestamps associated with each event.

Development

  1. Clone this repo and cd into it
  2. uv sync to setup your environment
  3. uv run pytest tests to run the tests
  4. (Optional) Install pre-commit hooks: uv run pre-commit install

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezmsg_neo-0.6.0.tar.gz (6.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezmsg_neo-0.6.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file ezmsg_neo-0.6.0.tar.gz.

File metadata

  • Download URL: ezmsg_neo-0.6.0.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ezmsg_neo-0.6.0.tar.gz
Algorithm Hash digest
SHA256 95c008cf4c4e94ffcea31468d6fc92969b3ae36964eea7dfdc5af757d5035795
MD5 cc841ffd3f736fccf6ecef5032678f73
BLAKE2b-256 c926c6e42932b449855957ace0fa0ed286615366ce67068173ffb003f6590b56

See more details on using hashes here.

File details

Details for the file ezmsg_neo-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: ezmsg_neo-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ezmsg_neo-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f03b691502c08731de7ad09b80e4dc3600f5d200802246e2b763e88b49152f1d
MD5 934e1f2ecf5c8c51c5346737af311471
BLAKE2b-256 baab2e56232186d39bb53588d175cff4cf9e543bbcc1064d5f02c87589abfdeb

See more details on using hashes here.

Release history Release notifications | RSS feed

0.7.0

2 files

This release

0.6.0 This release

2 files

0.5.0

2 files

0.4.0

2 files

0.3

2 files

0.2

2 files

0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page