nwb-linkml/nwb_linkml/schema/core.nwb.misc.include.yaml
sneakers-the-rat be21325123 Cleaner code generation, npytyping type hints for arrays
- 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
2023-08-28 22:16:58 -07:00

277 lines
10 KiB
YAML

name: core.nwb.misc.include
id: core.nwb.misc.include
imports:
- core.nwb.base
- hdmf-common.table
- core.nwb.ecephys
- nwb.language
- core.nwb.misc.include
- core.nwb.misc
default_prefix: core.nwb.misc.include/
classes:
AbstractFeatureSeries__data:
name: AbstractFeatureSeries__data
description: Values of each feature at each time.
attributes:
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
AbstractFeatureSeries__feature_units:
name: AbstractFeatureSeries__feature_units
description: Units of each feature.
attributes:
feature_units:
name: feature_units
description: Units of each feature.
multivalued: true
range: text
required: false
AbstractFeatureSeries__features:
name: AbstractFeatureSeries__features
description: Description of the features represented in TimeSeries::data.
attributes:
features:
name: features
description: Description of the features represented in TimeSeries::data.
multivalued: true
range: text
required: true
AnnotationSeries__data:
name: AnnotationSeries__data
description: Annotations made during an experiment.
attributes:
resolution:
name: resolution
description: Smallest meaningful difference between values in data. Annotations
have no units, so the value is fixed to -1.0.
range: float32
unit:
name: unit
description: Base unit of measurement for working with the data. Annotations
have no units, so the value is fixed to 'n/a'.
range: text
data:
name: data
description: Annotations made during an experiment.
multivalued: true
range: text
required: true
IntervalSeries__data:
name: IntervalSeries__data
description: Use values >0 if interval started, <0 if interval ended.
attributes:
resolution:
name: resolution
description: Smallest meaningful difference between values in data. Annotations
have no units, so the value is fixed to -1.0.
range: float32
unit:
name: unit
description: Base unit of measurement for working with the data. Annotations
have no units, so the value is fixed to 'n/a'.
range: text
data:
name: data
description: Use values >0 if interval started, <0 if interval ended.
multivalued: true
range: int8
required: true
DecompositionSeries__data:
name: DecompositionSeries__data
description: Data decomposed into frequency bands.
attributes:
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: false
num_channels:
name: num_channels
range: numeric
required: false
num_bands:
name: num_bands
range: numeric
required: false
DecompositionSeries__source_channels:
name: DecompositionSeries__source_channels
description: DynamicTableRegion pointer to the channels that this decomposition
series was generated from.
is_a: DynamicTableRegion
DecompositionSeries__bands:
name: DecompositionSeries__bands
description: Table for describing the bands that this series was generated from.
There should be one row in this table for each band.
is_a: DynamicTable
attributes:
band_name:
name: band_name
description: Name of the band, e.g. theta.
multivalued: true
range: text
band_limits:
name: band_limits
description: Low and high limit of each band in Hz. If it is a Gaussian filter,
use 2 SD on either side of the center.
multivalued: false
range: DecompositionSeries__bands__band_limits
required: true
band_mean:
name: band_mean
description: The mean Gaussian filters, in Hz.
multivalued: false
range: DecompositionSeries__bands__band_mean
required: true
band_stdev:
name: band_stdev
description: The standard deviation of Gaussian filters, in Hz.
multivalued: false
range: DecompositionSeries__bands__band_stdev
required: true
DecompositionSeries__bands__band_limits:
name: DecompositionSeries__bands__band_limits
description: Low and high limit of each band in Hz. If it is a Gaussian filter,
use 2 SD on either side of the center.
is_a: VectorData
DecompositionSeries__bands__band_mean:
name: DecompositionSeries__bands__band_mean
description: The mean Gaussian filters, in Hz.
is_a: VectorData
DecompositionSeries__bands__band_stdev:
name: DecompositionSeries__bands__band_stdev
description: The standard deviation of Gaussian filters, in Hz.
is_a: VectorData
Units__spike_times_index:
name: Units__spike_times_index
description: Index into the spike_times dataset.
is_a: VectorIndex
Units__spike_times:
name: Units__spike_times
description: Spike times for each unit in seconds.
is_a: VectorData
attributes:
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
Units__obs_intervals:
name: Units__obs_intervals
description: Observation intervals for each unit.
is_a: VectorData
Units__electrodes_index:
name: Units__electrodes_index
description: Index into electrodes.
is_a: VectorIndex
Units__electrodes:
name: Units__electrodes
description: Electrode that each spike unit came from, specified using a DynamicTableRegion.
is_a: DynamicTableRegion
Units__waveform_mean:
name: Units__waveform_mean
description: Spike waveform mean for each spike unit.
is_a: VectorData
attributes:
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:
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:
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
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