Version v2.0.0-beta May 30, 2018

1. Format Overview

1.1. Namespace – NWB core

  • Description: NWB namespace
  • Name: core
  • Full Name: NWB core
  • Version: 1.2.0
  • Authors:
    • Keith Godfrey
    • Jeff Teeters
    • Oliver Ruebel
    • Andrew Tritt
  • Contacts:
  • Schema:
    • source: nwb.base.yaml
    • source: nwb.epoch.yaml
    • source: nwb.image.yaml
    • source: nwb.file.yaml
    • source: nwb.misc.yaml
    • source: nwb.behavior.yaml
    • source: nwb.ecephys.yaml
    • source: nwb.icephys.yaml
    • source: nwb.ogen.yaml
    • source: nwb.ophys.yaml
    • source: nwb.retinotopy.yaml

2. Type Specifications

2.1. Main Data File

2.1.1. NWBFile

Overview: Top level of NWB file.

NWBFile extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

NWBFile
Table 2.2 Datasets, Links, and Attributes contained in <NWBFile>
Id Type Description
root group

Top level group for root

.help attribute

Value is ‘an NWB:N file for storing cellular-based neurophysiology data’

  • Data Type: text
  • Value: an NWB:N file for storing cellular-based neurophysiology data
  • Name: help
.nwb_version attribute

File version string.

Comment: Eg, NWB-1.0.0. This will be the name of the format with trailing major, minor and patch numbers.

  • Data Type: text
  • Value: 2.0b
  • Name: nwb_version
.file_create_date dataset

Time file was created, UTC, and subsequent modifications to file.

Comment: Date + time, Use ISO format (eg, ISO 8601) or a format that is easy to read and unambiguous. File can be created after the experiment was run, so this may differ from experiment start time. Each modifictation to file adds new entry to array.

  • Data Type: text
  • Dimensions: [‘unlimited’]
  • Shape: [None]
  • Name: file_create_date
.identifier dataset

A unique text identifier for the file.

Comment: Eg, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files.

  • Data Type: text
  • Name: identifier
.session_description dataset

One or two sentences describing the experiment and data in the file.

  • Data Type: text
  • Name: session_description
.session_start_time dataset

Time of experiment/session start, UTC.

Comment: Date + time, Use ISO format (eg, ISO 8601) or an easy-to-read and unambiguous format. All times stored in the file use this time as reference (ie, time zero)

  • Data Type: text
  • Name: session_start_time
Table 2.3 Groups contained in <NWBFile>
Id Type Description
root group

Top level group for root

.acquisition group

Data streams recorded from the system, including ephys, ophys, tracking, etc.

Comment: This group is read-only after the experiment is completed and timestamps are corrected to a common timebase. The data stored here may be links to raw data stored in external HDF5 files. This will allow keeping bulky raw data out of the file while preserving the option of keeping some/all in the file.

Additional Information: Acquired data includes tracking and experimental data streams (ie, everything measured from the system).If bulky data is stored in the /acquisition group, the data can exist in a separate HDF5 file that is linked to by the file being used for processing and analysis.

  • Name: acquisition
.analysis group

Lab-specific and custom scientific analysis of data. There is no defined format for the content of this group - the format is up to the individual user/lab.

Comment: To facilitate sharing analysis data between labs, the contents here should be stored in standard types (eg, INCF types) and appropriately documented.

Additional Information: The file can store lab-specific and custom data analysis without restriction on its form or schema, reducing data formatting restrictions on end users. Such data should be placed in the analysis group. The analysis data should be documented so that it is sharable with other labs

  • Name: analysis
.epochs group

Experimental intervals, whether that be logically distinct sub-experiments having a particular scientific goal, trials during an experiment, or epochs deriving from analysis of data.

Comment: Epochs provide pointers to time series that are relevant to the epoch, and windows into the data in those time series (i.e., the start and end indices of TimeSeries::data[] that overlap with the epoch). This allows easy access to a range of data in specific experimental intervals.

Additional Information: An experiment can be separated into one or many logical intervals, with the order and duration of these intervals often definable before the experiment starts. In this document, and in the context of NWB, these intervals are called ‘epochs’. Epochs have acquisition and stimulus data associated with them, and different epochs can overlap. Examples of epochs are the time when a rat runs around an enclosure or maze as well as intervening sleep sessions; the presentation of a set of visual stimuli to a mouse running on a wheel; or the uninterrupted presentation of current to a patch-clamped cell. Epochs can be limited to the interval of a particular stimulus, or they can span multiple stimuli. Different windows into the same time series can be achieved by including multiple instances of that time series, each with different start/stop times.

  • Extends: Epochs
  • Name: epochs
.processing group

The home for processing Modules. These modules perform intermediate analysis of data that is necessary to perform before scientific analysis. Examples include spike clustering, extracting position from tracking data, stitching together image slices.

Comment: Modules are defined below. They can be large and express many data sets from relatively complex analysis (e.g., spike detection and clustering) or small, representing extraction of position information from tracking video, or even binary lick/no-lick decisions. Common software tools (e.g., klustakwik, MClust) are expected to read/write data here.

Additional Information: ‘Processing’ refers to intermediate analysis of the acquired data to make it more amenable to scientific analysis. These are performed using Modules, as defined above. All modules reside in the processing group.

  • Name: processing
.stimulus group

Data pushed into the system (eg, video stimulus, sound, voltage, etc) and secondary representations of that data (eg, measurements of something used as a stimulus)

Comment: This group is read-only after experiment complete and timestamps are corrected to common timebase. Stores both presented stimuli and stimulus templates, the latter in case the same stimulus is presented multiple times, or is pulled from an external stimulus library.

Additional Information: Stimuli are here defined as any signal that is pushed into the system as part of the experiment (eg, sound, video, voltage, etc). Many different experiments can use the same stimuli, and stimuli can be re-used during an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be HDF5-linked to a remote library file.

  • Name: stimulus
.general group

Experimental metadata, including protocol, notes and description of hardware device(s).

Comment: The metadata stored in this section should be used to describe the experiment. Metadata necessary for interpreting the data is stored with the data.

Additional Information: General experimental metadata, including animal strain, experimental protocols, experimenter, devices, etc, are stored under ‘general’. Core metadata (e.g., that required to interpret data fields) is stored with the data itself, and implicitly defined by the file specification (eg, time is in seconds). The strategy used here for storing non-core metadata is to use free-form text fields, such as would appear in sentences or paragraphs from a Methods section. Metadata fields are text to enable them to be more general, for example to represent ranges instead of numerical values. Machine-readable metadata is stored as attributes to these free-form datasets. <br /><br />All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them.

  • Name: general

2.1.1.1. Groups: /acquisition

Data streams recorded from the system, including ephys, ophys, tracking, etc.

Comment: This group is read-only after the experiment is completed and timestamps are corrected to a common timebase. The data stored here may be links to raw data stored in external HDF5 files. This will allow keeping bulky raw data out of the file while preserving the option of keeping some/all in the file.

Additional Information: Acquired data includes tracking and experimental data streams (ie, everything measured from the system).If bulky data is stored in the /acquisition group, the data can exist in a separate HDF5 file that is linked to by the file being used for processing and analysis.

  • Name: acquisition
Table 2.4 Groups contained in <acquisition>
Id Type Description
acquisition group

Top level group for acquisition

  • Name: acquisition
.<NWBDataInterface> group

Any objects representing acquired data

2.1.1.2. Groups: /acquisition/<NWBDataInterface>

Any objects representing acquired data

2.1.1.3. Groups: /analysis

Lab-specific and custom scientific analysis of data. There is no defined format for the content of this group - the format is up to the individual user/lab.

Comment: To facilitate sharing analysis data between labs, the contents here should be stored in standard types (eg, INCF types) and appropriately documented.

Additional Information: The file can store lab-specific and custom data analysis without restriction on its form or schema, reducing data formatting restrictions on end users. Such data should be placed in the analysis group. The analysis data should be documented so that it is sharable with other labs

  • Name: analysis
Table 2.5 Groups contained in <analysis>
Id Type Description
analysis group

Top level group for analysis

  • Name: analysis
.<NWBContainer> group

Custom analysis results

2.1.1.4. Groups: /analysis/<NWBContainer>

Custom analysis results

2.1.1.5. Groups: /epochs

Experimental intervals, whether that be logically distinct sub-experiments having a particular scientific goal, trials during an experiment, or epochs deriving from analysis of data.

Comment: Epochs provide pointers to time series that are relevant to the epoch, and windows into the data in those time series (i.e., the start and end indices of TimeSeries::data[] that overlap with the epoch). This allows easy access to a range of data in specific experimental intervals.

Additional Information: An experiment can be separated into one or many logical intervals, with the order and duration of these intervals often definable before the experiment starts. In this document, and in the context of NWB, these intervals are called ‘epochs’. Epochs have acquisition and stimulus data associated with them, and different epochs can overlap. Examples of epochs are the time when a rat runs around an enclosure or maze as well as intervening sleep sessions; the presentation of a set of visual stimuli to a mouse running on a wheel; or the uninterrupted presentation of current to a patch-clamped cell. Epochs can be limited to the interval of a particular stimulus, or they can span multiple stimuli. Different windows into the same time series can be achieved by including multiple instances of that time series, each with different start/stop times.

  • Extends: Epochs
  • Name: epochs

2.1.1.6. Groups: /processing

The home for processing Modules. These modules perform intermediate analysis of data that is necessary to perform before scientific analysis. Examples include spike clustering, extracting position from tracking data, stitching together image slices.

Comment: Modules are defined below. They can be large and express many data sets from relatively complex analysis (e.g., spike detection and clustering) or small, representing extraction of position information from tracking video, or even binary lick/no-lick decisions. Common software tools (e.g., klustakwik, MClust) are expected to read/write data here.

Additional Information: ‘Processing’ refers to intermediate analysis of the acquired data to make it more amenable to scientific analysis. These are performed using Modules, as defined above. All modules reside in the processing group.

  • Name: processing
Table 2.6 Groups contained in <processing>
Id Type Description
processing group

Top level group for processing

  • Name: processing
.<ProcessingModule> group

Intermediate analysis of acquired data

2.1.1.7. Groups: /processing/<ProcessingModule>

Intermediate analysis of acquired data

2.1.1.8. Groups: /stimulus

Data pushed into the system (eg, video stimulus, sound, voltage, etc) and secondary representations of that data (eg, measurements of something used as a stimulus)

Comment: This group is read-only after experiment complete and timestamps are corrected to common timebase. Stores both presented stimuli and stimulus templates, the latter in case the same stimulus is presented multiple times, or is pulled from an external stimulus library.

Additional Information: Stimuli are here defined as any signal that is pushed into the system as part of the experiment (eg, sound, video, voltage, etc). Many different experiments can use the same stimuli, and stimuli can be re-used during an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be HDF5-linked to a remote library file.

  • Name: stimulus
Table 2.7 Groups contained in <stimulus>
Id Type Description
stimulus group

Top level group for stimulus

  • Name: stimulus
.presentation group

Stimuli presented during the experiment.

  • Name: presentation
.templates group

Template stimuli.

Comment: Time stamps in templates are based on stimulus design and are relative to the beginning of the stimulus. When templates are used, the stimulus instances must convert presentation times to the experiment’s time reference frame.

  • Name: templates

2.1.1.9. Groups: /stimulus/presentation

Stimuli presented during the experiment.

  • Name: presentation
Table 2.8 Groups contained in <presentation>
Id Type Description
presentation group

Top level group for presentation

  • Name: presentation
.<TimeSeries> group

TimeSeries objects containing data of presented stimuli

2.1.1.10. Groups: /stimulus/presentation/<TimeSeries>

TimeSeries objects containing data of presented stimuli

2.1.1.11. Groups: /stimulus/templates

Template stimuli.

Comment: Time stamps in templates are based on stimulus design and are relative to the beginning of the stimulus. When templates are used, the stimulus instances must convert presentation times to the experiment’s time reference frame.

  • Name: templates
Table 2.9 Groups contained in <templates>
Id Type Description
templates group

Top level group for templates

  • Name: templates
.<TimeSeries> group

TimeSeries objects containing template data of presented stimuli

2.1.1.12. Groups: /stimulus/templates/<TimeSeries>

TimeSeries objects containing template data of presented stimuli

2.1.1.13. Groups: /general

Experimental metadata, including protocol, notes and description of hardware device(s).

Comment: The metadata stored in this section should be used to describe the experiment. Metadata necessary for interpreting the data is stored with the data.

Additional Information: General experimental metadata, including animal strain, experimental protocols, experimenter, devices, etc, are stored under ‘general’. Core metadata (e.g., that required to interpret data fields) is stored with the data itself, and implicitly defined by the file specification (eg, time is in seconds). The strategy used here for storing non-core metadata is to use free-form text fields, such as would appear in sentences or paragraphs from a Methods section. Metadata fields are text to enable them to be more general, for example to represent ranges instead of numerical values. Machine-readable metadata is stored as attributes to these free-form datasets. <br /><br />All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them.

  • Name: general
Table 2.10 Datasets, Links, and Attributes contained in /general
Id Type Description
general group

Top level group for general

  • Name: general
.data_collection dataset

Notes about data collection and analysis.

Comment: Can be from Methods

  • Quantity: 0 or 1
  • Data Type: text
  • Name: data_collection
.experiment_description dataset

General description of the experiment.

Comment: Can be from Methods

  • Quantity: 0 or 1
  • Data Type: text
  • Name: experiment_description
.experimenter dataset

Name of person who performed the experiment.

Comment: More than one person OK. Can specify roles of different people involved.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: experimenter
.institution dataset

Institution(s) where experiment was performed

  • Quantity: 0 or 1
  • Data Type: text
  • Name: institution
.lab dataset

Lab where experiment was performed

  • Quantity: 0 or 1
  • Data Type: text
  • Name: lab
.notes dataset

Notes about the experiment.

Comment: Things particular to this experiment

  • Quantity: 0 or 1
  • Data Type: text
  • Name: notes
.pharmacology dataset

Description of drugs used, including how and when they were administered.

Comment: Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: pharmacology
.protocol dataset

Experimetnal protocol, if applicable.

Comment: E.g., include IACUC protocol

  • Quantity: 0 or 1
  • Data Type: text
  • Name: protocol
.related_publications dataset

Publication information.

Comment: PMID, DOI, URL, etc. If multiple, concatenate together and describe which is which. such as PMID, DOI, URL, etc

  • Quantity: 0 or 1
  • Data Type: text
  • Name: related_publications
.session_id dataset

Lab-specific ID for the session.

Comment: Only 1 session_id per file, with all time aligned to experiment start time.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: session_id
.slices dataset

Description of slices, including information about preparation thickness, orientation, temperature and bath solution

  • Quantity: 0 or 1
  • Data Type: text
  • Name: slices
.source_script dataset

Script file used to create this NWB file.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: source_script
..file_name attribute

Name of script file

  • Data Type: text
  • Name: file_name
.stimulus dataset

Notes about stimuli, such as how and where presented.

Comment: Can be from Methods

  • Quantity: 0 or 1
  • Data Type: text
  • Name: stimulus
.surgery dataset

Narrative description about surgery/surgeries, including date(s) and who performed surgery.

Comment: Much can be copied from Methods

  • Quantity: 0 or 1
  • Data Type: text
  • Name: surgery
.virus dataset

Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc

  • Quantity: 0 or 1
  • Data Type: text
  • Name: virus
Table 2.11 Groups contained in <general>
Id Type Description
general group

Top level group for general

  • Name: general
.devices group

Description of hardware devices used during experiment.

Comment: Eg, monitors, ADC boards, microscopes, etc

  • Quantity: 0 or 1
  • Name: devices
.specifications group

Group for storing format specification files.

  • Quantity: 0 or 1
  • Name: specifications
.subject group

Information about the animal or person from which the data was measured.

.extracellular_ephys group

Metadata related to extracellular electrophysiology.

  • Quantity: 0 or 1
  • Name: extracellular_ephys
.intracellular_ephys group

Metadata related to intracellular electrophysiology

  • Quantity: 0 or 1
  • Name: intracellular_ephys
.optogenetics group

Metadata describing optogenetic stimulation

  • Quantity: 0 or 1
  • Name: optogenetics
.optophysiology group

Metadata related to optophysiology.

  • Quantity: 0 or 1
  • Name: optophysiology

2.1.1.14. Groups: /general/devices

Description of hardware devices used during experiment.

Comment: Eg, monitors, ADC boards, microscopes, etc

  • Quantity: 0 or 1
  • Name: devices
Table 2.12 Groups contained in <devices>
Id Type Description
devices group

Top level group for devices

  • Quantity: 0 or 1
  • Name: devices
.<Device> group

One of possibly many. Information about device and device description.

2.1.1.15. Groups: /general/devices/<Device>

One of possibly many. Information about device and device description.

Table 2.13 Datasets, Links, and Attributes contained in /general/devices/<Device>
Id Type Description
<Device> group

Top level group for <Device>

.help attribute

Value is ‘A recording device e.g. amplifier’

  • Data Type: text
  • Value: A recording device e.g. amplifier
  • Name: help

2.1.1.16. Groups: /general/specifications

Group for storing format specification files.

  • Quantity: 0 or 1
  • Name: specifications
Table 2.14 Datasets, Links, and Attributes contained in /general/specifications
Id Type Description
specifications group

Top level group for specifications

  • Quantity: 0 or 1
  • Name: specifications
.<SpecFile> dataset

Dataset for storing contents of a specification file for either the core format or an extension. Name should match name of file.`

  • Neurodata Type: SpecFile
  • Quantity: 0 or more
  • Data Type: text
..help attribute

A help statement

  • Data Type: text
  • Reuqired: False
  • Default Value: Contents of format specification file.
  • Name: help
..namespaces attribute

Namespaces defined in the file

  • Data Type: text
  • Dimensions: [‘num_namespaces’]
  • Shape: (None,)
  • Name: namespaces

2.1.1.17. Groups: /general/subject

Information about the animal or person from which the data was measured.

Table 2.15 Datasets, Links, and Attributes contained in /general/subject
Id Type Description
subject group

Top level group for subject

.help attribute

Value is ‘Information about the subject’

  • Data Type: text
  • Value: Information about the subject
  • Name: help
.age dataset

Age of subject

  • Quantity: 0 or 1
  • Data Type: text
  • Name: age
.description dataset

Description of subject and where subject came from (e.g., breeder, if animal)

  • Quantity: 0 or 1
  • Data Type: text
  • Name: description
.genotype dataset

Genetic strain

Comment: If absent, assume Wild Type (WT)

  • Quantity: 0 or 1
  • Data Type: text
  • Name: genotype
.sex dataset

Sex of subject

  • Quantity: 0 or 1
  • Data Type: text
  • Name: sex
.species dataset

Species of subject

  • Quantity: 0 or 1
  • Data Type: text
  • Name: species
.subject_id dataset

ID of animal/person used/participating in experiment (lab convention)

  • Quantity: 0 or 1
  • Data Type: text
  • Name: subject_id
.weight dataset

Weight at time of experiment, at time of surgery and at other important times

  • Quantity: 0 or 1
  • Data Type: text
  • Name: weight

2.1.1.18. Groups: /general/extracellular_ephys

Metadata related to extracellular electrophysiology.

  • Quantity: 0 or 1
  • Name: extracellular_ephys
Table 2.16 Datasets, Links, and Attributes contained in /general/extracellular_ephys
Id Type Description
extracellular_ephys group

Top level group for extracellular_ephys

  • Quantity: 0 or 1
  • Name: extracellular_ephys
.electrodes dataset

A table of all electrodes (i.e. channels) used for recording

Table 2.17 Groups contained in <extracellular_ephys>
Id Type Description
extracellular_ephys group

Top level group for extracellular_ephys

  • Quantity: 0 or 1
  • Name: extracellular_ephys
.<ElectrodeGroup> group

One of possibly many groups, one for each electrode group.

2.1.1.19. Groups: /general/extracellular_ephys/<ElectrodeGroup>

One of possibly many groups, one for each electrode group.

2.1.1.20. Groups: /general/intracellular_ephys

Metadata related to intracellular electrophysiology

  • Quantity: 0 or 1
  • Name: intracellular_ephys
Table 2.18 Datasets, Links, and Attributes contained in /general/intracellular_ephys
Id Type Description
intracellular_ephys group

Top level group for intracellular_ephys

  • Quantity: 0 or 1
  • Name: intracellular_ephys
.filtering dataset

Description of filtering used.

Comment: Includes filtering type and parameters, frequency fall- off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: filtering
Table 2.19 Groups contained in <intracellular_ephys>
Id Type Description
intracellular_ephys group

Top level group for intracellular_ephys

  • Quantity: 0 or 1
  • Name: intracellular_ephys
.<IntracellularElectrode> group

One of possibly many.

Comment: Name should be informative.

2.1.1.21. Groups: /general/intracellular_ephys/<IntracellularElectrode>

One of possibly many.

Comment: Name should be informative.

2.1.1.22. Groups: /general/optogenetics

Metadata describing optogenetic stimulation

  • Quantity: 0 or 1
  • Name: optogenetics
Table 2.20 Groups contained in <optogenetics>
Id Type Description
optogenetics group

Top level group for optogenetics

  • Quantity: 0 or 1
  • Name: optogenetics
.<OptogeneticStimulusSite> group

One of possibly many groups describing an optogenetic stimulation site.

Comment: Name is arbitrary but should be meaningful. Name is referenced by OptogeneticSeries

2.1.1.23. Groups: /general/optogenetics/<OptogeneticStimulusSite>

One of possibly many groups describing an optogenetic stimulation site.

Comment: Name is arbitrary but should be meaningful. Name is referenced by OptogeneticSeries

2.1.1.24. Groups: /general/optophysiology

Metadata related to optophysiology.

  • Quantity: 0 or 1
  • Name: optophysiology
Table 2.21 Groups contained in <optophysiology>
Id Type Description
optophysiology group

Top level group for optophysiology

  • Quantity: 0 or 1
  • Name: optophysiology
.<ImagingPlane> group

One of possibly many groups describing an imaging plane.

Comment: Name is arbitrary but should be meaningful. It is referenced by TwoPhotonSeries and also ImageSegmentation and DfOverF interfaces

2.1.1.25. Groups: /general/optophysiology/<ImagingPlane>

One of possibly many groups describing an imaging plane.

Comment: Name is arbitrary but should be meaningful. It is referenced by TwoPhotonSeries and also ImageSegmentation and DfOverF interfaces

2.2. Base Types

2.2.1. NWBContainer

Overview: The attributes specified here are included in all interfaces.

NWBContainer
Table 2.22 Datasets, Links, and Attributes contained in <NWBContainer>
Id Type Description
<NWBContainer> group

Top level group for <NWBContainer>

.help attribute

Short description of what this type of NWBContainer contains.

  • Data Type: text
  • Name: help
.source attribute

Path to the origin of the data represented in this interface.

  • Data Type: text
  • Name: source

2.2.2. NWBData

Overview: The attributes specified here are included in all interfaces.

  • Primitive Type: Dataset
  • Source Specification: see Section 3.3.2
Table 2.23 Datasets, Links, and Attributes contained in <NWBData>
Id Type Description
<NWBData> dataset

Top level dataset for <NWBData>

  • Neurodata Type: NWBData
.help attribute

Short description of what this type of Interface contains.

  • Data Type: text
  • Name: help

2.2.3. NWBDataInterface

Overview: An abstract data type for differentiating experimental data from metadata

NWBDataInterface extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

2.3. TimeSeries Types

2.3.1. AbstractFeatureSeries

Overview: Abstract features, such as quantitative descriptions of sensory stimuli. The TimeSeries::data field is a 2D array, storing those features (e.g., for visual grating stimulus this might be orientation, spatial frequency and contrast). Null stimuli (eg, uniform gray) can be marked as being an independent feature (eg, 1.0 for gray, 0.0 for actual stimulus) or by storing NaNs for feature values, or through use of the TimeSeries::control fields. A set of features is considered to persist until the next set of features is defined. The final set of features stored should be the null set.

AbstractFeatureSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

AbstractFeatureSeries
Table 2.24 Datasets, Links, and Attributes contained in <AbstractFeatureSeries>
Id Type Description
<AbstractFeatureSeries> group

Top level group for <AbstractFeatureSeries>

.help attribute

Value is ‘Features of an applied stimulus. This is useful when storing the raw stimulus is impractical’

  • Data Type: text
  • Value: Features of an applied stimulus. This is useful when storing the raw stimulus is impractical
  • Name: help
.data dataset

Values of each feature at each time.

  • Data Type: float32
  • Dimensions: [‘num_times’, ‘num_features’]
  • Shape: [None, None]
  • Name: data
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: None
  • Reuqired: False
  • Default Value: see ‘feature_units’
  • Name: unit
.feature_units dataset

Units of each feature.

  • Quantity: 0 or 1
  • Data Type: text
  • Dimensions: [‘num_features’]
  • Shape: [None]
  • Name: feature_units
.features dataset

Description of the features represented in TimeSeries::data.

  • Data Type: text
  • Dimensions: [‘num_features’]
  • Shape: [None]
  • Name: features

2.3.2. AnnotationSeries

Overview: Stores, eg, user annotations made during an experiment. The TimeSeries::data[] field stores a text array, and timestamps are stored for each annotation (ie, interval=1). This is largely an alias to a standard TimeSeries storing a text array but that is identifiable as storing annotations in a machine-readable way.

AnnotationSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

AnnotationSeries
Table 2.25 Datasets, Links, and Attributes contained in <AnnotationSeries>
Id Type Description
<AnnotationSeries> group

Top level group for <AnnotationSeries>

.help attribute

Value is ‘Time-stamped annotations about an experiment’

  • Data Type: text
  • Value: Time-stamped annotations about an experiment
  • Name: help
.data dataset

Annotations made during an experiment.

  • Data Type: text
  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: data
..conversion attribute

Value is ‘float(‘NaN’)’

  • Data Type: None
  • Value: NaN
  • Name: conversion
..resolution attribute

Value is ‘float(‘NaN’)’

  • Data Type: None
  • Value: NaN
  • Name: resolution
..unit attribute

Value is ‘n/a’

  • Data Type: None
  • Value: n/a
  • Name: unit

2.3.3. CurrentClampSeries

Overview: Stores voltage data recorded from intracellular current-clamp recordings. A corresponding CurrentClampStimulusSeries (stored separately as a stimulus) is used to store the current injected.

CurrentClampSeries extends PatchClampSeries (see Section 2.3.13) and includes all elements of PatchClampSeries with the following additions or changes.

CurrentClampSeries
Table 2.26 Datasets, Links, and Attributes contained in <CurrentClampSeries>
Id Type Description
<CurrentClampSeries> group

Top level group for <CurrentClampSeries>

.help attribute

Value is ‘Voltage recorded from cell during current-clamp recording’

  • Data Type: text
  • Value: Voltage recorded from cell during current-clamp recording
  • Name: help
.bias_current dataset

Unit: Amp

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: bias_current
.bridge_balance dataset

Unit: Ohm

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: bridge_balance
.capacitance_compensation dataset

Unit: Farad

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: capacitance_compensation

2.3.4. CurrentClampStimulusSeries

Overview: Aliases to standard PatchClampSeries. Its functionality is to better tag PatchClampSeries for machine (and human) readability of the file.

CurrentClampStimulusSeries extends PatchClampSeries (see Section 2.3.13) and includes all elements of PatchClampSeries with the following additions or changes.

Table 2.27 Datasets, Links, and Attributes contained in <CurrentClampStimulusSeries>
Id Type Description
<CurrentClampStimulusSeries> group

Top level group for <CurrentClampStimulusSeries>

.help attribute

Value is ‘Stimulus current applied during current clamp recording’

  • Data Type: text
  • Value: Stimulus current applied during current clamp recording
  • Name: help

2.3.5. ElectricalSeries

Overview: Stores acquired voltage data from extracellular recordings. The data field of an ElectricalSeries is an int or float array storing data in Volts. TimeSeries::data array structure: [num times] [num channels] (or [num_times] for single electrode).

ElectricalSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

ElectricalSeries
Table 2.28 Datasets, Links, and Attributes contained in <ElectricalSeries>
Id Type Description
<ElectricalSeries> group

Top level group for <ElectricalSeries>

.help attribute

Value is ‘Stores acquired voltage data from extracellular recordings’

  • Data Type: text
  • Value: Stores acquired voltage data from extracellular recordings
  • Name: help
.data dataset

Recorded voltage data.

  • Data Type: number
  • Dimensions: [[‘num_times’], [‘num_times’, ‘num_channels’]]
  • Shape: [[None], [None, None]]
  • Name: data
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: volt
  • Name: unit
.electrodes dataset

the electrodes that this series was generated from

2.3.6. IZeroClampSeries

Overview: Stores recorded voltage data from intracellular recordings when all current and amplifier settings are off (i.e., CurrentClampSeries fields will be zero). There is no CurrentClampStimulusSeries associated with an IZero series because the amplifier is disconnected and no stimulus can reach the cell.

IZeroClampSeries extends CurrentClampSeries (see Section 2.3.3) and includes all elements of CurrentClampSeries with the following additions or changes.

Table 2.29 Datasets, Links, and Attributes contained in <IZeroClampSeries>
Id Type Description
<IZeroClampSeries> group

Top level group for <IZeroClampSeries>

.help attribute

Value is ‘Voltage from intracellular recordings when all current and amplifier settings are off’

  • Data Type: text
  • Value: Voltage from intracellular recordings when all current and amplifier settings are off
  • Name: help

2.3.7. ImageMaskSeries

Overview: An alpha mask that is applied to a presented visual stimulus. The data[] array contains an array of mask values that are applied to the displayed image. Mask values are stored as RGBA. Mask can vary with time. The timestamps array indicates the starting time of a mask, and that mask pattern continues until it’s explicitly changed.

ImageMaskSeries extends ImageSeries (see Section 2.3.8) and includes all elements of ImageSeries with the following additions or changes.

ImageMaskSeries
Table 2.30 Datasets, Links, and Attributes contained in <ImageMaskSeries>
Id Type Description
<ImageMaskSeries> group

Top level group for <ImageMaskSeries>

.help attribute

Value is ‘An alpha mask that is applied to a presented visual stimulus’

  • Data Type: text
  • Value: An alpha mask that is applied to a presented visual stimulus
  • Name: help
.masked_imageseries link

Link to ImageSeries that mask is applied to.

Table 2.31 Groups contained in <ImageMaskSeries>
Id Type Description
<ImageMaskSeries> group

Top level group for <ImageMaskSeries>

.masked_imageseries link

Link to ImageSeries that mask is applied to.

2.3.8. ImageSeries

Overview: General image data that is common between acquisition and stimulus time series. Sometimes the image data is stored in the HDF5 file in a raw format while other times it will be stored as an external image file in the host file system. The data field will either be binary data or empty. TimeSeries::data array structure: [frame] [y][x] or [frame][z][y][x].

ImageSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

ImageSeries
Table 2.32 Datasets, Links, and Attributes contained in <ImageSeries>
Id Type Description
<ImageSeries> group

Top level group for <ImageSeries>

.help attribute

Value is ‘Storage object for time-series 2-D image data’

  • Data Type: text
  • Value: Storage object for time-series 2-D image data
  • Name: help
.bits_per_pixel dataset

Number of bit per image pixel.

  • Quantity: 0 or 1
  • Data Type: int32
  • Name: bits_per_pixel
.data dataset

Either binary data containing image or empty.

  • Data Type: number
  • Dimensions: [[‘x’, ‘y’], [‘frame’, ‘y’, ‘x’], [‘frame’, ‘z’, ‘y’, ‘x’]]
  • Shape: [[None, None], [None, None, None], [None, None, None, None]]
  • Name: data
.dimension dataset

Number of pixels on x, y, (and z) axes.

  • Quantity: 0 or 1
  • Data Type: int32
  • Dimensions: [‘rank’]
  • Shape: [None]
  • Name: dimension
.external_file dataset

Path or URL to one or more external file(s). Field only present if format=external.

Additional Information: this is only relevant if the image is stored in the file system as one or more image file(s). This field should NOT be used if the image is stored in another HDF5 file and that file is HDF5 linked to this file.
  • Quantity: 0 or 1
  • Data Type: text
  • Dimensions: [‘num_files’]
  • Shape: [None]
  • Name: external_file
..starting_frame attribute

Each entry is the frame number (within the full ImageSeries) of the first frame in the corresponding external_file entry. This serves as an index to what frames each file contains, allowing random access.Zero-based indexing is used. (The first element will always be zero).

  • Data Type: int
  • Dimensions: [‘num_files’]
  • Shape: (None,)
  • Name: starting_frame
.format dataset

Format of image. If this is ‘external’ then the field external_file contains the path or URL information to that file. For tiff, png, jpg, etc, the binary representation of the image is stored in data. If the format is raw then the fields bit_per_pixel and dimension are used. For raw images, only a single channel is stored (eg, red).

  • Quantity: 0 or 1
  • Data Type: text
  • Name: format

2.3.9. IndexSeries

Overview: Stores indices to image frames stored in an ImageSeries. The purpose of the ImageIndexSeries is to allow a static image stack to be stored somewhere, and the images in the stack to be referenced out-of-order. This can be for the display of individual images, or of movie segments (as a movie is simply a series of images). The data field stores the index of the frame in the referenced ImageSeries, and the timestamps array indicates when that image was displayed.

IndexSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

IndexSeries
Table 2.33 Datasets, Links, and Attributes contained in <IndexSeries>
Id Type Description
<IndexSeries> group

Top level group for <IndexSeries>

.help attribute

Value is ‘A sequence that is generated from an existing image stack. Frames can be presented in an arbitrary order. The data[] field stores frame number in reference stack’

  • Data Type: text
  • Value: A sequence that is generated from an existing image stack. Frames can be presented in an arbitrary order. The data[] field stores frame number in reference stack
  • Name: help
.data dataset

Index of the frame in the referenced ImageSeries.

  • Data Type: int
  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: data
.indexed_timeseries link

HDF5 link to TimeSeries containing images that are indexed.

Table 2.34 Groups contained in <IndexSeries>
Id Type Description
<IndexSeries> group

Top level group for <IndexSeries>

.indexed_timeseries link

HDF5 link to TimeSeries containing images that are indexed.

2.3.10. IntervalSeries

Overview: Stores intervals of data. The timestamps field stores the beginning and end of intervals. The data field stores whether the interval just started (>0 value) or ended (<0 value). Different interval types can be represented in the same series by using multiple key values (eg, 1 for feature A, 2 for feature B, 3 for feature C, etc). The field data stores an 8-bit integer. This is largely an alias of a standard TimeSeries but that is identifiable as representing time intervals in a machine-readable way.

IntervalSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

IntervalSeries
Table 2.35 Datasets, Links, and Attributes contained in <IntervalSeries>
Id Type Description
<IntervalSeries> group

Top level group for <IntervalSeries>

.help attribute

Value is ‘Stores the start and stop times for events’

  • Data Type: text
  • Value: Stores the start and stop times for events
  • Name: help
.data dataset

>0 if interval started, <0 if interval ended.

  • Data Type: int8
  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: data
..conversion attribute

Value is ‘float(‘NaN’)’

  • Data Type: None
  • Value: NaN
  • Name: conversion
..resolution attribute

Value is ‘float(‘NaN’)’

  • Data Type: None
  • Value: NaN
  • Name: resolution
..unit attribute

Value is ‘n/a’

  • Data Type: None
  • Value: n/a
  • Name: unit

2.3.11. OpticalSeries

Overview: Image data that is presented or recorded. A stimulus template movie will be stored only as an image. When the image is presented as stimulus, additional data is required, such as field of view (eg, how much of the visual field the image covers, or how what is the area of the target being imaged). If the OpticalSeries represents acquired imaging data, orientation is also important.

OpticalSeries extends ImageSeries (see Section 2.3.8) and includes all elements of ImageSeries with the following additions or changes.

OpticalSeries
Table 2.36 Datasets, Links, and Attributes contained in <OpticalSeries>
Id Type Description
<OpticalSeries> group

Top level group for <OpticalSeries>

.help attribute

Value is ‘Time-series image stack for optical recording or stimulus’

  • Data Type: text
  • Value: Time-series image stack for optical recording or stimulus
  • Name: help
.distance dataset

Distance from camera/monitor to target/eye.

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: distance
.field_of_view dataset

Width, height and depto of image, or imaged area (meters).

  • Quantity: 0 or 1
  • Data Type: float32
  • Dimensions: [[‘width|height’, ‘width|height|depth’]]
  • Shape: [2]
  • Name: field_of_view
.orientation dataset

Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: orientation

2.3.12. OptogeneticSeries

Overview: Optogenetic stimulus. The data[] field is in unit of watts.

OptogeneticSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

OptogeneticSeries
Table 2.37 Datasets, Links, and Attributes contained in <OptogeneticSeries>
Id Type Description
<OptogeneticSeries> group

Top level group for <OptogeneticSeries>

.help attribute

Value is ‘Optogenetic stimulus’

  • Data Type: text
  • Value: Optogenetic stimulus
  • Name: help
.data dataset

Applied power for optogenetic stimulus.

  • Data Type: float32
  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: data
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: watt
  • Name: unit
.site link

link to OptogeneticStimulusSite group that describes the site to which this stimulus was applied

Table 2.38 Groups contained in <OptogeneticSeries>
Id Type Description
<OptogeneticSeries> group

Top level group for <OptogeneticSeries>

.site link

link to OptogeneticStimulusSite group that describes the site to which this stimulus was applied

2.3.13. PatchClampSeries

Overview: Stores stimulus or response current or voltage. Superclass definition for patch-clamp data (this class should not be instantiated directly).

PatchClampSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

PatchClampSeries
Table 2.39 Datasets, Links, and Attributes contained in <PatchClampSeries>
Id Type Description
<PatchClampSeries> group

Top level group for <PatchClampSeries>

.help attribute

Value is ‘Superclass definition for patch-clamp data’

  • Data Type: text
  • Value: Superclass definition for patch-clamp data
  • Name: help
.data dataset

Recorded voltage or current.

  • Data Type: number
  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: data
.gain dataset

Units: Volt/Amp (v-clamp) or Volt/Volt (c-clamp)

  • Quantity: 0 or 1
  • Data Type: float
  • Name: gain
.electrode link

link to IntracellularElectrode group that describes th electrode that was used to apply or record this data

Table 2.40 Groups contained in <PatchClampSeries>
Id Type Description
<PatchClampSeries> group

Top level group for <PatchClampSeries>

.electrode link

link to IntracellularElectrode group that describes th electrode that was used to apply or record this data

2.3.14. RoiResponseSeries

Overview: ROI responses over an imaging plane. Each row in data[] should correspond to the signal from one ROI.

RoiResponseSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

RoiResponseSeries
Table 2.41 Datasets, Links, and Attributes contained in <RoiResponseSeries>
Id Type Description
<RoiResponseSeries> group

Top level group for <RoiResponseSeries>

.help attribute

Value is ‘ROI responses over an imaging plane. Each element on the second dimension of data[] should correspond to the signal from one ROI’

  • Data Type: text
  • Value: ROI responses over an imaging plane. Each element on the second dimension of data[] should correspond to the signal from one ROI
  • Name: help
.data dataset

Signals from ROIs

  • Data Type: float32
  • Dimensions: [‘num_times’, ‘num_ROIs’]
  • Shape: [None, None]
  • Name: data
.rois dataset

a dataset referencing into an ROITable containing information on the ROIs stored in this timeseries

2.3.15. SpatialSeries

Overview: Direction, e.g., of gaze or travel, or position. The TimeSeries::data field is a 2D array storing position or direction relative to some reference frame. Array structure: [num measurements] [num dimensions]. Each SpatialSeries has a text dataset reference_frame that indicates the zero-position, or the zero-axes for direction. For example, if representing gaze direction, “straight-ahead” might be a specific pixel on the monitor, or some other point in space. For position data, the 0,0 point might be the top-left corner of an enclosure, as viewed from the tracking camera. The unit of data will indicate how to interpret SpatialSeries values.

SpatialSeries extends TimeSeries (see Section 2.3.17) and includes all elements of TimeSeries with the following additions or changes.

SpatialSeries
Table 2.42 Datasets, Links, and Attributes contained in <SpatialSeries>
Id Type Description
<SpatialSeries> group

Top level group for <SpatialSeries>

.help attribute

Value is ‘Stores points in space over time. The data[] array structure is [num samples][num spatial dimensions]’

  • Data Type: text
  • Value: Stores points in space over time. The data[] array structure is [num samples][num spatial dimensions]
  • Name: help
.data dataset

2-D array storing position or direction relative to some reference frame.

  • Data Type: number
  • Dimensions: [‘num_times’, ‘num_features’]
  • Shape: [None, None]
  • Name: data
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: meter
  • Name: unit
.reference_frame dataset

Description defining what exactly ‘straight-ahead’ means.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: reference_frame

2.3.16. SpikeEventSeries

Overview: Stores “snapshots” of spike events (i.e., threshold crossings) in data. This may also be raw data, as reported by ephys hardware. If so, the TimeSeries::description field should describing how events were detected. All SpikeEventSeries should reside in a module (under EventWaveform interface) even if the spikes were reported and stored by hardware. All events span the same recording channels and store snapshots of equal duration. TimeSeries::data array structure: [num events] [num channels] [num samples] (or [num events] [num samples] for single electrode).

SpikeEventSeries extends ElectricalSeries (see Section 2.3.5) and includes all elements of ElectricalSeries with the following additions or changes.

SpikeEventSeries
Table 2.43 Datasets, Links, and Attributes contained in <SpikeEventSeries>
Id Type Description
<SpikeEventSeries> group

Top level group for <SpikeEventSeries>

.help attribute

Value is ‘Snapshots of spike events from data.’

  • Data Type: text
  • Value: Snapshots of spike events from data.
  • Name: help
.data dataset

Spike waveforms.

  • Data Type: float32
  • Dimensions: [[‘num_events’, ‘num_samples’], [‘num_events’, ‘num_channels’, ‘num_samples’]]
  • Shape: [[None, None], [None, None, None]]
  • Name: data
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: volt
  • Name: unit

2.3.17. TimeSeries

Overview: General purpose time series.

TimeSeries extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

TimeSeries
Table 2.44 Datasets, Links, and Attributes contained in <TimeSeries>
Id Type Description
<TimeSeries> group

Top level group for <TimeSeries>

.comments attribute

Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.

  • Data Type: text
  • Reuqired: False
  • Default Value: no comments
  • Name: comments
.description attribute

Description of TimeSeries

  • Data Type: text
  • Reuqired: False
  • Default Value: no description
  • Name: description
.help attribute

Value is ‘General time series object’

  • Data Type: text
  • Value: General time series object
  • Name: help
.source attribute

Name of TimeSeries or Modules that serve as the source for the data contained here. It can also be the name of a device, for stimulus or acquisition data

  • Data Type: text
  • Name: source
.control dataset

Numerical labels that apply to each element in data[].

Comment: Optional field. If present, the control array should have the same number of elements as data[].

  • Quantity: 0 or 1
  • Data Type: uint8
  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: control
.control_description dataset

Description of each control value.

Comment: Array length should be as long as the highest number in control minus one, generating an zero-based indexed array for control values.

  • Quantity: 0 or 1
  • Data Type: text
  • Dimensions: [‘num_control_values’]
  • Shape: [None]
  • Name: control_description
.data dataset

Data values. Can also store binary data (eg, image frames)

Comment: This field may be a link to data stored in an external file, especially in the case of raw data.

  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: data
..conversion attribute

Scalar to multiply each element in data to convert it to the specified unit

  • Data Type: float32
  • Reuqired: False
  • Default Value: 1.0
  • Name: conversion
..resolution attribute

Smallest meaningful difference between values in data, stored in the specified by unit.

Comment: E.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use NaN

  • Data Type: float32
  • Reuqired: False
  • Default Value: 0.0
  • Name: resolution
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Name: unit
.starting_time dataset

The timestamp of the first sample.

Comment: When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate.

  • Quantity: 0 or 1
  • Data Type: float64
  • Name: starting_time
..rate attribute

Sampling rate, in Hz

Comment: Rate information is stored in Hz

  • Data Type: float32
  • Name: rate
..unit attribute

Value is ‘Seconds’

  • Data Type: text
  • Value: Seconds
  • Name: unit
.timestamps dataset

Timestamps for samples stored in data.

Comment: Timestamps here have all been corrected to the common experiment master-clock. Time is stored as seconds and all timestamps are relative to experiment start time.

  • Quantity: 0 or 1
  • Data Type: float64
  • Dimensions: [‘num_times’]
  • Shape: [None]
  • Name: timestamps
..interval attribute

Value is ‘1’

  • Data Type: int32
  • Value: 1
  • Name: interval
..unit attribute

Value is ‘Seconds’

  • Data Type: text
  • Value: Seconds
  • Name: unit
Table 2.45 Groups contained in <TimeSeries>
Id Type Description
<TimeSeries> group

Top level group for <TimeSeries>

.sync group

Lab specific time and sync information as provided directly from hardware devices and that is necessary for aligning all acquired time information to a common timebase. The timestamp array stores time in the common timebase.

Comment: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of ‘sync’ are mostly for archival purposes.

  • Quantity: 0 or 1
  • Name: sync

2.3.17.1. Groups: sync

Lab specific time and sync information as provided directly from hardware devices and that is necessary for aligning all acquired time information to a common timebase. The timestamp array stores time in the common timebase.

Comment: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of ‘sync’ are mostly for archival purposes.

  • Quantity: 0 or 1
  • Name: sync

2.3.18. TwoPhotonSeries

Overview: A special case of optical imaging.

TwoPhotonSeries extends ImageSeries (see Section 2.3.8) and includes all elements of ImageSeries with the following additions or changes.

TwoPhotonSeries
Table 2.46 Datasets, Links, and Attributes contained in <TwoPhotonSeries>
Id Type Description
<TwoPhotonSeries> group

Top level group for <TwoPhotonSeries>

.help attribute

Value is ‘Image stack recorded from 2-photon microscope’

  • Data Type: text
  • Value: Image stack recorded from 2-photon microscope
  • Name: help
.pmt_gain attribute

Photomultiplier gain

  • Data Type: float32
  • Name: pmt_gain
.scan_line_rate attribute

Lines imaged per second. This is also stored in /general/optophysiology but is kept here as it is useful information for analysis, and so good to be stored w/ the actual data.

  • Data Type: float32
  • Name: scan_line_rate
.field_of_view dataset

Width, height and depth of image, or imaged area (meters).

  • Quantity: 0 or 1
  • Data Type: float32
  • Dimensions: [‘width|height|depth’]
  • Shape: [3]
  • Name: field_of_view
.imaging_plane link

link to ImagingPlane group from which this TimeSeries data was generated

Table 2.47 Groups contained in <TwoPhotonSeries>
Id Type Description
<TwoPhotonSeries> group

Top level group for <TwoPhotonSeries>

.imaging_plane link

link to ImagingPlane group from which this TimeSeries data was generated

2.3.19. VoltageClampSeries

Overview: Stores current data recorded from intracellular voltage-clamp recordings. A corresponding VoltageClampStimulusSeries (stored separately as a stimulus) is used to store the voltage injected.

VoltageClampSeries extends PatchClampSeries (see Section 2.3.13) and includes all elements of PatchClampSeries with the following additions or changes.

VoltageClampSeries
Table 2.48 Datasets, Links, and Attributes contained in <VoltageClampSeries>
Id Type Description
<VoltageClampSeries> group

Top level group for <VoltageClampSeries>

.help attribute

Value is ‘Current recorded from cell during voltage-clamp recording’

  • Data Type: text
  • Value: Current recorded from cell during voltage-clamp recording
  • Name: help
.capacitance_fast dataset

Unit: Farad

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: capacitance_fast
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: Farad
  • Name: unit
.capacitance_slow dataset

Unit: Farad

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: capacitance_slow
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: Farad
  • Name: unit
.resistance_comp_bandwidth dataset

Unit: Hz

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: resistance_comp_bandwidth
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: Hz
  • Name: unit
.resistance_comp_correction dataset

Unit: %

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: resistance_comp_correction
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: pecent
  • Name: unit
.resistance_comp_prediction dataset

Unit: %

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: resistance_comp_prediction
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: pecent
  • Name: unit
.whole_cell_capacitance_comp dataset

Unit: Farad

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: whole_cell_capacitance_comp
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: Farad
  • Name: unit
.whole_cell_series_resistance_comp dataset

Unit: Ohm

  • Quantity: 0 or 1
  • Data Type: float32
  • Name: whole_cell_series_resistance_comp
..unit attribute

The base unit of measure used to store data. This should be in the SI unit.

Comment: This is the SI unit (when appropriate) of the stored data, such as Volts. If the actual data is stored in millivolts, the field ‘conversion’ below describes how to convert the data to the specified SI unit.

  • Data Type: text
  • Reuqired: False
  • Default Value: Ohm
  • Name: unit

2.3.20. VoltageClampStimulusSeries

Overview: Aliases to standard PatchClampSeries. Its functionality is to better tag PatchClampSeries for machine (and human) readability of the file.

VoltageClampStimulusSeries extends PatchClampSeries (see Section 2.3.13) and includes all elements of PatchClampSeries with the following additions or changes.

Table 2.49 Datasets, Links, and Attributes contained in <VoltageClampStimulusSeries>
Id Type Description
<VoltageClampStimulusSeries> group

Top level group for <VoltageClampStimulusSeries>

.help attribute

Value is ‘Stimulus voltage applied during voltage clamp recording’

  • Data Type: text
  • Value: Stimulus voltage applied during voltage clamp recording
  • Name: help

2.4. Data Processing

2.4.1. BehavioralEpochs

Overview: TimeSeries for storing behavoioral epochs. The objective of this and the other two Behavioral interfaces (e.g. BehavioralEvents and BehavioralTimeSeries) is to provide generic hooks for software tools/scripts. This allows a tool/script to take the output one specific interface (e.g., UnitTimes) and plot that data relative to another data modality (e.g., behavioral events) without having to define all possible modalities in advance. Declaring one of these interfaces means that one or more TimeSeries of the specified type is published. These TimeSeries should reside in a group having the same name as the interface. For example, if a BehavioralTimeSeries interface is declared, the module will have one or more TimeSeries defined in the module sub-group “BehavioralTimeSeries”. BehavioralEpochs should use IntervalSeries. BehavioralEvents is used for irregular events. BehavioralTimeSeries is for continuous data.

BehavioralEpochs extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

BehavioralEpochs
Table 2.50 Datasets, Links, and Attributes contained in <BehavioralEpochs>
Id Type Description
<BehavioralEpochs> group

Top level group for <BehavioralEpochs>

.help attribute

Value is ‘General container for storing behavorial epochs’

  • Data Type: text
  • Value: General container for storing behavorial epochs
  • Name: help
Table 2.51 Groups contained in <BehavioralEpochs>
Id Type Description
<BehavioralEpochs> group

Top level group for <BehavioralEpochs>

.<IntervalSeries> group

IntervalSeries object containing start and stop times of epochs

2.4.1.1. Groups: <IntervalSeries>

IntervalSeries object containing start and stop times of epochs

2.4.2. BehavioralEvents

Overview: TimeSeries for storing behavioral events. See description of <a href=”#BehavioralEpochs”>BehavioralEpochs</a> for more details.

BehavioralEvents extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

BehavioralEvents
Table 2.52 Datasets, Links, and Attributes contained in <BehavioralEvents>
Id Type Description
<BehavioralEvents> group

Top level group for <BehavioralEvents>

.help attribute

Value is ‘Position data, whether along the x, xy or xyz axis’

  • Data Type: text
  • Value: Position data, whether along the x, xy or xyz axis
  • Name: help
Table 2.53 Groups contained in <BehavioralEvents>
Id Type Description
<BehavioralEvents> group

Top level group for <BehavioralEvents>

.<TimeSeries> group

TimeSeries object containing irregular behavioral events

2.4.2.1. Groups: <TimeSeries>

TimeSeries object containing irregular behavioral events

2.4.3. BehavioralTimeSeries

Overview: TimeSeries for storing Behavoioral time series data.See description of <a href=”#BehavioralEpochs”>BehavioralEpochs</a> for more details.

BehavioralTimeSeries extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

BehavioralTimeSeries
Table 2.54 Datasets, Links, and Attributes contained in <BehavioralTimeSeries>
Id Type Description
<BehavioralTimeSeries> group

Top level group for <BehavioralTimeSeries>

.help attribute

Value is ‘General container for storing continuously sampled behavioral data.’

  • Data Type: text
  • Value: General container for storing continuously sampled behavioral data.
  • Name: help
Table 2.55 Groups contained in <BehavioralTimeSeries>
Id Type Description
<BehavioralTimeSeries> group

Top level group for <BehavioralTimeSeries>

.<TimeSeries> group

TimeSeries object containing continuous behavioral data

2.4.3.1. Groups: <TimeSeries>

TimeSeries object containing continuous behavioral data

2.4.4. ClusterWaveforms

Overview: The mean waveform shape, including standard deviation, of the different clusters. Ideally, the waveform analysis should be performed on data that is only high-pass filtered. This is a separate module because it is expected to require updating. For example, IMEC probes may require different storage requirements to store/display mean waveforms, requiring a new interface or an extension of this one.

ClusterWaveforms extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

ClusterWaveforms
Table 2.56 Datasets, Links, and Attributes contained in <ClusterWaveforms>
Id Type Description
<ClusterWaveforms> group

Top level group for <ClusterWaveforms>

.help attribute

Value is ‘Mean waveform shape of clusters. Waveforms should be high-pass filtered (ie, not the same bandpass filter used waveform analysis and clustering)’

  • Data Type: text
  • Value: Mean waveform shape of clusters. Waveforms should be high-pass filtered (ie, not the same bandpass filter used waveform analysis and clustering)
  • Name: help
.waveform_filtering dataset

Filtering applied to data before generating mean/sd

  • Data Type: text
  • Name: waveform_filtering
.waveform_mean dataset

The mean waveform for each cluster, using the same indices for each wave as cluster numbers in the associated Clustering module (i.e, cluster 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled)

  • Data Type: float32
  • Dimensions: [‘num_clusters’, ‘num_samples’]
  • Shape: [None, None]
  • Name: waveform_mean
.waveform_sd dataset

Stdev of waveforms for each cluster, using the same indices as in mean

  • Data Type: float32
  • Dimensions: [‘num_clusters’, ‘num_samples’]
  • Shape: [None, None]
  • Name: waveform_sd
.clustering_interface link

HDF5 link to Clustering interface that was the source of the clustered data

  • Target Type Clustering
  • Name: clustering_interface
Table 2.57 Groups contained in <ClusterWaveforms>
Id Type Description
<ClusterWaveforms> group

Top level group for <ClusterWaveforms>

.clustering_interface link

HDF5 link to Clustering interface that was the source of the clustered data

  • Target Type Clustering
  • Name: clustering_interface

2.4.5. Clustering

Overview: Clustered spike data, whether from automatic clustering tools (e.g., klustakwik) or as a result of manual sorting.

Clustering extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

Clustering
Table 2.58 Datasets, Links, and Attributes contained in <Clustering>
Id Type Description
<Clustering> group

Top level group for <Clustering>

.help attribute

Value is ‘Clustered spike data, whether from automatic clustering tools (eg, klustakwik) or as a result of manual sorting’

  • Data Type: text
  • Value: Clustered spike data, whether from automatic clustering tools (eg, klustakwik) or as a result of manual sorting
  • Name: help
.description dataset

Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc)

  • Data Type: text
  • Name: description
.num dataset

Cluster number of each event

  • Data Type: int32
  • Dimensions: [‘num_events’]
  • Shape: [None]
  • Name: num
.peak_over_rms dataset

Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric).

  • Data Type: float32
  • Dimensions: [‘num_clusters’]
  • Shape: [None]
  • Name: peak_over_rms
.times dataset

Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module.

  • Data Type: float64
  • Dimensions: [‘num_events’]
  • Shape: [None]
  • Name: times

2.4.6. CompassDirection

Overview: With a CompassDirection interface, a module publishes a SpatialSeries object representing a floating point value for theta. The SpatialSeries::reference_frame field should indicate what direction corresponds to 0 and which is the direction of rotation (this should be clockwise). The si_unit for the SpatialSeries should be radians or degrees.

CompassDirection extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

CompassDirection
Table 2.59 Datasets, Links, and Attributes contained in <CompassDirection>
Id Type Description
<CompassDirection> group

Top level group for <CompassDirection>

.help attribute

Value is ‘Direction as measured radially. Spatial series reference frame should indicate which direction corresponds to zero and what is the direction of positive rotation’

  • Data Type: text
  • Value: Direction as measured radially. Spatial series reference frame should indicate which direction corresponds to zero and what is the direction of positive rotation
  • Name: help
Table 2.60 Groups contained in <CompassDirection>
Id Type Description
<CompassDirection> group

Top level group for <CompassDirection>

.<SpatialSeries> group

SpatialSeries object containing direction of gaze travel

2.4.6.1. Groups: <SpatialSeries>

SpatialSeries object containing direction of gaze travel

2.4.7. CorrectedImageStack

Overview: One of possibly many. Name should be informative.

CorrectedImageStack extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

CorrectedImageStack
Table 2.61 Datasets, Links, and Attributes contained in <CorrectedImageStack>
Id Type Description
<CorrectedImageStack> group

Top level group for <CorrectedImageStack>

.help attribute

Value is ‘Reuslts from motion correction of an image stack’

  • Data Type: text
  • Value: Reuslts from motion correction of an image stack
  • Name: help
.original link

HDF5 Link to image series that is being registered.

Table 2.62 Groups contained in <CorrectedImageStack>
Id Type Description
<CorrectedImageStack> group

Top level group for <CorrectedImageStack>

.original link

HDF5 Link to image series that is being registered.

.corrected group

Image stack with frames shifted to the common coordinates.

.xy_translation group

Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image.

2.4.7.1. Groups: corrected

Image stack with frames shifted to the common coordinates.

2.4.7.2. Groups: xy_translation

Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image.

2.4.8. DfOverF

Overview: dF/F information about a region of interest (ROI). Storage hierarchy of dF/F should be the same as for segmentation (ie, same names for ROIs and for image planes).

DfOverF extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

DfOverF
Table 2.63 Datasets, Links, and Attributes contained in <DfOverF>
Id Type Description
<DfOverF> group

Top level group for <DfOverF>

.help attribute

Value is ‘Df/f over time of one or more ROIs. TimeSeries names should correspond to imaging plane names’

  • Data Type: text
  • Value: Df/f over time of one or more ROIs. TimeSeries names should correspond to imaging plane names
  • Name: help
Table 2.64 Groups contained in <DfOverF>
Id Type Description
<DfOverF> group

Top level group for <DfOverF>

.<RoiResponseSeries> group

RoiResponseSeries object containing dF/F for a ROI

2.4.8.1. Groups: <RoiResponseSeries>

RoiResponseSeries object containing dF/F for a ROI

2.4.9. Epochs

Overview: A container for aggregating epoch data and the TimeSeries that each epoch applies to

Epochs extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

Epochs
Table 2.65 Datasets, Links, and Attributes contained in <Epochs>
Id Type Description
<Epochs> group

Top level group for <Epochs>

.help attribute

Value is ‘A general epoch object’

  • Data Type: text
  • Value: A general epoch object
  • Name: help
.epochs dataset

the EpochTable holding information about each Epoch

.timeseries_index dataset

the TimeSeriesIndex table holding indices into each TimeSeries for each Epoch

2.4.10. EventDetection

Overview: Detected spike events from voltage trace(s).

EventDetection extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

EventDetection
Table 2.66 Datasets, Links, and Attributes contained in <EventDetection>
Id Type Description
<EventDetection> group

Top level group for <EventDetection>

.help attribute

Value is ‘Detected spike events from voltage trace(s)’

  • Data Type: text
  • Value: Detected spike events from voltage trace(s)
  • Name: help
.detection_method dataset

Description of how events were detected, such as voltage threshold, or dV/dT threshold, as well as relevant values.

  • Data Type: text
  • Name: detection_method
.source_idx dataset

Indices (zero-based) into source ElectricalSeries::data array corresponding to time of event. Module description should define what is meant by time of event (e.g., .25msec before action potential peak, zero-crossing time, etc). The index points to each event from the raw data

  • Data Type: int32
  • Dimensions: [‘num_events’]
  • Shape: [None]
  • Name: source_idx
.times dataset

Timestamps of events, in Seconds

  • Data Type: float64
  • Dimensions: [‘num_events’]
  • Shape: [None]
  • Name: times
..unit attribute

The string “Seconds”

  • Data Type: text
  • Reuqired: False
  • Default Value: Seconds
  • Name: unit
.source_electricalseries link

HDF5 link to ElectricalSeries that this data was calculated from. Metadata about electrodes and their position can be read from that ElectricalSeries so it’s not necessary to mandate that information be stored here

Table 2.67 Groups contained in <EventDetection>
Id Type Description
<EventDetection> group

Top level group for <EventDetection>

.source_electricalseries link

HDF5 link to ElectricalSeries that this data was calculated from. Metadata about electrodes and their position can be read from that ElectricalSeries so it’s not necessary to mandate that information be stored here

2.4.11. EventWaveform

Overview: Represents either the waveforms of detected events, as extracted from a raw data trace in /acquisition, or the event waveforms that were stored during experiment acquisition.

EventWaveform extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

EventWaveform
Table 2.68 Datasets, Links, and Attributes contained in <EventWaveform>
Id Type Description
<EventWaveform> group

Top level group for <EventWaveform>

.help attribute

Value is ‘Waveform of detected extracellularly recorded spike events’

  • Data Type: text
  • Value: Waveform of detected extracellularly recorded spike events
  • Name: help
Table 2.69 Groups contained in <EventWaveform>
Id Type Description
<EventWaveform> group

Top level group for <EventWaveform>

.<SpikeEventSeries> group

SpikeEventSeries object containing detected spike event waveforms

2.4.11.1. Groups: <SpikeEventSeries>

SpikeEventSeries object containing detected spike event waveforms

2.4.12. EyeTracking

Overview: Eye-tracking data, representing direction of gaze.

EyeTracking extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

EyeTracking
Table 2.70 Datasets, Links, and Attributes contained in <EyeTracking>
Id Type Description
<EyeTracking> group

Top level group for <EyeTracking>

.help attribute

Value is ‘Eye-tracking data, representing direction of gaze’

  • Data Type: text
  • Value: Eye-tracking data, representing direction of gaze
  • Name: help
Table 2.71 Groups contained in <EyeTracking>
Id Type Description
<EyeTracking> group

Top level group for <EyeTracking>

.<SpatialSeries> group

SpatialSeries object containing data measuring direction of gaze

2.4.12.1. Groups: <SpatialSeries>

SpatialSeries object containing data measuring direction of gaze

2.4.13. FeatureExtraction

Overview: Features, such as PC1 and PC2, that are extracted from signals stored in a SpikeEvent TimeSeries or other source.

FeatureExtraction extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

FeatureExtraction
Table 2.72 Datasets, Links, and Attributes contained in <FeatureExtraction>
Id Type Description
<FeatureExtraction> group

Top level group for <FeatureExtraction>

.help attribute

Value is ‘Container for salient features of detected events’

  • Data Type: text
  • Value: Container for salient features of detected events
  • Name: help
.description dataset

Description of features (eg, “PC1”) for each of the extracted features.

  • Data Type: text
  • Dimensions: [‘num_features’]
  • Shape: [None]
  • Name: description
.features dataset

Multi-dimensional array of features extracted from each event.

  • Data Type: float32
  • Dimensions: [‘num_events’, ‘num_channels’, ‘num_features’]
  • Shape: [None, None, None]
  • Name: features
.times dataset

Times of events that features correspond to (can be a link).

  • Data Type: float64
  • Dimensions: [‘num_events’]
  • Shape: [None]
  • Name: times
.electrodes dataset

the electrodes that this series was generated from

2.4.14. FilteredEphys

Overview: Ephys data from one or more channels that has been subjected to filtering. Examples of filtered data include Theta and Gamma (LFP has its own interface). FilteredEphys modules publish an ElectricalSeries for each filtered channel or set of channels. The name of each ElectricalSeries is arbitrary but should be informative. The source of the filtered data, whether this is from analysis of another time series or as acquired by hardware, should be noted in each’s TimeSeries::description field. There is no assumed 1::1 correspondence between filtered ephys signals and electrodes, as a single signal can apply to many nearby electrodes, and one electrode may have different filtered (e.g., theta and/or gamma) signals represented.

FilteredEphys extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

FilteredEphys
Table 2.73 Datasets, Links, and Attributes contained in <FilteredEphys>
Id Type Description
<FilteredEphys> group

Top level group for <FilteredEphys>

.help attribute

Value is ‘Ephys data from one or more channels that is subjected to filtering, such as for gamma or theta oscillations (LFP has its own interface). Filter properties should be noted in the ElectricalSeries’

  • Data Type: text
  • Value: Ephys data from one or more channels that is subjected to filtering, such as for gamma or theta oscillations (LFP has its own interface). Filter properties should be noted in the ElectricalSeries
  • Name: help
Table 2.74 Groups contained in <FilteredEphys>
Id Type Description
<FilteredEphys> group

Top level group for <FilteredEphys>

.<ElectricalSeries> group

ElectricalSeries object containing filtered electrophysiology data

2.4.14.1. Groups: <ElectricalSeries>

ElectricalSeries object containing filtered electrophysiology data

2.4.15. Fluorescence

Overview: Fluorescence information about a region of interest (ROI). Storage hierarchy of fluorescence should be the same as for segmentation (ie, same names for ROIs and for image planes).

Fluorescence extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

Fluorescence
Table 2.75 Datasets, Links, and Attributes contained in <Fluorescence>
Id Type Description
<Fluorescence> group

Top level group for <Fluorescence>

.help attribute

Value is ‘Fluorescence over time of one or more ROIs. TimeSeries names should correspond to imaging plane names’

  • Data Type: text
  • Value: Fluorescence over time of one or more ROIs. TimeSeries names should correspond to imaging plane names
  • Name: help
Table 2.76 Groups contained in <Fluorescence>
Id Type Description
<Fluorescence> group

Top level group for <Fluorescence>

.<RoiResponseSeries> group

RoiResponseSeries object containing fluorescence data for a ROI

2.4.15.1. Groups: <RoiResponseSeries>

RoiResponseSeries object containing fluorescence data for a ROI

2.4.16. ImageSegmentation

Overview: Stores pixels in an image that represent different regions of interest (ROIs) or masks. All segmentation for a given imaging plane is stored together, with storage for multiple imaging planes (masks) supported. Each ROI is stored in its own subgroup, with the ROI group containing both a 2D mask and a list of pixels that make up this mask. Segments can also be used for masking neuropil. If segmentation is allowed to change with time, a new imaging plane (or module) is required and ROI names should remain consistent between them.

ImageSegmentation extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

ImageSegmentation
Table 2.77 Datasets, Links, and Attributes contained in <ImageSegmentation>
Id Type Description
<ImageSegmentation> group

Top level group for <ImageSegmentation>

.help attribute

Value is ‘Stores groups of pixels that define regions of interest from one or more imaging planes’

  • Data Type: text
  • Value: Stores groups of pixels that define regions of interest from one or more imaging planes
  • Name: help
Table 2.78 Groups contained in <ImageSegmentation>
Id Type Description
<ImageSegmentation> group

Top level group for <ImageSegmentation>

.<PlaneSegmentation> group

Group name is human-readable description of imaging plane

..imaging_plane link

link to ImagingPlane group from which this TimeSeries data was generated

2.4.16.1. Groups: <PlaneSegmentation>

Group name is human-readable description of imaging plane

Table 2.79 Datasets, Links, and Attributes contained in <PlaneSegmentation>
Id Type Description
<PlaneSegmentation> group

Top level group for <PlaneSegmentation>

.help attribute

Value is ‘Results from segmentation of an imaging plane’

  • Data Type: text
  • Value: Results from segmentation of an imaging plane
  • Name: help
.description dataset

Description of image plane, recording wavelength, depth, etc

  • Quantity: 0 or 1
  • Data Type: text
  • Name: description
.pixel_masks dataset

Pixel masks for each ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the ROITable

.image_masks dataset

ROI masks for each ROI

.rois dataset

ROIs resulting from the segmentation of the imaging plane linked in this PlaneSegmentation

.imaging_plane link

link to ImagingPlane group from which this TimeSeries data was generated

Table 2.80 Groups contained in <<PlaneSegmentation>>
Id Type Description
<PlaneSegmentation> group

Top level group for <PlaneSegmentation>

.imaging_plane link

link to ImagingPlane group from which this TimeSeries data was generated

.reference_images group

Stores image stacks segmentation mask apply to.

  • Name: reference_images

2.4.16.2. Groups: <PlaneSegmentation>/reference_images

Stores image stacks segmentation mask apply to.

  • Name: reference_images
Table 2.81 Groups contained in <reference_images>
Id Type Description
reference_images group

Top level group for reference_images

  • Name: reference_images
.<ImageSeries> group

One or more image stacks that the masks apply to (can be one-element stack)

2.4.16.3. Groups: <PlaneSegmentation>/reference_images/<ImageSeries>

One or more image stacks that the masks apply to (can be one-element stack)

2.4.17. Images

Overview: A NWBDataInterface for storing images that have some relationship

Images extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

Images
Table 2.82 Datasets, Links, and Attributes contained in <Images>
Id Type Description
<Images> group

Top level group for <Images>

.description attribute

Description of images in this container

  • Data Type: text
  • Name: description
.help attribute

Value is ‘A collection of images that have some meaningful relationship’

  • Data Type: text
  • Value: A collection of images that have some meaningful relationship
  • Name: help
.<Image> dataset

Images stored in this NWBDataInterface

  • Extends: Image
  • Quantity: 1 or more

2.4.18. ImagingPlane

Overview: One of possibly many groups describing an imaging plane.

Comment: Name is arbitrary but should be meaningful. It is referenced by TwoPhotonSeries and also ImageSegmentation and DfOverF interfaces

ImagingPlane extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

ImagingPlane
Table 2.83 Datasets, Links, and Attributes contained in <ImagingPlane>
Id Type Description
<ImagingPlane> group

Top level group for <ImagingPlane>

.help attribute

Value is ‘Metadata about an imaging plane’

  • Data Type: text
  • Value: Metadata about an imaging plane
  • Name: help
.description dataset

Description of <image_plane_X>

  • Quantity: 0 or 1
  • Data Type: text
  • Name: description
.device dataset

Name of device in /general/devices

  • Data Type: text
  • Name: device
.excitation_lambda dataset

Excitation wavelength

  • Data Type: float
  • Name: excitation_lambda
.imaging_rate dataset

Rate images are acquired, in Hz.

  • Data Type: text
  • Name: imaging_rate
.indicator dataset

Calcium indicator

  • Data Type: text
  • Name: indicator
.location dataset

Location of image plane

  • Data Type: text
  • Name: location
.manifold dataset

Physical position of each pixel.

Comment: “xyz” represents the position of the pixel relative to the defined coordinate space

  • Data Type: float32
  • Dimensions: [‘height’, ‘weight’, ‘x|y|z’]
  • Shape: [None, None, 3]
  • Name: manifold
..conversion attribute

Multiplier to get from stored values to specified unit (e.g., 1e-3 for millimeters)

  • Data Type: float
  • Reuqired: False
  • Default Value: 1.0
  • Name: conversion
..unit attribute

Base unit that coordinates are stored in (e.g., Meters)

  • Data Type: text
  • Reuqired: False
  • Default Value: Meter
  • Name: unit
.reference_frame dataset

Describes position and reference frame of manifold based on position of first element in manifold. For example, text description of anotomical location or vectors needed to rotate to common anotomical axis (eg, AP/DV/ML).

Comment: This field is necessary to interpret manifold. If manifold is not present then this field is not required

  • Data Type: text
  • Name: reference_frame
Table 2.84 Groups contained in <ImagingPlane>
Id Type Description
<ImagingPlane> group

Top level group for <ImagingPlane>

.<OpticalChannel> group

One of possibly many groups storing channel-specific data

Comment: Name is arbitrary but should be meaningful

2.4.18.1. Groups: <OpticalChannel>

One of possibly many groups storing channel-specific data

Comment: Name is arbitrary but should be meaningful

Table 2.85 Datasets, Links, and Attributes contained in <OpticalChannel>
Id Type Description
<OpticalChannel> group

Top level group for <OpticalChannel>

.help attribute

Value is ‘Metadata about an optical channel used to record from an imaging plane’

  • Data Type: text
  • Value: Metadata about an optical channel used to record from an imaging plane
  • Name: help
.description dataset

Any notes or comments about the channel

  • Data Type: text
  • Name: description
.emission_lambda dataset

Emission lambda for channel

  • Data Type: float
  • Name: emission_lambda

2.4.19. ImagingRetinotopy

Overview: Intrinsic signal optical imaging or widefield imaging for measuring retinotopy. Stores orthogonal maps (e.g., altitude/azimuth; radius/theta) of responses to specific stimuli and a combined polarity map from which to identify visual areas.<br />Note: for data consistency, all images and arrays are stored in the format [row][column] and [row, col], which equates to [y][x]. Field of view and dimension arrays may appear backward (i.e., y before x).

ImagingRetinotopy extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

ImagingRetinotopy
Table 2.86 Datasets, Links, and Attributes contained in <ImagingRetinotopy>
Id Type Description
<ImagingRetinotopy> group

Top level group for <ImagingRetinotopy>

.help attribute

Value is ‘Intrinsic signal optical imaging or Widefield imaging for measuring retinotopy’

  • Data Type: text
  • Value: Intrinsic signal optical imaging or Widefield imaging for measuring retinotopy
  • Name: help
.axis_1_phase_map dataset

Phase response to stimulus on the first measured axis

  • Data Type: float32
  • Dimensions: [‘num_rows’, ‘num_cols’]
  • Shape: [None, None]
  • Name: axis_1_phase_map
..dimension attribute

Number of rows and columns in the image.

Additional Information: row, column representation is equivalent to height,width.
  • Data Type: int32
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: dimension
..field_of_view attribute

Size of viewing area, in meters

  • Data Type: float
  • Dimensions: [‘row|column’]
  • Shape: (None,)
  • Name: field_of_view
..unit attribute

Unit that axis data is stored in (e.g., degrees)

  • Data Type: text
  • Name: unit
.axis_1_power_map dataset

Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power.

  • Quantity: 0 or 1
  • Data Type: float32
  • Dimensions: [‘num_rows’, ‘num_cols’]
  • Shape: [None, None]
  • Name: axis_1_power_map
..dimension attribute

Number of rows and columns in the image.

Additional Information: row, column representation is equivalent to height,width.
  • Data Type: int32
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: dimension
..field_of_view attribute

Size of viewing area, in meters

  • Data Type: float
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: field_of_view
..unit attribute

Unit that axis data is stored in (e.g., degrees)

  • Data Type: text
  • Name: unit
.axis_2_phase_map dataset

Phase response to stimulus on the second measured axis

  • Data Type: float32
  • Dimensions: [‘num_rows’, ‘num_cols’]
  • Shape: [None, None]
  • Name: axis_2_phase_map
..dimension attribute

Number of rows and columns in the image.

Additional Information: row, column representation is equivalent to height,width.
  • Data Type: int32
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: dimension
..field_of_view attribute

Size of viewing area, in meters

  • Data Type: float
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: field_of_view
..unit attribute

Unit that axis data is stored in (e.g., degrees)

  • Data Type: text
  • Name: unit
.axis_2_power_map dataset

Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power.

  • Quantity: 0 or 1
  • Data Type: float32
  • Dimensions: [‘num_rows’, ‘num_cols’]
  • Shape: [None, None]
  • Name: axis_2_power_map
..dimension attribute

Number of rows and columns in the image.

Additional Information: row, column representation is equivalent to height,width.
  • Data Type: int32
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: dimension
..field_of_view attribute

Size of viewing area, in meters

  • Data Type: float
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: field_of_view
..unit attribute

Unit that axis data is stored in (e.g., degrees)

  • Data Type: text
  • Name: unit
.axis_descriptions dataset

Two-element array describing the contents of the two response axis fields. Description should be something like [‘altitude’, ‘azimuth’] or ‘[‘radius’, ‘theta’]

  • Data Type: text
  • Dimensions: [‘2’]
  • Shape: [None]
  • Name: axis_descriptions
.focal_depth_image dataset

Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns]

  • Data Type: uint16
  • Dimensions: [‘num_rows’, ‘num_cols’]
  • Shape: [None, None]
  • Name: focal_depth_image
..bits_per_pixel attribute

Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value

  • Data Type: int32
  • Name: bits_per_pixel
..dimension attribute

Number of rows and columns in the image.

Additional Information: row, column representation is equivalent to height,width.
  • Data Type: int32
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: dimension
..field_of_view attribute

Size of viewing area, in meters

  • Data Type: float
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: field_of_view
..focal_depth attribute

Focal depth offset, in meters

  • Data Type: float
  • Name: focal_depth
..format attribute

Format of image. Right now only ‘raw’ supported

  • Data Type: text
  • Name: format
.sign_map dataset

Sine of the angle between the direction of the gradient in axis_1 and axis_2

  • Data Type: float32
  • Dimensions: [‘num_rows’, ‘num_cols’]
  • Shape: [None, None]
  • Name: sign_map
..dimension attribute

Number of rows and columns in the image.

Additional Information: row, column representation is equivalent to height,width.
  • Data Type: int32
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: dimension
..field_of_view attribute

Size of viewing area, in meters.

  • Data Type: float
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: field_of_view
.vasculature_image dataset

Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]

  • Data Type: uint16
  • Dimensions: [‘num_rows’, ‘num_cols’]
  • Shape: [None, None]
  • Name: vasculature_image
..bits_per_pixel attribute

Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value

  • Data Type: int32
  • Name: bits_per_pixel
..dimension attribute

Number of rows and columns in the image.

Additional Information: row, column representation is equivalent to height,width.
  • Data Type: int32
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: dimension
..field_of_view attribute

Size of viewing area, in meters

  • Data Type: float
  • Dimensions: [‘row_col’]
  • Shape: (None,)
  • Name: field_of_view
..format attribute

Format of image. Right now only ‘raw’ supported

  • Data Type: text
  • Name: format

2.4.20. IntracellularElectrode

Overview: One of possibly many.

Comment: Name should be informative.

IntracellularElectrode extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

IntracellularElectrode
Table 2.87 Datasets, Links, and Attributes contained in <IntracellularElectrode>
Id Type Description
<IntracellularElectrode> group

Top level group for <IntracellularElectrode>

.help attribute

Value is ‘Metadata about an intracellular electrode’

  • Data Type: text
  • Value: Metadata about an intracellular electrode
  • Name: help
.description dataset

Recording description, description of electrode (e.g., whole-cell, sharp, etc)

Comment: Free-form text (can be from Methods)

  • Data Type: text
  • Name: description
.device dataset

Name(s) of devices in general/devices

  • Quantity: 0 or 1
  • Data Type: text
  • Name: device
.filtering dataset

Electrode specific filtering.

  • Quantity: 0 or 1
  • Data Type: text
  • Name: filtering
.initial_access_resistance dataset

Initial access resistance

  • Quantity: 0 or 1
  • Data Type: text
  • Name: initial_access_resistance
.location dataset

Area, layer, comments on estimation, stereotaxis coordinates (if in vivo, etc)

  • Quantity: 0 or 1
  • Data Type: text
  • Name: location
.resistance dataset

Electrode resistance

Comment: unit: Ohm

  • Quantity: 0 or 1
  • Data Type: text
  • Name: resistance
.seal dataset

Information about seal used for recording

  • Quantity: 0 or 1
  • Data Type: text
  • Name: seal
.slice dataset

Information about slice used for recording

  • Quantity: 0 or 1
  • Data Type: text
  • Name: slice

2.4.21. LFP

Overview: LFP data from one or more channels. The electrode map in each published ElectricalSeries will identify which channels are providing LFP data. Filter properties should be noted in the ElectricalSeries description or comments field.

LFP extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

LFP
Table 2.88 Datasets, Links, and Attributes contained in <LFP>
Id Type Description
<LFP> group

Top level group for <LFP>

.help attribute

Value is ‘LFP data from one or more channels. Filter properties should be noted in the ElectricalSeries’

  • Data Type: text
  • Value: LFP data from one or more channels. Filter properties should be noted in the ElectricalSeries
  • Name: help
Table 2.89 Groups contained in <LFP>
Id Type Description
<LFP> group

Top level group for <LFP>

.<ElectricalSeries> group

ElectricalSeries object containing LFP data for one or channels

2.4.21.1. Groups: <ElectricalSeries>

ElectricalSeries object containing LFP data for one or channels

2.4.22. MotionCorrection

Overview: An image stack where all frames are shifted (registered) to a common coordinate system, to account for movement and drift between frames. Note: each frame at each point in time is assumed to be 2-D (has only x & y dimensions).

MotionCorrection extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

MotionCorrection
Table 2.90 Datasets, Links, and Attributes contained in <MotionCorrection>
Id Type Description
<MotionCorrection> group

Top level group for <MotionCorrection>

.help attribute

Value is ‘Image stacks whose frames have been shifted (registered) to account for motion’

  • Data Type: text
  • Value: Image stacks whose frames have been shifted (registered) to account for motion
  • Name: help
Table 2.91 Groups contained in <MotionCorrection>
Id Type Description
<MotionCorrection> group

Top level group for <MotionCorrection>

.<CorrectedImageStack> group

One of possibly many. Name should be informative.

..original link

HDF5 Link to image series that is being registered.

2.4.22.1. Groups: <CorrectedImageStack>

One of possibly many. Name should be informative.

Table 2.92 Datasets, Links, and Attributes contained in <CorrectedImageStack>
Id Type Description
<CorrectedImageStack> group

Top level group for <CorrectedImageStack>

.help attribute

Value is ‘Reuslts from motion correction of an image stack’

  • Data Type: text
  • Value: Reuslts from motion correction of an image stack
  • Name: help
.original link

HDF5 Link to image series that is being registered.

Table 2.93 Groups contained in <<CorrectedImageStack>>
Id Type Description
<CorrectedImageStack> group

Top level group for <CorrectedImageStack>

.original link

HDF5 Link to image series that is being registered.

.corrected group

Image stack with frames shifted to the common coordinates.

.xy_translation group

Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image.

2.4.22.2. Groups: <CorrectedImageStack>/corrected

Image stack with frames shifted to the common coordinates.

2.4.22.3. Groups: <CorrectedImageStack>/xy_translation

Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image.

2.4.23. OpticalChannel

Overview: One of possibly many groups storing channel-specific data

Comment: Name is arbitrary but should be meaningful

OpticalChannel extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

OpticalChannel
Table 2.94 Datasets, Links, and Attributes contained in <OpticalChannel>
Id Type Description
<OpticalChannel> group

Top level group for <OpticalChannel>

.help attribute

Value is ‘Metadata about an optical channel used to record from an imaging plane’

  • Data Type: text
  • Value: Metadata about an optical channel used to record from an imaging plane
  • Name: help
.description dataset

Any notes or comments about the channel

  • Data Type: text
  • Name: description
.emission_lambda dataset

Emission lambda for channel

  • Data Type: float
  • Name: emission_lambda

2.4.24. OptogeneticStimulusSite

Overview: One of possibly many groups describing an optogenetic stimulation site.

Comment: Name is arbitrary but should be meaningful. Name is referenced by OptogeneticSeries

OptogeneticStimulusSite extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

OptogeneticStimulusSite
Table 2.95 Datasets, Links, and Attributes contained in <OptogeneticStimulusSite>
Id Type Description
<OptogeneticStimulusSite> group

Top level group for <OptogeneticStimulusSite>

.help attribute

Value is ‘Metadata about an optogenetic stimulus site’

  • Data Type: text
  • Value: Metadata about an optogenetic stimulus site
  • Name: help
.description dataset

Description of site

  • Data Type: text
  • Name: description
.device dataset

Name of device in /general/devices

  • Data Type: text
  • Name: device
.excitation_lambda dataset

Excitation wavelength

  • Data Type: text
  • Name: excitation_lambda
.location dataset

Location of stimulation site

  • Data Type: text
  • Name: location

2.4.25. PlaneSegmentation

Overview: Group name is human-readable description of imaging plane

PlaneSegmentation extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

PlaneSegmentation
Table 2.96 Datasets, Links, and Attributes contained in <PlaneSegmentation>
Id Type Description
<PlaneSegmentation> group

Top level group for <PlaneSegmentation>

.help attribute

Value is ‘Results from segmentation of an imaging plane’

  • Data Type: text
  • Value: Results from segmentation of an imaging plane
  • Name: help
.description dataset

Description of image plane, recording wavelength, depth, etc

  • Quantity: 0 or 1
  • Data Type: text
  • Name: description
.pixel_masks dataset

Pixel masks for each ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the ROITable

.image_masks dataset

ROI masks for each ROI

.rois dataset

ROIs resulting from the segmentation of the imaging plane linked in this PlaneSegmentation

.imaging_plane link

link to ImagingPlane group from which this TimeSeries data was generated

Table 2.97 Groups contained in <PlaneSegmentation>
Id Type Description
<PlaneSegmentation> group

Top level group for <PlaneSegmentation>

.imaging_plane link

link to ImagingPlane group from which this TimeSeries data was generated

.reference_images group

Stores image stacks segmentation mask apply to.

  • Name: reference_images

2.4.25.1. Groups: reference_images

Stores image stacks segmentation mask apply to.

  • Name: reference_images
Table 2.98 Groups contained in <reference_images>
Id Type Description
reference_images group

Top level group for reference_images

  • Name: reference_images
.<ImageSeries> group

One or more image stacks that the masks apply to (can be one-element stack)

2.4.25.2. Groups: reference_images/<ImageSeries>

One or more image stacks that the masks apply to (can be one-element stack)

2.4.26. Position

Overview: Position data, whether along the x, x/y or x/y/z axis.

Position extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

Position
Table 2.99 Datasets, Links, and Attributes contained in <Position>
Id Type Description
<Position> group

Top level group for <Position>

.help attribute

Value is ‘Position data, whether along the x, xy or xyz axis’

  • Data Type: text
  • Value: Position data, whether along the x, xy or xyz axis
  • Name: help
Table 2.100 Groups contained in <Position>
Id Type Description
<Position> group

Top level group for <Position>

.<SpatialSeries> group

SpatialSeries object containing position data

2.4.26.1. Groups: <SpatialSeries>

SpatialSeries object containing position data

2.4.27. ProcessingModule

Overview: Module. Name should be descriptive. Stores a collection of related data organized by contained interfaces. Each interface is a contract specifying content related to a particular type of data.

ProcessingModule extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

ProcessingModule
Table 2.101 Datasets, Links, and Attributes contained in <ProcessingModule>
Id Type Description
<ProcessingModule> group

Top level group for <ProcessingModule>

.description attribute

Description of Module

  • Data Type: text
  • Name: description
.help attribute

Value is ‘A collection of analysis outputs from processing of data’

  • Data Type: text
  • Value: A collection of analysis outputs from processing of data
  • Name: help
Table 2.102 Groups contained in <ProcessingModule>
Id Type Description
<ProcessingModule> group

Top level group for <ProcessingModule>

.<NWBDataInterface> group

Interface objects containing data output from processing steps

2.4.27.1. Groups: <NWBDataInterface>

Interface objects containing data output from processing steps

2.4.28. PupilTracking

Overview: Eye-tracking data, representing pupil size.

PupilTracking extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

PupilTracking
Table 2.103 Datasets, Links, and Attributes contained in <PupilTracking>
Id Type Description
<PupilTracking> group

Top level group for <PupilTracking>

.help attribute

Value is ‘Eye-tracking data, representing pupil size’

  • Data Type: text
  • Value: Eye-tracking data, representing pupil size
  • Name: help
Table 2.104 Groups contained in <PupilTracking>
Id Type Description
<PupilTracking> group

Top level group for <PupilTracking>

.<TimeSeries> group

TimeSeries object containing time series data on pupil size

2.4.28.1. Groups: <TimeSeries>

TimeSeries object containing time series data on pupil size

2.4.29. UnitTimes

Overview: Event times of observed units (e.g. cell, synapse, etc.). The UnitTimes group contains a group for each unit. The name of the group should match the value in the source module, if that is possible/relevant (e.g., name of ROIs from Segmentation module).

UnitTimes extends NWBDataInterface (see Section 2.2.3) and includes all elements of NWBDataInterface with the following additions or changes.

UnitTimes
Table 2.105 Datasets, Links, and Attributes contained in <UnitTimes>
Id Type Description
<UnitTimes> group

Top level group for <UnitTimes>

.help attribute

Value is ‘Estimated spike times from a single unit’

  • Data Type: text
  • Value: Estimated spike times from a single unit
  • Name: help
.unit_ids dataset

a unique identifier for each element

.spike_times_index dataset

the index into the spike times dataset

.spike_times dataset

the index into the vector data

2.5. Primitive Types

2.5.1. VectorData

Overview: Data values indexed by pointer

VectorData extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Default Name: vector_data
  • Source Specification: see Section 3.6.1
Table 2.106 Datasets, Links, and Attributes contained in <VectorData>
Id Type Description
<VectorData> dataset

Top level dataset for <VectorData>

  • Neurodata Type: VectorData
  • Extends: NWBData
  • Default Name: vector_data
.help attribute

a help string

  • Data Type: text
  • Value: Values for a list of elements
  • Name: help

2.5.2. VectorIndex

Overview: Pointers that index data values

VectorIndex extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Data Type: region reference to VectorData
  • Shape: [None]
  • Default Name: vector_index
  • Source Specification: see Section 3.6.2
Table 2.107 Datasets, Links, and Attributes contained in <VectorIndex>
Id Type Description
<VectorIndex> dataset

Top level dataset for <VectorIndex>

  • Neurodata Type: VectorIndex
  • Extends: NWBData
  • Data Type: region reference to VectorData
  • Shape: [None]
  • Default Name: vector_index
.help attribute

a help string

  • Data Type: text
  • Value: indexes into a list of values for a list of elements
  • Name: help

2.5.3. ElementIdentifiers

Overview: a unique identifier for each element

ElementIdentifiers extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Data Type: int
  • Shape: [None]
  • Default Name: element_id
  • Source Specification: see Section 3.6.3
Table 2.108 Datasets, Links, and Attributes contained in <ElementIdentifiers>
Id Type Description
<ElementIdentifiers> dataset

Top level dataset for <ElementIdentifiers>

  • Neurodata Type: ElementIdentifiers
  • Extends: NWBData
  • Data Type: int
  • Shape: [None]
  • Default Name: element_id
.help attribute

a help string

  • Data Type: text
  • Value: unique identifiers for a list of elements
  • Name: help

2.6. Other Types

2.6.1. Device

Overview: One of possibly many. Information about device and device description.

Device extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

Table 2.109 Datasets, Links, and Attributes contained in <Device>
Id Type Description
<Device> group

Top level group for <Device>

.help attribute

Value is ‘A recording device e.g. amplifier’

  • Data Type: text
  • Value: A recording device e.g. amplifier
  • Name: help

2.6.2. ElectrodeGroup

Overview: One of possibly many groups, one for each electrode group.

ElectrodeGroup extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

ElectrodeGroup
Table 2.110 Datasets, Links, and Attributes contained in <ElectrodeGroup>
Id Type Description
<ElectrodeGroup> group

Top level group for <ElectrodeGroup>

.help attribute

Value is ‘Metadata about a physical grouping of channels’

  • Data Type: text
  • Value: A physical grouping of channels
  • Name: help
.description attribute

description of this electrode group

  • Data Type: text
  • Name: description
.location attribute

description of location of this electrode group

  • Data Type: text
  • Name: location
.device link

the device that was used to record from this electrode group

  • Target Type Device
  • Name: device
Table 2.111 Groups contained in <ElectrodeGroup>
Id Type Description
<ElectrodeGroup> group

Top level group for <ElectrodeGroup>

.device link

the device that was used to record from this electrode group

  • Target Type Device
  • Name: device

2.6.3. ElectrodeTable

Overview: a table for storing queryable information about electrodes in a single table

ElectrodeTable extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Data Type: Compound data type with the following elements:
    • id: a user-specified unique identifier (dtype= int )
    • x: the x coordinate of the channels location (dtype= float )
    • y: the y coordinate of the channels location (dtype= float )
    • z: the z coordinate of the channels location (dtype= float )
    • imp: the impedance of the channel (dtype= float )
    • location: the location of channel within the subject e.g. brain region (dtype= ascii )
    • filtering: description of hardware filtering (dtype= ascii )
    • description: a brief description of what this electrode is (dtype= utf8 )
    • group: a reference to the ElectrodeGroup this electrode is a part of (dtype= object reference to ElectrodeGroup )
    • group_name: the name of the ElectrodeGroup this electrode is a part of (dtype= ascii )
  • Source Specification: see Section 3.7.3
Table 2.112 Datasets, Links, and Attributes contained in <ElectrodeTable>
Id Type Description
<ElectrodeTable> dataset

Top level dataset for <ElectrodeTable>

  • Neurodata Type: ElectrodeTable
  • Extends: NWBData
  • Data Type: Compound data type with the following elements:
    • id: a user-specified unique identifier (dtype= int )
    • x: the x coordinate of the channels location (dtype= float )
    • y: the y coordinate of the channels location (dtype= float )
    • z: the z coordinate of the channels location (dtype= float )
    • imp: the impedance of the channel (dtype= float )
    • location: the location of channel within the subject e.g. brain region (dtype= ascii )
    • filtering: description of hardware filtering (dtype= ascii )
    • description: a brief description of what this electrode is (dtype= utf8 )
    • group: a reference to the ElectrodeGroup this electrode is a part of (dtype= object reference to ElectrodeGroup )
    • group_name: the name of the ElectrodeGroup this electrode is a part of (dtype= ascii )
.help attribute

Value is ‘a table for storing data about extracellular electrodes’

  • Data Type: text
  • Value: a table for storing data about extracellular electrodes
  • Name: help

2.6.4. ElectrodeTableRegion

Overview: a dataset for subsetting ElectrodeTables

ElectrodeTableRegion extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

ElectrodeTableRegion
Table 2.113 Datasets, Links, and Attributes contained in <ElectrodeTableRegion>
Id Type Description
<ElectrodeTableRegion> dataset

Top level dataset for <ElectrodeTableRegion>

.description attribute

a description of this subset of electrodes

  • Data Type: utf8
  • Name: description
.help attribute

Value is ‘a subset (i.e. slice or region) of an ElectrodeTable’

  • Data Type: text
  • Value: a subset (i.e. slice or region) of an ElectrodeTable
  • Name: help

2.6.5. EpochTable

Overview: One of possibly many different experimental epoch

EpochTable extends EventTable (see Section 2.6.7) and includes all elements of EventTable with the following additions or changes.

  • Extends: EventTable
  • Primitive Type: Dataset
  • Data Type: Compound data type with the following elements:
    • description: Description of this epoch. (dtype= text )
  • Source Specification: see Section 3.7.5
Table 2.114 Datasets, Links, and Attributes contained in <EpochTable>
Id Type Description
<EpochTable> dataset

Top level dataset for <EpochTable>

  • Neurodata Type: EpochTable
  • Extends: EventTable
  • Data Type: Compound data type with the following elements:
    • description: Description of this epoch. (dtype= text )
.help attribute

Value is ‘A table for storing epoch data’

  • Data Type: text
  • Value: A table for storing epoch data
  • Name: help

2.6.6. EpochTableRegion

Overview: a dataset for subsetting EpochTables

EpochTableRegion extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

EpochTableRegion
Table 2.115 Datasets, Links, and Attributes contained in <EpochTableRegion>
Id Type Description
<EpochTableRegion> dataset

Top level dataset for <EpochTableRegion>

  • Neurodata Type: EpochTableRegion
  • Extends: NWBData
  • Data Type: region reference to EpochTable
.description attribute

a description of this subset of epochs

  • Data Type: utf8
  • Name: description
.help attribute

Value is ‘a subset (i.e. slice or region) of an EpochTable’

  • Data Type: text
  • Value: a subset (i.e. slice or region) of an EpochTable
  • Name: help

2.6.7. EventTable

Overview: One of possibly many different experimental epoch

EventTable extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Data Type: Compound data type with the following elements:
    • start_time: Start time of epoch, in seconds (dtype= float64 )
    • stop_time: Stop time of epoch, in seconds (dtype= float64 )
    • tags: User-defined tags that identify events. Tags are to help identify or categorize events. (dtype= text )
    • timeseries: Stop time of epoch, in seconds (dtype= region reference to TimeSeriesIndex )
  • Source Specification: see Section 3.7.7
Table 2.116 Datasets, Links, and Attributes contained in <EventTable>
Id Type Description
<EventTable> dataset

Top level dataset for <EventTable>

  • Neurodata Type: EventTable
  • Extends: NWBData
  • Data Type: Compound data type with the following elements:
    • start_time: Start time of epoch, in seconds (dtype= float64 )
    • stop_time: Stop time of epoch, in seconds (dtype= float64 )
    • tags: User-defined tags that identify events. Tags are to help identify or categorize events. (dtype= text )
    • timeseries: Stop time of epoch, in seconds (dtype= region reference to TimeSeriesIndex )
.help attribute

Value is ‘A table for storing start/stop times for events’

  • Data Type: text
  • Value: A table for storing epoch data
  • Name: help

2.6.8. ImageMasks

Overview: ROI mask, represented in 2D ([y][x]) intensity image

ImageMasks extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Data Type: float
  • Dimensions: [‘num_roi’, ‘num_x’, ‘num_y’]
  • Shape: [None, None, None]
  • Source Specification: see Section 3.7.8
Table 2.117 Datasets, Links, and Attributes contained in <ImageMasks>
Id Type Description
<ImageMasks> dataset

Top level dataset for <ImageMasks>

  • Neurodata Type: ImageMasks
  • Extends: NWBData
  • Data Type: float
  • Dimensions: [‘num_roi’, ‘num_x’, ‘num_y’]
  • Shape: [None, None, None]
.help attribute

a help string

  • Data Type: text
  • Value: an array of image masks
  • Name: help

2.6.9. PixelMasks

Overview: a table for storing pixel masks

PixelMasks extends VectorData (see Section 2.5.1) and includes all elements of VectorData with the following additions or changes.

  • Extends: VectorData
  • Primitive Type: Dataset
  • Data Type: Compound data type with the following elements:
    • x: the pixel x-coordinate (dtype= uint )
    • y: the pixel y-coordinate (dtype= uint )
    • weight: the weight of the pixel (dtype= float )
  • Source Specification: see Section 3.7.9
Table 2.118 Datasets, Links, and Attributes contained in <PixelMasks>
Id Type Description
<PixelMasks> dataset

Top level dataset for <PixelMasks>

  • Neurodata Type: PixelMasks
  • Extends: VectorData
  • Data Type: Compound data type with the following elements:
    • x: the pixel x-coordinate (dtype= uint )
    • y: the pixel y-coordinate (dtype= uint )
    • weight: the weight of the pixel (dtype= float )
.help attribute

a help string

  • Data Type: text
  • Value: a concatenated array of pixel masks
  • Name: help

2.6.10. ROITable

Overview: A table for storing references to the image mask and pixel mask for each ROI

ROITable extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Data Type: Compound data type with the following elements:
    • name: a name for this ROI (dtype= ascii )
    • pixel_mask: a reference into a the dataset of pixel masks (dtype= region reference to PixelMasks )
    • image_mask: a reference into a the dataset of image masks (dtype= region reference to ImageMasks )
  • Source Specification: see Section 3.7.10
Table 2.119 Datasets, Links, and Attributes contained in <ROITable>
Id Type Description
<ROITable> dataset

Top level dataset for <ROITable>

  • Neurodata Type: ROITable
  • Extends: NWBData
  • Data Type: Compound data type with the following elements:
    • name: a name for this ROI (dtype= ascii )
    • pixel_mask: a reference into a the dataset of pixel masks (dtype= region reference to PixelMasks )
    • image_mask: a reference into a the dataset of image masks (dtype= region reference to ImageMasks )
.help attribute

a help string

  • Data Type: text
  • Value: A table for storing ROI data
  • Name: help

2.6.11. ROITableRegion

Overview: A region reference for subsetting an ROITable

ROITableRegion extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

ROITableRegion
Table 2.120 Datasets, Links, and Attributes contained in <ROITableRegion>
Id Type Description
<ROITableRegion> dataset

Top level dataset for <ROITableRegion>

  • Neurodata Type: ROITableRegion
  • Extends: NWBData
  • Data Type: region reference to ROITable
.help attribute

a help string

  • Data Type: text
  • Value: A region reference to an ROITable
  • Name: help
.description attribute

a description of this subset of ROIs

  • Data Type: utf8
  • Name: description

2.6.12. SpecFile

Overview: Dataset for storing contents of a specification file for either the core format or an extension. Name should match name of file.`

  • Primitive Type: Dataset
  • Quantity: 0 or more
  • Data Type: text
  • Source Specification: see Section 3.7.12
SpecFile
Table 2.121 Datasets, Links, and Attributes contained in <SpecFile>
Id Type Description
<SpecFile> dataset

Top level dataset for <SpecFile>

  • Neurodata Type: SpecFile
  • Quantity: 0 or more
  • Data Type: text
.help attribute

A help statement

  • Data Type: text
  • Reuqired: False
  • Default Value: Contents of format specification file.
  • Name: help
.namespaces attribute

Namespaces defined in the file

  • Data Type: text
  • Dimensions: [‘num_namespaces’]
  • Shape: (None,)
  • Name: namespaces

2.6.13. Subject

Overview: Information about the animal or person from which the data was measured.

Subject extends NWBContainer (see Section 2.2.1) and includes all elements of NWBContainer with the following additions or changes.

Subject
Table 2.122 Datasets, Links, and Attributes contained in <Subject>
Id Type Description
subject group

Top level group for subject

.help attribute

Value is ‘Information about the subject’

  • Data Type: text
  • Value: Information about the subject
  • Name: help
.age dataset

Age of subject

  • Quantity: 0 or 1
  • Data Type: text
  • Name: age
.description dataset

Description of subject and where subject came from (e.g., breeder, if animal)

  • Quantity: 0 or 1
  • Data Type: text
  • Name: description
.genotype dataset

Genetic strain

Comment: If absent, assume Wild Type (WT)

  • Quantity: 0 or 1
  • Data Type: text
  • Name: genotype
.sex dataset

Sex of subject

  • Quantity: 0 or 1
  • Data Type: text
  • Name: sex
.species dataset

Species of subject

  • Quantity: 0 or 1
  • Data Type: text
  • Name: species
.subject_id dataset

ID of animal/person used/participating in experiment (lab convention)

  • Quantity: 0 or 1
  • Data Type: text
  • Name: subject_id
.weight dataset

Weight at time of experiment, at time of surgery and at other important times

  • Quantity: 0 or 1
  • Data Type: text
  • Name: weight

2.6.14. TimeSeriesIndex

Overview: An index into a TimeSeries object

TimeSeriesIndex extends NWBData (see Section 2.2.2) and includes all elements of NWBData with the following additions or changes.

  • Extends: NWBData
  • Primitive Type: Dataset
  • Data Type: Compound data type with the following elements:
    • idx_start: Start index into the TimeSeries data[] field. COMMENT: This can be used to calculate location in TimeSeries timestamp[] field (dtype= int32 )
    • count: Number of data samples available in this time series, during this epoch. (dtype= int32 )
    • timeseries: the TimeSeries that this index applies to (dtype= object reference to TimeSeries )
  • Source Specification: see Section 3.7.14
Table 2.123 Datasets, Links, and Attributes contained in <TimeSeriesIndex>
Id Type Description
<TimeSeriesIndex> dataset

Top level dataset for <TimeSeriesIndex>

  • Neurodata Type: TimeSeriesIndex
  • Extends: NWBData
  • Data Type: Compound data type with the following elements:
    • idx_start: Start index into the TimeSeries data[] field. COMMENT: This can be used to calculate location in TimeSeries timestamp[] field (dtype= int32 )
    • count: Number of data samples available in this time series, during this epoch. (dtype= int32 )
    • timeseries: the TimeSeries that this index applies to (dtype= object reference to TimeSeries )
.help attribute

Value is ‘Data on how an epoch applies to a time series’

  • Data Type: text
  • Value: Data on how an epoch applies to a time series
  • Name: help

3. Schema Sources

Source Specification: see Section 3.1

3.1. Namespace – NWB core

Description: see Section 1.1

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
author:
- Keith Godfrey
- Jeff Teeters
- Oliver Ruebel
- Andrew Tritt
contact:
- keithg@alleninstitute.org
- jteeters@berkeley.edu
- oruebel@lbl.gov
- ajtritt@lbl.gov
doc: NWB namespace
full_name: NWB core
name: core
schema:
- source: nwb.base.yaml
- source: nwb.epoch.yaml
- source: nwb.image.yaml
- source: nwb.file.yaml
- source: nwb.misc.yaml
- source: nwb.behavior.yaml
- source: nwb.ecephys.yaml
- source: nwb.icephys.yaml
- source: nwb.ogen.yaml
- source: nwb.ophys.yaml
- source: nwb.retinotopy.yaml
version: 1.2.0

3.2. Main Data File

3.2.1. NWBFile

Extends: NWBContainer

Description: see Section 2.1.1

YAML Specification:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
attributes:
- doc: Value is 'an NWB:N file for storing cellular-based neurophysiology data'
  dtype: text
  name: help
  value: an NWB:N file for storing cellular-based neurophysiology data
- doc: 'File version string. COMMENT: Eg, NWB-1.0.0. This will be the name of the
    format with trailing major, minor and patch numbers.'
  dtype: text
  name: nwb_version
  value: 2.0b
datasets:
- dims:
  - '*unlimited*'
  doc: 'Time file was created, UTC, and subsequent modifications to file. COMMENT:
    Date + time, Use ISO format (eg, ISO 8601) or a format that is easy to read and
    unambiguous. File can be created after the experiment was run, so this may differ
    from experiment start time. Each modifictation to file adds new entry to array. '
  dtype: text
  name: file_create_date
  shape:
  - null
- doc: 'A unique text identifier for the file. COMMENT: Eg, concatenated lab name,
    file creation date/time and experimentalist, or a hash of these and/or other values.
    The goal is that the string should be unique to all other files.'
  dtype: text
  name: identifier
- doc: One or two sentences describing the experiment and data in the file.
  dtype: text
  name: session_description
- doc: 'Time of experiment/session start, UTC.  COMMENT: Date + time, Use ISO format
    (eg, ISO 8601) or an easy-to-read and unambiguous format. All times stored in
    the file use this time as reference (ie, time zero)'
  dtype: text
  name: session_start_time
doc: Top level of NWB file.
groups:
- doc: 'Data streams recorded from the system, including ephys, ophys, tracking, etc.
    COMMENT: This group is read-only after the experiment is completed and timestamps
    are corrected to a common timebase. The data stored here may be links to raw data
    stored in external HDF5 files. This will allow keeping bulky raw data out of the
    file while preserving the option of keeping some/all in the file. MORE_INFO: Acquired
    data includes tracking and experimental data streams (ie, everything measured
    from the system).If bulky data is stored in the /acquisition group, the data can
    exist in a separate HDF5 file that is linked to by the file being used for processing
    and analysis.'
  groups:
  - doc: Any objects representing acquired data
    neurodata_type_inc: NWBDataInterface
    quantity: '*'
  name: acquisition
- doc: 'Lab-specific and custom scientific analysis of data. There is no defined format
    for the content of this group - the format is up to the individual user/lab. COMMENT:
    To facilitate sharing analysis data between labs, the contents here should be
    stored in standard types (eg, INCF types) and appropriately documented. MORE_INFO:
    The file can store lab-specific and custom data analysis without restriction on
    its form or schema, reducing data formatting restrictions on end users. Such data
    should be placed in the analysis group. The analysis data should be documented
    so that it is sharable with other labs'
  groups:
  - doc: Custom analysis results
    neurodata_type_inc: NWBContainer
    quantity: '*'
  name: analysis
- doc: "Experimental intervals, whether that be logically distinct sub-experiments\
    \ having a particular scientific goal, trials during an experiment, or epochs\
    \ deriving from analysis of data.  COMMENT: Epochs provide pointers to time series\
    \ that are relevant to the epoch, and windows into the data in those time series\
    \ (i.e., the start and end indices of TimeSeries::data[] that overlap with the\
    \ epoch). This allows easy access to a range of data in specific experimental\
    \ intervals. MORE_INFO: An experiment can be separated into one or many logical\
    \ intervals, with the order and duration of these intervals often definable before\
    \ the experiment starts. In this document, and in the context of NWB, these intervals\
    \ are called 'epochs'. Epochs have acquisition and stimulus data associated with\
    \ them, and different epochs can overlap. Examples of epochs are the time when\
    \ a rat runs around an enclosure or maze as well as intervening sleep sessions;\
    \ the presentation of a set of visual stimuli to a mouse running on a wheel; or\
    \ the uninterrupted presentation of current to a patch-clamped cell. Epochs can\
    \ be limited to the interval of a particular stimulus, or they can span multiple\
    \ stimuli. Different windows into the same time series can be achieved by including\
    \ multiple instances of that time series, each with different start/stop times."
  name: epochs
  neurodata_type_inc: Epochs
- doc: "The home for processing Modules. These modules perform intermediate analysis\
    \ of data that is necessary to perform before scientific analysis. Examples include\
    \ spike clustering, extracting position from tracking data, stitching together\
    \ image slices. COMMENT: Modules are defined below. They can be large and express\
    \ many data sets from relatively complex analysis (e.g., spike detection and clustering)\
    \ or small, representing extraction of position information from tracking video,\
    \ or even binary lick/no-lick decisions. Common software tools (e.g., klustakwik,\
    \ MClust) are expected to read/write data here. MORE_INFO: 'Processing' refers\
    \ to intermediate analysis of the acquired data to make it more amenable to scientific\
    \ analysis. These are performed using Modules, as defined above. All modules reside\
    \ in the processing group."
  groups:
  - doc: Intermediate analysis of acquired data
    neurodata_type_inc: ProcessingModule
    quantity: '*'
  name: processing
- doc: 'Data pushed into the system (eg, video stimulus, sound, voltage, etc) and
    secondary representations of that data (eg, measurements of something used as
    a stimulus) COMMENT: This group is read-only after experiment complete and timestamps
    are corrected to common timebase. Stores both presented stimuli and stimulus templates,
    the latter in case the same stimulus is presented multiple times, or is pulled
    from an external stimulus library.MORE_INFO: Stimuli are here defined as any signal
    that is pushed into the system as part of the experiment (eg, sound, video, voltage,
    etc). Many different experiments can use the same stimuli, and stimuli can be
    re-used during an experiment. The stimulus group is organized so that one version
    of template stimuli can be stored and these be used multiple times. These templates
    can exist in the present file or can be HDF5-linked to a remote library file.'
  groups:
  - doc: Stimuli presented during the experiment.
    groups:
    - doc: TimeSeries objects containing data of presented stimuli
      neurodata_type_inc: TimeSeries
      quantity: '*'
    name: presentation
  - doc: "Template stimuli. COMMENT: Time stamps in templates are based on stimulus\
      \ design and are relative to the beginning of the stimulus. When templates are\
      \ used, the stimulus instances must convert presentation times to the experiment's\
      \ time reference frame."
    groups:
    - doc: TimeSeries objects containing template data of presented stimuli
      neurodata_type_inc: TimeSeries
      quantity: '*'
    name: templates
  name: stimulus
- datasets:
  - doc: 'Notes about data collection and analysis.COMMENT: Can be from Methods'
    dtype: text
    name: data_collection
    quantity: '?'
  - doc: 'General description of the experiment.COMMENT: Can be from Methods'
    dtype: text
    name: experiment_description
    quantity: '?'
  - doc: 'Name of person who performed the experiment.COMMENT: More than one person
      OK. Can specify roles of different people involved.'
    dtype: text
    name: experimenter
    quantity: '?'
  - doc: Institution(s) where experiment was performed
    dtype: text
    name: institution
    quantity: '?'
  - doc: Lab where experiment was performed
    dtype: text
    name: lab
    quantity: '?'
  - doc: 'Notes about the experiment.  COMMENT: Things particular to this experiment'
    dtype: text
    name: notes
    quantity: '?'
  - doc: 'Description of drugs used, including how and when they were administered.
      COMMENT: Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc.'
    dtype: text
    name: pharmacology
    quantity: '?'
  - doc: 'Experimetnal protocol, if applicable.COMMENT: E.g., include IACUC protocol'
    dtype: text
    name: protocol
    quantity: '?'
  - doc: 'Publication information.COMMENT: PMID, DOI, URL, etc. If multiple, concatenate
      together and describe which is which. such as PMID, DOI, URL, etc'
    dtype: text
    name: related_publications
    quantity: '?'
  - doc: 'Lab-specific ID for the session.COMMENT: Only 1 session_id per file, with
      all time aligned to experiment start time.'
    dtype: text
    name: session_id
    quantity: '?'
  - doc: Description of slices, including information about preparation thickness,
      orientation, temperature and bath solution
    dtype: text
    name: slices
    quantity: '?'
  - attributes:
    - doc: Name of script file
      dtype: text
      name: file_name
    doc: Script file used to create this NWB file.
    dtype: text
    name: source_script
    quantity: '?'
  - doc: 'Notes about stimuli, such as how and where presented.COMMENT: Can be from
      Methods'
    dtype: text
    name: stimulus
    quantity: '?'
  - doc: 'Narrative description about surgery/surgeries, including date(s) and who
      performed surgery. COMMENT: Much can be copied from Methods'
    dtype: text
    name: surgery
    quantity: '?'
  - doc: Information about virus(es) used in experiments, including virus ID, source,
      date made, injection location, volume, etc
    dtype: text
    name: virus
    quantity: '?'
  doc: "Experimental metadata, including protocol, notes and description of hardware\
    \ device(s).  COMMENT: The metadata stored in this section should be used to describe\
    \ the experiment. Metadata necessary for interpreting the data is stored with\
    \ the data. MORE_INFO: General experimental metadata, including animal strain,\
    \ experimental protocols, experimenter, devices, etc, are stored under 'general'.\
    \ Core metadata (e.g., that required to interpret data fields) is stored with\
    \ the data itself, and implicitly defined by the file specification (eg, time\
    \ is in seconds). The strategy used here for storing non-core metadata is to use\
    \ free-form text fields, such as would appear in sentences or paragraphs from\
    \ a Methods section. Metadata fields are text to enable them to be more general,\
    \ for example to represent ranges instead of numerical values. Machine-readable\
    \ metadata is stored as attributes to these free-form datasets. <br /><br />All\
    \ entries in the below table are to be included when data is present. Unused groups\
    \ (e.g., intracellular_ephys in an optophysiology experiment) should not be created\
    \ unless there is data to store within them."
  groups:
  - doc: 'Description of hardware devices used during experiment. COMMENT: Eg, monitors,
      ADC boards, microscopes, etc'
    groups:
    - attributes:
      - doc: Value is 'A recording device e.g. amplifier'
        dtype: text
        name: help
        value: A recording device e.g. amplifier
      doc: One of possibly many. Information about device and device description.
      neurodata_type_def: Device
      neurodata_type_inc: NWBContainer
      quantity: +
    name: devices
    quantity: '?'
  - datasets:
    - attributes:
      - default_value: Contents of format specification file.
        doc: A help statement
        dtype: text
        name: help
        required: false
      - dims:
        - num_namespaces
        doc: Namespaces defined in the file
        dtype: text
        name: namespaces
        shape:
        - null
      doc: Dataset for storing contents of a specification file for either the core
        format or an extension.  Name should match name of file.`
      dtype: text
      neurodata_type_def: SpecFile
      quantity: '*'
    doc: Group for storing format specification files.
    name: specifications
    quantity: '?'
  - attributes:
    - doc: Value is 'Information about the subject'
      dtype: text
      name: help
      value: Information about the subject
    datasets:
    - doc: Age of subject
      dtype: text
      name: age
      quantity: '?'
    - doc: Description of subject and where subject came from (e.g., breeder, if animal)
      dtype: text
      name: description
      quantity: '?'
    - doc: 'Genetic strain COMMENT: If absent, assume Wild Type (WT)'
      dtype: text
      name: genotype
      quantity: '?'
    - doc: Sex of subject
      dtype: text
      name: sex
      quantity: '?'
    - doc: Species of subject
      dtype: text
      name: species
      quantity: '?'
    - doc: ID of animal/person used/participating in experiment (lab convention)
      dtype: text
      name: subject_id
      quantity: '?'
    - doc: Weight at time of experiment, at time of surgery and at other important
        times
      dtype: text
      name: weight
      quantity: '?'
    doc: Information about the animal or person from which the data was measured.
    name: subject
    neurodata_type_def: Subject
    neurodata_type_inc: NWBContainer
    quantity: '?'
  - datasets:
    - doc: A table of all electrodes (i.e. channels) used for recording
      name: electrodes
      neurodata_type_inc: ElectrodeTable
      quantity: '?'
    doc: Metadata related to extracellular electrophysiology.
    groups:
    - doc: One of possibly many groups, one for each electrode group.
      neurodata_type_inc: ElectrodeGroup
      quantity: '*'
    name: extracellular_ephys
    quantity: '?'
  - datasets:
    - doc: 'Description of filtering used. COMMENT: Includes filtering type and parameters,
        frequency fall- off, etc. If this changes between TimeSeries, filter description
        should be stored as a text attribute for each TimeSeries.'
      dtype: text
      name: filtering
      quantity: '?'
    doc: Metadata related to intracellular electrophysiology
    groups:
    - doc: 'One of possibly many. COMMENT: Name should be informative.'
      neurodata_type_inc: IntracellularElectrode
      quantity: '*'
    name: intracellular_ephys
    quantity: '?'
  - doc: Metadata describing optogenetic stimulation
    groups:
    - doc: 'One of possibly many groups describing an optogenetic stimulation site.
        COMMENT: Name is arbitrary but should be meaningful. Name is referenced by
        OptogeneticSeries'
      neurodata_type_inc: OptogeneticStimulusSite
      quantity: '*'
    name: optogenetics
    quantity: '?'
  - doc: Metadata related to optophysiology.
    groups:
    - doc: 'One of possibly many groups describing an imaging plane. COMMENT: Name
        is arbitrary but should be meaningful. It is referenced by TwoPhotonSeries
        and also ImageSegmentation and DfOverF interfaces'
      neurodata_type_inc: ImagingPlane
      quantity: '*'
    name: optophysiology
    quantity: '?'
  name: general
name: root
neurodata_type_def: NWBFile
neurodata_type_inc: NWBContainer

3.3. Base Types

3.3.1. NWBContainer

Description: see Section 2.2.1

YAML Specification:

1
2
3
4
5
6
7
8
9
attributes:
- doc: Short description of what this type of NWBContainer contains.
  dtype: text
  name: help
- doc: Path to the origin of the data represented in this interface.
  dtype: text
  name: source
doc: The attributes specified here are included in all interfaces.
neurodata_type_def: NWBContainer

3.3.2. NWBData

Description: see Section 2.2.2

YAML Specification:

1
2
3
4
5
6
attributes:
- doc: Short description of what this type of Interface contains.
  dtype: text
  name: help
doc: The attributes specified here are included in all interfaces.
neurodata_type_def: NWBData

3.3.3. NWBDataInterface

Extends: NWBContainer

Description: see Section 2.2.3

YAML Specification:

1
2
3
doc: An abstract data type for differentiating experimental data from metadata
neurodata_type_def: NWBDataInterface
neurodata_type_inc: NWBContainer

3.4. TimeSeries Types

3.4.1. AbstractFeatureSeries

Extends: TimeSeries

Description: see Section 2.3.1

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
attributes:
- doc: Value is 'Features of an applied stimulus. This is useful when storing the
    raw stimulus is impractical'
  dtype: text
  name: help
  value: Features of an applied stimulus. This is useful when storing the raw stimulus
    is impractical
datasets:
- attributes:
  - default_value: see 'feature_units'
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: None
    name: unit
    required: false
  dims:
  - num_times
  - num_features
  doc: Values of each feature at each time.
  dtype: float32
  name: data
  shape:
  - null
  - null
- dims:
  - num_features
  doc: Units of each feature.
  dtype: text
  name: feature_units
  quantity: '?'
  shape:
  - null
- dims:
  - num_features
  doc: Description of the features represented in TimeSeries::data.
  dtype: text
  name: features
  shape:
  - null
doc: Abstract features, such as quantitative descriptions of sensory stimuli. The
  TimeSeries::data field is a 2D array, storing those features (e.g., for visual grating
  stimulus this might be orientation, spatial frequency and contrast). Null stimuli
  (eg, uniform gray) can be marked as being an independent feature (eg, 1.0 for gray,
  0.0 for actual stimulus) or by storing NaNs for feature values, or through use of
  the TimeSeries::control fields. A set of features is considered to persist until
  the next set of features is defined. The final set of features stored should be
  the null set.
neurodata_type_def: AbstractFeatureSeries
neurodata_type_inc: TimeSeries

3.4.2. AnnotationSeries

Extends: TimeSeries

Description: see Section 2.3.2

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
attributes:
- doc: Value is 'Time-stamped annotations about an experiment'
  dtype: text
  name: help
  value: Time-stamped annotations about an experiment
datasets:
- attributes:
  - doc: Value is 'float('NaN')'
    dtype: None
    name: conversion
    value: NaN
  - doc: Value is 'float('NaN')'
    dtype: None
    name: resolution
    value: NaN
  - doc: Value is 'n/a'
    dtype: None
    name: unit
    value: n/a
  dims:
  - num_times
  doc: Annotations made during an experiment.
  dtype: text
  name: data
  shape:
  - null
doc: Stores, eg, user annotations made during an experiment. The TimeSeries::data[]
  field stores a text array, and timestamps are stored for each annotation (ie, interval=1).
  This is largely an alias to a standard TimeSeries storing a text array but that
  is identifiable as storing annotations in a machine-readable way.
neurodata_type_def: AnnotationSeries
neurodata_type_inc: TimeSeries

3.4.3. CurrentClampSeries

Extends: PatchClampSeries

Description: see Section 2.3.3

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
attributes:
- doc: Value is 'Voltage recorded from cell during current-clamp recording'
  dtype: text
  name: help
  value: Voltage recorded from cell during current-clamp recording
datasets:
- doc: 'Unit: Amp'
  dtype: float32
  name: bias_current
  quantity: '?'
- doc: 'Unit: Ohm'
  dtype: float32
  name: bridge_balance
  quantity: '?'
- doc: 'Unit: Farad'
  dtype: float32
  name: capacitance_compensation
  quantity: '?'
doc: Stores voltage data recorded from intracellular current-clamp recordings. A corresponding
  CurrentClampStimulusSeries (stored separately as a stimulus) is used to store the
  current injected.
neurodata_type_def: CurrentClampSeries
neurodata_type_inc: PatchClampSeries

3.4.4. CurrentClampStimulusSeries

Extends: PatchClampSeries

Description: see Section 2.3.4

YAML Specification:

1
2
3
4
5
6
7
8
9
attributes:
- doc: Value is 'Stimulus current applied during current clamp recording'
  dtype: text
  name: help
  value: Stimulus current applied during current clamp recording
doc: Aliases to standard PatchClampSeries. Its functionality is to better tag PatchClampSeries
  for machine (and human) readability of the file.
neurodata_type_def: CurrentClampStimulusSeries
neurodata_type_inc: PatchClampSeries

3.4.5. ElectricalSeries

Extends: TimeSeries

Description: see Section 2.3.5

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
attributes:
- doc: Value is 'Stores acquired voltage data from extracellular recordings'
  dtype: text
  name: help
  value: Stores acquired voltage data from extracellular recordings
datasets:
- attributes:
  - default_value: volt
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  dims:
  - - num_times
  - - num_times
    - num_channels
  doc: Recorded voltage data.
  dtype: number
  name: data
  shape:
  - - null
  - - null
    - null
- doc: the electrodes that this series was generated from
  name: electrodes
  neurodata_type_inc: ElectrodeTableRegion
doc: 'Stores acquired voltage data from extracellular recordings. The data field of
  an ElectricalSeries is an int or float array storing data in Volts. TimeSeries::data
  array structure: :blue:`[num times] [num channels] (or [num_times] for single electrode).`'
neurodata_type_def: ElectricalSeries
neurodata_type_inc: TimeSeries

3.4.6. IZeroClampSeries

Extends: CurrentClampSeries

Description: see Section 2.3.6

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
attributes:
- doc: Value is 'Voltage from intracellular recordings when all current and amplifier
    settings are off'
  dtype: text
  name: help
  value: Voltage from intracellular recordings when all current and amplifier settings
    are off
doc: Stores recorded voltage data from intracellular recordings when all current and
  amplifier settings are off (i.e., CurrentClampSeries fields will be zero). There
  is no CurrentClampStimulusSeries associated with an IZero series because the amplifier
  is disconnected and no stimulus can reach the cell.
neurodata_type_def: IZeroClampSeries
neurodata_type_inc: CurrentClampSeries

3.4.7. ImageMaskSeries

Extends: ImageSeries

Description: see Section 2.3.7

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
attributes:
- doc: Value is 'An alpha mask that is applied to a presented visual stimulus'
  dtype: text
  name: help
  value: An alpha mask that is applied to a presented visual stimulus
doc: An alpha mask that is applied to a presented visual stimulus. The data[] array
  contains an array of mask values that are applied to the displayed image. Mask values
  are stored as RGBA. Mask can vary with time. The timestamps array indicates the
  starting time of a mask, and that mask pattern continues until it's explicitly changed.
links:
- doc: Link to ImageSeries that mask is applied to.
  name: masked_imageseries
  target_type: ImageSeries
neurodata_type_def: ImageMaskSeries
neurodata_type_inc: ImageSeries

3.4.8. ImageSeries

Extends: TimeSeries

Description: see Section 2.3.8

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
attributes:
- doc: Value is 'Storage object for time-series 2-D image data'
  dtype: text
  name: help
  value: Storage object for time-series 2-D image data
datasets:
- doc: Number of bit per image pixel.
  dtype: int32
  name: bits_per_pixel
  quantity: '?'
- dims:
  - - x
    - y
  - - frame
    - y
    - x
  - - frame
    - z
    - y
    - x
  doc: Either binary data containing image or empty.
  dtype: number
  name: data
  shape:
  - - null
    - null
  - - null
    - null
    - null
  - - null
    - null
    - null
    - null
- dims:
  - rank
  doc: Number of pixels on x, y, (and z) axes.
  dtype: int32
  name: dimension
  quantity: '?'
  shape:
  - null
- attributes:
  - dims:
    - num_files
    doc: Each entry is the frame number (within the full ImageSeries) of the first
      frame in the corresponding external_file entry. This serves as an index to what
      frames each file contains, allowing random access.Zero-based indexing is used.  (The
      first element will always be zero).
    dtype: int
    name: starting_frame
    shape:
    - null
  dims:
  - num_files
  doc: 'Path or URL to one or more external file(s). Field only present if format=external.
    NOTE: this is only relevant if the image is stored in the file system as one or
    more image file(s). This field should NOT be used if the image is stored in another
    HDF5 file and that file is HDF5 linked to this file.'
  dtype: text
  name: external_file
  quantity: '?'
  shape:
  - null
- doc: Format of image. If this is 'external' then the field external_file contains
    the path or URL information to that file. For tiff, png, jpg, etc, the binary
    representation of the image is stored in data. If the format is raw then the fields
    bit_per_pixel and dimension are used. For raw images, only a single channel is
    stored (eg, red).
  dtype: text
  name: format
  quantity: '?'
doc: 'General image data that is common between acquisition and stimulus time series.
  Sometimes the image data is stored in the HDF5 file in a raw format while other
  times it will be stored as an external image file in the host file system. The data
  field will either be binary data or empty. TimeSeries::data array structure: [frame]
  [y][x] or [frame][z][y][x].'
neurodata_type_def: ImageSeries
neurodata_type_inc: TimeSeries

3.4.9. IndexSeries

Extends: TimeSeries

Description: see Section 2.3.9

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
attributes:
- doc: Value is 'A sequence that is generated from an existing image stack. Frames
    can be presented in an arbitrary order. The data[] field stores frame number in
    reference stack'
  dtype: text
  name: help
  value: A sequence that is generated from an existing image stack. Frames can be
    presented in an arbitrary order. The data[] field stores frame number in reference
    stack
datasets:
- dims:
  - num_times
  doc: Index of the frame in the referenced ImageSeries.
  dtype: int
  name: data
  shape:
  - null
doc: Stores indices to image frames stored in an ImageSeries. The purpose of the ImageIndexSeries
  is to allow a static image stack to be stored somewhere, and the images in the stack
  to be referenced out-of-order. This can be for the display of individual images,
  or of movie segments (as a movie is simply a series of images). The data field stores
  the index of the frame in the referenced ImageSeries, and the timestamps array indicates
  when that image was displayed.
links:
- doc: HDF5 link to TimeSeries containing images that are indexed.
  name: indexed_timeseries
  target_type: ImageSeries
neurodata_type_def: IndexSeries
neurodata_type_inc: TimeSeries

3.4.10. IntervalSeries

Extends: TimeSeries

Description: see Section 2.3.10

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
attributes:
- doc: Value is 'Stores the start and stop times for events'
  dtype: text
  name: help
  value: Stores the start and stop times for events
datasets:
- attributes:
  - doc: Value is 'float('NaN')'
    dtype: None
    name: conversion
    value: NaN
  - doc: Value is 'float('NaN')'
    dtype: None
    name: resolution
    value: NaN
  - doc: Value is 'n/a'
    dtype: None
    name: unit
    value: n/a
  dims:
  - num_times
  doc: '>0 if interval started, <0 if interval ended.'
  dtype: int8
  name: data
  shape:
  - null
doc: Stores intervals of data. The timestamps field stores the beginning and end of
  intervals. The data field stores whether the interval just started (>0 value) or
  ended (<0 value). Different interval types can be represented in the same series
  by using multiple key values (eg, 1 for feature A, 2 for feature B, 3 for feature
  C, etc). The field data stores an 8-bit integer. This is largely an alias of a standard
  TimeSeries but that is identifiable as representing time intervals in a machine-readable
  way.
neurodata_type_def: IntervalSeries
neurodata_type_inc: TimeSeries

3.4.11. OpticalSeries

Extends: ImageSeries

Description: see Section 2.3.11

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
attributes:
- doc: Value is 'Time-series image stack for optical recording or stimulus'
  dtype: text
  name: help
  value: Time-series image stack for optical recording or stimulus
datasets:
- doc: Distance from camera/monitor to target/eye.
  dtype: float32
  name: distance
  quantity: '?'
- dims:
  - - width|height
    - width|height|depth
  doc: Width, height and depto of image, or imaged area (meters).
  dtype: float32
  name: field_of_view
  quantity: '?'
  shape:
  - 2
- doc: Description of image relative to some reference frame (e.g., which way is up).
    Must also specify frame of reference.
  dtype: text
  name: orientation
  quantity: '?'
doc: Image data that is presented or recorded. A stimulus template movie will be stored
  only as an image. When the image is presented as stimulus, additional data is required,
  such as field of view (eg, how much of the visual field the image covers, or how
  what is the area of the target being imaged). If the OpticalSeries represents acquired
  imaging data, orientation is also important.
neurodata_type_def: OpticalSeries
neurodata_type_inc: ImageSeries

3.4.12. OptogeneticSeries

Extends: TimeSeries

Description: see Section 2.3.12

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
attributes:
- doc: Value is 'Optogenetic stimulus'
  dtype: text
  name: help
  value: Optogenetic stimulus
datasets:
- attributes:
  - default_value: watt
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  dims:
  - num_times
  doc: Applied power for optogenetic stimulus.
  dtype: float32
  name: data
  shape:
  - null
doc: Optogenetic stimulus.  The data[] field is in unit of watts.
links:
- doc: link to OptogeneticStimulusSite group that describes the site to which this
    stimulus was applied
  name: site
  target_type: OptogeneticStimulusSite
neurodata_type_def: OptogeneticSeries
neurodata_type_inc: TimeSeries

3.4.13. PatchClampSeries

Extends: TimeSeries

Description: see Section 2.3.13

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
attributes:
- doc: Value is 'Superclass definition for patch-clamp data'
  dtype: text
  name: help
  value: Superclass definition for patch-clamp data
datasets:
- dims:
  - num_times
  doc: Recorded voltage or current.
  dtype: number
  name: data
  shape:
  - null
- doc: 'Units: Volt/Amp (v-clamp) or Volt/Volt (c-clamp)'
  dtype: float
  name: gain
  quantity: '?'
doc: Stores stimulus or response current or voltage. Superclass definition for patch-clamp
  data (this class should not be instantiated directly).
links:
- doc: link to IntracellularElectrode group that describes th electrode that was used
    to apply or record this data
  name: electrode
  target_type: IntracellularElectrode
neurodata_type_def: PatchClampSeries
neurodata_type_inc: TimeSeries

3.4.14. RoiResponseSeries

Extends: TimeSeries

Description: see Section 2.3.14

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
attributes:
- doc: Value is 'ROI responses over an imaging plane. Each element on the second dimension
    of data[] should correspond to the signal from one ROI'
  dtype: text
  name: help
  value: ROI responses over an imaging plane. Each element on the second dimension
    of data[] should correspond to the signal from one ROI
datasets:
- dims:
  - num_times
  - num_ROIs
  doc: Signals from ROIs
  dtype: float32
  name: data
  shape:
  - null
  - null
- doc: a dataset referencing into an ROITable containing information on the ROIs stored
    in this timeseries
  name: rois
  neurodata_type_inc: ROITableRegion
doc: ROI responses over an imaging plane. Each row in data[] should correspond to
  the signal from one ROI.
neurodata_type_def: RoiResponseSeries
neurodata_type_inc: TimeSeries

3.4.15. SpatialSeries

Extends: TimeSeries

Description: see Section 2.3.15

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
attributes:
- doc: Value is 'Stores points in space over time. The data[] array structure is [num
    samples][num spatial dimensions]'
  dtype: text
  name: help
  value: Stores points in space over time. The data[] array structure is [num samples][num
    spatial dimensions]
datasets:
- attributes:
  - default_value: meter
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  dims:
  - num_times
  - num_features
  doc: 2-D array storing position or direction relative to some reference frame.
  dtype: number
  name: data
  shape:
  - null
  - null
- doc: Description defining what exactly 'straight-ahead' means.
  dtype: text
  name: reference_frame
  quantity: '?'
doc: 'Direction, e.g., of gaze or travel, or position. The TimeSeries::data field
  is a 2D array storing position or direction relative to some reference frame. Array
  structure: [num measurements] [num dimensions]. Each SpatialSeries has a text dataset
  reference_frame that indicates the zero-position, or the zero-axes for direction.
  For example, if representing gaze direction, "straight-ahead" might be a specific
  pixel on the monitor, or some other point in space. For position data, the 0,0 point
  might be the top-left corner of an enclosure, as viewed from the tracking camera.
  The unit of data will indicate how to interpret SpatialSeries values.'
neurodata_type_def: SpatialSeries
neurodata_type_inc: TimeSeries

3.4.16. SpikeEventSeries

Extends: ElectricalSeries

Description: see Section 2.3.16

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
attributes:
- doc: Value is 'Snapshots of spike events from data.'
  dtype: text
  name: help
  value: Snapshots of spike events from data.
datasets:
- attributes:
  - default_value: volt
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  dims:
  - - num_events
    - num_samples
  - - num_events
    - num_channels
    - num_samples
  doc: Spike waveforms.
  dtype: float32
  name: data
  shape:
  - - null
    - null
  - - null
    - null
    - null
doc: 'Stores "snapshots" of spike events (i.e., threshold crossings) in data. This
  may also be raw data, as reported by ephys hardware. If so, the TimeSeries::description
  field should describing how events were detected. All SpikeEventSeries should reside
  in a module (under EventWaveform interface) even if the spikes were reported and
  stored by hardware. All events span the same recording channels and store snapshots
  of equal duration. TimeSeries::data array structure: :blue:`[num events] [num channels]
  [num samples] (or [num events] [num samples] for single electrode)`.'
neurodata_type_def: SpikeEventSeries
neurodata_type_inc: ElectricalSeries

3.4.17. TimeSeries

Extends: NWBDataInterface

Description: see Section 2.3.17

YAML Specification:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
attributes:
- default_value: no comments
  doc: Human-readable comments about the TimeSeries. This second descriptive field
    can be used to store additional information, or descriptive information if the
    primary description field is populated with a computer-readable string.
  dtype: text
  name: comments
  required: false
- default_value: no description
  doc: Description of TimeSeries
  dtype: text
  name: description
  required: false
- doc: Value is 'General time series object'
  dtype: text
  name: help
  value: General time series object
- doc: Name of TimeSeries or Modules that serve as the source for the data contained
    here. It can also be the name of a device, for stimulus or acquisition data
  dtype: text
  name: source
datasets:
- dims:
  - num_times
  doc: 'Numerical labels that apply to each element in data[]. COMMENT: Optional field.
    If present, the control array should have the same number of elements as data[].'
  dtype: uint8
  name: control
  quantity: '?'
  shape:
  - null
- dims:
  - num_control_values
  doc: 'Description of each control value. COMMENT: Array length should be as long
    as the highest number in control minus one, generating an zero-based indexed array
    for control values.'
  dtype: text
  name: control_description
  quantity: '?'
  shape:
  - null
- attributes:
  - default_value: 1.0
    doc: Scalar to multiply each element in data to convert it to the specified unit
    dtype: float32
    name: conversion
    required: false
  - default_value: 0.0
    doc: 'Smallest meaningful difference between values in data, stored in the specified
      by unit. COMMENT: E.g., the change in value of the least significant bit, or
      a larger number if signal noise is known to be present. If unknown, use NaN'
    dtype: float32
    name: resolution
    required: false
  - doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
  dims:
  - num_times
  doc: 'Data values. Can also store binary data (eg, image frames) COMMENT: This field
    may be a link to data stored in an external file, especially in the case of raw
    data.'
  name: data
  shape:
  - null
- attributes:
  - doc: 'Sampling rate, in Hz COMMENT: Rate information is stored in Hz'
    dtype: float32
    name: rate
  - doc: Value is 'Seconds'
    dtype: text
    name: unit
    value: Seconds
  doc: 'The timestamp of the first sample. COMMENT: When timestamps are uniformly
    spaced, the timestamp of the first sample can be specified and all subsequent
    ones calculated from the sampling rate.'
  dtype: float64
  name: starting_time
  quantity: '?'
- attributes:
  - doc: Value is '1'
    dtype: int32
    name: interval
    value: 1
  - doc: Value is 'Seconds'
    dtype: text
    name: unit
    value: Seconds
  dims:
  - num_times
  doc: 'Timestamps for samples stored in data.COMMENT: Timestamps here have all been
    corrected to the common experiment master-clock. Time is stored as seconds and
    all timestamps are relative to experiment start time.'
  dtype: float64
  name: timestamps
  quantity: '?'
  shape:
  - null
doc: General purpose time series.
groups:
- doc: "Lab specific time and sync information as provided directly from hardware\
    \ devices and that is necessary for aligning all acquired time information to\
    \ a common timebase. The timestamp array stores time in the common timebase. COMMENT:\
    \ This group will usually only be populated in TimeSeries that are stored external\
    \ to the NWB file, in files storing raw data. Once timestamp data is calculated,\
    \ the contents of 'sync' are mostly for archival purposes."
  name: sync
  quantity: '?'
neurodata_type_def: TimeSeries
neurodata_type_inc: NWBDataInterface

3.4.18. TwoPhotonSeries

Extends: ImageSeries

Description: see Section 2.3.18

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
attributes:
- doc: Value is 'Image stack recorded from 2-photon microscope'
  dtype: text
  name: help
  value: Image stack recorded from 2-photon microscope
- doc: Photomultiplier gain
  dtype: float32
  name: pmt_gain
- doc: Lines imaged per second. This is also stored in /general/optophysiology but
    is kept here as it is useful information for analysis, and so good to be stored
    w/ the actual data.
  dtype: float32
  name: scan_line_rate
datasets:
- dims:
  - width|height|depth
  doc: Width, height and depth of image, or imaged area (meters).
  dtype: float32
  name: field_of_view
  quantity: '?'
  shape:
  - 3
doc: A special case of optical imaging.
links:
- doc: link to ImagingPlane group from which this TimeSeries data was generated
  name: imaging_plane
  target_type: ImagingPlane
neurodata_type_def: TwoPhotonSeries
neurodata_type_inc: ImageSeries

3.4.19. VoltageClampSeries

Extends: PatchClampSeries

Description: see Section 2.3.19

YAML Specification:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
attributes:
- doc: Value is 'Current recorded from cell during voltage-clamp recording'
  dtype: text
  name: help
  value: Current recorded from cell during voltage-clamp recording
datasets:
- attributes:
  - default_value: Farad
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  doc: 'Unit: Farad'
  dtype: float32
  name: capacitance_fast
  quantity: '?'
- attributes:
  - default_value: Farad
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  doc: 'Unit: Farad'
  dtype: float32
  name: capacitance_slow
  quantity: '?'
- attributes:
  - default_value: Hz
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  doc: 'Unit: Hz'
  dtype: float32
  name: resistance_comp_bandwidth
  quantity: '?'
- attributes:
  - default_value: pecent
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  doc: 'Unit: %'
  dtype: float32
  name: resistance_comp_correction
  quantity: '?'
- attributes:
  - default_value: pecent
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  doc: 'Unit: %'
  dtype: float32
  name: resistance_comp_prediction
  quantity: '?'
- attributes:
  - default_value: Farad
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  doc: 'Unit: Farad'
  dtype: float32
  name: whole_cell_capacitance_comp
  quantity: '?'
- attributes:
  - default_value: Ohm
    doc: "The base unit of measure used to store data. This should be in the SI unit.\
      \ COMMENT: This is the SI unit (when appropriate) of the stored data, such as\
      \ Volts. If the actual data is stored in millivolts, the field 'conversion'\
      \ below describes how to convert the data to the specified SI unit."
    dtype: text
    name: unit
    required: false
  doc: 'Unit: Ohm'
  dtype: float32
  name: whole_cell_series_resistance_comp
  quantity: '?'
doc: Stores current data recorded from intracellular voltage-clamp recordings. A corresponding
  VoltageClampStimulusSeries (stored separately as a stimulus) is used to store the
  voltage injected.
neurodata_type_def: VoltageClampSeries
neurodata_type_inc: PatchClampSeries

3.4.20. VoltageClampStimulusSeries

Extends: PatchClampSeries

Description: see Section 2.3.20

YAML Specification:

1
2
3
4
5
6
7
8
9
attributes:
- doc: Value is 'Stimulus voltage applied during voltage clamp recording'
  dtype: text
  name: help
  value: Stimulus voltage applied during voltage clamp recording
doc: Aliases to standard PatchClampSeries. Its functionality is to better tag PatchClampSeries
  for machine (and human) readability of the file.
neurodata_type_def: VoltageClampStimulusSeries
neurodata_type_inc: PatchClampSeries

3.5. Data Processing

3.5.1. BehavioralEpochs

Extends: NWBDataInterface

Description: see Section 2.4.1

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
attributes:
- doc: Value is 'General container for storing behavorial epochs'
  dtype: text
  name: help
  value: General container for storing behavorial epochs
default_name: BehavioralEpochs
doc: TimeSeries for storing behavoioral epochs.  The objective of this and the other
  two Behavioral interfaces (e.g. BehavioralEvents and BehavioralTimeSeries) is to
  provide generic hooks for software tools/scripts. This allows a tool/script to take
  the output one specific interface (e.g., UnitTimes) and plot that data relative
  to another data modality (e.g., behavioral events) without having to define all
  possible modalities in advance. Declaring one of these interfaces means that one
  or more TimeSeries of the specified type is published. These TimeSeries should reside
  in a group having the same name as the interface. For example, if a BehavioralTimeSeries
  interface is declared, the module will have one or more TimeSeries defined in the
  module sub-group "BehavioralTimeSeries". BehavioralEpochs should use IntervalSeries.
  BehavioralEvents is used for irregular events. BehavioralTimeSeries is for continuous
  data.
groups:
- doc: IntervalSeries object containing start and stop times of epochs
  neurodata_type_inc: IntervalSeries
  quantity: '*'
neurodata_type_def: BehavioralEpochs
neurodata_type_inc: NWBDataInterface

3.5.2. BehavioralEvents

Extends: NWBDataInterface

Description: see Section 2.4.2

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
attributes:
- doc: Value is 'Position data, whether along the x, xy or xyz axis'
  dtype: text
  name: help
  value: Position data, whether along the x, xy or xyz axis
default_name: BehavioralEvents
doc: TimeSeries for storing behavioral events. See description of <a href="#BehavioralEpochs">BehavioralEpochs</a>
  for more details.
groups:
- doc: TimeSeries object containing irregular behavioral events
  neurodata_type_inc: TimeSeries
  quantity: '*'
neurodata_type_def: BehavioralEvents
neurodata_type_inc: NWBDataInterface

3.5.3. BehavioralTimeSeries

Extends: NWBDataInterface

Description: see Section 2.4.3

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
attributes:
- doc: Value is 'General container for storing continuously sampled behavioral data.'
  dtype: text
  name: help
  value: General container for storing continuously sampled behavioral data.
default_name: BehavioralTimeSeries
doc: TimeSeries for storing Behavoioral time series data.See description of <a href="#BehavioralEpochs">BehavioralEpochs</a>
  for more details.
groups:
- doc: TimeSeries object containing continuous behavioral data
  neurodata_type_inc: TimeSeries
  quantity: '*'
neurodata_type_def: BehavioralTimeSeries
neurodata_type_inc: NWBDataInterface

3.5.4. ClusterWaveforms

Extends: NWBDataInterface

Description: see Section 2.4.4

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
attributes:
- doc: Value is 'Mean waveform shape of clusters. Waveforms should be high-pass filtered
    (ie, not the same bandpass filter used waveform analysis and clustering)'
  dtype: text
  name: help
  value: Mean waveform shape of clusters. Waveforms should be high-pass filtered (ie,
    not the same bandpass filter used waveform analysis and clustering)
datasets:
- doc: Filtering applied to data before generating mean/sd
  dtype: text
  name: waveform_filtering
- dims:
  - num_clusters
  - num_samples
  doc: The mean waveform for each cluster, using the same indices for each wave as
    cluster numbers in the associated Clustering module (i.e, cluster 3 is in array
    slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty
    (e.g., zero- filled)
  dtype: float32
  name: waveform_mean
  shape:
  - null
  - null
- dims:
  - num_clusters
  - num_samples
  doc: Stdev of waveforms for each cluster, using the same indices as in mean
  dtype: float32
  name: waveform_sd
  shape:
  - null
  - null
default_name: ClusterWaveforms
doc: The mean waveform shape, including standard deviation, of the different clusters.
  Ideally, the waveform analysis should be performed on data that is only high-pass
  filtered. This is a separate module because it is expected to require updating.
  For example, IMEC probes may require different storage requirements to store/display
  mean waveforms, requiring a new interface or an extension of this one.
links:
- doc: HDF5 link to Clustering interface that was the source of the clustered data
  name: clustering_interface
  target_type: Clustering
neurodata_type_def: ClusterWaveforms
neurodata_type_inc: NWBDataInterface

3.5.5. Clustering

Extends: NWBDataInterface

Description: see Section 2.4.5

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
attributes:
- doc: Value is 'Clustered spike data, whether from automatic clustering tools (eg,
    klustakwik) or as a result of manual sorting'
  dtype: text
  name: help
  value: Clustered spike data, whether from automatic clustering tools (eg, klustakwik)
    or as a result of manual sorting
datasets:
- doc: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated
    using Klusters, etc)
  dtype: text
  name: description
- dims:
  - num_events
  doc: Cluster number of each event
  dtype: int32
  name: num
  shape:
  - null
- dims:
  - num_clusters
  doc: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides
    a basic clustering metric).
  dtype: float32
  name: peak_over_rms
  shape:
  - null
- dims:
  - num_events
  doc: Times of clustered events, in seconds. This may be a link to times field in
    associated FeatureExtraction module.
  dtype: float64
  name: times
  shape:
  - null
default_name: Clustering
doc: Clustered spike data, whether from automatic clustering tools (e.g., klustakwik)
  or as a result of manual sorting.
neurodata_type_def: Clustering
neurodata_type_inc: NWBDataInterface

3.5.6. CompassDirection

Extends: NWBDataInterface

Description: see Section 2.4.6

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
attributes:
- doc: Value is 'Direction as measured radially. Spatial series reference frame should
    indicate which direction corresponds to zero and what is the direction of positive
    rotation'
  dtype: text
  name: help
  value: Direction as measured radially. Spatial series reference frame should indicate
    which direction corresponds to zero and what is the direction of positive rotation
default_name: CompassDirection
doc: With a CompassDirection interface, a module publishes a SpatialSeries object
  representing a floating point value for theta. The SpatialSeries::reference_frame
  field should indicate what direction corresponds to 0 and which is the direction
  of rotation (this should be clockwise). The si_unit for the SpatialSeries should
  be radians or degrees.
groups:
- doc: SpatialSeries object containing direction of gaze travel
  neurodata_type_inc: SpatialSeries
  quantity: '*'
neurodata_type_def: CompassDirection
neurodata_type_inc: NWBDataInterface

3.5.7. CorrectedImageStack

Extends: NWBContainer

Description: see Section 2.4.7

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
attributes:
- doc: Value is 'Reuslts from motion correction of an image stack'
  dtype: text
  name: help
  value: Reuslts from motion correction of an image stack
doc: One of possibly many.  Name should be informative.
groups:
- doc: Image stack with frames shifted to the common coordinates.
  name: corrected
  neurodata_type_inc: ImageSeries
- doc: Stores the x,y delta necessary to align each frame to the common coordinates,
    for example, to align each frame to a reference image.
  name: xy_translation
  neurodata_type_inc: TimeSeries
links:
- doc: HDF5 Link to image series that is being registered.
  name: original
  target_type: ImageSeries
neurodata_type_def: CorrectedImageStack
neurodata_type_inc: NWBContainer
quantity: +

3.5.8. DfOverF

Extends: NWBDataInterface

Description: see Section 2.4.8

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
attributes:
- doc: Value is 'Df/f over time of one or more ROIs. TimeSeries names should correspond
    to imaging plane names'
  dtype: text
  name: help
  value: Df/f over time of one or more ROIs. TimeSeries names should correspond to
    imaging plane names
default_name: DfOverF
doc: dF/F information about a region of interest (ROI). Storage hierarchy of dF/F
  should be the same as for segmentation (ie, same names for ROIs and for image planes).
groups:
- doc: RoiResponseSeries object containing dF/F for a ROI
  neurodata_type_inc: RoiResponseSeries
  quantity: '*'
neurodata_type_def: DfOverF
neurodata_type_inc: NWBDataInterface

3.5.9. Epochs

Extends: NWBContainer

Description: see Section 2.4.9

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
attributes:
- doc: Value is 'A general epoch object'
  dtype: text
  name: help
  value: A general epoch object
datasets:
- doc: the EpochTable holding information about each Epoch
  name: epochs
  neurodata_type_inc: EpochTable
- doc: the TimeSeriesIndex table holding indices into each TimeSeries for each Epoch
  name: timeseries_index
  neurodata_type_inc: TimeSeriesIndex
doc: A container for aggregating epoch data and the TimeSeries that each epoch applies
  to
neurodata_type_def: Epochs
neurodata_type_inc: NWBContainer

3.5.10. EventDetection

Extends: NWBDataInterface

Description: see Section 2.4.10

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
attributes:
- doc: Value is 'Detected spike events from voltage trace(s)'
  dtype: text
  name: help
  value: Detected spike events from voltage trace(s)
datasets:
- doc: Description of how events were detected, such as voltage threshold, or dV/dT
    threshold, as well as relevant values.
  dtype: text
  name: detection_method
- dims:
  - num_events
  doc: Indices (zero-based) into source ElectricalSeries::data array corresponding
    to time of event. Module description should define what is meant by time of event
    (e.g., .25msec before action potential peak, zero-crossing time, etc). The index
    points to each event from the raw data
  dtype: int32
  name: source_idx
  shape:
  - null
- attributes:
  - default_value: Seconds
    doc: The string "Seconds"
    dtype: text
    name: unit
    required: false
  dims:
  - num_events
  doc: Timestamps of events, in Seconds
  dtype: float64
  name: times
  shape:
  - null
default_name: EventDetection
doc: Detected spike events from voltage trace(s).
links:
- doc: HDF5 link to ElectricalSeries that this data was calculated from. Metadata
    about electrodes and their position can be read from that ElectricalSeries so
    it's not necessary to mandate that information be stored here
  name: source_electricalseries
  target_type: ElectricalSeries
neurodata_type_def: EventDetection
neurodata_type_inc: NWBDataInterface

3.5.11. EventWaveform

Extends: NWBDataInterface

Description: see Section 2.4.11

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
attributes:
- doc: Value is 'Waveform of detected extracellularly recorded spike events'
  dtype: text
  name: help
  value: Waveform of detected extracellularly recorded spike events
default_name: EventWaveform
doc: Represents either the waveforms of detected events, as extracted from a raw data
  trace in /acquisition, or the event waveforms that were stored during experiment
  acquisition.
groups:
- doc: SpikeEventSeries object containing detected spike event waveforms
  neurodata_type_inc: SpikeEventSeries
  quantity: '*'
neurodata_type_def: EventWaveform
neurodata_type_inc: NWBDataInterface

3.5.12. EyeTracking

Extends: NWBDataInterface

Description: see Section 2.4.12

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
attributes:
- doc: Value is 'Eye-tracking data, representing direction of gaze'
  dtype: text
  name: help
  value: Eye-tracking data, representing direction of gaze
default_name: EyeTracking
doc: Eye-tracking data, representing direction of gaze.
groups:
- doc: SpatialSeries object containing data measuring direction of gaze
  neurodata_type_inc: SpatialSeries
  quantity: '*'
neurodata_type_def: EyeTracking
neurodata_type_inc: NWBDataInterface

3.5.13. FeatureExtraction

Extends: NWBDataInterface

Description: see Section 2.4.13

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
attributes:
- doc: Value is 'Container for salient features of detected events'
  dtype: text
  name: help
  value: Container for salient features of detected events
datasets:
- dims:
  - num_features
  doc: Description of features (eg, "PC1") for each of the extracted features.
  dtype: text
  name: description
  shape:
  - null
- dims:
  - num_events
  - num_channels
  - num_features
  doc: Multi-dimensional array of features extracted from each event.
  dtype: float32
  name: features
  shape:
  - null
  - null
  - null
- dims:
  - num_events
  doc: Times of events that features correspond to (can be a link).
  dtype: float64
  name: times
  shape:
  - null
- doc: the electrodes that this series was generated from
  name: electrodes
  neurodata_type_inc: ElectrodeTableRegion
default_name: FeatureExtraction
doc: Features, such as PC1 and PC2, that are extracted from signals stored in a SpikeEvent
  TimeSeries or other source.
neurodata_type_def: FeatureExtraction
neurodata_type_inc: NWBDataInterface

3.5.14. FilteredEphys

Extends: NWBDataInterface

Description: see Section 2.4.14

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
attributes:
- doc: Value is 'Ephys data from one or more channels that is subjected to filtering,
    such as for gamma or theta oscillations (LFP has its own interface). Filter properties
    should be noted in the ElectricalSeries'
  dtype: text
  name: help
  value: Ephys data from one or more channels that is subjected to filtering, such
    as for gamma or theta oscillations (LFP has its own interface). Filter properties
    should be noted in the ElectricalSeries
default_name: FilteredEphys
doc: Ephys data from one or more channels that has been subjected to filtering. Examples
  of filtered data include Theta and Gamma (LFP has its own interface). FilteredEphys
  modules publish an ElectricalSeries for each filtered channel or set of channels.
  The name of each ElectricalSeries is arbitrary but should be informative. The source
  of the filtered data, whether this is from analysis of another time series or as
  acquired by hardware, should be noted in each's TimeSeries::description field. There
  is no assumed 1::1 correspondence between filtered ephys signals and electrodes,
  as a single signal can apply to many nearby electrodes, and one electrode may have
  different filtered (e.g., theta and/or gamma) signals represented.
groups:
- doc: ElectricalSeries object containing filtered electrophysiology data
  neurodata_type_inc: ElectricalSeries
  quantity: +
neurodata_type_def: FilteredEphys
neurodata_type_inc: NWBDataInterface

3.5.15. Fluorescence

Extends: NWBDataInterface

Description: see Section 2.4.15

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
attributes:
- doc: Value is 'Fluorescence over time of one or more ROIs. TimeSeries names should
    correspond to imaging plane names'
  dtype: text
  name: help
  value: Fluorescence over time of one or more ROIs. TimeSeries names should correspond
    to imaging plane names
default_name: Fluorescence
doc: Fluorescence information about a region of interest (ROI). Storage hierarchy
  of fluorescence should be the same as for segmentation (ie, same names for ROIs
  and for image planes).
groups:
- doc: RoiResponseSeries object containing fluorescence data for a ROI
  neurodata_type_inc: RoiResponseSeries
  quantity: +
neurodata_type_def: Fluorescence
neurodata_type_inc: NWBDataInterface

3.5.16. ImageSegmentation

Extends: NWBDataInterface

Description: see Section 2.4.16

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
attributes:
- doc: Value is 'Stores groups of pixels that define regions of interest from one
    or more imaging planes'
  dtype: text
  name: help
  value: Stores groups of pixels that define regions of interest from one or more
    imaging planes
default_name: ImageSegmentation
doc: Stores pixels in an image that represent different regions of interest (ROIs)
  or masks. All segmentation for a given imaging plane is stored together, with storage
  for multiple imaging planes (masks) supported. Each ROI is stored in its own subgroup,
  with the ROI group containing both a 2D mask and a list of pixels that make up this
  mask. Segments can also be used for masking neuropil. If segmentation is allowed
  to change with time, a new imaging plane (or module) is required and ROI names should
  remain consistent between them.
groups:
- attributes:
  - doc: Value is 'Results from segmentation of an imaging plane'
    dtype: text
    name: help
    value: Results from segmentation of an imaging plane
  datasets:
  - doc: Description of image plane, recording wavelength, depth, etc
    dtype: text
    name: description
    quantity: '?'
  - doc: Pixel masks for each ROI. Pixel masks are concatenated and parsing of this
      dataset is maintained by the ROITable
    name: pixel_masks
    neurodata_type_inc: PixelMasks
  - doc: ROI masks for each ROI
    name: image_masks
    neurodata_type_inc: ImageMasks
  - doc: ROIs resulting from the segmentation of the imaging plane linked in this
      PlaneSegmentation
    name: rois
    neurodata_type_inc: ROITable
  doc: Group name is human-readable description of imaging plane
  groups:
  - doc: Stores image stacks segmentation mask apply to.
    groups:
    - doc: One or more image stacks that the masks apply to (can be one-element stack)
      neurodata_type_inc: ImageSeries
    name: reference_images
  links:
  - doc: link to ImagingPlane group from which this TimeSeries data was generated
    name: imaging_plane
    target_type: ImagingPlane
  neurodata_type_def: PlaneSegmentation
  neurodata_type_inc: NWBContainer
  quantity: '*'
neurodata_type_def: ImageSegmentation
neurodata_type_inc: NWBDataInterface

3.5.17. Images

Extends: NWBDataInterface

Description: see Section 2.4.17

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
attributes:
- doc: Description of images in this container
  dtype: text
  name: description
- doc: Value is 'A collection of images that have some meaningful relationship'
  dtype: text
  name: help
  value: A collection of images that have some meaningful relationship
datasets:
- doc: Images stored in this NWBDataInterface
  neurodata_type_inc: Image
  quantity: +
default_name: Images
doc: A NWBDataInterface for storing images that have some relationship
neurodata_type_def: Images
neurodata_type_inc: NWBDataInterface

3.5.18. ImagingPlane

Extends: NWBContainer

Description: see Section 2.4.18

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
attributes:
- doc: Value is 'Metadata about an imaging plane'
  dtype: text
  name: help
  value: Metadata about an imaging plane
datasets:
- doc: Description of &lt;image_plane_X&gt;
  dtype: text
  name: description
  quantity: '?'
- doc: Name of device in /general/devices
  dtype: text
  name: device
- doc: Excitation wavelength
  dtype: float
  name: excitation_lambda
- doc: Rate images are acquired, in Hz.
  dtype: text
  name: imaging_rate
- doc: Calcium indicator
  dtype: text
  name: indicator
- doc: Location of image plane
  dtype: text
  name: location
- attributes:
  - default_value: 1.0
    doc: Multiplier to get from stored values to specified unit (e.g., 1e-3 for millimeters)
    dtype: float
    name: conversion
    required: false
  - default_value: Meter
    doc: Base unit that coordinates are stored in (e.g., Meters)
    dtype: text
    name: unit
    required: false
  dims:
  - height
  - weight
  - x|y|z
  doc: 'Physical position of each pixel. COMMENT: "xyz" represents the position of
    the pixel relative to the defined coordinate space'
  dtype: float32
  name: manifold
  shape:
  - null
  - null
  - 3
- doc: 'Describes position and reference frame of manifold based on position of first
    element in manifold. For example, text description of anotomical location or vectors
    needed to rotate to common anotomical axis (eg, AP/DV/ML). COMMENT: This field
    is necessary to interpret manifold. If manifold is not present then this field
    is not required'
  dtype: text
  name: reference_frame
doc: 'One of possibly many groups describing an imaging plane. COMMENT: Name is arbitrary
  but should be meaningful. It is referenced by TwoPhotonSeries and also ImageSegmentation
  and DfOverF interfaces'
groups:
- attributes:
  - doc: Value is 'Metadata about an optical channel used to record from an imaging
      plane'
    dtype: text
    name: help
    value: Metadata about an optical channel used to record from an imaging plane
  datasets:
  - doc: Any notes or comments about the channel
    dtype: text
    name: description
  - doc: Emission lambda for channel
    dtype: float
    name: emission_lambda
  doc: 'One of possibly many groups storing channel-specific data COMMENT: Name is
    arbitrary but should be meaningful'
  neurodata_type_def: OpticalChannel
  neurodata_type_inc: NWBContainer
neurodata_type_def: ImagingPlane
neurodata_type_inc: NWBContainer
quantity: '*'

3.5.19. ImagingRetinotopy

Extends: NWBContainer

Description: see Section 2.4.19

YAML Specification:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
attributes:
- doc: Value is 'Intrinsic signal optical imaging or Widefield imaging for measuring
    retinotopy'
  dtype: text
  name: help
  value: Intrinsic signal optical imaging or Widefield imaging for measuring retinotopy
datasets:
- attributes:
  - dims:
    - row_col
    doc: 'Number of rows and columns in the image. NOTE: row, column representation
      is equivalent to height,width.'
    dtype: int32
    name: dimension
    shape:
    - null
  - dims:
    - row|column
    doc: Size of viewing area, in meters
    dtype: float
    name: field_of_view
    shape:
    - null
  - doc: Unit that axis data is stored in (e.g., degrees)
    dtype: text
    name: unit
  dims:
  - num_rows
  - num_cols
  doc: Phase response to stimulus on the first measured axis
  dtype: float32
  name: axis_1_phase_map
  shape:
  - null
  - null
- attributes:
  - dims:
    - row_col
    doc: 'Number of rows and columns in the image. NOTE: row, column representation
      is equivalent to height,width.'
    dtype: int32
    name: dimension
    shape:
    - null
  - dims:
    - row_col
    doc: Size of viewing area, in meters
    dtype: float
    name: field_of_view
    shape:
    - null
  - doc: Unit that axis data is stored in (e.g., degrees)
    dtype: text
    name: unit
  dims:
  - num_rows
  - num_cols
  doc: Power response on the first measured axis. Response is scaled so 0.0 is no
    power in the response and 1.0 is maximum relative power.
  dtype: float32
  name: axis_1_power_map
  quantity: '?'
  shape:
  - null
  - null
- attributes:
  - dims:
    - row_col
    doc: 'Number of rows and columns in the image. NOTE: row, column representation
      is equivalent to height,width.'
    dtype: int32
    name: dimension
    shape:
    - null
  - dims:
    - row_col
    doc: Size of viewing area, in meters
    dtype: float
    name: field_of_view
    shape:
    - null
  - doc: Unit that axis data is stored in (e.g., degrees)
    dtype: text
    name: unit
  dims:
  - num_rows
  - num_cols
  doc: Phase response to stimulus on the second measured axis
  dtype: float32
  name: axis_2_phase_map
  shape:
  - null
  - null
- attributes:
  - dims:
    - row_col
    doc: 'Number of rows and columns in the image. NOTE: row, column representation
      is equivalent to height,width.'
    dtype: int32
    name: dimension
    shape:
    - null
  - dims:
    - row_col
    doc: Size of viewing area, in meters
    dtype: float
    name: field_of_view
    shape:
    - null
  - doc: Unit that axis data is stored in (e.g., degrees)
    dtype: text
    name: unit
  dims:
  - num_rows
  - num_cols
  doc: Power response on the second measured axis. Response is scaled so 0.0 is no
    power in the response and 1.0 is maximum relative power.
  dtype: float32
  name: axis_2_power_map
  quantity: '?'
  shape:
  - null
  - null
- dims:
  - '2'
  doc: Two-element array describing the contents of the two response axis fields.
    Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']
  dtype: text
  name: axis_descriptions
  shape:
  - null
- attributes:
  - doc: Number of bits used to represent each value. This is necessary to determine
      maximum (white) pixel value
    dtype: int32
    name: bits_per_pixel
  - dims:
    - row_col
    doc: 'Number of rows and columns in the image. NOTE: row, column representation
      is equivalent to height,width.'
    dtype: int32
    name: dimension
    shape:
    - null
  - dims:
    - row_col
    doc: Size of viewing area, in meters
    dtype: float
    name: field_of_view
    shape:
    - null
  - doc: Focal depth offset, in meters
    dtype: float
    name: focal_depth
  - doc: Format of image. Right now only 'raw' supported
    dtype: text
    name: format
  dims:
  - num_rows
  - num_cols
  doc: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength)
    as data collection. Array format: [rows][columns]'
  dtype: uint16
  name: focal_depth_image
  shape:
  - null
  - null
- attributes:
  - dims:
    - row_col
    doc: 'Number of rows and columns in the image. NOTE: row, column representation
      is equivalent to height,width.'
    dtype: int32
    name: dimension
    shape:
    - null
  - dims:
    - row_col
    doc: Size of viewing area, in meters.
    dtype: float
    name: field_of_view
    shape:
    - null
  dims:
  - num_rows
  - num_cols
  doc: Sine of the angle between the direction of the gradient in axis_1 and axis_2
  dtype: float32
  name: sign_map
  shape:
  - null
  - null
- attributes:
  - doc: Number of bits used to represent each value. This is necessary to determine
      maximum (white) pixel value
    dtype: int32
    name: bits_per_pixel
  - dims:
    - row_col
    doc: 'Number of rows and columns in the image. NOTE: row, column representation
      is equivalent to height,width.'
    dtype: int32
    name: dimension
    shape:
    - null
  - dims:
    - row_col
    doc: Size of viewing area, in meters
    dtype: float
    name: field_of_view
    shape:
    - null
  - doc: Format of image. Right now only 'raw' supported
    dtype: text
    name: format
  dims:
  - num_rows
  - num_cols
  doc: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]'
  dtype: uint16
  name: vasculature_image
  shape:
  - null
  - null
default_name: ImagingRetinotopy
doc: 'Intrinsic signal optical imaging or widefield imaging for measuring retinotopy.
  Stores orthogonal maps (e.g., altitude/azimuth; radius/theta) of responses to specific
  stimuli and a combined polarity map from which to identify visual areas.<br />Note:
  for data consistency, all images and arrays are stored in the format [row][column]
  and [row, col], which equates to [y][x]. Field of view and dimension arrays may
  appear backward (i.e., y before x).'
neurodata_type_def: ImagingRetinotopy
neurodata_type_inc: NWBContainer

3.5.20. IntracellularElectrode

Extends: NWBContainer

Description: see Section 2.4.20

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
attributes:
- doc: Value is 'Metadata about an intracellular electrode'
  dtype: text
  name: help
  value: Metadata about an intracellular electrode
datasets:
- doc: 'Recording description, description of electrode (e.g.,  whole-cell, sharp,
    etc)COMMENT: Free-form text (can be from Methods)'
  dtype: text
  name: description
- doc: Name(s) of devices in general/devices
  dtype: text
  name: device
  quantity: '?'
- doc: Electrode specific filtering.
  dtype: text
  name: filtering
  quantity: '?'
- doc: Initial access resistance
  dtype: text
  name: initial_access_resistance
  quantity: '?'
- doc: Area, layer, comments on estimation, stereotaxis coordinates (if in vivo, etc)
  dtype: text
  name: location
  quantity: '?'
- doc: 'Electrode resistance COMMENT: unit: Ohm'
  dtype: text
  name: resistance
  quantity: '?'
- doc: Information about seal used for recording
  dtype: text
  name: seal
  quantity: '?'
- doc: Information about slice used for recording
  dtype: text
  name: slice
  quantity: '?'
doc: 'One of possibly many. COMMENT: Name should be informative.'
neurodata_type_def: IntracellularElectrode
neurodata_type_inc: NWBContainer

3.5.21. LFP

Extends: NWBDataInterface

Description: see Section 2.4.21

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
attributes:
- doc: Value is 'LFP data from one or more channels. Filter properties should be noted
    in the ElectricalSeries'
  dtype: text
  name: help
  value: LFP data from one or more channels. Filter properties should be noted in
    the ElectricalSeries
default_name: LFP
doc: LFP data from one or more channels. The electrode map in each published ElectricalSeries
  will identify which channels are providing LFP data. Filter properties should be
  noted in the ElectricalSeries description or comments field.
groups:
- doc: ElectricalSeries object containing LFP data for one or channels
  neurodata_type_inc: ElectricalSeries
  quantity: +
neurodata_type_def: LFP
neurodata_type_inc: NWBDataInterface

3.5.22. MotionCorrection

Extends: NWBDataInterface

Description: see Section 2.4.22

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
attributes:
- doc: Value is 'Image stacks whose frames have been shifted (registered) to account
    for motion'
  dtype: text
  name: help
  value: Image stacks whose frames have been shifted (registered) to account for motion
default_name: MotionCorrection
doc: 'An image stack where all frames are shifted (registered) to a common coordinate
  system, to account for movement and drift between frames. Note: each frame at each
  point in time is assumed to be 2-D (has only x & y dimensions).'
groups:
- attributes:
  - doc: Value is 'Reuslts from motion correction of an image stack'
    dtype: text
    name: help
    value: Reuslts from motion correction of an image stack
  doc: One of possibly many.  Name should be informative.
  groups:
  - doc: Image stack with frames shifted to the common coordinates.
    name: corrected
    neurodata_type_inc: ImageSeries
  - doc: Stores the x,y delta necessary to align each frame to the common coordinates,
      for example, to align each frame to a reference image.
    name: xy_translation
    neurodata_type_inc: TimeSeries
  links:
  - doc: HDF5 Link to image series that is being registered.
    name: original
    target_type: ImageSeries
  neurodata_type_def: CorrectedImageStack
  neurodata_type_inc: NWBContainer
  quantity: +
neurodata_type_def: MotionCorrection
neurodata_type_inc: NWBDataInterface

3.5.23. OpticalChannel

Extends: NWBContainer

Description: see Section 2.4.23

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
attributes:
- doc: Value is 'Metadata about an optical channel used to record from an imaging
    plane'
  dtype: text
  name: help
  value: Metadata about an optical channel used to record from an imaging plane
datasets:
- doc: Any notes or comments about the channel
  dtype: text
  name: description
- doc: Emission lambda for channel
  dtype: float
  name: emission_lambda
doc: 'One of possibly many groups storing channel-specific data COMMENT: Name is arbitrary
  but should be meaningful'
neurodata_type_def: OpticalChannel
neurodata_type_inc: NWBContainer

3.5.24. OptogeneticStimulusSite

Extends: NWBContainer

Description: see Section 2.4.24

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
attributes:
- doc: Value is 'Metadata about an optogenetic stimulus site'
  dtype: text
  name: help
  value: Metadata about an optogenetic stimulus site
datasets:
- doc: Description of site
  dtype: text
  name: description
- doc: Name of device in /general/devices
  dtype: text
  name: device
- doc: Excitation wavelength
  dtype: text
  name: excitation_lambda
- doc: Location of stimulation site
  dtype: text
  name: location
doc: 'One of possibly many groups describing an optogenetic stimulation site. COMMENT:
  Name is arbitrary but should be meaningful. Name is referenced by OptogeneticSeries'
neurodata_type_def: OptogeneticStimulusSite
neurodata_type_inc: NWBContainer
quantity: '*'

3.5.25. PlaneSegmentation

Extends: NWBContainer

Description: see Section 2.4.25

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
attributes:
- doc: Value is 'Results from segmentation of an imaging plane'
  dtype: text
  name: help
  value: Results from segmentation of an imaging plane
datasets:
- doc: Description of image plane, recording wavelength, depth, etc
  dtype: text
  name: description
  quantity: '?'
- doc: Pixel masks for each ROI. Pixel masks are concatenated and parsing of this
    dataset is maintained by the ROITable
  name: pixel_masks
  neurodata_type_inc: PixelMasks
- doc: ROI masks for each ROI
  name: image_masks
  neurodata_type_inc: ImageMasks
- doc: ROIs resulting from the segmentation of the imaging plane linked in this PlaneSegmentation
  name: rois
  neurodata_type_inc: ROITable
doc: Group name is human-readable description of imaging plane
groups:
- doc: Stores image stacks segmentation mask apply to.
  groups:
  - doc: One or more image stacks that the masks apply to (can be one-element stack)
    neurodata_type_inc: ImageSeries
  name: reference_images
links:
- doc: link to ImagingPlane group from which this TimeSeries data was generated
  name: imaging_plane
  target_type: ImagingPlane
neurodata_type_def: PlaneSegmentation
neurodata_type_inc: NWBContainer
quantity: '*'

3.5.26. Position

Extends: NWBDataInterface

Description: see Section 2.4.26

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
attributes:
- doc: Value is 'Position data, whether along the x, xy or xyz axis'
  dtype: text
  name: help
  value: Position data, whether along the x, xy or xyz axis
default_name: Position
doc: Position data, whether along the x, x/y or x/y/z axis.
groups:
- doc: SpatialSeries object containing position data
  neurodata_type_inc: SpatialSeries
  quantity: +
neurodata_type_def: Position
neurodata_type_inc: NWBDataInterface

3.5.27. ProcessingModule

Extends: NWBContainer

Description: see Section 2.4.27

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
attributes:
- doc: Description of Module
  dtype: text
  name: description
- doc: Value is 'A collection of analysis outputs from processing of data'
  dtype: text
  name: help
  value: A collection of analysis outputs from processing of data
doc: Module.  Name should be descriptive. Stores a collection of related data organized
  by contained interfaces.  Each interface is a contract specifying content related
  to a particular type of data.
groups:
- doc: Interface objects containing data output from processing steps
  neurodata_type_inc: NWBDataInterface
  quantity: '*'
neurodata_type_def: ProcessingModule
neurodata_type_inc: NWBContainer

3.5.28. PupilTracking

Extends: NWBDataInterface

Description: see Section 2.4.28

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
attributes:
- doc: Value is 'Eye-tracking data, representing pupil size'
  dtype: text
  name: help
  value: Eye-tracking data, representing pupil size
default_name: PupilTracking
doc: Eye-tracking data, representing pupil size.
groups:
- doc: TimeSeries object containing time series data on pupil size
  neurodata_type_inc: TimeSeries
  quantity: +
neurodata_type_def: PupilTracking
neurodata_type_inc: NWBDataInterface

3.5.29. UnitTimes

Extends: NWBDataInterface

Description: see Section 2.4.29

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
attributes:
- doc: Value is 'Estimated spike times from a single unit'
  dtype: text
  name: help
  value: Estimated spike times from a single unit
datasets:
- doc: a unique identifier for each element
  name: unit_ids
  neurodata_type_inc: ElementIdentifiers
- doc: the index into the spike times dataset
  name: spike_times_index
  neurodata_type_inc: VectorIndex
- doc: the index into the vector data
  name: spike_times
  neurodata_type_inc: VectorData
default_name: UnitTimes
doc: Event times of observed units (e.g. cell, synapse, etc.). The UnitTimes group
  contains a group for each unit. The name of the group should match the value in
  the source module, if that is possible/relevant (e.g., name of ROIs from Segmentation
  module).
neurodata_type_def: UnitTimes
neurodata_type_inc: NWBDataInterface

3.6. Primitive Types

3.6.1. VectorData

Extends: NWBData

Description: see Section 2.5.1

YAML Specification:

1
2
3
4
5
6
7
8
9
attributes:
- doc: a help string
  dtype: text
  name: help
  value: Values for a list of elements
default_name: vector_data
doc: Data values indexed by pointer
neurodata_type_def: VectorData
neurodata_type_inc: NWBData

3.6.2. VectorIndex

Extends: NWBData

Description: see Section 2.5.2

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
attributes:
- doc: a help string
  dtype: text
  name: help
  value: indexes into a list of values for a list of elements
default_name: vector_index
doc: Pointers that index data values
dtype:
  reftype: region
  target_type: VectorData
neurodata_type_def: VectorIndex
neurodata_type_inc: NWBData
shape:
- null

3.6.3. ElementIdentifiers

Extends: NWBData

Description: see Section 2.5.3

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
attributes:
- doc: a help string
  dtype: text
  name: help
  value: unique identifiers for a list of elements
default_name: element_id
doc: a unique identifier for each element
dtype: int
neurodata_type_def: ElementIdentifiers
neurodata_type_inc: NWBData
shape:
- null

3.7. Other Types

3.7.1. Device

Extends: NWBContainer

Description: see Section 2.6.1

YAML Specification:

1
2
3
4
5
6
7
8
9
attributes:
- doc: Value is 'A recording device e.g. amplifier'
  dtype: text
  name: help
  value: A recording device e.g. amplifier
doc: One of possibly many. Information about device and device description.
neurodata_type_def: Device
neurodata_type_inc: NWBContainer
quantity: +

3.7.2. ElectrodeGroup

Extends: NWBContainer

Description: see Section 2.6.2

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
attributes:
- doc: Value is 'Metadata about a physical grouping of channels'
  dtype: text
  name: help
  value: A physical grouping of channels
- doc: description of this electrode group
  dtype: text
  name: description
- doc: description of location of this electrode group
  dtype: text
  name: location
doc: One of possibly many groups, one for each electrode group.
links:
- doc: the device that was used to record from this electrode group
  name: device
  quantity: '?'
  target_type: Device
neurodata_type_def: ElectrodeGroup
neurodata_type_inc: NWBContainer

3.7.3. ElectrodeTable

Extends: NWBData

Description: see Section 2.6.3

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
attributes:
- doc: Value is 'a table for storing data about extracellular electrodes'
  dtype: text
  name: help
  value: a table for storing data about extracellular electrodes
doc: a table for storing queryable information about electrodes in a single table
dtype:
- doc: a user-specified unique identifier
  dtype: int
  name: id
- doc: the x coordinate of the channels location
  dtype: float
  name: x
- doc: the y coordinate of the channels location
  dtype: float
  name: y
- doc: the z coordinate of the channels location
  dtype: float
  name: z
- doc: the impedance of the channel
  dtype: float
  name: imp
- doc: the location of channel within the subject e.g. brain region
  dtype: ascii
  name: location
- doc: description of hardware filtering
  dtype: ascii
  name: filtering
- doc: a brief description of what this electrode is
  dtype: utf8
  name: description
- doc: a reference to the ElectrodeGroup this electrode is a part of
  dtype:
    reftype: object
    target_type: ElectrodeGroup
  name: group
- doc: the name of the ElectrodeGroup this electrode is a part of
  dtype: ascii
  name: group_name
neurodata_type_def: ElectrodeTable
neurodata_type_inc: NWBData

3.7.4. ElectrodeTableRegion

Extends: NWBData

Description: see Section 2.6.4

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
attributes:
- doc: a description of this subset of electrodes
  dtype: utf8
  name: description
- doc: Value is 'a subset (i.e. slice or region) of an ElectrodeTable'
  dtype: text
  name: help
  value: a subset (i.e. slice or region) of an ElectrodeTable
doc: a dataset for subsetting ElectrodeTables
dtype:
  reftype: region
  target_type: ElectrodeTable
neurodata_type_def: ElectrodeTableRegion
neurodata_type_inc: NWBData

3.7.5. EpochTable

Extends: EventTable

Description: see Section 2.6.5

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
attributes:
- doc: Value is 'A table for storing epoch data'
  dtype: text
  name: help
  value: A table for storing epoch data
doc: One of possibly many different experimental epoch
dtype:
- doc: Description of this epoch.
  dtype: text
  name: description
neurodata_type_def: EpochTable
neurodata_type_inc: EventTable

3.7.6. EpochTableRegion

Extends: NWBData

Description: see Section 2.6.6

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
attributes:
- doc: a description of this subset of epochs
  dtype: utf8
  name: description
- doc: Value is 'a subset (i.e. slice or region) of an EpochTable'
  dtype: text
  name: help
  value: a subset (i.e. slice or region) of an EpochTable
doc: a dataset for subsetting EpochTables
dtype:
  reftype: region
  target_type: EpochTable
neurodata_type_def: EpochTableRegion
neurodata_type_inc: NWBData

3.7.7. EventTable

Extends: NWBData

Description: see Section 2.6.7

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
attributes:
- doc: Value is 'A table for storing start/stop times for events'
  dtype: text
  name: help
  value: A table for storing epoch data
doc: One of possibly many different experimental epoch
dtype:
- doc: Start time of epoch, in seconds
  dtype: float64
  name: start_time
- doc: Stop time of epoch, in seconds
  dtype: float64
  name: stop_time
- doc: User-defined tags that identify events. Tags are to help identify or categorize
    events.
  dtype: text
  name: tags
- doc: Stop time of epoch, in seconds
  dtype:
    reftype: region
    target_type: TimeSeriesIndex
  name: timeseries
neurodata_type_def: EventTable
neurodata_type_inc: NWBData

3.7.8. ImageMasks

Extends: NWBData

Description: see Section 2.6.8

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
attributes:
- doc: a help string
  dtype: text
  name: help
  value: an array of image masks
dims:
- num_roi
- num_x
- num_y
doc: ROI mask, represented in 2D ([y][x]) intensity image
dtype: float
neurodata_type_def: ImageMasks
neurodata_type_inc: NWBData
shape:
- null
- null
- null

3.7.9. PixelMasks

Extends: VectorData

Description: see Section 2.6.9

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
attributes:
- doc: a help string
  dtype: text
  name: help
  value: a concatenated array of pixel masks
doc: a table for storing pixel masks
dtype:
- doc: the pixel x-coordinate
  dtype: uint
  name: x
- doc: the pixel y-coordinate
  dtype: uint
  name: y
- doc: the weight of the pixel
  dtype: float
  name: weight
neurodata_type_def: PixelMasks
neurodata_type_inc: VectorData

3.7.10. ROITable

Extends: NWBData

Description: see Section 2.6.10

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
attributes:
- doc: a help string
  dtype: text
  name: help
  value: A table for storing ROI data
doc: A table for storing references to the image mask and pixel mask for each ROI
dtype:
- doc: a name for this ROI
  dtype: ascii
  name: name
- doc: a reference into a the dataset of pixel masks
  dtype:
    reftype: region
    target_type: PixelMasks
  name: pixel_mask
- doc: a reference into a the dataset of image masks
  dtype:
    reftype: region
    target_type: ImageMasks
  name: image_mask
neurodata_type_def: ROITable
neurodata_type_inc: NWBData

3.7.11. ROITableRegion

Extends: NWBData

Description: see Section 2.6.11

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
attributes:
- doc: a help string
  dtype: text
  name: help
  value: A region reference to an ROITable
- doc: a description of this subset of ROIs
  dtype: utf8
  name: description
doc: A region reference for subsetting an ROITable
dtype:
  reftype: region
  target_type: ROITable
neurodata_type_def: ROITableRegion
neurodata_type_inc: NWBData

3.7.12. SpecFile

Description: see Section 2.6.12

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
attributes:
- default_value: Contents of format specification file.
  doc: A help statement
  dtype: text
  name: help
  required: false
- dims:
  - num_namespaces
  doc: Namespaces defined in the file
  dtype: text
  name: namespaces
  shape:
  - null
doc: Dataset for storing contents of a specification file for either the core format
  or an extension.  Name should match name of file.`
dtype: text
neurodata_type_def: SpecFile
quantity: '*'

3.7.13. Subject

Extends: NWBContainer

Description: see Section 2.6.13

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
attributes:
- doc: Value is 'Information about the subject'
  dtype: text
  name: help
  value: Information about the subject
datasets:
- doc: Age of subject
  dtype: text
  name: age
  quantity: '?'
- doc: Description of subject and where subject came from (e.g., breeder, if animal)
  dtype: text
  name: description
  quantity: '?'
- doc: 'Genetic strain COMMENT: If absent, assume Wild Type (WT)'
  dtype: text
  name: genotype
  quantity: '?'
- doc: Sex of subject
  dtype: text
  name: sex
  quantity: '?'
- doc: Species of subject
  dtype: text
  name: species
  quantity: '?'
- doc: ID of animal/person used/participating in experiment (lab convention)
  dtype: text
  name: subject_id
  quantity: '?'
- doc: Weight at time of experiment, at time of surgery and at other important times
  dtype: text
  name: weight
  quantity: '?'
doc: Information about the animal or person from which the data was measured.
name: subject
neurodata_type_def: Subject
neurodata_type_inc: NWBContainer
quantity: '?'

3.7.14. TimeSeriesIndex

Extends: NWBData

Description: see Section 2.6.14

YAML Specification:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
attributes:
- doc: Value is 'Data on how an epoch applies to a time series'
  dtype: text
  name: help
  value: Data on how an epoch applies to a time series
doc: An index into a TimeSeries object
dtype:
- doc: 'Start index into the TimeSeries data[] field. COMMENT: This can be used to
    calculate location in TimeSeries timestamp[] field'
  dtype: int32
  name: idx_start
- doc: Number of data samples available in this time series, during this epoch.
  dtype: int32
  name: count
- doc: the TimeSeries that this index applies to
  dtype:
    reftype: object
    target_type: TimeSeries
  name: timeseries
neurodata_type_def: TimeSeriesIndex
neurodata_type_inc: NWBData