mirror of
https://github.com/p2p-ld/nwb-linkml.git
synced 2024-11-14 02:34:28 +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
283 lines
10 KiB
YAML
283 lines
10 KiB
YAML
name: core.nwb.ecephys.include
|
|
id: core.nwb.ecephys.include
|
|
imports:
|
|
- core.nwb.base
|
|
- hdmf-common.table
|
|
- core.nwb.device
|
|
- nwb.language
|
|
- core.nwb.ecephys.include
|
|
- core.nwb.ecephys
|
|
default_prefix: core.nwb.ecephys.include/
|
|
classes:
|
|
ElectricalSeries__data:
|
|
name: ElectricalSeries__data
|
|
description: Recorded voltage data.
|
|
attributes:
|
|
unit:
|
|
name: unit
|
|
description: Base unit of measurement for working with the data. This value
|
|
is fixed to 'volts'. Actual stored values are not necessarily stored in
|
|
these units. To access the data in these units, multiply 'data' by 'conversion',
|
|
followed by 'channel_conversion' (if present), and then add 'offset'.
|
|
range: text
|
|
array:
|
|
name: array
|
|
range: ElectricalSeries__data__Array
|
|
ElectricalSeries__data__Array:
|
|
name: ElectricalSeries__data__Array
|
|
is_a: Arraylike
|
|
attributes:
|
|
num_times:
|
|
name: num_times
|
|
range: numeric
|
|
required: true
|
|
num_channels:
|
|
name: num_channels
|
|
range: numeric
|
|
required: false
|
|
num_samples:
|
|
name: num_samples
|
|
range: numeric
|
|
required: false
|
|
ElectricalSeries__electrodes:
|
|
name: ElectricalSeries__electrodes
|
|
description: DynamicTableRegion pointer to the electrodes that this time series
|
|
was generated from.
|
|
is_a: DynamicTableRegion
|
|
ElectricalSeries__channel_conversion:
|
|
name: ElectricalSeries__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.
|
|
attributes:
|
|
axis:
|
|
name: axis
|
|
description: The zero-indexed axis of the 'data' dataset that the channel-specific
|
|
conversion factor corresponds to. This value is fixed to 1.
|
|
range: int32
|
|
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.
|
|
multivalued: true
|
|
range: float32
|
|
required: false
|
|
SpikeEventSeries__data:
|
|
name: SpikeEventSeries__data
|
|
description: Spike waveforms.
|
|
attributes:
|
|
unit:
|
|
name: unit
|
|
description: Unit of measurement for waveforms, which is fixed to 'volts'.
|
|
range: text
|
|
array:
|
|
name: array
|
|
range: SpikeEventSeries__data__Array
|
|
SpikeEventSeries__data__Array:
|
|
name: SpikeEventSeries__data__Array
|
|
is_a: Arraylike
|
|
attributes:
|
|
num_events:
|
|
name: num_events
|
|
range: numeric
|
|
required: true
|
|
num_samples:
|
|
name: num_samples
|
|
range: numeric
|
|
required: true
|
|
num_channels:
|
|
name: num_channels
|
|
range: numeric
|
|
required: false
|
|
SpikeEventSeries__timestamps:
|
|
name: SpikeEventSeries__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.
|
|
attributes:
|
|
interval:
|
|
name: interval
|
|
description: Value is '1'
|
|
range: int32
|
|
unit:
|
|
name: unit
|
|
description: Unit of measurement for timestamps, which is fixed to 'seconds'.
|
|
range: text
|
|
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.
|
|
multivalued: true
|
|
range: float64
|
|
required: true
|
|
FeatureExtraction__description:
|
|
name: FeatureExtraction__description
|
|
description: Description of features (eg, ''PC1'') for each of the extracted features.
|
|
attributes:
|
|
description:
|
|
name: description
|
|
description: Description of features (eg, ''PC1'') for each of the extracted
|
|
features.
|
|
multivalued: true
|
|
range: text
|
|
required: true
|
|
FeatureExtraction__features:
|
|
name: FeatureExtraction__features
|
|
description: Multi-dimensional array of features extracted from each event.
|
|
attributes:
|
|
array:
|
|
name: array
|
|
range: FeatureExtraction__features__Array
|
|
FeatureExtraction__features__Array:
|
|
name: FeatureExtraction__features__Array
|
|
is_a: Arraylike
|
|
attributes:
|
|
num_events:
|
|
name: num_events
|
|
range: float32
|
|
required: false
|
|
num_channels:
|
|
name: num_channels
|
|
range: float32
|
|
required: false
|
|
num_features:
|
|
name: num_features
|
|
range: float32
|
|
required: false
|
|
FeatureExtraction__times:
|
|
name: FeatureExtraction__times
|
|
description: Times of events that features correspond to (can be a link).
|
|
attributes:
|
|
times:
|
|
name: times
|
|
description: Times of events that features correspond to (can be a link).
|
|
multivalued: true
|
|
range: float64
|
|
required: true
|
|
FeatureExtraction__electrodes:
|
|
name: FeatureExtraction__electrodes
|
|
description: DynamicTableRegion pointer to the electrodes that this time series
|
|
was generated from.
|
|
is_a: DynamicTableRegion
|
|
EventDetection__source_idx:
|
|
name: EventDetection__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.
|
|
attributes:
|
|
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.
|
|
multivalued: true
|
|
range: int32
|
|
required: true
|
|
EventDetection__times:
|
|
name: EventDetection__times
|
|
description: Timestamps of events, in seconds.
|
|
attributes:
|
|
unit:
|
|
name: unit
|
|
description: Unit of measurement for event times, which is fixed to 'seconds'.
|
|
range: text
|
|
times:
|
|
name: times
|
|
description: Timestamps of events, in seconds.
|
|
multivalued: true
|
|
range: float64
|
|
required: true
|
|
ClusterWaveforms__waveform_mean:
|
|
name: ClusterWaveforms__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)
|
|
attributes:
|
|
array:
|
|
name: array
|
|
range: ClusterWaveforms__waveform_mean__Array
|
|
ClusterWaveforms__waveform_mean__Array:
|
|
name: ClusterWaveforms__waveform_mean__Array
|
|
is_a: Arraylike
|
|
attributes:
|
|
num_clusters:
|
|
name: num_clusters
|
|
range: float32
|
|
required: false
|
|
num_samples:
|
|
name: num_samples
|
|
range: float32
|
|
required: false
|
|
ClusterWaveforms__waveform_sd:
|
|
name: ClusterWaveforms__waveform_sd
|
|
description: Stdev of waveforms for each cluster, using the same indices as in
|
|
mean
|
|
attributes:
|
|
array:
|
|
name: array
|
|
range: ClusterWaveforms__waveform_sd__Array
|
|
ClusterWaveforms__waveform_sd__Array:
|
|
name: ClusterWaveforms__waveform_sd__Array
|
|
is_a: Arraylike
|
|
attributes:
|
|
num_clusters:
|
|
name: num_clusters
|
|
range: float32
|
|
required: false
|
|
num_samples:
|
|
name: num_samples
|
|
range: float32
|
|
required: false
|
|
Clustering__num:
|
|
name: Clustering__num
|
|
description: Cluster number of each event
|
|
attributes:
|
|
num:
|
|
name: num
|
|
description: Cluster number of each event
|
|
multivalued: true
|
|
range: int32
|
|
required: true
|
|
Clustering__peak_over_rms:
|
|
name: Clustering__peak_over_rms
|
|
description: Maximum ratio of waveform peak to RMS on any channel in the cluster
|
|
(provides a basic clustering metric).
|
|
attributes:
|
|
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).
|
|
multivalued: true
|
|
range: float32
|
|
required: true
|
|
Clustering__times:
|
|
name: Clustering__times
|
|
description: Times of clustered events, in seconds. This may be a link to times
|
|
field in associated FeatureExtraction module.
|
|
attributes:
|
|
times:
|
|
name: times
|
|
description: Times of clustered events, in seconds. This may be a link to
|
|
times field in associated FeatureExtraction module.
|
|
multivalued: true
|
|
range: float64
|
|
required: true
|