2023-08-25 07:22:47 +00:00
|
|
|
name: core.nwb.ecephys
|
|
|
|
id: core.nwb.ecephys
|
|
|
|
imports:
|
|
|
|
- core.nwb.base
|
|
|
|
- hdmf-common.table
|
2023-08-29 05:16:58 +00:00
|
|
|
- core.nwb.device
|
2023-08-25 07:22:47 +00:00
|
|
|
- nwb.language
|
2023-08-29 05:16:58 +00:00
|
|
|
- core.nwb.ecephys.include
|
|
|
|
- core.nwb.ecephys
|
2023-08-25 07:22:47 +00:00
|
|
|
default_prefix: core.nwb.ecephys/
|
|
|
|
classes:
|
|
|
|
ElectricalSeries:
|
|
|
|
name: ElectricalSeries
|
|
|
|
description: A time series of acquired voltage data from extracellular recordings.
|
|
|
|
The data field is an int or float array storing data in volts. The first dimension
|
|
|
|
should always represent time. The second dimension, if present, should represent
|
|
|
|
channels.
|
|
|
|
is_a: TimeSeries
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
2023-08-25 07:22:47 +00:00
|
|
|
filtering:
|
|
|
|
name: filtering
|
|
|
|
description: Filtering applied to all channels of the data. For example, if
|
|
|
|
this ElectricalSeries represents high-pass-filtered data (also known as
|
|
|
|
AP Band), then this value could be "High-pass 4-pole Bessel filter at 500
|
|
|
|
Hz". If this ElectricalSeries represents low-pass-filtered LFP data and
|
|
|
|
the type of filter is unknown, then this value could be "Low-pass filter
|
|
|
|
at 300 Hz". If a non-standard filter type is used, provide as much detail
|
|
|
|
about the filter properties as possible.
|
|
|
|
range: text
|
|
|
|
data:
|
|
|
|
name: data
|
|
|
|
description: Recorded voltage data.
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: ElectricalSeries__data
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
electrodes:
|
|
|
|
name: electrodes
|
|
|
|
description: DynamicTableRegion pointer to the electrodes that this time series
|
|
|
|
was generated from.
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: ElectricalSeries__electrodes
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
channel_conversion:
|
|
|
|
name: channel_conversion
|
|
|
|
description: Channel-specific conversion factor. Multiply the data in the
|
|
|
|
'data' dataset by these values along the channel axis (as indicated by axis
|
|
|
|
attribute) AND by the global conversion factor in the 'conversion' attribute
|
|
|
|
of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion
|
|
|
|
* channel_conversion. This approach allows for both global and per-channel
|
|
|
|
data conversion factors needed to support the storage of electrical recordings
|
|
|
|
as native values generated by data acquisition systems. If this dataset
|
|
|
|
is not present, then there is no channel-specific conversion factor, i.e.
|
|
|
|
it is 1 for all channels.
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: float32
|
2023-08-25 07:22:47 +00:00
|
|
|
required: false
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
SpikeEventSeries:
|
|
|
|
name: SpikeEventSeries
|
|
|
|
description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold
|
|
|
|
crossings). This may also be raw data, as reported by ephys hardware. If so,
|
|
|
|
the TimeSeries::description field should describe 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).'
|
|
|
|
is_a: ElectricalSeries
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
2023-08-25 07:22:47 +00:00
|
|
|
data:
|
|
|
|
name: data
|
|
|
|
description: Spike waveforms.
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: SpikeEventSeries__data
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
timestamps:
|
|
|
|
name: timestamps
|
|
|
|
description: Timestamps for samples stored in data, in seconds, relative to
|
|
|
|
the common experiment master-clock stored in NWBFile.timestamps_reference_time.
|
|
|
|
Timestamps are required for the events. Unlike for TimeSeries, timestamps
|
|
|
|
are required for SpikeEventSeries and are thus re-specified here.
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: float64
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
FeatureExtraction:
|
|
|
|
name: FeatureExtraction
|
|
|
|
description: Features, such as PC1 and PC2, that are extracted from signals stored
|
|
|
|
in a SpikeEventSeries or other source.
|
|
|
|
is_a: NWBDataInterface
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
2023-08-25 07:22:47 +00:00
|
|
|
description:
|
|
|
|
name: description
|
|
|
|
description: Description of features (eg, ''PC1'') for each of the extracted
|
|
|
|
features.
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: text
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
features:
|
|
|
|
name: features
|
|
|
|
description: Multi-dimensional array of features extracted from each event.
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: FeatureExtraction__features
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
times:
|
|
|
|
name: times
|
|
|
|
description: Times of events that features correspond to (can be a link).
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: float64
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
electrodes:
|
|
|
|
name: electrodes
|
|
|
|
description: DynamicTableRegion pointer to the electrodes that this time series
|
|
|
|
was generated from.
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: FeatureExtraction__electrodes
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
EventDetection:
|
|
|
|
name: EventDetection
|
|
|
|
description: Detected spike events from voltage trace(s).
|
|
|
|
is_a: NWBDataInterface
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
2023-08-25 07:22:47 +00:00
|
|
|
detection_method:
|
|
|
|
name: detection_method
|
|
|
|
description: Description of how events were detected, such as voltage threshold,
|
|
|
|
or dV/dT threshold, as well as relevant values.
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: text
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
source_idx:
|
|
|
|
name: source_idx
|
|
|
|
description: Indices (zero-based) into source ElectricalSeries::data array
|
|
|
|
corresponding to time of event. ''description'' should define what is meant
|
|
|
|
by time of event (e.g., .25 ms before action potential peak, zero-crossing
|
|
|
|
time, etc). The index points to each event from the raw data.
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: int32
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
times:
|
|
|
|
name: times
|
|
|
|
description: Timestamps of events, in seconds.
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: float64
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
EventWaveform:
|
|
|
|
name: EventWaveform
|
|
|
|
description: 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.
|
|
|
|
is_a: NWBDataInterface
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
|
|
|
spike_event_series:
|
|
|
|
name: spike_event_series
|
2023-08-25 07:22:47 +00:00
|
|
|
description: SpikeEventSeries object(s) containing detected spike event waveforms.
|
|
|
|
multivalued: true
|
|
|
|
range: SpikeEventSeries
|
|
|
|
required: false
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
FilteredEphys:
|
|
|
|
name: FilteredEphys
|
|
|
|
description: Electrophysiology 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. Filter properties should be noted in
|
|
|
|
the ElectricalSeries 'filtering' attribute.
|
|
|
|
is_a: NWBDataInterface
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
|
|
|
electrical_series:
|
|
|
|
name: electrical_series
|
2023-08-25 07:22:47 +00:00
|
|
|
description: ElectricalSeries object(s) containing filtered electrophysiology
|
|
|
|
data.
|
|
|
|
multivalued: true
|
|
|
|
range: ElectricalSeries
|
|
|
|
required: true
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
LFP:
|
|
|
|
name: LFP
|
|
|
|
description: 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 'filtering' attribute.
|
|
|
|
is_a: NWBDataInterface
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
|
|
|
electrical_series:
|
|
|
|
name: electrical_series
|
2023-08-25 07:22:47 +00:00
|
|
|
description: ElectricalSeries object(s) containing LFP data for one or more
|
|
|
|
channels.
|
|
|
|
multivalued: true
|
|
|
|
range: ElectricalSeries
|
|
|
|
required: true
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
ElectrodeGroup:
|
|
|
|
name: ElectrodeGroup
|
|
|
|
description: A physical grouping of electrodes, e.g. a shank of an array.
|
|
|
|
is_a: NWBContainer
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
2023-08-25 07:22:47 +00:00
|
|
|
description:
|
|
|
|
name: description
|
|
|
|
description: Description of this electrode group.
|
|
|
|
range: text
|
|
|
|
location:
|
|
|
|
name: location
|
|
|
|
description: Location of electrode group. Specify the area, layer, comments
|
|
|
|
on estimation of area/layer, etc. Use standard atlas names for anatomical
|
|
|
|
regions when possible.
|
|
|
|
range: text
|
|
|
|
position:
|
|
|
|
name: position
|
|
|
|
description: stereotaxic or common framework coordinates
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: AnyType
|
2023-08-25 07:22:47 +00:00
|
|
|
required: false
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
ClusterWaveforms:
|
|
|
|
name: ClusterWaveforms
|
|
|
|
description: DEPRECATED 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.
|
|
|
|
is_a: NWBDataInterface
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
2023-08-25 07:22:47 +00:00
|
|
|
waveform_filtering:
|
|
|
|
name: waveform_filtering
|
|
|
|
description: Filtering applied to data before generating mean/sd
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: text
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
waveform_mean:
|
|
|
|
name: waveform_mean
|
|
|
|
description: 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)
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: ClusterWaveforms__waveform_mean
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
waveform_sd:
|
|
|
|
name: waveform_sd
|
|
|
|
description: Stdev of waveforms for each cluster, using the same indices as
|
|
|
|
in mean
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: ClusterWaveforms__waveform_sd
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|
2023-08-25 07:22:47 +00:00
|
|
|
Clustering:
|
|
|
|
name: Clustering
|
|
|
|
description: DEPRECATED Clustered spike data, whether from automatic clustering
|
|
|
|
tools (e.g., klustakwik) or as a result of manual sorting.
|
|
|
|
is_a: NWBDataInterface
|
|
|
|
attributes:
|
2023-09-01 03:56:21 +00:00
|
|
|
name:
|
|
|
|
name: name
|
|
|
|
range: string
|
|
|
|
required: true
|
2023-08-25 07:22:47 +00:00
|
|
|
description:
|
|
|
|
name: description
|
|
|
|
description: Description of clusters or clustering, (e.g. cluster 0 is noise,
|
|
|
|
clusters curated using Klusters, etc)
|
|
|
|
multivalued: false
|
2023-08-29 05:16:58 +00:00
|
|
|
range: text
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
num:
|
|
|
|
name: num
|
|
|
|
description: Cluster number of each event
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: int32
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
peak_over_rms:
|
|
|
|
name: peak_over_rms
|
|
|
|
description: Maximum ratio of waveform peak to RMS on any channel in the cluster
|
|
|
|
(provides a basic clustering metric).
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: float32
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
|
|
|
times:
|
|
|
|
name: times
|
|
|
|
description: Times of clustered events, in seconds. This may be a link to
|
|
|
|
times field in associated FeatureExtraction module.
|
2023-09-01 03:56:21 +00:00
|
|
|
multivalued: true
|
|
|
|
range: float64
|
2023-08-25 07:22:47 +00:00
|
|
|
required: true
|
2023-09-01 03:56:21 +00:00
|
|
|
tree_root: true
|