NWB:N File Format

The NWB Format is built around two concepts: TimeSeries and ProcessingModules.

TimeSeries are objects for storing time series data, and Processing Modules are objects for storing and grouping analyses. The following sections describe these classes in further detail.


NWB files are represented in PyNWB with NWBFile objects. NWBFile objects provide functionality for creating TimeSeries datasets and Processing Modules, as well as functionality for storing experimental metadata and other metadata related to data provenance.


TimeSeries objects store time series data. These Python objects correspond to TimeSeries specifications provided by the NWB format specification. Like the NWB specification, TimeSeries Python objects follow an object-oriented inheritance pattern. For example, the class TimeSeries serves as the base class for all other TimeSeries types.

The following TimeSeries objects are provided by the API and NWB specification:

Processing Modules

Processing modules are objects that group together common analyses done during processing of data. Processing module objects are unique collections of analysis results. To standardize the storage of common analyses, NWB provides the concept of an NWBDataInterface, where the output of common analyses are represented as objects that extend the NWBDataInterface class. In most cases, you will not need to interact with the NWBDataInterface class directly. More commonly, you will be creating instances of classes that extend this class.

The following analysis NWBDataInterface objects are provided by the API and NWB specification:

Additionally, the TimeSeries described above are also subclasses of NWBDataInterface, and can therefore be used anywhere NWBDataInterface is allowed.


In addition to NWBContainer which functions as a common base type for Group objects NWBData provides a common base for the specification of datasets in the NWB:N format.