mirror of
https://github.com/p2p-ld/nwb-linkml.git
synced 2024-11-10 00:34:29 +00:00
483 lines
18 KiB
YAML
483 lines
18 KiB
YAML
name: core.nwb.misc
|
|
id: core.nwb.misc
|
|
imports:
|
|
- core.nwb.base
|
|
- hdmf-common.table
|
|
- core.nwb.ecephys
|
|
- nwb.language
|
|
default_prefix: core.nwb.misc/
|
|
classes:
|
|
AbstractFeatureSeries:
|
|
name: AbstractFeatureSeries
|
|
description: 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. This is useful when storing the raw stimulus
|
|
is impractical.
|
|
is_a: TimeSeries
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
data:
|
|
name: data
|
|
description: Values of each feature at each time.
|
|
multivalued: false
|
|
range: AbstractFeatureSeries__data
|
|
required: true
|
|
feature_units:
|
|
name: feature_units
|
|
description: Units of each feature.
|
|
multivalued: true
|
|
range: text
|
|
required: false
|
|
features:
|
|
name: features
|
|
description: Description of the features represented in TimeSeries::data.
|
|
multivalued: true
|
|
range: text
|
|
required: true
|
|
tree_root: true
|
|
AbstractFeatureSeries__data:
|
|
name: AbstractFeatureSeries__data
|
|
description: Values of each feature at each time.
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(data)
|
|
range: string
|
|
required: true
|
|
equals_string: data
|
|
unit:
|
|
name: unit
|
|
description: Since there can be different units for different features, store
|
|
the units in 'feature_units'. The default value for this attribute is "see
|
|
'feature_units'".
|
|
range: text
|
|
array:
|
|
name: array
|
|
range: AbstractFeatureSeries__data__Array
|
|
AbstractFeatureSeries__data__Array:
|
|
name: AbstractFeatureSeries__data__Array
|
|
is_a: Arraylike
|
|
attributes:
|
|
num_times:
|
|
name: num_times
|
|
range: numeric
|
|
required: true
|
|
num_features:
|
|
name: num_features
|
|
range: numeric
|
|
required: false
|
|
AnnotationSeries:
|
|
name: AnnotationSeries
|
|
description: Stores user annotations made during an experiment. The 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.
|
|
is_a: TimeSeries
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
data:
|
|
name: data
|
|
description: Annotations made during an experiment.
|
|
multivalued: true
|
|
range: text
|
|
required: true
|
|
tree_root: true
|
|
IntervalSeries:
|
|
name: IntervalSeries
|
|
description: 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.
|
|
is_a: TimeSeries
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
data:
|
|
name: data
|
|
description: Use values >0 if interval started, <0 if interval ended.
|
|
multivalued: true
|
|
range: int8
|
|
required: true
|
|
tree_root: true
|
|
DecompositionSeries:
|
|
name: DecompositionSeries
|
|
description: Spectral analysis of a time series, e.g. of an LFP or a speech signal.
|
|
is_a: TimeSeries
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
data:
|
|
name: data
|
|
description: Data decomposed into frequency bands.
|
|
multivalued: false
|
|
range: DecompositionSeries__data
|
|
required: true
|
|
metric:
|
|
name: metric
|
|
description: The metric used, e.g. phase, amplitude, power.
|
|
multivalued: false
|
|
range: text
|
|
required: true
|
|
source_channels:
|
|
name: source_channels
|
|
description: DynamicTableRegion pointer to the channels that this decomposition
|
|
series was generated from.
|
|
multivalued: false
|
|
range: DecompositionSeries__source_channels
|
|
required: false
|
|
bands:
|
|
name: bands
|
|
description: Table for describing the bands that this series was generated
|
|
from. There should be one row in this table for each band.
|
|
multivalued: false
|
|
range: DynamicTable
|
|
required: true
|
|
tree_root: true
|
|
DecompositionSeries__data:
|
|
name: DecompositionSeries__data
|
|
description: Data decomposed into frequency bands.
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(data)
|
|
range: string
|
|
required: true
|
|
equals_string: data
|
|
unit:
|
|
name: unit
|
|
description: Base unit of measurement for working with the data. Actual stored
|
|
values are not necessarily stored in these units. To access the data in
|
|
these units, multiply 'data' by 'conversion'.
|
|
range: text
|
|
array:
|
|
name: array
|
|
range: DecompositionSeries__data__Array
|
|
DecompositionSeries__data__Array:
|
|
name: DecompositionSeries__data__Array
|
|
is_a: Arraylike
|
|
attributes:
|
|
num_times:
|
|
name: num_times
|
|
range: numeric
|
|
required: true
|
|
num_channels:
|
|
name: num_channels
|
|
range: numeric
|
|
required: true
|
|
num_bands:
|
|
name: num_bands
|
|
range: numeric
|
|
required: true
|
|
DecompositionSeries__source_channels:
|
|
name: DecompositionSeries__source_channels
|
|
description: DynamicTableRegion pointer to the channels that this decomposition
|
|
series was generated from.
|
|
is_a: DynamicTableRegion
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(source_channels)
|
|
range: string
|
|
required: true
|
|
equals_string: source_channels
|
|
Units:
|
|
name: Units
|
|
description: Data about spiking units. Event times of observed units (e.g. cell,
|
|
synapse, etc.) should be concatenated and stored in spike_times.
|
|
is_a: DynamicTable
|
|
attributes:
|
|
name:
|
|
name: name
|
|
range: string
|
|
required: true
|
|
spike_times_index:
|
|
name: spike_times_index
|
|
description: Index into the spike_times dataset.
|
|
multivalued: false
|
|
range: Units__spike_times_index
|
|
required: false
|
|
spike_times:
|
|
name: spike_times
|
|
description: Spike times for each unit in seconds.
|
|
multivalued: false
|
|
range: Units__spike_times
|
|
required: false
|
|
obs_intervals_index:
|
|
name: obs_intervals_index
|
|
description: Index into the obs_intervals dataset.
|
|
multivalued: false
|
|
range: Units__obs_intervals_index
|
|
required: false
|
|
obs_intervals:
|
|
name: obs_intervals
|
|
description: Observation intervals for each unit.
|
|
multivalued: false
|
|
range: Units__obs_intervals
|
|
required: false
|
|
electrodes_index:
|
|
name: electrodes_index
|
|
description: Index into electrodes.
|
|
multivalued: false
|
|
range: Units__electrodes_index
|
|
required: false
|
|
electrodes:
|
|
name: electrodes
|
|
description: Electrode that each spike unit came from, specified using a DynamicTableRegion.
|
|
multivalued: false
|
|
range: Units__electrodes
|
|
required: false
|
|
electrode_group:
|
|
name: electrode_group
|
|
description: Electrode group that each spike unit came from.
|
|
multivalued: true
|
|
range: ElectrodeGroup
|
|
waveform_mean:
|
|
name: waveform_mean
|
|
description: Spike waveform mean for each spike unit.
|
|
multivalued: false
|
|
range: Units__waveform_mean
|
|
required: false
|
|
waveform_sd:
|
|
name: waveform_sd
|
|
description: Spike waveform standard deviation for each spike unit.
|
|
multivalued: false
|
|
range: Units__waveform_sd
|
|
required: false
|
|
waveforms:
|
|
name: waveforms
|
|
description: Individual waveforms for each spike on each electrode. This is
|
|
a doubly indexed column. The 'waveforms_index' column indexes which waveforms
|
|
in this column belong to the same spike event for a given unit, where each
|
|
waveform was recorded from a different electrode. The 'waveforms_index_index'
|
|
column indexes the 'waveforms_index' column to indicate which spike events
|
|
belong to a given unit. For example, if the 'waveforms_index_index' column
|
|
has values [2, 5, 6], then the first 2 elements of the 'waveforms_index'
|
|
column correspond to the 2 spike events of the first unit, the next 3 elements
|
|
of the 'waveforms_index' column correspond to the 3 spike events of the
|
|
second unit, and the next 1 element of the 'waveforms_index' column corresponds
|
|
to the 1 spike event of the third unit. If the 'waveforms_index' column
|
|
has values [3, 6, 8, 10, 12, 13], then the first 3 elements of the 'waveforms'
|
|
column contain the 3 spike waveforms that were recorded from 3 different
|
|
electrodes for the first spike time of the first unit. See https://nwb-schema.readthedocs.io/en/stable/format_description.html#doubly-ragged-arrays
|
|
for a graphical representation of this example. When there is only one electrode
|
|
for each unit (i.e., each spike time is associated with a single waveform),
|
|
then the 'waveforms_index' column will have values 1, 2, ..., N, where N
|
|
is the number of spike events. The number of electrodes for each spike event
|
|
should be the same within a given unit. The 'electrodes' column should be
|
|
used to indicate which electrodes are associated with each unit, and the
|
|
order of the waveforms within a given unit x spike event should be in the
|
|
same order as the electrodes referenced in the 'electrodes' column of this
|
|
table. The number of samples for each waveform must be the same.
|
|
multivalued: false
|
|
range: Units__waveforms
|
|
required: false
|
|
waveforms_index:
|
|
name: waveforms_index
|
|
description: Index into the waveforms dataset. One value for every spike event.
|
|
See 'waveforms' for more detail.
|
|
multivalued: false
|
|
range: Units__waveforms_index
|
|
required: false
|
|
waveforms_index_index:
|
|
name: waveforms_index_index
|
|
description: Index into the waveforms_index dataset. One value for every unit
|
|
(row in the table). See 'waveforms' for more detail.
|
|
multivalued: false
|
|
range: Units__waveforms_index_index
|
|
required: false
|
|
tree_root: true
|
|
Units__spike_times_index:
|
|
name: Units__spike_times_index
|
|
description: Index into the spike_times dataset.
|
|
is_a: VectorIndex
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(spike_times_index)
|
|
range: string
|
|
required: true
|
|
equals_string: spike_times_index
|
|
Units__spike_times:
|
|
name: Units__spike_times
|
|
description: Spike times for each unit in seconds.
|
|
is_a: VectorData
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(spike_times)
|
|
range: string
|
|
required: true
|
|
equals_string: spike_times
|
|
resolution:
|
|
name: resolution
|
|
description: The smallest possible difference between two spike times. Usually
|
|
1 divided by the acquisition sampling rate from which spike times were extracted,
|
|
but could be larger if the acquisition time series was downsampled or smaller
|
|
if the acquisition time series was smoothed/interpolated and it is possible
|
|
for the spike time to be between samples.
|
|
range: float64
|
|
Units__obs_intervals_index:
|
|
name: Units__obs_intervals_index
|
|
description: Index into the obs_intervals dataset.
|
|
is_a: VectorIndex
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(obs_intervals_index)
|
|
range: string
|
|
required: true
|
|
equals_string: obs_intervals_index
|
|
Units__obs_intervals:
|
|
name: Units__obs_intervals
|
|
description: Observation intervals for each unit.
|
|
is_a: VectorData
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(obs_intervals)
|
|
range: string
|
|
required: true
|
|
equals_string: obs_intervals
|
|
Units__electrodes_index:
|
|
name: Units__electrodes_index
|
|
description: Index into electrodes.
|
|
is_a: VectorIndex
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(electrodes_index)
|
|
range: string
|
|
required: true
|
|
equals_string: electrodes_index
|
|
Units__electrodes:
|
|
name: Units__electrodes
|
|
description: Electrode that each spike unit came from, specified using a DynamicTableRegion.
|
|
is_a: DynamicTableRegion
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(electrodes)
|
|
range: string
|
|
required: true
|
|
equals_string: electrodes
|
|
Units__waveform_mean:
|
|
name: Units__waveform_mean
|
|
description: Spike waveform mean for each spike unit.
|
|
is_a: VectorData
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(waveform_mean)
|
|
range: string
|
|
required: true
|
|
equals_string: waveform_mean
|
|
sampling_rate:
|
|
name: sampling_rate
|
|
description: Sampling rate, in hertz.
|
|
range: float32
|
|
unit:
|
|
name: unit
|
|
description: Unit of measurement. This value is fixed to 'volts'.
|
|
range: text
|
|
Units__waveform_sd:
|
|
name: Units__waveform_sd
|
|
description: Spike waveform standard deviation for each spike unit.
|
|
is_a: VectorData
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(waveform_sd)
|
|
range: string
|
|
required: true
|
|
equals_string: waveform_sd
|
|
sampling_rate:
|
|
name: sampling_rate
|
|
description: Sampling rate, in hertz.
|
|
range: float32
|
|
unit:
|
|
name: unit
|
|
description: Unit of measurement. This value is fixed to 'volts'.
|
|
range: text
|
|
Units__waveforms:
|
|
name: Units__waveforms
|
|
description: Individual waveforms for each spike on each electrode. This is a
|
|
doubly indexed column. The 'waveforms_index' column indexes which waveforms
|
|
in this column belong to the same spike event for a given unit, where each waveform
|
|
was recorded from a different electrode. The 'waveforms_index_index' column
|
|
indexes the 'waveforms_index' column to indicate which spike events belong to
|
|
a given unit. For example, if the 'waveforms_index_index' column has values
|
|
[2, 5, 6], then the first 2 elements of the 'waveforms_index' column correspond
|
|
to the 2 spike events of the first unit, the next 3 elements of the 'waveforms_index'
|
|
column correspond to the 3 spike events of the second unit, and the next 1 element
|
|
of the 'waveforms_index' column corresponds to the 1 spike event of the third
|
|
unit. If the 'waveforms_index' column has values [3, 6, 8, 10, 12, 13], then
|
|
the first 3 elements of the 'waveforms' column contain the 3 spike waveforms
|
|
that were recorded from 3 different electrodes for the first spike time of the
|
|
first unit. See https://nwb-schema.readthedocs.io/en/stable/format_description.html#doubly-ragged-arrays
|
|
for a graphical representation of this example. When there is only one electrode
|
|
for each unit (i.e., each spike time is associated with a single waveform),
|
|
then the 'waveforms_index' column will have values 1, 2, ..., N, where N is
|
|
the number of spike events. The number of electrodes for each spike event should
|
|
be the same within a given unit. The 'electrodes' column should be used to indicate
|
|
which electrodes are associated with each unit, and the order of the waveforms
|
|
within a given unit x spike event should be in the same order as the electrodes
|
|
referenced in the 'electrodes' column of this table. The number of samples for
|
|
each waveform must be the same.
|
|
is_a: VectorData
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(waveforms)
|
|
range: string
|
|
required: true
|
|
equals_string: waveforms
|
|
sampling_rate:
|
|
name: sampling_rate
|
|
description: Sampling rate, in hertz.
|
|
range: float32
|
|
unit:
|
|
name: unit
|
|
description: Unit of measurement. This value is fixed to 'volts'.
|
|
range: text
|
|
Units__waveforms_index:
|
|
name: Units__waveforms_index
|
|
description: Index into the waveforms dataset. One value for every spike event.
|
|
See 'waveforms' for more detail.
|
|
is_a: VectorIndex
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(waveforms_index)
|
|
range: string
|
|
required: true
|
|
equals_string: waveforms_index
|
|
Units__waveforms_index_index:
|
|
name: Units__waveforms_index_index
|
|
description: Index into the waveforms_index dataset. One value for every unit
|
|
(row in the table). See 'waveforms' for more detail.
|
|
is_a: VectorIndex
|
|
attributes:
|
|
name:
|
|
name: name
|
|
ifabsent: string(waveforms_index_index)
|
|
range: string
|
|
required: true
|
|
equals_string: waveforms_index_index
|