Neo

Overview

Neo is an open-source Python package that defines a hierarchical object model for electrophysiology data, covering intracellular and extracellular recordings and EEG, and provides readers and writers for a wide range of proprietary and open neurophysiology file formats. It was developed by the NeuralEnsemble community and first described in Garcia et al. 2014. Its core design principle is to be strictly limited to data representation, with no functions for analysis or visualization, so that it can serve as a lightweight, common dependency across the Python neuroscience ecosystem.

Object Model

Neo implements a hierarchical data model in which a Block (the top-level container) holds Segments representing contiguous recording epochs, each containing typed signal and event objects: AnalogSignal for continuously sampled signals, SpikeTrain for sorted unit activity, Event and Epoch for discrete markers. This structure is shared across all supported file formats, allowing data loaded from any source to be handled uniformly by downstream tools.

File Format Support

Neo provides I/O classes for a broad range of neurophysiology formats, including Spike2, NeuroExplorer, AlphaOmega, Axon (ABF), Blackrock, Plexon, Tucker-Davis Technologies (TDT), and Igor Pro, as well as non-proprietary formats including HDF5 and EDF. The number and coverage of supported formats has expanded continuously through community contributions since the initial release.

Connections

  • Endorsed by: INCF (INCFSN-22-02, 2022)

Resources