mirror of
https://github.com/p2p-ld/nwb-linkml.git
synced 2024-11-10 00:34:29 +00:00
sneakers-the-rat
be21325123
- split off generated subclasses into "include" files, not sure if that's good, but in any case we have them separable now. - more work on cleanly un-nesting scalar and 1D-vector data into attributes and lists, respectively - brought the pydantic generator in-repo to do a bunch of overrides
205 lines
8.7 KiB
YAML
205 lines
8.7 KiB
YAML
name: core.nwb.misc
|
|
id: core.nwb.misc
|
|
imports:
|
|
- core.nwb.base
|
|
- hdmf-common.table
|
|
- core.nwb.ecephys
|
|
- nwb.language
|
|
- core.nwb.misc.include
|
|
- core.nwb.misc
|
|
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:
|
|
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: false
|
|
range: AbstractFeatureSeries__feature_units
|
|
required: false
|
|
features:
|
|
name: features
|
|
description: Description of the features represented in TimeSeries::data.
|
|
multivalued: false
|
|
range: AbstractFeatureSeries__features
|
|
required: true
|
|
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:
|
|
data:
|
|
name: data
|
|
description: Annotations made during an experiment.
|
|
multivalued: false
|
|
range: AnnotationSeries__data
|
|
required: 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:
|
|
data:
|
|
name: data
|
|
description: Use values >0 if interval started, <0 if interval ended.
|
|
multivalued: false
|
|
range: IntervalSeries__data
|
|
required: true
|
|
DecompositionSeries:
|
|
name: DecompositionSeries
|
|
description: Spectral analysis of a time series, e.g. of an LFP or a speech signal.
|
|
is_a: TimeSeries
|
|
attributes:
|
|
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: DecompositionSeries__bands
|
|
required: true
|
|
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:
|
|
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
|