From 04b08f10fc37b75513ac8412d5784ef5a0cbe65c Mon Sep 17 00:00:00 2001 From: sneakers-the-rat Date: Mon, 29 Jul 2024 16:22:29 -0700 Subject: [PATCH] wtf and a third commit, i gotta figure out what thats about --- .../linkml/core/v2_2_2/core.nwb.base.yaml | 23 +- .../linkml/core/v2_2_2/core.nwb.behavior.yaml | 6 +- .../linkml/core/v2_2_2/core.nwb.device.yaml | 1 - .../linkml/core/v2_2_2/core.nwb.ecephys.yaml | 92 ++---- .../linkml/core/v2_2_2/core.nwb.epoch.yaml | 68 ++--- .../linkml/core/v2_2_2/core.nwb.file.yaml | 159 ++++++---- .../linkml/core/v2_2_2/core.nwb.icephys.yaml | 101 +++---- .../linkml/core/v2_2_2/core.nwb.image.yaml | 26 +- .../linkml/core/v2_2_2/core.nwb.language.yaml | 67 +---- .../linkml/core/v2_2_2/core.nwb.misc.yaml | 128 +++----- .../linkml/core/v2_2_2/core.nwb.ogen.yaml | 10 +- .../linkml/core/v2_2_2/core.nwb.ophys.yaml | 27 +- .../core/v2_2_2/core.nwb.retinotopy.yaml | 24 +- .../linkml/core/v2_2_4/core.nwb.base.yaml | 23 +- .../linkml/core/v2_2_4/core.nwb.behavior.yaml | 6 +- .../linkml/core/v2_2_4/core.nwb.device.yaml | 1 - .../linkml/core/v2_2_4/core.nwb.ecephys.yaml | 92 ++---- .../linkml/core/v2_2_4/core.nwb.epoch.yaml | 68 ++--- .../linkml/core/v2_2_4/core.nwb.file.yaml | 161 ++++++---- .../linkml/core/v2_2_4/core.nwb.icephys.yaml | 101 +++---- .../linkml/core/v2_2_4/core.nwb.image.yaml | 26 +- .../linkml/core/v2_2_4/core.nwb.language.yaml | 67 +---- .../linkml/core/v2_2_4/core.nwb.misc.yaml | 128 +++----- .../linkml/core/v2_2_4/core.nwb.ogen.yaml | 10 +- .../linkml/core/v2_2_4/core.nwb.ophys.yaml | 116 +++----- .../core/v2_2_4/core.nwb.retinotopy.yaml | 24 +- .../linkml/core/v2_2_5/core.nwb.base.yaml | 23 +- .../linkml/core/v2_2_5/core.nwb.behavior.yaml | 6 +- .../linkml/core/v2_2_5/core.nwb.device.yaml | 1 - .../linkml/core/v2_2_5/core.nwb.ecephys.yaml | 92 ++---- .../linkml/core/v2_2_5/core.nwb.epoch.yaml | 68 ++--- .../linkml/core/v2_2_5/core.nwb.file.yaml | 161 ++++++---- .../linkml/core/v2_2_5/core.nwb.icephys.yaml | 101 +++---- .../linkml/core/v2_2_5/core.nwb.image.yaml | 26 +- .../linkml/core/v2_2_5/core.nwb.language.yaml | 67 +---- .../linkml/core/v2_2_5/core.nwb.misc.yaml | 128 +++----- .../linkml/core/v2_2_5/core.nwb.ogen.yaml | 10 +- .../linkml/core/v2_2_5/core.nwb.ophys.yaml | 116 +++----- .../core/v2_2_5/core.nwb.retinotopy.yaml | 24 +- .../linkml/core/v2_3_0/core.nwb.base.yaml | 23 +- .../linkml/core/v2_3_0/core.nwb.behavior.yaml | 6 +- .../linkml/core/v2_3_0/core.nwb.device.yaml | 1 - .../linkml/core/v2_3_0/core.nwb.ecephys.yaml | 92 ++---- .../linkml/core/v2_3_0/core.nwb.epoch.yaml | 68 ++--- .../linkml/core/v2_3_0/core.nwb.file.yaml | 163 ++++++---- .../linkml/core/v2_3_0/core.nwb.icephys.yaml | 101 +++---- .../linkml/core/v2_3_0/core.nwb.image.yaml | 26 +- .../linkml/core/v2_3_0/core.nwb.language.yaml | 67 +---- .../linkml/core/v2_3_0/core.nwb.misc.yaml | 193 ++++-------- .../linkml/core/v2_3_0/core.nwb.ogen.yaml | 10 +- .../linkml/core/v2_3_0/core.nwb.ophys.yaml | 116 +++----- .../core/v2_3_0/core.nwb.retinotopy.yaml | 24 +- .../linkml/core/v2_4_0/core.nwb.base.yaml | 30 +- .../linkml/core/v2_4_0/core.nwb.behavior.yaml | 6 +- .../linkml/core/v2_4_0/core.nwb.device.yaml | 1 - .../linkml/core/v2_4_0/core.nwb.ecephys.yaml | 92 ++---- .../linkml/core/v2_4_0/core.nwb.epoch.yaml | 68 ++--- .../linkml/core/v2_4_0/core.nwb.file.yaml | 173 ++++++----- .../linkml/core/v2_4_0/core.nwb.icephys.yaml | 258 ++++++---------- .../linkml/core/v2_4_0/core.nwb.image.yaml | 26 +- .../linkml/core/v2_4_0/core.nwb.language.yaml | 67 +---- .../linkml/core/v2_4_0/core.nwb.misc.yaml | 193 ++++-------- .../linkml/core/v2_4_0/core.nwb.ogen.yaml | 10 +- .../linkml/core/v2_4_0/core.nwb.ophys.yaml | 116 +++----- .../core/v2_4_0/core.nwb.retinotopy.yaml | 24 +- .../linkml/core/v2_5_0/core.nwb.base.yaml | 59 +--- .../linkml/core/v2_5_0/core.nwb.behavior.yaml | 6 +- .../linkml/core/v2_5_0/core.nwb.device.yaml | 1 - .../linkml/core/v2_5_0/core.nwb.ecephys.yaml | 92 ++---- .../linkml/core/v2_5_0/core.nwb.epoch.yaml | 79 ++--- .../linkml/core/v2_5_0/core.nwb.file.yaml | 173 ++++++----- .../linkml/core/v2_5_0/core.nwb.icephys.yaml | 260 ++++++---------- .../linkml/core/v2_5_0/core.nwb.image.yaml | 26 +- .../linkml/core/v2_5_0/core.nwb.language.yaml | 67 +---- .../linkml/core/v2_5_0/core.nwb.misc.yaml | 193 ++++-------- .../linkml/core/v2_5_0/core.nwb.ogen.yaml | 10 +- .../linkml/core/v2_5_0/core.nwb.ophys.yaml | 116 +++----- .../core/v2_5_0/core.nwb.retinotopy.yaml | 24 +- .../core/v2_6_0_alpha/core.nwb.base.yaml | 59 +--- .../core/v2_6_0_alpha/core.nwb.behavior.yaml | 6 +- .../core/v2_6_0_alpha/core.nwb.device.yaml | 1 - .../core/v2_6_0_alpha/core.nwb.ecephys.yaml | 92 ++---- .../core/v2_6_0_alpha/core.nwb.epoch.yaml | 79 ++--- .../core/v2_6_0_alpha/core.nwb.file.yaml | 174 ++++++----- .../core/v2_6_0_alpha/core.nwb.icephys.yaml | 260 ++++++---------- .../core/v2_6_0_alpha/core.nwb.image.yaml | 26 +- .../core/v2_6_0_alpha/core.nwb.language.yaml | 67 +---- .../core/v2_6_0_alpha/core.nwb.misc.yaml | 193 ++++-------- .../core/v2_6_0_alpha/core.nwb.ogen.yaml | 10 +- .../core/v2_6_0_alpha/core.nwb.ophys.yaml | 117 +++----- .../v2_6_0_alpha/core.nwb.retinotopy.yaml | 24 +- .../linkml/core/v2_7_0/core.nwb.base.yaml | 59 +--- .../linkml/core/v2_7_0/core.nwb.behavior.yaml | 6 +- .../linkml/core/v2_7_0/core.nwb.device.yaml | 1 - .../linkml/core/v2_7_0/core.nwb.ecephys.yaml | 92 ++---- .../linkml/core/v2_7_0/core.nwb.epoch.yaml | 79 ++--- .../linkml/core/v2_7_0/core.nwb.file.yaml | 174 ++++++----- .../linkml/core/v2_7_0/core.nwb.icephys.yaml | 281 ++++++------------ .../linkml/core/v2_7_0/core.nwb.image.yaml | 26 +- .../linkml/core/v2_7_0/core.nwb.language.yaml | 67 +---- .../linkml/core/v2_7_0/core.nwb.misc.yaml | 193 ++++-------- .../linkml/core/v2_7_0/core.nwb.ogen.yaml | 10 +- .../linkml/core/v2_7_0/core.nwb.ophys.yaml | 117 +++----- .../core/v2_7_0/core.nwb.retinotopy.yaml | 24 +- .../v1_1_0/hdmf-common.nwb.language.yaml | 67 +---- .../v1_1_0/hdmf-common.sparse.yaml | 10 +- .../hdmf_common/v1_1_0/hdmf-common.table.yaml | 14 +- .../v1_1_2/hdmf-common.nwb.language.yaml | 67 +---- .../v1_1_2/hdmf-common.sparse.yaml | 10 +- .../hdmf_common/v1_1_2/hdmf-common.table.yaml | 14 +- .../v1_1_3/hdmf-common.nwb.language.yaml | 67 +---- .../v1_1_3/hdmf-common.sparse.yaml | 10 +- .../hdmf_common/v1_1_3/hdmf-common.table.yaml | 14 +- .../hdmf_common/v1_5_0/hdmf-common.base.yaml | 2 - .../v1_5_0/hdmf-common.nwb.language.yaml | 67 +---- .../v1_5_0/hdmf-common.sparse.yaml | 22 +- .../hdmf_common/v1_5_0/hdmf-common.table.yaml | 9 +- .../hdmf_common/v1_8_0/hdmf-common.base.yaml | 2 - .../v1_8_0/hdmf-common.nwb.language.yaml | 67 +---- .../v1_8_0/hdmf-common.sparse.yaml | 22 +- .../hdmf_common/v1_8_0/hdmf-common.table.yaml | 9 +- .../hdmf-experimental.experimental.yaml | 1 - .../hdmf-experimental.nwb.language.yaml | 67 +---- .../v0_1_0/hdmf-experimental.resources.yaml | 38 +-- .../hdmf-experimental.experimental.yaml | 1 - .../hdmf-experimental.nwb.language.yaml | 67 +---- .../v0_5_0/hdmf-experimental.resources.yaml | 45 ++- nwb_linkml/tests/test_includes/__init__.py | 0 nwb_linkml/tests/test_includes/test_hdmf.py | 22 ++ 129 files changed, 3215 insertions(+), 5174 deletions(-) create mode 100644 nwb_linkml/tests/test_includes/__init__.py create mode 100644 nwb_linkml/tests/test_includes/test_hdmf.py diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.base.yaml index f32ea07..5ba1d46 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.base.yaml @@ -20,7 +20,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -33,7 +32,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -73,7 +71,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -85,7 +82,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -96,7 +92,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -115,49 +110,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -166,9 +161,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -179,7 +174,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -239,7 +233,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -267,7 +260,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -293,7 +285,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -303,7 +294,7 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.behavior.yaml index d2b99a4..b644d87 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.device.yaml index 150a0b1..a436b52 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ecephys.yaml index 8126f97..c96af97 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ecephys.yaml @@ -25,15 +25,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -49,11 +48,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -65,26 +68,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -99,15 +89,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -124,12 +113,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -140,23 +129,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -164,36 +151,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -202,37 +181,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -294,7 +272,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -310,9 +287,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -321,28 +298,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -356,39 +332,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -399,43 +374,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.epoch.yaml index 442c85e..47fa3e4 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.epoch.yaml @@ -22,55 +22,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries description: An index into a TimeSeries object. - multivalued: false range: TimeIntervals__timeseries required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index TimeIntervals__timeseries: name: TimeIntervals__timeseries description: An index into a TimeSeries object. @@ -79,7 +86,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true equals_string: timeseries @@ -88,31 +94,19 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: false + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch. - multivalued: false range: int32 required: false + multivalued: false timeseries: name: timeseries description: the TimeSeries that this index applies to. - multivalued: false range: TimeSeries required: false - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index + multivalued: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.file.yaml index f758026..bec9dfd 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.file.yaml @@ -30,7 +30,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -48,36 +47,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -85,9 +84,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -164,9 +163,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -184,9 +183,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -204,9 +203,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -226,7 +225,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -269,129 +267,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false nwb_container: name: nwb_container description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: NWBContainer required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -405,21 +402,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -444,7 +441,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -464,60 +460,59 @@ classes: name: name: name ifabsent: string(subject) - identifier: true range: string required: true equals_string: subject age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: text required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false NWBFile__general__extracellular_ephys: name: NWBFile__general__extracellular_ephys description: Metadata related to extracellular electrophysiology. @@ -525,22 +520,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -549,72 +543,116 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false imp: name: imp description: Impedance of the channel. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference used for this electrode. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -622,7 +660,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -631,18 +668,18 @@ classes: description: Description of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries. - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: The table which groups different PatchClampSeries together. - multivalued: false range: SweepTable required: false + multivalued: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.icephys.yaml index daa1fd9..fb1361c 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -139,27 +135,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -168,15 +163,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -185,7 +179,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -208,57 +201,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -267,7 +259,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -288,7 +279,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -307,7 +297,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -326,7 +315,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -346,7 +334,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -366,7 +353,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -386,7 +372,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -406,7 +391,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -426,15 +410,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -443,7 +426,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -464,53 +446,52 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -519,35 +500,31 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.image.yaml index e3adaab..71cf395 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.image.yaml @@ -20,7 +20,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -31,7 +30,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -42,7 +40,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -58,15 +55,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. - multivalued: false range: numeric required: false + multivalued: false any_of: - array: dimensions: @@ -82,12 +78,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -95,18 +91,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -118,7 +114,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -154,7 +149,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -169,21 +163,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -196,9 +189,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -216,9 +209,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -232,16 +225,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: false array: dimensions: - alias: num_times range: int32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.misc.yaml index c1cf5cb..9f47099 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,28 +138,27 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -172,7 +167,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -199,20 +193,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -220,24 +216,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -247,31 +244,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -279,29 +282,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -315,9 +328,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -329,18 +342,6 @@ classes: - alias: num_samples - alias: num_electrodes 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit. @@ -349,7 +350,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -361,39 +361,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ogen.yaml index 03a42a0..08cb277 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ogen.yaml @@ -21,18 +21,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: false array: dimensions: - alias: num_times range: numeric required: true + multivalued: false tree_root: true OptogeneticStimulusSite: name: OptogeneticStimulusSite @@ -41,27 +40,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ophys.yaml index 28c21ca..3eafce0 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -39,9 +38,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -60,15 +59,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -79,25 +77,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.retinotopy.yaml index 8225499..b4d0df4 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.base.yaml index 0265063..b9b7b76 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.base.yaml @@ -20,7 +20,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -33,7 +32,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -73,7 +71,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -85,7 +82,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -96,7 +92,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -115,49 +110,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -166,9 +161,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -179,7 +174,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -239,7 +233,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -267,7 +260,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -293,7 +285,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -303,7 +294,7 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.behavior.yaml index 98b836c..b2a980c 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.device.yaml index bd6c3cf..e8f28d6 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ecephys.yaml index fa76144..9de48e5 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ecephys.yaml @@ -25,15 +25,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -49,11 +48,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -65,26 +68,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -99,15 +89,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -124,12 +113,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -140,23 +129,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -164,36 +151,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -202,37 +181,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -294,7 +272,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -310,9 +287,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -321,28 +298,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -356,39 +332,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -399,43 +374,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.epoch.yaml index 89d7026..51e899c 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.epoch.yaml @@ -22,55 +22,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries description: An index into a TimeSeries object. - multivalued: false range: TimeIntervals__timeseries required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index TimeIntervals__timeseries: name: TimeIntervals__timeseries description: An index into a TimeSeries object. @@ -79,7 +86,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true equals_string: timeseries @@ -88,31 +94,19 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: false + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch. - multivalued: false range: int32 required: false + multivalued: false timeseries: name: timeseries description: the TimeSeries that this index applies to. - multivalued: false range: TimeSeries required: false - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index + multivalued: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.file.yaml index 88d3032..0c91895 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.file.yaml @@ -28,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true notes: @@ -45,7 +44,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -63,36 +61,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -100,9 +98,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -179,9 +177,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -199,9 +197,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -219,9 +217,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -241,7 +239,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -284,129 +281,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false lab_meta_data: name: lab_meta_data description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: LabMetaData required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -420,21 +416,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -459,7 +455,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -478,22 +473,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -502,72 +496,116 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false imp: name: imp description: Impedance of the channel. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference used for this electrode. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -575,7 +613,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -584,21 +621,21 @@ classes: description: Description of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries. - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: The table which groups different PatchClampSeries together. - multivalued: false range: SweepTable required: false + multivalued: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. @@ -606,7 +643,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -617,57 +653,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: text required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.icephys.yaml index 3fbf2c8..83cf963 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -139,27 +135,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -168,15 +163,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -185,7 +179,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -208,57 +201,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -267,7 +259,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -288,7 +279,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -307,7 +297,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -326,7 +315,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -346,7 +334,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -366,7 +353,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -386,7 +372,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -406,7 +391,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -426,15 +410,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -443,7 +426,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -464,53 +446,52 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -519,35 +500,31 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.image.yaml index aed1f0a..dea4aa6 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.image.yaml @@ -20,7 +20,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -31,7 +30,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -42,7 +40,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -58,15 +55,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. - multivalued: false range: numeric required: false + multivalued: false any_of: - array: dimensions: @@ -82,12 +78,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -95,18 +91,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -118,7 +114,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -154,7 +149,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -169,21 +163,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -196,9 +189,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -216,9 +209,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -232,16 +225,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: false array: dimensions: - alias: num_times range: int32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.misc.yaml index 3127856..01a3ce4 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,28 +138,27 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -172,7 +167,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -199,20 +193,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -220,24 +216,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -247,31 +244,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -279,29 +282,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -315,9 +328,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -329,18 +342,6 @@ classes: - alias: num_samples - alias: num_electrodes 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit. @@ -349,7 +350,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -361,39 +361,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ogen.yaml index e1f0320..d158d51 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ogen.yaml @@ -21,18 +21,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: false array: dimensions: - alias: num_times range: numeric required: true + multivalued: false tree_root: true OptogeneticStimulusSite: name: OptogeneticStimulusSite @@ -41,27 +40,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ophys.yaml index 646536f..547d0d5 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -39,9 +38,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -60,15 +59,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -79,25 +77,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy @@ -154,56 +143,51 @@ classes: attributes: name: name: name - identifier: true range: string required: true image_mask: name: image_mask description: ROI masks for each ROI. Each image mask is the size of the original imaging plane (or volume) and members of the ROI are finite non-zero. - multivalued: false - range: AnyType + range: PlaneSegmentation__image_mask required: false - any_of: - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - alias: num_z + multivalued: false pixel_mask_index: name: pixel_mask_index + annotations: + named: + tag: named + value: true description: Index into pixel_mask. - multivalued: false - range: PlaneSegmentation__pixel_mask_index + range: VectorIndex required: false + multivalued: false pixel_mask: name: pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__pixel_mask required: false + multivalued: false voxel_mask_index: name: voxel_mask_index + annotations: + named: + tag: named + value: true description: Index into voxel_mask. - multivalued: false - range: PlaneSegmentation__voxel_mask_index + range: VectorIndex required: false + multivalued: false voxel_mask: name: voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__voxel_mask required: false + multivalued: false reference_images: name: reference_images description: Image stacks that the segmentation masks apply to. @@ -213,18 +197,18 @@ classes: any_of: - range: ImageSeries tree_root: true - PlaneSegmentation__pixel_mask_index: - name: PlaneSegmentation__pixel_mask_index - description: Index into pixel_mask. - is_a: VectorIndex + PlaneSegmentation__image_mask: + name: PlaneSegmentation__image_mask + description: ROI masks for each ROI. Each image mask is the size of the original + imaging plane (or volume) and members of the ROI are finite non-zero. + is_a: VectorData attributes: name: name: name - ifabsent: string(pixel_mask_index) - identifier: true + ifabsent: string(image_mask) range: string required: true - equals_string: pixel_mask_index + equals_string: image_mask PlaneSegmentation__pixel_mask: name: PlaneSegmentation__pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the @@ -235,40 +219,27 @@ classes: name: name: name ifabsent: string(pixel_mask) - identifier: true range: string required: true equals_string: pixel_mask x: name: x description: Pixel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Pixel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the pixel. - multivalued: false range: float32 required: false - PlaneSegmentation__voxel_mask_index: - name: PlaneSegmentation__voxel_mask_index - description: Index into voxel_mask. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(voxel_mask_index) - identifier: true - range: string - required: true - equals_string: voxel_mask_index + multivalued: false PlaneSegmentation__voxel_mask: name: PlaneSegmentation__voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the @@ -279,34 +250,33 @@ classes: name: name: name ifabsent: string(voxel_mask) - identifier: true range: string required: true equals_string: voxel_mask x: name: x description: Voxel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Voxel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false z: name: z description: Voxel z-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the voxel. - multivalued: false range: float32 required: false + multivalued: false ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. @@ -327,21 +297,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description or other notes about the channel. - multivalued: false range: text required: true + multivalued: false emission_lambda: name: emission_lambda description: Emission wavelength for channel, in nm. - multivalued: false range: float32 required: true + multivalued: false tree_root: true MotionCorrection: name: MotionCorrection @@ -365,20 +334,19 @@ classes: attributes: name: name: name - identifier: true range: string required: true corrected: name: corrected description: Image stack with frames shifted to the common coordinates. - multivalued: false range: ImageSeries required: true + multivalued: false xy_translation: name: xy_translation description: Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image. - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.retinotopy.yaml index ee4e11b..77858f0 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.base.yaml index e8bf1b4..dbf0921 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.base.yaml @@ -20,7 +20,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -33,7 +32,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -73,7 +71,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -85,7 +82,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -96,7 +92,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -115,49 +110,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -166,9 +161,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -179,7 +174,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -239,7 +233,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -267,7 +260,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -293,7 +285,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -303,7 +294,7 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.behavior.yaml index f41873f..5ecb8fb 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.device.yaml index 1ea59e7..32b7d65 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ecephys.yaml index 31df5a5..73148dd 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ecephys.yaml @@ -25,15 +25,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -49,11 +48,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -65,26 +68,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -99,15 +89,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -124,12 +113,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -140,23 +129,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -164,36 +151,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -202,37 +181,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -294,7 +272,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -310,9 +287,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -321,28 +298,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -356,39 +332,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -399,43 +374,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.epoch.yaml index 4128406..13cf7c6 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.epoch.yaml @@ -22,55 +22,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries description: An index into a TimeSeries object. - multivalued: false range: TimeIntervals__timeseries required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index TimeIntervals__timeseries: name: TimeIntervals__timeseries description: An index into a TimeSeries object. @@ -79,7 +86,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true equals_string: timeseries @@ -88,31 +94,19 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: false + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch. - multivalued: false range: int32 required: false + multivalued: false timeseries: name: timeseries description: the TimeSeries that this index applies to. - multivalued: false range: TimeSeries required: false - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index + multivalued: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.file.yaml index d003d2a..5974be3 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.file.yaml @@ -28,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true notes: @@ -45,7 +44,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -63,36 +61,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -100,9 +98,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -179,9 +177,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -199,9 +197,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -219,9 +217,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -241,7 +239,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -284,129 +281,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false lab_meta_data: name: lab_meta_data description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: LabMetaData required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -420,21 +416,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -459,7 +455,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -478,22 +473,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -502,72 +496,116 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false imp: name: imp description: Impedance of the channel. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference used for this electrode. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -575,7 +613,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -584,21 +621,21 @@ classes: description: Description of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries. - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: The table which groups different PatchClampSeries together. - multivalued: false range: SweepTable required: false + multivalued: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. @@ -606,7 +643,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -617,57 +653,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: text required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.icephys.yaml index d446bc3..015c804 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -139,27 +135,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -168,15 +163,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -185,7 +179,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -208,57 +201,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -267,7 +259,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -288,7 +279,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -307,7 +297,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -326,7 +315,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -346,7 +334,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -366,7 +353,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -386,7 +372,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -406,7 +391,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -426,15 +410,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -443,7 +426,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -464,53 +446,52 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -519,35 +500,31 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.image.yaml index 82a0998..eaa5e52 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.image.yaml @@ -20,7 +20,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -31,7 +30,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -42,7 +40,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -58,15 +55,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. - multivalued: false range: numeric required: false + multivalued: false any_of: - array: dimensions: @@ -82,12 +78,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -95,18 +91,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -118,7 +114,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -154,7 +149,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -169,21 +163,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -196,9 +189,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -216,9 +209,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -232,16 +225,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: false array: dimensions: - alias: num_times range: int32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.misc.yaml index 20c2604..115f5ac 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,28 +138,27 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -172,7 +167,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -199,20 +193,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -220,24 +216,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -247,31 +244,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -279,29 +282,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -315,9 +328,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -329,18 +342,6 @@ classes: - alias: num_samples - alias: num_electrodes 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit. @@ -349,7 +350,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -361,39 +361,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ogen.yaml index 7a4847e..2be6f23 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ogen.yaml @@ -21,18 +21,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: false array: dimensions: - alias: num_times range: numeric required: true + multivalued: false tree_root: true OptogeneticStimulusSite: name: OptogeneticStimulusSite @@ -41,27 +40,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ophys.yaml index d27243b..902cace 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -39,9 +38,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -60,15 +59,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -79,25 +77,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy @@ -154,56 +143,51 @@ classes: attributes: name: name: name - identifier: true range: string required: true image_mask: name: image_mask description: ROI masks for each ROI. Each image mask is the size of the original imaging plane (or volume) and members of the ROI are finite non-zero. - multivalued: false - range: AnyType + range: PlaneSegmentation__image_mask required: false - any_of: - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - alias: num_z + multivalued: false pixel_mask_index: name: pixel_mask_index + annotations: + named: + tag: named + value: true description: Index into pixel_mask. - multivalued: false - range: PlaneSegmentation__pixel_mask_index + range: VectorIndex required: false + multivalued: false pixel_mask: name: pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__pixel_mask required: false + multivalued: false voxel_mask_index: name: voxel_mask_index + annotations: + named: + tag: named + value: true description: Index into voxel_mask. - multivalued: false - range: PlaneSegmentation__voxel_mask_index + range: VectorIndex required: false + multivalued: false voxel_mask: name: voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__voxel_mask required: false + multivalued: false reference_images: name: reference_images description: Image stacks that the segmentation masks apply to. @@ -213,18 +197,18 @@ classes: any_of: - range: ImageSeries tree_root: true - PlaneSegmentation__pixel_mask_index: - name: PlaneSegmentation__pixel_mask_index - description: Index into pixel_mask. - is_a: VectorIndex + PlaneSegmentation__image_mask: + name: PlaneSegmentation__image_mask + description: ROI masks for each ROI. Each image mask is the size of the original + imaging plane (or volume) and members of the ROI are finite non-zero. + is_a: VectorData attributes: name: name: name - ifabsent: string(pixel_mask_index) - identifier: true + ifabsent: string(image_mask) range: string required: true - equals_string: pixel_mask_index + equals_string: image_mask PlaneSegmentation__pixel_mask: name: PlaneSegmentation__pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the @@ -235,40 +219,27 @@ classes: name: name: name ifabsent: string(pixel_mask) - identifier: true range: string required: true equals_string: pixel_mask x: name: x description: Pixel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Pixel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the pixel. - multivalued: false range: float32 required: false - PlaneSegmentation__voxel_mask_index: - name: PlaneSegmentation__voxel_mask_index - description: Index into voxel_mask. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(voxel_mask_index) - identifier: true - range: string - required: true - equals_string: voxel_mask_index + multivalued: false PlaneSegmentation__voxel_mask: name: PlaneSegmentation__voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the @@ -279,34 +250,33 @@ classes: name: name: name ifabsent: string(voxel_mask) - identifier: true range: string required: true equals_string: voxel_mask x: name: x description: Voxel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Voxel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false z: name: z description: Voxel z-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the voxel. - multivalued: false range: float32 required: false + multivalued: false ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. @@ -327,21 +297,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description or other notes about the channel. - multivalued: false range: text required: true + multivalued: false emission_lambda: name: emission_lambda description: Emission wavelength for channel, in nm. - multivalued: false range: float32 required: true + multivalued: false tree_root: true MotionCorrection: name: MotionCorrection @@ -365,20 +334,19 @@ classes: attributes: name: name: name - identifier: true range: string required: true corrected: name: corrected description: Image stack with frames shifted to the common coordinates. - multivalued: false range: ImageSeries required: true + multivalued: false xy_translation: name: xy_translation description: Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image. - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.retinotopy.yaml index 2020b35..c3acb3f 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.base.yaml index 1de0324..9eff269 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.base.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -34,7 +33,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -74,7 +72,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -86,7 +83,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -97,7 +93,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -116,49 +111,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -167,9 +162,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -180,7 +175,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -252,7 +246,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -280,7 +273,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -306,7 +298,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -316,7 +307,7 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.behavior.yaml index c5268e7..59a32d3 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.device.yaml index 44217f7..c0f4e17 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ecephys.yaml index c5b188d..888caab 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ecephys.yaml @@ -25,7 +25,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true filtering: @@ -41,9 +40,9 @@ classes: data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -59,11 +58,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -75,26 +78,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -109,15 +99,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -134,12 +123,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -150,23 +139,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -174,36 +161,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -212,37 +191,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -304,7 +282,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -320,9 +297,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -331,28 +308,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -366,39 +342,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -409,43 +384,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.epoch.yaml index 1fe1134..915eba7 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.epoch.yaml @@ -22,55 +22,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries description: An index into a TimeSeries object. - multivalued: false range: TimeIntervals__timeseries required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index TimeIntervals__timeseries: name: TimeIntervals__timeseries description: An index into a TimeSeries object. @@ -79,7 +86,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true equals_string: timeseries @@ -88,31 +94,19 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: false + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch. - multivalued: false range: int32 required: false + multivalued: false timeseries: name: timeseries description: the TimeSeries that this index applies to. - multivalued: false range: TimeSeries required: false - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index + multivalued: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.file.yaml index f3948e7..9b3da02 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.file.yaml @@ -28,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true notes: @@ -45,7 +44,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -63,36 +61,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -100,9 +98,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -179,9 +177,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -199,9 +197,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -219,9 +217,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -241,7 +239,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -284,129 +281,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false lab_meta_data: name: lab_meta_data description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: LabMetaData required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -420,21 +416,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -459,7 +455,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -478,22 +473,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -502,73 +496,117 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false imp: name: imp description: Impedance of the channel, in ohms. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering, including the filter name and frequency cutoffs. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference used for this electrode. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -576,7 +614,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -585,21 +622,21 @@ classes: description: Description of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries. - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: The table which groups different PatchClampSeries together. - multivalued: false range: SweepTable required: false + multivalued: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. @@ -607,7 +644,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -618,63 +654,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: text required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false strain: name: strain description: Strain of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.icephys.yaml index 63a0b6a..d100eb5 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -139,7 +135,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -150,21 +145,21 @@ classes: bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -173,15 +168,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -190,7 +184,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -213,57 +206,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -272,7 +264,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -293,7 +284,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -312,7 +302,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -331,7 +320,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -351,7 +339,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -371,7 +358,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -391,7 +377,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -411,7 +396,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -431,15 +415,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -448,7 +431,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -469,53 +451,52 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -524,35 +505,31 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.image.yaml index 751e6ec..52b587d 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.image.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -32,7 +31,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -43,7 +41,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -59,15 +56,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. - multivalued: false range: numeric required: false + multivalued: false any_of: - array: dimensions: @@ -83,12 +79,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -96,18 +92,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -119,7 +115,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -155,7 +150,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -170,21 +164,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -197,9 +190,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -217,9 +210,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -233,16 +226,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: false array: dimensions: - alias: num_times range: int32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.misc.yaml index d19abc5..1e5e813 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,35 +138,38 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: false source_channels: name: source_channels + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the channels that this decomposition series was generated from. - multivalued: false - range: DecompositionSeries__source_channels + range: DynamicTableRegion required: false + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -179,7 +178,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -197,19 +195,6 @@ classes: - alias: num_channels - alias: num_bands range: numeric - 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) - identifier: true - range: string - required: true - equals_string: source_channels DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -219,20 +204,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -240,24 +227,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -267,31 +255,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -299,29 +293,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -335,9 +339,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -373,40 +377,36 @@ classes: 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 array: dimensions: - alias: num_waveforms - alias: num_samples range: numeric required: false + multivalued: false waveforms_index: name: waveforms_index + annotations: + named: + tag: named + value: true description: Index into the waveforms dataset. One value for every spike event. See 'waveforms' for more detail. - multivalued: false - range: Units__waveforms_index + range: VectorIndex required: false + multivalued: false waveforms_index_index: name: waveforms_index_index + annotations: + named: + tag: named + value: true 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 + range: VectorIndex required: false + multivalued: 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit. @@ -415,7 +415,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -427,65 +426,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes - 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) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: waveforms_index_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ogen.yaml index f4f0673..48992da 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ogen.yaml @@ -21,18 +21,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: false array: dimensions: - alias: num_times range: numeric required: true + multivalued: false tree_root: true OptogeneticStimulusSite: name: OptogeneticStimulusSite @@ -41,27 +40,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ophys.yaml index 980a229..53f031e 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -39,9 +38,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -60,15 +59,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -79,25 +77,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy @@ -154,56 +143,51 @@ classes: attributes: name: name: name - identifier: true range: string required: true image_mask: name: image_mask description: ROI masks for each ROI. Each image mask is the size of the original imaging plane (or volume) and members of the ROI are finite non-zero. - multivalued: false - range: AnyType + range: PlaneSegmentation__image_mask required: false - any_of: - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - alias: num_z + multivalued: false pixel_mask_index: name: pixel_mask_index + annotations: + named: + tag: named + value: true description: Index into pixel_mask. - multivalued: false - range: PlaneSegmentation__pixel_mask_index + range: VectorIndex required: false + multivalued: false pixel_mask: name: pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__pixel_mask required: false + multivalued: false voxel_mask_index: name: voxel_mask_index + annotations: + named: + tag: named + value: true description: Index into voxel_mask. - multivalued: false - range: PlaneSegmentation__voxel_mask_index + range: VectorIndex required: false + multivalued: false voxel_mask: name: voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__voxel_mask required: false + multivalued: false reference_images: name: reference_images description: Image stacks that the segmentation masks apply to. @@ -213,18 +197,18 @@ classes: any_of: - range: ImageSeries tree_root: true - PlaneSegmentation__pixel_mask_index: - name: PlaneSegmentation__pixel_mask_index - description: Index into pixel_mask. - is_a: VectorIndex + PlaneSegmentation__image_mask: + name: PlaneSegmentation__image_mask + description: ROI masks for each ROI. Each image mask is the size of the original + imaging plane (or volume) and members of the ROI are finite non-zero. + is_a: VectorData attributes: name: name: name - ifabsent: string(pixel_mask_index) - identifier: true + ifabsent: string(image_mask) range: string required: true - equals_string: pixel_mask_index + equals_string: image_mask PlaneSegmentation__pixel_mask: name: PlaneSegmentation__pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the @@ -235,40 +219,27 @@ classes: name: name: name ifabsent: string(pixel_mask) - identifier: true range: string required: true equals_string: pixel_mask x: name: x description: Pixel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Pixel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the pixel. - multivalued: false range: float32 required: false - PlaneSegmentation__voxel_mask_index: - name: PlaneSegmentation__voxel_mask_index - description: Index into voxel_mask. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(voxel_mask_index) - identifier: true - range: string - required: true - equals_string: voxel_mask_index + multivalued: false PlaneSegmentation__voxel_mask: name: PlaneSegmentation__voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the @@ -279,34 +250,33 @@ classes: name: name: name ifabsent: string(voxel_mask) - identifier: true range: string required: true equals_string: voxel_mask x: name: x description: Voxel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Voxel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false z: name: z description: Voxel z-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the voxel. - multivalued: false range: float32 required: false + multivalued: false ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. @@ -327,21 +297,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description or other notes about the channel. - multivalued: false range: text required: true + multivalued: false emission_lambda: name: emission_lambda description: Emission wavelength for channel, in nm. - multivalued: false range: float32 required: true + multivalued: false tree_root: true MotionCorrection: name: MotionCorrection @@ -365,20 +334,19 @@ classes: attributes: name: name: name - identifier: true range: string required: true corrected: name: corrected description: Image stack with frames shifted to the common coordinates. - multivalued: false range: ImageSeries required: true + multivalued: false xy_translation: name: xy_translation description: Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image. - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.retinotopy.yaml index 9b55103..35c4f49 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.base.yaml index 4d26380..8d225c1 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.base.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -35,7 +34,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true idx_start: @@ -43,22 +41,22 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: true + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch - multivalued: false range: int32 required: true + multivalued: false timeseries: name: timeseries description: The TimeSeries that this index applies to - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true Image: name: Image @@ -69,7 +67,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -109,7 +106,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -121,7 +117,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -132,7 +127,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -151,49 +145,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -202,9 +196,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -215,7 +209,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -287,7 +280,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -315,7 +307,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -341,7 +332,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -351,7 +341,7 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.behavior.yaml index 95940a5..27895f5 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.device.yaml index 2631baa..fda15e6 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ecephys.yaml index 6b0a535..00ebe6f 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ecephys.yaml @@ -25,7 +25,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true filtering: @@ -41,9 +40,9 @@ classes: data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -59,11 +58,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -75,26 +78,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -109,15 +99,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -134,12 +123,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -150,23 +139,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -174,36 +161,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -212,37 +191,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -304,7 +282,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -320,9 +297,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -331,28 +308,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -366,39 +342,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -409,43 +384,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.epoch.yaml index 2903c11..19ce0d0 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.epoch.yaml @@ -22,55 +22,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries description: An index into a TimeSeries object. - multivalued: false range: TimeIntervals__timeseries required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index TimeIntervals__timeseries: name: TimeIntervals__timeseries description: An index into a TimeSeries object. @@ -79,7 +86,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true equals_string: timeseries @@ -88,31 +94,19 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: false + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch. - multivalued: false range: int32 required: false + multivalued: false timeseries: name: timeseries description: the TimeSeries that this index applies to. - multivalued: false range: TimeSeries required: false - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index + multivalued: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.file.yaml index 72c41cf..ed8fdda 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.file.yaml @@ -28,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true notes: @@ -45,7 +44,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -63,36 +61,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -100,9 +98,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -179,9 +177,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -199,9 +197,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -219,9 +217,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -241,7 +239,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -284,129 +281,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false lab_meta_data: name: lab_meta_data description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: LabMetaData required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -420,21 +416,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -459,7 +455,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -478,22 +473,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -502,73 +496,117 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false imp: name: imp description: Impedance of the channel, in ohms. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering, including the filter name and frequency cutoffs. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference used for this electrode. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -576,7 +614,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -586,24 +623,24 @@ classes: of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries.' - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: '[DEPRECATED] Table used to group different PatchClampSeries. SweepTable is being replaced by IntracellularRecordingsTable and SimultaneousRecordingsTable tabels. Additional SequentialRecordingsTable, RepetitionsTable and ExperimentalConditions tables provide enhanced support for experiment metadata.' - multivalued: false range: SweepTable required: false + multivalued: false intracellular_recordings: name: intracellular_recordings description: A table to group together a stimulus and response from a single @@ -618,42 +655,42 @@ classes: PatchClampSeries. However, the use of AD/DA channels that are not associated to an electrode is also common in intracellular electrophysiology, in which case other TimeSeries may be used. - multivalued: false range: IntracellularRecordingsTable required: false + multivalued: false simultaneous_recordings: name: simultaneous_recordings description: A table for grouping different intracellular recordings from the IntracellularRecordingsTable table together that were recorded simultaneously from different electrodes - multivalued: false range: SimultaneousRecordingsTable required: false + multivalued: false sequential_recordings: name: sequential_recordings description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable table together. This is typically used to group together sequential recordings where the a sequence of stimuli of the same type with varying parameters have been presented in a sequence. - multivalued: false range: SequentialRecordingsTable required: false + multivalued: false repetitions: name: repetitions description: A table for grouping different sequential intracellular recordings together. With each SequentialRecording typically representing a particular type of stimulus, the RepetitionsTable table is typically used to group sets of stimuli applied in sequence. - multivalued: false range: RepetitionsTable required: false + multivalued: false experimental_conditions: name: experimental_conditions description: A table for grouping different intracellular recording repetitions together that belong to the same experimental experimental_conditions. - multivalued: false range: ExperimentalConditionsTable required: false + multivalued: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. @@ -661,7 +698,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -672,63 +708,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: text required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false strain: name: strain description: Strain of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.icephys.yaml index 6aa85d5..2150103 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -139,7 +135,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -150,21 +145,21 @@ classes: bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -173,15 +168,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -190,7 +184,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -213,57 +206,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -272,7 +264,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -293,7 +284,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -312,7 +302,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -331,7 +320,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -351,7 +339,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -371,7 +358,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -391,7 +377,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -411,7 +396,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -431,15 +415,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -448,7 +431,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -469,53 +451,52 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -527,38 +508,34 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index IntracellularElectrodesTable: name: IntracellularElectrodesTable description: Table for storing intracellular electrode related metadata. @@ -566,7 +543,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -576,8 +552,9 @@ classes: electrode: name: electrode description: Column for storing the reference to the intracellular electrode. - multivalued: true range: IntracellularElectrode + required: true + multivalued: true tree_root: true IntracellularStimuliTable: name: IntracellularStimuliTable @@ -586,7 +563,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -595,25 +571,16 @@ classes: range: text stimulus: name: stimulus + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded stimulus for the recording (rows). + range: TimeSeriesReferenceVectorData + required: true multivalued: false - range: IntracellularStimuliTable__stimulus - required: true tree_root: true - IntracellularStimuliTable__stimulus: - name: IntracellularStimuliTable__stimulus - description: Column storing the reference to the recorded stimulus for the recording - (rows). - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(stimulus) - identifier: true - range: string - required: true - equals_string: stimulus IntracellularResponsesTable: name: IntracellularResponsesTable description: Table for storing intracellular response related metadata. @@ -621,7 +588,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -630,25 +596,16 @@ classes: range: text response: name: response + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded response for the recording (rows) + range: TimeSeriesReferenceVectorData + required: true multivalued: false - range: IntracellularResponsesTable__response - required: true tree_root: true - IntracellularResponsesTable__response: - name: IntracellularResponsesTable__response - description: Column storing the reference to the recorded response for the recording - (rows) - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(response) - identifier: true - range: string - required: true - equals_string: response IntracellularRecordingsTable: name: IntracellularRecordingsTable description: A table to group together a stimulus and response from a single electrode @@ -667,7 +624,6 @@ classes: name: name: name ifabsent: string(intracellular_recordings) - identifier: true range: string required: true equals_string: intracellular_recordings @@ -679,21 +635,21 @@ classes: electrodes: name: electrodes description: Table for storing intracellular electrode related metadata. - multivalued: false range: IntracellularElectrodesTable required: true + multivalued: false stimuli: name: stimuli description: Table for storing intracellular stimulus related metadata. - multivalued: false range: IntracellularStimuliTable required: true + multivalued: false responses: name: responses description: Table for storing intracellular response related metadata. - multivalued: false range: IntracellularResponsesTable required: true + multivalued: false tree_root: true SimultaneousRecordingsTable: name: SimultaneousRecordingsTable @@ -705,7 +661,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -713,15 +668,19 @@ classes: name: recordings description: A reference to one or more rows in the IntracellularRecordingsTable table. - multivalued: false range: SimultaneousRecordingsTable__recordings required: true + multivalued: false recordings_index: name: recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the recordings column. - multivalued: false - range: SimultaneousRecordingsTable__recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true SimultaneousRecordingsTable__recordings: name: SimultaneousRecordingsTable__recordings @@ -732,7 +691,6 @@ classes: name: name: name ifabsent: string(recordings) - identifier: true range: string required: true equals_string: recordings @@ -742,18 +700,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: IntracellularRecordingsTable - SimultaneousRecordingsTable__recordings_index: - name: SimultaneousRecordingsTable__recordings_index - description: Index dataset for the recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(recordings_index) - identifier: true - range: string - required: true - equals_string: recordings_index SequentialRecordingsTable: name: SequentialRecordingsTable description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable @@ -765,7 +711,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -773,20 +718,28 @@ classes: name: simultaneous_recordings description: A reference to one or more rows in the SimultaneousRecordingsTable table. - multivalued: false range: SequentialRecordingsTable__simultaneous_recordings required: true + multivalued: false simultaneous_recordings_index: name: simultaneous_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the simultaneous_recordings column. - multivalued: false - range: SequentialRecordingsTable__simultaneous_recordings_index + range: VectorIndex required: true + multivalued: false stimulus_type: name: stimulus_type description: The type of stimulus used for the sequential recording. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false tree_root: true SequentialRecordingsTable__simultaneous_recordings: name: SequentialRecordingsTable__simultaneous_recordings @@ -797,7 +750,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -807,18 +759,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SimultaneousRecordingsTable - SequentialRecordingsTable__simultaneous_recordings_index: - name: SequentialRecordingsTable__simultaneous_recordings_index - description: Index dataset for the simultaneous_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(simultaneous_recordings_index) - identifier: true - range: string - required: true - equals_string: simultaneous_recordings_index RepetitionsTable: name: RepetitionsTable description: A table for grouping different sequential intracellular recordings @@ -830,7 +770,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -838,15 +777,19 @@ classes: name: sequential_recordings description: A reference to one or more rows in the SequentialRecordingsTable table. - multivalued: false range: RepetitionsTable__sequential_recordings required: true + multivalued: false sequential_recordings_index: name: sequential_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the sequential_recordings column. - multivalued: false - range: RepetitionsTable__sequential_recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true RepetitionsTable__sequential_recordings: name: RepetitionsTable__sequential_recordings @@ -857,7 +800,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -867,18 +809,6 @@ classes: region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SequentialRecordingsTable - RepetitionsTable__sequential_recordings_index: - name: RepetitionsTable__sequential_recordings_index - description: Index dataset for the sequential_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(sequential_recordings_index) - identifier: true - range: string - required: true - equals_string: sequential_recordings_index ExperimentalConditionsTable: name: ExperimentalConditionsTable description: A table for grouping different intracellular recording repetitions @@ -888,22 +818,25 @@ classes: name: name: name ifabsent: string(experimental_conditions) - identifier: true range: string required: true equals_string: experimental_conditions repetitions: name: repetitions description: A reference to one or more rows in the RepetitionsTable table. - multivalued: false range: ExperimentalConditionsTable__repetitions required: true + multivalued: false repetitions_index: name: repetitions_index + annotations: + named: + tag: named + value: true description: Index dataset for the repetitions column. - multivalued: false - range: ExperimentalConditionsTable__repetitions_index + range: VectorIndex required: true + multivalued: false tree_root: true ExperimentalConditionsTable__repetitions: name: ExperimentalConditionsTable__repetitions @@ -913,7 +846,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -923,15 +855,3 @@ classes: applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: RepetitionsTable - ExperimentalConditionsTable__repetitions_index: - name: ExperimentalConditionsTable__repetitions_index - description: Index dataset for the repetitions column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(repetitions_index) - identifier: true - range: string - required: true - equals_string: repetitions_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.image.yaml index 9caade3..71e1c2a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.image.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -32,7 +31,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -43,7 +41,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -59,16 +56,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. If data are stored in an external file, this should be an empty 3D array. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -84,12 +80,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -97,18 +93,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -120,7 +116,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -156,7 +151,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -171,21 +165,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -198,9 +191,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -218,9 +211,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -234,16 +227,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: false array: dimensions: - alias: num_times range: int32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.misc.yaml index 990bcef..5910e70 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,35 +138,38 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: false source_channels: name: source_channels + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the channels that this decomposition series was generated from. - multivalued: false - range: DecompositionSeries__source_channels + range: DynamicTableRegion required: false + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -179,7 +178,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -197,19 +195,6 @@ classes: - alias: num_channels - alias: num_bands range: numeric - 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) - identifier: true - range: string - required: true - equals_string: source_channels DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -219,20 +204,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -240,24 +227,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -267,31 +255,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -299,29 +293,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -335,9 +339,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -373,40 +377,36 @@ classes: 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 array: dimensions: - alias: num_waveforms - alias: num_samples range: numeric required: false + multivalued: false waveforms_index: name: waveforms_index + annotations: + named: + tag: named + value: true description: Index into the waveforms dataset. One value for every spike event. See 'waveforms' for more detail. - multivalued: false - range: Units__waveforms_index + range: VectorIndex required: false + multivalued: false waveforms_index_index: name: waveforms_index_index + annotations: + named: + tag: named + value: true 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 + range: VectorIndex required: false + multivalued: 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit. @@ -415,7 +415,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -427,65 +426,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes - 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) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: waveforms_index_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ogen.yaml index 3879929..4786e5d 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ogen.yaml @@ -21,18 +21,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: false array: dimensions: - alias: num_times range: numeric required: true + multivalued: false tree_root: true OptogeneticStimulusSite: name: OptogeneticStimulusSite @@ -41,27 +40,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ophys.yaml index 7d32add..b76d14a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -39,9 +38,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -60,15 +59,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -79,25 +77,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy @@ -154,56 +143,51 @@ classes: attributes: name: name: name - identifier: true range: string required: true image_mask: name: image_mask description: ROI masks for each ROI. Each image mask is the size of the original imaging plane (or volume) and members of the ROI are finite non-zero. - multivalued: false - range: AnyType + range: PlaneSegmentation__image_mask required: false - any_of: - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - alias: num_z + multivalued: false pixel_mask_index: name: pixel_mask_index + annotations: + named: + tag: named + value: true description: Index into pixel_mask. - multivalued: false - range: PlaneSegmentation__pixel_mask_index + range: VectorIndex required: false + multivalued: false pixel_mask: name: pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__pixel_mask required: false + multivalued: false voxel_mask_index: name: voxel_mask_index + annotations: + named: + tag: named + value: true description: Index into voxel_mask. - multivalued: false - range: PlaneSegmentation__voxel_mask_index + range: VectorIndex required: false + multivalued: false voxel_mask: name: voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__voxel_mask required: false + multivalued: false reference_images: name: reference_images description: Image stacks that the segmentation masks apply to. @@ -213,18 +197,18 @@ classes: any_of: - range: ImageSeries tree_root: true - PlaneSegmentation__pixel_mask_index: - name: PlaneSegmentation__pixel_mask_index - description: Index into pixel_mask. - is_a: VectorIndex + PlaneSegmentation__image_mask: + name: PlaneSegmentation__image_mask + description: ROI masks for each ROI. Each image mask is the size of the original + imaging plane (or volume) and members of the ROI are finite non-zero. + is_a: VectorData attributes: name: name: name - ifabsent: string(pixel_mask_index) - identifier: true + ifabsent: string(image_mask) range: string required: true - equals_string: pixel_mask_index + equals_string: image_mask PlaneSegmentation__pixel_mask: name: PlaneSegmentation__pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the @@ -235,40 +219,27 @@ classes: name: name: name ifabsent: string(pixel_mask) - identifier: true range: string required: true equals_string: pixel_mask x: name: x description: Pixel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Pixel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the pixel. - multivalued: false range: float32 required: false - PlaneSegmentation__voxel_mask_index: - name: PlaneSegmentation__voxel_mask_index - description: Index into voxel_mask. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(voxel_mask_index) - identifier: true - range: string - required: true - equals_string: voxel_mask_index + multivalued: false PlaneSegmentation__voxel_mask: name: PlaneSegmentation__voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the @@ -279,34 +250,33 @@ classes: name: name: name ifabsent: string(voxel_mask) - identifier: true range: string required: true equals_string: voxel_mask x: name: x description: Voxel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Voxel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false z: name: z description: Voxel z-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the voxel. - multivalued: false range: float32 required: false + multivalued: false ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. @@ -327,21 +297,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description or other notes about the channel. - multivalued: false range: text required: true + multivalued: false emission_lambda: name: emission_lambda description: Emission wavelength for channel, in nm. - multivalued: false range: float32 required: true + multivalued: false tree_root: true MotionCorrection: name: MotionCorrection @@ -365,20 +334,19 @@ classes: attributes: name: name: name - identifier: true range: string required: true corrected: name: corrected description: Image stack with frames shifted to the common coordinates. - multivalued: false range: ImageSeries required: true + multivalued: false xy_translation: name: xy_translation description: Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image. - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.retinotopy.yaml index 4a9b70d..4a62dbb 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.base.yaml index 1dd98b9..3bddf3d 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.base.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -35,7 +34,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true idx_start: @@ -43,22 +41,22 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: true + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch - multivalued: false range: int32 required: true + multivalued: false timeseries: name: timeseries description: The TimeSeries that this index applies to - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true Image: name: Image @@ -69,7 +67,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -108,15 +105,8 @@ classes: attributes: name: name: name - identifier: true range: string required: true - image: - name: image - description: Ordered dataset of references to Image objects. - multivalued: true - range: Image - required: true tree_root: true NWBContainer: name: NWBContainer @@ -126,7 +116,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -138,7 +127,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -149,7 +137,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -168,49 +155,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -219,9 +206,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -232,7 +219,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -312,7 +298,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -340,7 +325,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -368,7 +352,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -378,30 +361,20 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true order_of_images: name: order_of_images + annotations: + named: + tag: named + value: true description: Ordered dataset of references to Image objects stored in the parent group. Each Image object in the Images group should be stored once and only once, so the dataset should have the same length as the number of images. - multivalued: false - range: Images__order_of_images + range: ImageReferences required: false + multivalued: false tree_root: true - Images__order_of_images: - name: Images__order_of_images - description: Ordered dataset of references to Image objects stored in the parent - group. Each Image object in the Images group should be stored once and only - once, so the dataset should have the same length as the number of images. - is_a: ImageReferences - attributes: - name: - name: name - ifabsent: string(order_of_images) - identifier: true - range: string - required: true - equals_string: order_of_images diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.behavior.yaml index 2fa1768..226b5e1 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.device.yaml index ea60a74..64b6e98 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ecephys.yaml index 6d1f15f..2172085 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ecephys.yaml @@ -25,7 +25,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true filtering: @@ -41,9 +40,9 @@ classes: data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -59,11 +58,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -75,26 +78,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -109,15 +99,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -134,12 +123,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -150,23 +139,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -174,36 +161,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -212,37 +191,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -304,7 +282,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -320,9 +297,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -331,28 +308,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -366,39 +342,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -409,43 +384,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.epoch.yaml index cd992b0..8c2e102 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.epoch.yaml @@ -22,76 +22,63 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries + annotations: + named: + tag: named + value: true description: An index into a TimeSeries object. - multivalued: false - range: TimeIntervals__timeseries + range: TimeSeriesReferenceVectorData required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index - TimeIntervals__timeseries: - name: TimeIntervals__timeseries - description: An index into a TimeSeries object. - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(timeseries) - identifier: true - range: string - required: true - equals_string: timeseries - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.file.yaml index 76ebf3d..ab13eef 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.file.yaml @@ -28,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true notes: @@ -45,7 +44,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -63,36 +61,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -100,9 +98,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -179,9 +177,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -199,9 +197,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -219,9 +217,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -241,7 +239,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -285,129 +282,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false lab_meta_data: name: lab_meta_data description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: LabMetaData required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -421,21 +417,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -460,7 +456,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -479,22 +474,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -503,75 +497,119 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false imp: name: imp description: Impedance of the channel, in ohms. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering, including the filter name and frequency cutoffs. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference electrode and/or reference scheme used for this electrode, e.g., "stainless steel skull screw" or "online common average referencing". - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -579,7 +617,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -589,24 +626,24 @@ classes: of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries.' - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: '[DEPRECATED] Table used to group different PatchClampSeries. SweepTable is being replaced by IntracellularRecordingsTable and SimultaneousRecordingsTable tabels. Additional SequentialRecordingsTable, RepetitionsTable and ExperimentalConditions tables provide enhanced support for experiment metadata.' - multivalued: false range: SweepTable required: false + multivalued: false intracellular_recordings: name: intracellular_recordings description: A table to group together a stimulus and response from a single @@ -621,42 +658,42 @@ classes: PatchClampSeries. However, the use of AD/DA channels that are not associated to an electrode is also common in intracellular electrophysiology, in which case other TimeSeries may be used. - multivalued: false range: IntracellularRecordingsTable required: false + multivalued: false simultaneous_recordings: name: simultaneous_recordings description: A table for grouping different intracellular recordings from the IntracellularRecordingsTable table together that were recorded simultaneously from different electrodes - multivalued: false range: SimultaneousRecordingsTable required: false + multivalued: false sequential_recordings: name: sequential_recordings description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable table together. This is typically used to group together sequential recordings where the a sequence of stimuli of the same type with varying parameters have been presented in a sequence. - multivalued: false range: SequentialRecordingsTable required: false + multivalued: false repetitions: name: repetitions description: A table for grouping different sequential intracellular recordings together. With each SequentialRecording typically representing a particular type of stimulus, the RepetitionsTable table is typically used to group sets of stimuli applied in sequence. - multivalued: false range: RepetitionsTable required: false + multivalued: false experimental_conditions: name: experimental_conditions description: A table for grouping different intracellular recording repetitions together that belong to the same experimental experimental_conditions. - multivalued: false range: ExperimentalConditionsTable required: false + multivalued: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. @@ -664,7 +701,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -675,63 +711,62 @@ classes: attributes: name: name: name - identifier: true range: string required: true age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: text required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false strain: name: strain description: Strain of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.icephys.yaml index dd240da..dbde975 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -140,7 +136,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -151,21 +146,21 @@ classes: bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -174,15 +169,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -191,7 +185,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -215,57 +208,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -274,7 +266,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -296,7 +287,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -315,7 +305,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -334,7 +323,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -354,7 +342,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -374,7 +361,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -394,7 +380,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -414,7 +399,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -434,15 +418,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -451,7 +434,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -473,59 +455,58 @@ classes: attributes: name: name: name - identifier: true range: string required: true cell_id: name: cell_id description: unique ID of the cell - multivalued: false range: text required: false + multivalued: false description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -537,38 +518,34 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index IntracellularElectrodesTable: name: IntracellularElectrodesTable description: Table for storing intracellular electrode related metadata. @@ -576,7 +553,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -586,8 +562,9 @@ classes: electrode: name: electrode description: Column for storing the reference to the intracellular electrode. - multivalued: true range: IntracellularElectrode + required: true + multivalued: true tree_root: true IntracellularStimuliTable: name: IntracellularStimuliTable @@ -596,7 +573,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -605,25 +581,16 @@ classes: range: text stimulus: name: stimulus + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded stimulus for the recording (rows). + range: TimeSeriesReferenceVectorData + required: true multivalued: false - range: IntracellularStimuliTable__stimulus - required: true tree_root: true - IntracellularStimuliTable__stimulus: - name: IntracellularStimuliTable__stimulus - description: Column storing the reference to the recorded stimulus for the recording - (rows). - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(stimulus) - identifier: true - range: string - required: true - equals_string: stimulus IntracellularResponsesTable: name: IntracellularResponsesTable description: Table for storing intracellular response related metadata. @@ -631,7 +598,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -640,25 +606,16 @@ classes: range: text response: name: response + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded response for the recording (rows) + range: TimeSeriesReferenceVectorData + required: true multivalued: false - range: IntracellularResponsesTable__response - required: true tree_root: true - IntracellularResponsesTable__response: - name: IntracellularResponsesTable__response - description: Column storing the reference to the recorded response for the recording - (rows) - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(response) - identifier: true - range: string - required: true - equals_string: response IntracellularRecordingsTable: name: IntracellularRecordingsTable description: A table to group together a stimulus and response from a single electrode @@ -677,7 +634,6 @@ classes: name: name: name ifabsent: string(intracellular_recordings) - identifier: true range: string required: true equals_string: intracellular_recordings @@ -689,21 +645,21 @@ classes: electrodes: name: electrodes description: Table for storing intracellular electrode related metadata. - multivalued: false range: IntracellularElectrodesTable required: true + multivalued: false stimuli: name: stimuli description: Table for storing intracellular stimulus related metadata. - multivalued: false range: IntracellularStimuliTable required: true + multivalued: false responses: name: responses description: Table for storing intracellular response related metadata. - multivalued: false range: IntracellularResponsesTable required: true + multivalued: false tree_root: true SimultaneousRecordingsTable: name: SimultaneousRecordingsTable @@ -715,7 +671,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -723,15 +678,19 @@ classes: name: recordings description: A reference to one or more rows in the IntracellularRecordingsTable table. - multivalued: false range: SimultaneousRecordingsTable__recordings required: true + multivalued: false recordings_index: name: recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the recordings column. - multivalued: false - range: SimultaneousRecordingsTable__recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true SimultaneousRecordingsTable__recordings: name: SimultaneousRecordingsTable__recordings @@ -742,7 +701,6 @@ classes: name: name: name ifabsent: string(recordings) - identifier: true range: string required: true equals_string: recordings @@ -752,18 +710,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: IntracellularRecordingsTable - SimultaneousRecordingsTable__recordings_index: - name: SimultaneousRecordingsTable__recordings_index - description: Index dataset for the recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(recordings_index) - identifier: true - range: string - required: true - equals_string: recordings_index SequentialRecordingsTable: name: SequentialRecordingsTable description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable @@ -775,7 +721,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -783,20 +728,28 @@ classes: name: simultaneous_recordings description: A reference to one or more rows in the SimultaneousRecordingsTable table. - multivalued: false range: SequentialRecordingsTable__simultaneous_recordings required: true + multivalued: false simultaneous_recordings_index: name: simultaneous_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the simultaneous_recordings column. - multivalued: false - range: SequentialRecordingsTable__simultaneous_recordings_index + range: VectorIndex required: true + multivalued: false stimulus_type: name: stimulus_type description: The type of stimulus used for the sequential recording. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false tree_root: true SequentialRecordingsTable__simultaneous_recordings: name: SequentialRecordingsTable__simultaneous_recordings @@ -807,7 +760,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -817,18 +769,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SimultaneousRecordingsTable - SequentialRecordingsTable__simultaneous_recordings_index: - name: SequentialRecordingsTable__simultaneous_recordings_index - description: Index dataset for the simultaneous_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(simultaneous_recordings_index) - identifier: true - range: string - required: true - equals_string: simultaneous_recordings_index RepetitionsTable: name: RepetitionsTable description: A table for grouping different sequential intracellular recordings @@ -840,7 +780,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -848,15 +787,19 @@ classes: name: sequential_recordings description: A reference to one or more rows in the SequentialRecordingsTable table. - multivalued: false range: RepetitionsTable__sequential_recordings required: true + multivalued: false sequential_recordings_index: name: sequential_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the sequential_recordings column. - multivalued: false - range: RepetitionsTable__sequential_recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true RepetitionsTable__sequential_recordings: name: RepetitionsTable__sequential_recordings @@ -867,7 +810,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -877,18 +819,6 @@ classes: region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SequentialRecordingsTable - RepetitionsTable__sequential_recordings_index: - name: RepetitionsTable__sequential_recordings_index - description: Index dataset for the sequential_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(sequential_recordings_index) - identifier: true - range: string - required: true - equals_string: sequential_recordings_index ExperimentalConditionsTable: name: ExperimentalConditionsTable description: A table for grouping different intracellular recording repetitions @@ -898,22 +828,25 @@ classes: name: name: name ifabsent: string(experimental_conditions) - identifier: true range: string required: true equals_string: experimental_conditions repetitions: name: repetitions description: A reference to one or more rows in the RepetitionsTable table. - multivalued: false range: ExperimentalConditionsTable__repetitions required: true + multivalued: false repetitions_index: name: repetitions_index + annotations: + named: + tag: named + value: true description: Index dataset for the repetitions column. - multivalued: false - range: ExperimentalConditionsTable__repetitions_index + range: VectorIndex required: true + multivalued: false tree_root: true ExperimentalConditionsTable__repetitions: name: ExperimentalConditionsTable__repetitions @@ -923,7 +856,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -933,15 +865,3 @@ classes: applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: RepetitionsTable - ExperimentalConditionsTable__repetitions_index: - name: ExperimentalConditionsTable__repetitions_index - description: Index dataset for the repetitions column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(repetitions_index) - identifier: true - range: string - required: true - equals_string: repetitions_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.image.yaml index c805cd5..169e913 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.image.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -32,7 +31,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -43,7 +41,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -59,16 +56,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. If data are stored in an external file, this should be an empty 3D array. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -84,12 +80,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -97,18 +93,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -120,7 +116,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -156,7 +151,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -171,21 +165,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -198,9 +191,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -218,9 +211,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -235,17 +228,16 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the image (using zero-indexing) in the linked Images object. - multivalued: false array: dimensions: - alias: num_times range: uint32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.misc.yaml index 9b125cf..18d7b69 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,35 +138,38 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: false source_channels: name: source_channels + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the channels that this decomposition series was generated from. - multivalued: false - range: DecompositionSeries__source_channels + range: DynamicTableRegion required: false + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -179,7 +178,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -197,19 +195,6 @@ classes: - alias: num_channels - alias: num_bands range: numeric - 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) - identifier: true - range: string - required: true - equals_string: source_channels DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -219,20 +204,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -240,24 +227,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -267,31 +255,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -299,29 +293,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -335,9 +339,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -373,40 +377,36 @@ classes: 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 array: dimensions: - alias: num_waveforms - alias: num_samples range: numeric required: false + multivalued: false waveforms_index: name: waveforms_index + annotations: + named: + tag: named + value: true description: Index into the waveforms dataset. One value for every spike event. See 'waveforms' for more detail. - multivalued: false - range: Units__waveforms_index + range: VectorIndex required: false + multivalued: false waveforms_index_index: name: waveforms_index_index + annotations: + named: + tag: named + value: true 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 + range: VectorIndex required: false + multivalued: 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit. @@ -415,7 +415,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -427,65 +426,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes - 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) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: waveforms_index_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ogen.yaml index 546b9cd..25902d8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ogen.yaml @@ -21,18 +21,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: false array: dimensions: - alias: num_times range: numeric required: true + multivalued: false tree_root: true OptogeneticStimulusSite: name: OptogeneticStimulusSite @@ -41,27 +40,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ophys.yaml index 9466e2f..ebaa877 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -39,9 +38,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -60,15 +59,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -79,25 +77,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy @@ -154,56 +143,51 @@ classes: attributes: name: name: name - identifier: true range: string required: true image_mask: name: image_mask description: ROI masks for each ROI. Each image mask is the size of the original imaging plane (or volume) and members of the ROI are finite non-zero. - multivalued: false - range: AnyType + range: PlaneSegmentation__image_mask required: false - any_of: - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - alias: num_z + multivalued: false pixel_mask_index: name: pixel_mask_index + annotations: + named: + tag: named + value: true description: Index into pixel_mask. - multivalued: false - range: PlaneSegmentation__pixel_mask_index + range: VectorIndex required: false + multivalued: false pixel_mask: name: pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__pixel_mask required: false + multivalued: false voxel_mask_index: name: voxel_mask_index + annotations: + named: + tag: named + value: true description: Index into voxel_mask. - multivalued: false - range: PlaneSegmentation__voxel_mask_index + range: VectorIndex required: false + multivalued: false voxel_mask: name: voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__voxel_mask required: false + multivalued: false reference_images: name: reference_images description: Image stacks that the segmentation masks apply to. @@ -213,18 +197,18 @@ classes: any_of: - range: ImageSeries tree_root: true - PlaneSegmentation__pixel_mask_index: - name: PlaneSegmentation__pixel_mask_index - description: Index into pixel_mask. - is_a: VectorIndex + PlaneSegmentation__image_mask: + name: PlaneSegmentation__image_mask + description: ROI masks for each ROI. Each image mask is the size of the original + imaging plane (or volume) and members of the ROI are finite non-zero. + is_a: VectorData attributes: name: name: name - ifabsent: string(pixel_mask_index) - identifier: true + ifabsent: string(image_mask) range: string required: true - equals_string: pixel_mask_index + equals_string: image_mask PlaneSegmentation__pixel_mask: name: PlaneSegmentation__pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the @@ -235,40 +219,27 @@ classes: name: name: name ifabsent: string(pixel_mask) - identifier: true range: string required: true equals_string: pixel_mask x: name: x description: Pixel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Pixel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the pixel. - multivalued: false range: float32 required: false - PlaneSegmentation__voxel_mask_index: - name: PlaneSegmentation__voxel_mask_index - description: Index into voxel_mask. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(voxel_mask_index) - identifier: true - range: string - required: true - equals_string: voxel_mask_index + multivalued: false PlaneSegmentation__voxel_mask: name: PlaneSegmentation__voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the @@ -279,34 +250,33 @@ classes: name: name: name ifabsent: string(voxel_mask) - identifier: true range: string required: true equals_string: voxel_mask x: name: x description: Voxel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Voxel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false z: name: z description: Voxel z-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the voxel. - multivalued: false range: float32 required: false + multivalued: false ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. @@ -327,21 +297,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description or other notes about the channel. - multivalued: false range: text required: true + multivalued: false emission_lambda: name: emission_lambda description: Emission wavelength for channel, in nm. - multivalued: false range: float32 required: true + multivalued: false tree_root: true MotionCorrection: name: MotionCorrection @@ -365,20 +334,19 @@ classes: attributes: name: name: name - identifier: true range: string required: true corrected: name: corrected description: Image stack with frames shifted to the common coordinates. - multivalued: false range: ImageSeries required: true + multivalued: false xy_translation: name: xy_translation description: Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image. - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.retinotopy.yaml index 0270fdf..23a305e 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.base.yaml index 875146e..6bbbcfe 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.base.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -35,7 +34,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true idx_start: @@ -43,22 +41,22 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: true + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch - multivalued: false range: int32 required: true + multivalued: false timeseries: name: timeseries description: The TimeSeries that this index applies to - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true Image: name: Image @@ -69,7 +67,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -108,15 +105,8 @@ classes: attributes: name: name: name - identifier: true range: string required: true - image: - name: image - description: Ordered dataset of references to Image objects. - multivalued: true - range: Image - required: true tree_root: true NWBContainer: name: NWBContainer @@ -126,7 +116,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -138,7 +127,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -149,7 +137,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -168,49 +155,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -219,9 +206,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -232,7 +219,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -312,7 +298,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -340,7 +325,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -368,7 +352,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -378,30 +361,20 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true order_of_images: name: order_of_images + annotations: + named: + tag: named + value: true description: Ordered dataset of references to Image objects stored in the parent group. Each Image object in the Images group should be stored once and only once, so the dataset should have the same length as the number of images. - multivalued: false - range: Images__order_of_images + range: ImageReferences required: false + multivalued: false tree_root: true - Images__order_of_images: - name: Images__order_of_images - description: Ordered dataset of references to Image objects stored in the parent - group. Each Image object in the Images group should be stored once and only - once, so the dataset should have the same length as the number of images. - is_a: ImageReferences - attributes: - name: - name: name - ifabsent: string(order_of_images) - identifier: true - range: string - required: true - equals_string: order_of_images diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.behavior.yaml index 137b0de..839f43b 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.device.yaml index 56e0400..a01cb4b 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ecephys.yaml index d24123d..7c95205 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ecephys.yaml @@ -25,7 +25,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true filtering: @@ -41,9 +40,9 @@ classes: data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -59,11 +58,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -75,26 +78,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -109,15 +99,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -134,12 +123,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -150,23 +139,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -174,36 +161,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -212,37 +191,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -304,7 +282,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -320,9 +297,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -331,28 +308,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -366,39 +342,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -409,43 +384,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.epoch.yaml index 89328ec..7e9c4fc 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.epoch.yaml @@ -22,76 +22,63 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries + annotations: + named: + tag: named + value: true description: An index into a TimeSeries object. - multivalued: false - range: TimeIntervals__timeseries + range: TimeSeriesReferenceVectorData required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index - TimeIntervals__timeseries: - name: TimeIntervals__timeseries - description: An index into a TimeSeries object. - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(timeseries) - identifier: true - range: string - required: true - equals_string: timeseries - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.file.yaml index 6a536a3..150219c 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.file.yaml @@ -28,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true notes: @@ -45,7 +44,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -63,36 +61,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -100,9 +98,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -179,9 +177,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -199,9 +197,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -219,9 +217,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -241,7 +239,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -285,129 +282,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false lab_meta_data: name: lab_meta_data description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: LabMetaData required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -421,21 +417,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -460,7 +456,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -479,22 +474,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -503,75 +497,119 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false imp: name: imp description: Impedance of the channel, in ohms. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering, including the filter name and frequency cutoffs. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference electrode and/or reference scheme used for this electrode, e.g., "stainless steel skull screw" or "online common average referencing". - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -579,7 +617,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -589,24 +626,24 @@ classes: of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries.' - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: '[DEPRECATED] Table used to group different PatchClampSeries. SweepTable is being replaced by IntracellularRecordingsTable and SimultaneousRecordingsTable tabels. Additional SequentialRecordingsTable, RepetitionsTable and ExperimentalConditions tables provide enhanced support for experiment metadata.' - multivalued: false range: SweepTable required: false + multivalued: false intracellular_recordings: name: intracellular_recordings description: A table to group together a stimulus and response from a single @@ -621,42 +658,42 @@ classes: PatchClampSeries. However, the use of AD/DA channels that are not associated to an electrode is also common in intracellular electrophysiology, in which case other TimeSeries may be used. - multivalued: false range: IntracellularRecordingsTable required: false + multivalued: false simultaneous_recordings: name: simultaneous_recordings description: A table for grouping different intracellular recordings from the IntracellularRecordingsTable table together that were recorded simultaneously from different electrodes - multivalued: false range: SimultaneousRecordingsTable required: false + multivalued: false sequential_recordings: name: sequential_recordings description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable table together. This is typically used to group together sequential recordings where the a sequence of stimuli of the same type with varying parameters have been presented in a sequence. - multivalued: false range: SequentialRecordingsTable required: false + multivalued: false repetitions: name: repetitions description: A table for grouping different sequential intracellular recordings together. With each SequentialRecording typically representing a particular type of stimulus, the RepetitionsTable table is typically used to group sets of stimuli applied in sequence. - multivalued: false range: RepetitionsTable required: false + multivalued: false experimental_conditions: name: experimental_conditions description: A table for grouping different intracellular recording repetitions together that belong to the same experimental experimental_conditions. - multivalued: false range: ExperimentalConditionsTable required: false + multivalued: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. @@ -664,7 +701,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -675,65 +711,64 @@ classes: attributes: name: name: name - identifier: true range: string required: true age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: Subject__age required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false strain: name: strain description: Strain of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false tree_root: true Subject__age: name: Subject__age @@ -742,7 +777,6 @@ classes: name: name: name ifabsent: string(age) - identifier: true range: string required: true equals_string: age diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.icephys.yaml index a034515..bb47c9e 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -140,7 +136,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -151,21 +146,21 @@ classes: bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -174,15 +169,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -191,7 +185,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -215,57 +208,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -274,7 +266,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -296,7 +287,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -315,7 +305,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -334,7 +323,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -354,7 +342,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -374,7 +361,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -394,7 +380,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -414,7 +399,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -434,15 +418,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -451,7 +434,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -473,59 +455,58 @@ classes: attributes: name: name: name - identifier: true range: string required: true cell_id: name: cell_id description: unique ID of the cell - multivalued: false range: text required: false + multivalued: false description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -537,38 +518,34 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index IntracellularElectrodesTable: name: IntracellularElectrodesTable description: Table for storing intracellular electrode related metadata. @@ -576,7 +553,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -586,8 +562,9 @@ classes: electrode: name: electrode description: Column for storing the reference to the intracellular electrode. - multivalued: true range: IntracellularElectrode + required: true + multivalued: true tree_root: true IntracellularStimuliTable: name: IntracellularStimuliTable @@ -596,7 +573,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -605,25 +581,16 @@ classes: range: text stimulus: name: stimulus + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded stimulus for the recording (rows). + range: TimeSeriesReferenceVectorData + required: true multivalued: false - range: IntracellularStimuliTable__stimulus - required: true tree_root: true - IntracellularStimuliTable__stimulus: - name: IntracellularStimuliTable__stimulus - description: Column storing the reference to the recorded stimulus for the recording - (rows). - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(stimulus) - identifier: true - range: string - required: true - equals_string: stimulus IntracellularResponsesTable: name: IntracellularResponsesTable description: Table for storing intracellular response related metadata. @@ -631,7 +598,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -640,25 +606,16 @@ classes: range: text response: name: response + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded response for the recording (rows) + range: TimeSeriesReferenceVectorData + required: true multivalued: false - range: IntracellularResponsesTable__response - required: true tree_root: true - IntracellularResponsesTable__response: - name: IntracellularResponsesTable__response - description: Column storing the reference to the recorded response for the recording - (rows) - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(response) - identifier: true - range: string - required: true - equals_string: response IntracellularRecordingsTable: name: IntracellularRecordingsTable description: A table to group together a stimulus and response from a single electrode @@ -677,7 +634,6 @@ classes: name: name: name ifabsent: string(intracellular_recordings) - identifier: true range: string required: true equals_string: intracellular_recordings @@ -689,21 +645,21 @@ classes: electrodes: name: electrodes description: Table for storing intracellular electrode related metadata. - multivalued: false range: IntracellularElectrodesTable required: true + multivalued: false stimuli: name: stimuli description: Table for storing intracellular stimulus related metadata. - multivalued: false range: IntracellularStimuliTable required: true + multivalued: false responses: name: responses description: Table for storing intracellular response related metadata. - multivalued: false range: IntracellularResponsesTable required: true + multivalued: false tree_root: true SimultaneousRecordingsTable: name: SimultaneousRecordingsTable @@ -715,7 +671,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -723,15 +678,19 @@ classes: name: recordings description: A reference to one or more rows in the IntracellularRecordingsTable table. - multivalued: false range: SimultaneousRecordingsTable__recordings required: true + multivalued: false recordings_index: name: recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the recordings column. - multivalued: false - range: SimultaneousRecordingsTable__recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true SimultaneousRecordingsTable__recordings: name: SimultaneousRecordingsTable__recordings @@ -742,7 +701,6 @@ classes: name: name: name ifabsent: string(recordings) - identifier: true range: string required: true equals_string: recordings @@ -752,18 +710,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: IntracellularRecordingsTable - SimultaneousRecordingsTable__recordings_index: - name: SimultaneousRecordingsTable__recordings_index - description: Index dataset for the recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(recordings_index) - identifier: true - range: string - required: true - equals_string: recordings_index SequentialRecordingsTable: name: SequentialRecordingsTable description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable @@ -775,7 +721,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -783,20 +728,28 @@ classes: name: simultaneous_recordings description: A reference to one or more rows in the SimultaneousRecordingsTable table. - multivalued: false range: SequentialRecordingsTable__simultaneous_recordings required: true + multivalued: false simultaneous_recordings_index: name: simultaneous_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the simultaneous_recordings column. - multivalued: false - range: SequentialRecordingsTable__simultaneous_recordings_index + range: VectorIndex required: true + multivalued: false stimulus_type: name: stimulus_type description: The type of stimulus used for the sequential recording. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false tree_root: true SequentialRecordingsTable__simultaneous_recordings: name: SequentialRecordingsTable__simultaneous_recordings @@ -807,7 +760,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -817,18 +769,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SimultaneousRecordingsTable - SequentialRecordingsTable__simultaneous_recordings_index: - name: SequentialRecordingsTable__simultaneous_recordings_index - description: Index dataset for the simultaneous_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(simultaneous_recordings_index) - identifier: true - range: string - required: true - equals_string: simultaneous_recordings_index RepetitionsTable: name: RepetitionsTable description: A table for grouping different sequential intracellular recordings @@ -840,7 +780,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -848,15 +787,19 @@ classes: name: sequential_recordings description: A reference to one or more rows in the SequentialRecordingsTable table. - multivalued: false range: RepetitionsTable__sequential_recordings required: true + multivalued: false sequential_recordings_index: name: sequential_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the sequential_recordings column. - multivalued: false - range: RepetitionsTable__sequential_recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true RepetitionsTable__sequential_recordings: name: RepetitionsTable__sequential_recordings @@ -867,7 +810,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -877,18 +819,6 @@ classes: region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SequentialRecordingsTable - RepetitionsTable__sequential_recordings_index: - name: RepetitionsTable__sequential_recordings_index - description: Index dataset for the sequential_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(sequential_recordings_index) - identifier: true - range: string - required: true - equals_string: sequential_recordings_index ExperimentalConditionsTable: name: ExperimentalConditionsTable description: A table for grouping different intracellular recording repetitions @@ -898,22 +828,25 @@ classes: name: name: name ifabsent: string(experimental_conditions) - identifier: true range: string required: true equals_string: experimental_conditions repetitions: name: repetitions description: A reference to one or more rows in the RepetitionsTable table. - multivalued: false range: ExperimentalConditionsTable__repetitions required: true + multivalued: false repetitions_index: name: repetitions_index + annotations: + named: + tag: named + value: true description: Index dataset for the repetitions column. - multivalued: false - range: ExperimentalConditionsTable__repetitions_index + range: VectorIndex required: true + multivalued: false tree_root: true ExperimentalConditionsTable__repetitions: name: ExperimentalConditionsTable__repetitions @@ -923,7 +856,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -933,15 +865,3 @@ classes: applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: RepetitionsTable - ExperimentalConditionsTable__repetitions_index: - name: ExperimentalConditionsTable__repetitions_index - description: Index dataset for the repetitions column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(repetitions_index) - identifier: true - range: string - required: true - equals_string: repetitions_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.image.yaml index f571ae8..114ea51 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.image.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -32,7 +31,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -43,7 +41,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -59,16 +56,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. If data are stored in an external file, this should be an empty 3D array. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -84,12 +80,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -97,18 +93,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -120,7 +116,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -156,7 +151,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -171,21 +165,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -198,9 +191,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -218,9 +211,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -235,17 +228,16 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the image (using zero-indexing) in the linked Images object. - multivalued: false array: dimensions: - alias: num_times range: uint32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.misc.yaml index 6f7337b..d47eba8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,35 +138,38 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: false source_channels: name: source_channels + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the channels that this decomposition series was generated from. - multivalued: false - range: DecompositionSeries__source_channels + range: DynamicTableRegion required: false + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -179,7 +178,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -197,19 +195,6 @@ classes: - alias: num_channels - alias: num_bands range: numeric - 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) - identifier: true - range: string - required: true - equals_string: source_channels DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -219,20 +204,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -240,24 +227,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -267,31 +255,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit in seconds. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -299,29 +293,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -335,9 +339,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -373,40 +377,36 @@ classes: 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 array: dimensions: - alias: num_waveforms - alias: num_samples range: numeric required: false + multivalued: false waveforms_index: name: waveforms_index + annotations: + named: + tag: named + value: true description: Index into the waveforms dataset. One value for every spike event. See 'waveforms' for more detail. - multivalued: false - range: Units__waveforms_index + range: VectorIndex required: false + multivalued: false waveforms_index_index: name: waveforms_index_index + annotations: + named: + tag: named + value: true 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 + range: VectorIndex required: false + multivalued: 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit in seconds. @@ -415,7 +415,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -427,65 +426,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes - 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) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: waveforms_index_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ogen.yaml index 183bb5e..9d01859 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ogen.yaml @@ -21,18 +21,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: false array: dimensions: - alias: num_times range: numeric required: true + multivalued: false tree_root: true OptogeneticStimulusSite: name: OptogeneticStimulusSite @@ -41,27 +40,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ophys.yaml index b94b3da..f1d6bc1 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -60,7 +59,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -76,9 +74,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -97,15 +95,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -116,25 +113,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy @@ -191,56 +179,51 @@ classes: attributes: name: name: name - identifier: true range: string required: true image_mask: name: image_mask description: ROI masks for each ROI. Each image mask is the size of the original imaging plane (or volume) and members of the ROI are finite non-zero. - multivalued: false - range: AnyType + range: PlaneSegmentation__image_mask required: false - any_of: - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - alias: num_z + multivalued: false pixel_mask_index: name: pixel_mask_index + annotations: + named: + tag: named + value: true description: Index into pixel_mask. - multivalued: false - range: PlaneSegmentation__pixel_mask_index + range: VectorIndex required: false + multivalued: false pixel_mask: name: pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__pixel_mask required: false + multivalued: false voxel_mask_index: name: voxel_mask_index + annotations: + named: + tag: named + value: true description: Index into voxel_mask. - multivalued: false - range: PlaneSegmentation__voxel_mask_index + range: VectorIndex required: false + multivalued: false voxel_mask: name: voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__voxel_mask required: false + multivalued: false reference_images: name: reference_images description: Image stacks that the segmentation masks apply to. @@ -250,18 +233,18 @@ classes: any_of: - range: ImageSeries tree_root: true - PlaneSegmentation__pixel_mask_index: - name: PlaneSegmentation__pixel_mask_index - description: Index into pixel_mask. - is_a: VectorIndex + PlaneSegmentation__image_mask: + name: PlaneSegmentation__image_mask + description: ROI masks for each ROI. Each image mask is the size of the original + imaging plane (or volume) and members of the ROI are finite non-zero. + is_a: VectorData attributes: name: name: name - ifabsent: string(pixel_mask_index) - identifier: true + ifabsent: string(image_mask) range: string required: true - equals_string: pixel_mask_index + equals_string: image_mask PlaneSegmentation__pixel_mask: name: PlaneSegmentation__pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the @@ -272,40 +255,27 @@ classes: name: name: name ifabsent: string(pixel_mask) - identifier: true range: string required: true equals_string: pixel_mask x: name: x description: Pixel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Pixel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the pixel. - multivalued: false range: float32 required: false - PlaneSegmentation__voxel_mask_index: - name: PlaneSegmentation__voxel_mask_index - description: Index into voxel_mask. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(voxel_mask_index) - identifier: true - range: string - required: true - equals_string: voxel_mask_index + multivalued: false PlaneSegmentation__voxel_mask: name: PlaneSegmentation__voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the @@ -316,34 +286,33 @@ classes: name: name: name ifabsent: string(voxel_mask) - identifier: true range: string required: true equals_string: voxel_mask x: name: x description: Voxel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Voxel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false z: name: z description: Voxel z-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the voxel. - multivalued: false range: float32 required: false + multivalued: false ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. @@ -364,21 +333,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description or other notes about the channel. - multivalued: false range: text required: true + multivalued: false emission_lambda: name: emission_lambda description: Emission wavelength for channel, in nm. - multivalued: false range: float32 required: true + multivalued: false tree_root: true MotionCorrection: name: MotionCorrection @@ -402,20 +370,19 @@ classes: attributes: name: name: name - identifier: true range: string required: true corrected: name: corrected description: Image stack with frames shifted to the common coordinates. - multivalued: false range: ImageSeries required: true + multivalued: false xy_translation: name: xy_translation description: Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image. - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.retinotopy.yaml index 5271be3..629bea8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.base.yaml index dbc3270..d948d77 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.base.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -35,7 +34,6 @@ classes: name: name: name ifabsent: string(timeseries) - identifier: true range: string required: true idx_start: @@ -43,22 +41,22 @@ classes: description: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced TimeSeries. The first dimension of those arrays is always time. - multivalued: false range: int32 required: true + multivalued: false count: name: count description: Number of data samples available in this time series, during this epoch - multivalued: false range: int32 required: true + multivalued: false timeseries: name: timeseries description: The TimeSeries that this index applies to - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true Image: name: Image @@ -69,7 +67,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true resolution: @@ -108,15 +105,8 @@ classes: attributes: name: name: name - identifier: true range: string required: true - image: - name: image - description: Ordered dataset of references to Image objects. - multivalued: true - range: Image - required: true tree_root: true NWBContainer: name: NWBContainer @@ -126,7 +116,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -138,7 +127,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -149,7 +137,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -168,49 +155,49 @@ classes: dimension should always represent time. This can also be used to store binary data (e.g., image frames). This can also be a link to data stored in an external file. - multivalued: false range: TimeSeries__data required: true + multivalued: false starting_time: name: starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly spaced, the timestamp of the first sample can be specified and all subsequent ones calculated from the sampling rate attribute. - multivalued: false range: TimeSeries__starting_time required: false + multivalued: false 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. - multivalued: false array: dimensions: - alias: num_times range: float64 required: false + multivalued: false control: name: control description: Numerical labels that apply to each time point in data for the purpose of querying and slicing data by these values. If present, the length of this array should be the same size as the first dimension of data. - multivalued: false array: dimensions: - alias: num_times range: uint8 required: false + multivalued: false control_description: name: control_description description: Description of each control value. Must be present if control is present. If present, control_description[0] should describe time points where control == 0. - multivalued: false array: dimensions: - alias: num_control_values range: text required: false + multivalued: false sync: name: sync description: Lab-specific time and sync information as provided directly from @@ -219,9 +206,9 @@ classes: This group will usually only be populated in TimeSeries that are stored external to the NWB file, in files storing raw data. Once timestamp data is calculated, the contents of 'sync' are mostly for archival purposes. - multivalued: false range: TimeSeries__sync required: false + multivalued: false tree_root: true TimeSeries__data: name: TimeSeries__data @@ -232,7 +219,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -312,7 +298,6 @@ classes: name: name: name ifabsent: string(starting_time) - identifier: true range: string required: true equals_string: starting_time @@ -340,7 +325,6 @@ classes: name: name: name ifabsent: string(sync) - identifier: true range: string required: true equals_string: sync @@ -368,7 +352,6 @@ classes: name: name: name ifabsent: string(Images) - identifier: true range: string required: true description: @@ -378,30 +361,20 @@ classes: image: name: image description: Images stored in this collection. - multivalued: true range: Image required: true + multivalued: true order_of_images: name: order_of_images + annotations: + named: + tag: named + value: true description: Ordered dataset of references to Image objects stored in the parent group. Each Image object in the Images group should be stored once and only once, so the dataset should have the same length as the number of images. - multivalued: false - range: Images__order_of_images + range: ImageReferences required: false + multivalued: false tree_root: true - Images__order_of_images: - name: Images__order_of_images - description: Ordered dataset of references to Image objects stored in the parent - group. Each Image object in the Images group should be stored once and only - once, so the dataset should have the same length as the number of images. - is_a: ImageReferences - attributes: - name: - name: name - ifabsent: string(order_of_images) - identifier: true - range: string - required: true - equals_string: order_of_images diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.behavior.yaml index 5609509..91d2841 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.behavior.yaml @@ -29,22 +29,21 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: 1-D or 2-D array storing position or direction relative to some reference frame. - multivalued: false range: SpatialSeries__data required: true + multivalued: false reference_frame: name: reference_frame description: Description defining what exactly 'straight-ahead' means. - multivalued: false range: text required: false + multivalued: false tree_root: true SpatialSeries__data: name: SpatialSeries__data @@ -54,7 +53,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.device.yaml index f668388..7719f95 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.device.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ecephys.yaml index e8e4242..f9525e7 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ecephys.yaml @@ -25,7 +25,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true filtering: @@ -41,9 +40,9 @@ classes: data: name: data description: Recorded voltage data. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -59,11 +58,15 @@ classes: - alias: num_samples electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. - multivalued: false - range: ElectricalSeries__electrodes + range: DynamicTableRegion required: true + multivalued: false channel_conversion: name: channel_conversion description: Channel-specific conversion factor. Multiply the data in the @@ -75,26 +78,13 @@ classes: 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: false array: dimensions: - alias: num_channels range: float32 required: false + multivalued: false tree_root: true - ElectricalSeries__electrodes: - name: ElectricalSeries__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes SpikeEventSeries: name: SpikeEventSeries description: 'Stores snapshots/snippets of recorded spike events (i.e., threshold @@ -109,15 +99,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Spike waveforms. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -134,12 +123,12 @@ classes: 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: false array: dimensions: - alias: num_times range: float64 required: true + multivalued: false tree_root: true FeatureExtraction: name: FeatureExtraction @@ -150,23 +139,21 @@ classes: name: name: name ifabsent: string(FeatureExtraction) - identifier: true range: string required: true description: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false features: name: features description: Multi-dimensional array of features extracted from each event. - multivalued: false array: dimensions: - alias: num_events @@ -174,36 +161,28 @@ classes: - alias: num_features range: float32 required: true + multivalued: false times: name: times description: Times of events that features correspond to (can be a link). - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the electrodes that this time series was generated from. + range: DynamicTableRegion + required: true multivalued: false - range: FeatureExtraction__electrodes - required: true tree_root: true - FeatureExtraction__electrodes: - name: FeatureExtraction__electrodes - description: DynamicTableRegion pointer to the electrodes that this time series - was generated from. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(electrodes) - identifier: true - range: string - required: true - equals_string: electrodes EventDetection: name: EventDetection description: Detected spike events from voltage trace(s). @@ -212,37 +191,36 @@ classes: name: name: name ifabsent: string(EventDetection) - identifier: true range: string required: true 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 range: text required: true + multivalued: false 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: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false times: name: times description: Timestamps of events, in seconds. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true EventWaveform: name: EventWaveform @@ -304,7 +282,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -320,9 +297,9 @@ classes: position: name: position description: stereotaxic or common framework coordinates - multivalued: false range: ElectrodeGroup__position required: false + multivalued: false tree_root: true ElectrodeGroup__position: name: ElectrodeGroup__position @@ -331,28 +308,27 @@ classes: name: name: name ifabsent: string(position) - identifier: true range: string required: true equals_string: position x: name: x description: x coordinate - multivalued: false range: float32 required: false + multivalued: false y: name: y description: y coordinate - multivalued: false range: float32 required: false + multivalued: false z: name: z description: z coordinate - multivalued: false range: float32 required: false + multivalued: false ClusterWaveforms: name: ClusterWaveforms description: DEPRECATED The mean waveform shape, including standard deviation, @@ -366,39 +342,38 @@ classes: name: name: name ifabsent: string(ClusterWaveforms) - identifier: true range: string required: true waveform_filtering: name: waveform_filtering description: Filtering applied to data before generating mean/sd - multivalued: false range: text required: true + multivalued: false 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 array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean - multivalued: false array: dimensions: - alias: num_clusters - alias: num_samples range: float32 required: true + multivalued: false tree_root: true Clustering: name: Clustering @@ -409,43 +384,42 @@ classes: name: name: name ifabsent: string(Clustering) - identifier: true range: string required: true description: name: description description: Description of clusters or clustering, (e.g. cluster 0 is noise, clusters curated using Klusters, etc) - multivalued: false range: text required: true + multivalued: false num: name: num description: Cluster number of each event - multivalued: false array: dimensions: - alias: num_events range: int32 required: true + multivalued: false 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: false array: dimensions: - alias: num_clusters range: float32 required: true + multivalued: false times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: false array: dimensions: - alias: num_events range: float64 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.epoch.yaml index 84a2c50..b4586cd 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.epoch.yaml @@ -22,76 +22,63 @@ classes: attributes: name: name: name - identifier: true range: string required: true start_time: name: start_time description: Start time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false stop_time: name: stop_time description: Stop time of epoch, in seconds. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: true + multivalued: false tags: name: tags description: User-defined tags that identify or categorize events. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false tags_index: name: tags_index + annotations: + named: + tag: named + value: true description: Index for tags. - multivalued: false - range: TimeIntervals__tags_index + range: VectorIndex required: false + multivalued: false timeseries: name: timeseries + annotations: + named: + tag: named + value: true description: An index into a TimeSeries object. - multivalued: false - range: TimeIntervals__timeseries + range: TimeSeriesReferenceVectorData required: false + multivalued: false timeseries_index: name: timeseries_index + annotations: + named: + tag: named + value: true description: Index for timeseries. - multivalued: false - range: TimeIntervals__timeseries_index + range: VectorIndex required: false + multivalued: false tree_root: true - TimeIntervals__tags_index: - name: TimeIntervals__tags_index - description: Index for tags. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(tags_index) - identifier: true - range: string - required: true - equals_string: tags_index - TimeIntervals__timeseries: - name: TimeIntervals__timeseries - description: An index into a TimeSeries object. - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(timeseries) - identifier: true - range: string - required: true - equals_string: timeseries - TimeIntervals__timeseries_index: - name: TimeIntervals__timeseries_index - description: Index for timeseries. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(timeseries_index) - identifier: true - range: string - required: true - equals_string: timeseries_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.file.yaml index 037783a..b846a65 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.file.yaml @@ -28,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true notes: @@ -45,7 +44,6 @@ classes: name: name: name ifabsent: string(root) - identifier: true range: string required: true equals_string: root @@ -63,36 +61,36 @@ classes: The file can be created after the experiment was run, so this may differ from the experiment start time. Each modification to the nwb file adds a new entry to the array.' - multivalued: false array: dimensions: - alias: num_modifications range: isodatetime required: true + multivalued: false identifier: name: identifier description: A unique text identifier for the file. For example, concatenated lab name, file creation date/time and experimentalist, or a hash of these and/or other values. The goal is that the string should be unique to all other files. - multivalued: false range: text required: true + multivalued: false session_description: name: session_description description: A description of the experimental session and data in the file. - multivalued: false range: text required: true + multivalued: false session_start_time: name: session_start_time description: 'Date and time of the experiment/session start. The date is stored in UTC with local timezone offset as ISO 8601 extended formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds.' - multivalued: false range: isodatetime required: true + multivalued: false timestamps_reference_time: name: timestamps_reference_time description: 'Date and time corresponding to time zero of all timestamps. @@ -100,9 +98,9 @@ classes: formatted string: 2018-09-28T14:43:54.123+02:00. Dates stored in UTC end in "Z" with no timezone offset. Date accuracy is up to milliseconds. All times stored in the file use this time as reference (i.e., time zero).' - multivalued: false range: isodatetime required: true + multivalued: false acquisition: name: acquisition description: Data streams recorded from the system, including ephys, ophys, @@ -179,9 +177,9 @@ classes: an experiment. The stimulus group is organized so that one version of template stimuli can be stored and these be used multiple times. These templates can exist in the present file or can be linked to a remote library file. - multivalued: false range: NWBFile__stimulus required: true + multivalued: false general: name: general description: Experimental metadata, including protocol, notes and description @@ -199,9 +197,9 @@ classes: datasets. All entries in the below table are to be included when data is present. Unused groups (e.g., intracellular_ephys in an optophysiology experiment) should not be created unless there is data to store within them. - multivalued: false range: NWBFile__general required: true + multivalued: false intervals: name: intervals description: Experimental intervals, whether that be logically distinct sub-experiments @@ -219,9 +217,9 @@ classes: units: name: units description: Data about sorted spike units. - multivalued: false range: Units required: false + multivalued: false tree_root: true NWBFile__stimulus: name: NWBFile__stimulus @@ -241,7 +239,6 @@ classes: name: name: name ifabsent: string(stimulus) - identifier: true range: string required: true equals_string: stimulus @@ -287,129 +284,128 @@ classes: name: name: name ifabsent: string(general) - identifier: true range: string required: true equals_string: general data_collection: name: data_collection description: Notes about data collection and analysis. - multivalued: false range: text required: false + multivalued: false experiment_description: name: experiment_description description: General description of the experiment. - multivalued: false range: text required: false + multivalued: false experimenter: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: false array: dimensions: - alias: num_experimenters range: text required: false + multivalued: false institution: name: institution description: Institution(s) where experiment was performed. - multivalued: false range: text required: false + multivalued: false keywords: name: keywords description: Terms to search over. - multivalued: false array: dimensions: - alias: num_keywords range: text required: false + multivalued: false lab: name: lab description: Laboratory where experiment was performed. - multivalued: false range: text required: false + multivalued: false notes: name: notes description: Notes about the experiment. - multivalued: false range: text required: false + multivalued: false pharmacology: name: pharmacology description: Description of drugs used, including how and when they were administered. Anesthesia(s), painkiller(s), etc., plus dosage, concentration, etc. - multivalued: false range: text required: false + multivalued: false protocol: name: protocol description: Experimental protocol, if applicable. e.g., include IACUC protocol number. - multivalued: false range: text required: false + multivalued: false related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: false array: dimensions: - alias: num_publications range: text required: false + multivalued: false session_id: name: session_id description: Lab-specific ID for the session. - multivalued: false range: text required: false + multivalued: false slices: name: slices description: Description of slices, including information about preparation thickness, orientation, temperature, and bath solution. - multivalued: false range: text required: false + multivalued: false source_script: name: source_script description: Script file or link to public source code used to create this NWB file. - multivalued: false range: NWBFile__general__source_script required: false + multivalued: false stimulus: name: stimulus description: Notes about stimuli, such as how and where they were presented. - multivalued: false range: text required: false + multivalued: false surgery: name: surgery description: Narrative description about surgery/surgeries, including date(s) and who performed surgery. - multivalued: false range: text required: false + multivalued: false virus: name: virus description: Information about virus(es) used in experiments, including virus ID, source, date made, injection location, volume, etc. - multivalued: false range: text required: false + multivalued: false lab_meta_data: name: lab_meta_data description: Place-holder than can be extended so that lab-specific meta-data can be placed in /general. - multivalued: true range: LabMetaData required: false + multivalued: true devices: name: devices description: Description of hardware devices used during experiment, e.g., @@ -423,21 +419,21 @@ classes: name: subject description: Information about the animal or person from which the data was measured. - multivalued: false range: Subject required: false + multivalued: false extracellular_ephys: name: extracellular_ephys description: Metadata related to extracellular electrophysiology. - multivalued: false range: NWBFile__general__extracellular_ephys required: false + multivalued: false intracellular_ephys: name: intracellular_ephys description: Metadata related to intracellular electrophysiology. - multivalued: false range: NWBFile__general__intracellular_ephys required: false + multivalued: false optogenetics: name: optogenetics description: Metadata describing optogenetic stimuluation. @@ -462,7 +458,6 @@ classes: name: name: name ifabsent: string(source_script) - identifier: true range: string required: true equals_string: source_script @@ -481,22 +476,21 @@ classes: name: name: name ifabsent: string(extracellular_ephys) - identifier: true range: string required: true equals_string: extracellular_ephys electrode_group: name: electrode_group description: Physical group of electrodes. - multivalued: true range: ElectrodeGroup required: false + multivalued: true electrodes: name: electrodes description: A table of all electrodes (i.e. channels) used for recording. - multivalued: false range: NWBFile__general__extracellular_ephys__electrodes required: false + multivalued: false NWBFile__general__extracellular_ephys__electrodes: name: NWBFile__general__extracellular_ephys__electrodes description: A table of all electrodes (i.e. channels) used for recording. @@ -505,75 +499,119 @@ classes: name: name: name ifabsent: string(electrodes) - identifier: true range: string required: true equals_string: electrodes x: name: x description: x coordinate of the channel location in the brain (+x is posterior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false y: name: y description: y coordinate of the channel location in the brain (+y is inferior). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false z: name: z description: z coordinate of the channel location in the brain (+z is right). - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false imp: name: imp description: Impedance of the channel, in ohms. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false location: name: location description: Location of the electrode (channel). Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false filtering: name: filtering description: Description of hardware filtering, including the filter name and frequency cutoffs. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false group: name: group description: Reference to the ElectrodeGroup this electrode is a part of. - multivalued: true range: ElectrodeGroup + required: true + multivalued: true group_name: name: group_name description: Name of the ElectrodeGroup this electrode is a part of. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false rel_x: name: rel_x description: x coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_y: name: rel_y description: y coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false rel_z: name: rel_z description: z coordinate in electrode group - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: float32 + required: false + multivalued: false reference: name: reference description: Description of the reference electrode and/or reference scheme used for this electrode, e.g., "stainless steel skull screw" or "online common average referencing". - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: false + multivalued: false NWBFile__general__intracellular_ephys: name: NWBFile__general__intracellular_ephys description: Metadata related to intracellular electrophysiology. @@ -581,7 +619,6 @@ classes: name: name: name ifabsent: string(intracellular_ephys) - identifier: true range: string required: true equals_string: intracellular_ephys @@ -591,24 +628,24 @@ classes: of filtering used. Includes filtering type and parameters, frequency fall-off, etc. If this changes between TimeSeries, filter description should be stored as a text attribute for each TimeSeries.' - multivalued: false range: text required: false + multivalued: false intracellular_electrode: name: intracellular_electrode description: An intracellular electrode. - multivalued: true range: IntracellularElectrode required: false + multivalued: true sweep_table: name: sweep_table description: '[DEPRECATED] Table used to group different PatchClampSeries. SweepTable is being replaced by IntracellularRecordingsTable and SimultaneousRecordingsTable tables. Additional SequentialRecordingsTable, RepetitionsTable and ExperimentalConditions tables provide enhanced support for experiment metadata.' - multivalued: false range: SweepTable required: false + multivalued: false intracellular_recordings: name: intracellular_recordings description: A table to group together a stimulus and response from a single @@ -623,42 +660,42 @@ classes: PatchClampSeries. However, the use of AD/DA channels that are not associated to an electrode is also common in intracellular electrophysiology, in which case other TimeSeries may be used. - multivalued: false range: IntracellularRecordingsTable required: false + multivalued: false simultaneous_recordings: name: simultaneous_recordings description: A table for grouping different intracellular recordings from the IntracellularRecordingsTable table together that were recorded simultaneously from different electrodes - multivalued: false range: SimultaneousRecordingsTable required: false + multivalued: false sequential_recordings: name: sequential_recordings description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable table together. This is typically used to group together sequential recordings where the a sequence of stimuli of the same type with varying parameters have been presented in a sequence. - multivalued: false range: SequentialRecordingsTable required: false + multivalued: false repetitions: name: repetitions description: A table for grouping different sequential intracellular recordings together. With each SequentialRecording typically representing a particular type of stimulus, the RepetitionsTable table is typically used to group sets of stimuli applied in sequence. - multivalued: false range: RepetitionsTable required: false + multivalued: false experimental_conditions: name: experimental_conditions description: A table for grouping different intracellular recording repetitions together that belong to the same experimental experimental_conditions. - multivalued: false range: ExperimentalConditionsTable required: false + multivalued: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. @@ -666,7 +703,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -677,65 +713,64 @@ classes: attributes: name: name: name - identifier: true range: string required: true age: name: age description: Age of subject. Can be supplied instead of 'date_of_birth'. - multivalued: false range: Subject__age required: false + multivalued: false date_of_birth: name: date_of_birth description: Date of birth of subject. Can be supplied instead of 'age'. - multivalued: false range: isodatetime required: false + multivalued: false description: name: description description: Description of subject and where subject came from (e.g., breeder, if animal). - multivalued: false range: text required: false + multivalued: false genotype: name: genotype description: Genetic strain. If absent, assume Wild Type (WT). - multivalued: false range: text required: false + multivalued: false sex: name: sex description: Gender of subject. - multivalued: false range: text required: false + multivalued: false species: name: species description: Species of subject. - multivalued: false range: text required: false + multivalued: false strain: name: strain description: Strain of subject. - multivalued: false range: text required: false + multivalued: false subject_id: name: subject_id description: ID of animal/person used/participating in experiment (lab convention). - multivalued: false range: text required: false + multivalued: false weight: name: weight description: Weight at time of experiment, at time of surgery and at other important times. - multivalued: false range: text required: false + multivalued: false tree_root: true Subject__age: name: Subject__age @@ -744,7 +779,6 @@ classes: name: name: name ifabsent: string(age) - identifier: true range: string required: true equals_string: age diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.icephys.yaml index 352aa82..fffe23a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.icephys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -37,16 +36,16 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: false range: PatchClampSeries__data required: true + multivalued: false gain: name: gain description: Gain of the recording, in units Volt/Amp (v-clamp) or Volt/Volt (c-clamp). - multivalued: false range: float32 required: false + multivalued: false tree_root: true PatchClampSeries__data: name: PatchClampSeries__data @@ -55,7 +54,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -80,33 +78,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded voltage. - multivalued: false range: CurrentClampSeries__data required: true + multivalued: false bias_current: name: bias_current description: Bias current, in amps. - multivalued: false range: float32 required: false + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms. - multivalued: false range: float32 required: false + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads. - multivalued: false range: float32 required: false + multivalued: false tree_root: true CurrentClampSeries__data: name: CurrentClampSeries__data @@ -115,7 +112,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -140,7 +136,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true stimulus_description: @@ -151,21 +146,21 @@ classes: bias_current: name: bias_current description: Bias current, in amps, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false bridge_balance: name: bridge_balance description: Bridge balance, in ohms, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false capacitance_compensation: name: capacitance_compensation description: Capacitance compensation, in farads, fixed to 0.0. - multivalued: false range: float32 required: true + multivalued: false tree_root: true CurrentClampStimulusSeries: name: CurrentClampStimulusSeries @@ -174,15 +169,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus current applied. - multivalued: false range: CurrentClampStimulusSeries__data required: true + multivalued: false tree_root: true CurrentClampStimulusSeries__data: name: CurrentClampStimulusSeries__data @@ -191,7 +185,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -215,57 +208,56 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Recorded current. - multivalued: false range: VoltageClampSeries__data required: true + multivalued: false capacitance_fast: name: capacitance_fast description: Fast capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_fast required: false + multivalued: false capacitance_slow: name: capacitance_slow description: Slow capacitance, in farads. - multivalued: false range: VoltageClampSeries__capacitance_slow required: false + multivalued: false resistance_comp_bandwidth: name: resistance_comp_bandwidth description: Resistance compensation bandwidth, in hertz. - multivalued: false range: VoltageClampSeries__resistance_comp_bandwidth required: false + multivalued: false resistance_comp_correction: name: resistance_comp_correction description: Resistance compensation correction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_correction required: false + multivalued: false resistance_comp_prediction: name: resistance_comp_prediction description: Resistance compensation prediction, in percent. - multivalued: false range: VoltageClampSeries__resistance_comp_prediction required: false + multivalued: false whole_cell_capacitance_comp: name: whole_cell_capacitance_comp description: Whole cell capacitance compensation, in farads. - multivalued: false range: VoltageClampSeries__whole_cell_capacitance_comp required: false + multivalued: false whole_cell_series_resistance_comp: name: whole_cell_series_resistance_comp description: Whole cell series resistance compensation, in ohms. - multivalued: false range: VoltageClampSeries__whole_cell_series_resistance_comp required: false + multivalued: false tree_root: true VoltageClampSeries__data: name: VoltageClampSeries__data @@ -274,7 +266,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -296,7 +287,6 @@ classes: name: name: name ifabsent: string(capacitance_fast) - identifier: true range: string required: true equals_string: capacitance_fast @@ -315,7 +305,6 @@ classes: name: name: name ifabsent: string(capacitance_slow) - identifier: true range: string required: true equals_string: capacitance_slow @@ -334,7 +323,6 @@ classes: name: name: name ifabsent: string(resistance_comp_bandwidth) - identifier: true range: string required: true equals_string: resistance_comp_bandwidth @@ -354,7 +342,6 @@ classes: name: name: name ifabsent: string(resistance_comp_correction) - identifier: true range: string required: true equals_string: resistance_comp_correction @@ -374,7 +361,6 @@ classes: name: name: name ifabsent: string(resistance_comp_prediction) - identifier: true range: string required: true equals_string: resistance_comp_prediction @@ -394,7 +380,6 @@ classes: name: name: name ifabsent: string(whole_cell_capacitance_comp) - identifier: true range: string required: true equals_string: whole_cell_capacitance_comp @@ -414,7 +399,6 @@ classes: name: name: name ifabsent: string(whole_cell_series_resistance_comp) - identifier: true range: string required: true equals_string: whole_cell_series_resistance_comp @@ -434,15 +418,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Stimulus voltage applied. - multivalued: false range: VoltageClampStimulusSeries__data required: true + multivalued: false tree_root: true VoltageClampStimulusSeries__data: name: VoltageClampStimulusSeries__data @@ -451,7 +434,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -473,59 +455,58 @@ classes: attributes: name: name: name - identifier: true range: string required: true cell_id: name: cell_id description: unique ID of the cell - multivalued: false range: text required: false + multivalued: false description: name: description description: Description of electrode (e.g., whole-cell, sharp, etc.). - multivalued: false range: text required: true + multivalued: false filtering: name: filtering description: Electrode specific filtering. - multivalued: false range: text required: false + multivalued: false initial_access_resistance: name: initial_access_resistance description: Initial access resistance. - multivalued: false range: text required: false + multivalued: false location: name: location description: Location of the electrode. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: false + multivalued: false resistance: name: resistance description: Electrode resistance, in ohms. - multivalued: false range: text required: false + multivalued: false seal: name: seal description: Information about seal used for recording. - multivalued: false range: text required: false + multivalued: false slice: name: slice description: Information about slice used for recording. - multivalued: false range: text required: false + multivalued: false tree_root: true SweepTable: name: SweepTable @@ -537,38 +518,34 @@ classes: attributes: name: name: name - identifier: true range: string required: true sweep_number: name: sweep_number description: Sweep number of the PatchClampSeries in that row. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: uint32 + required: true + multivalued: false series: name: series description: The PatchClampSeries with the sweep number in that row. - multivalued: true range: PatchClampSeries + required: true + multivalued: true series_index: name: series_index + annotations: + named: + tag: named + value: true description: Index for series. + range: VectorIndex + required: true multivalued: false - range: SweepTable__series_index - required: true tree_root: true - SweepTable__series_index: - name: SweepTable__series_index - description: Index for series. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(series_index) - identifier: true - range: string - required: true - equals_string: series_index IntracellularElectrodesTable: name: IntracellularElectrodesTable description: Table for storing intracellular electrode related metadata. @@ -576,7 +553,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -586,8 +562,9 @@ classes: electrode: name: electrode description: Column for storing the reference to the intracellular electrode. - multivalued: true range: IntracellularElectrode + required: true + multivalued: true tree_root: true IntracellularStimuliTable: name: IntracellularStimuliTable @@ -596,7 +573,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -605,45 +581,27 @@ classes: range: text stimulus: name: stimulus + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded stimulus for the recording (rows). - multivalued: false - range: IntracellularStimuliTable__stimulus + range: TimeSeriesReferenceVectorData required: true + multivalued: false stimulus_template: name: stimulus_template + annotations: + named: + tag: named + value: true description: Column storing the reference to the stimulus template for the recording (rows). - multivalued: false - range: IntracellularStimuliTable__stimulus_template + range: TimeSeriesReferenceVectorData required: false + multivalued: false tree_root: true - IntracellularStimuliTable__stimulus: - name: IntracellularStimuliTable__stimulus - description: Column storing the reference to the recorded stimulus for the recording - (rows). - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(stimulus) - identifier: true - range: string - required: true - equals_string: stimulus - IntracellularStimuliTable__stimulus_template: - name: IntracellularStimuliTable__stimulus_template - description: Column storing the reference to the stimulus template for the recording - (rows). - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(stimulus_template) - identifier: true - range: string - required: true - equals_string: stimulus_template IntracellularResponsesTable: name: IntracellularResponsesTable description: Table for storing intracellular response related metadata. @@ -651,7 +609,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -660,25 +617,16 @@ classes: range: text response: name: response + annotations: + named: + tag: named + value: true description: Column storing the reference to the recorded response for the recording (rows) + range: TimeSeriesReferenceVectorData + required: true multivalued: false - range: IntracellularResponsesTable__response - required: true tree_root: true - IntracellularResponsesTable__response: - name: IntracellularResponsesTable__response - description: Column storing the reference to the recorded response for the recording - (rows) - is_a: TimeSeriesReferenceVectorData - attributes: - name: - name: name - ifabsent: string(response) - identifier: true - range: string - required: true - equals_string: response IntracellularRecordingsTable: name: IntracellularRecordingsTable description: A table to group together a stimulus and response from a single electrode @@ -697,7 +645,6 @@ classes: name: name: name ifabsent: string(intracellular_recordings) - identifier: true range: string required: true equals_string: intracellular_recordings @@ -709,21 +656,21 @@ classes: electrodes: name: electrodes description: Table for storing intracellular electrode related metadata. - multivalued: false range: IntracellularElectrodesTable required: true + multivalued: false stimuli: name: stimuli description: Table for storing intracellular stimulus related metadata. - multivalued: false range: IntracellularStimuliTable required: true + multivalued: false responses: name: responses description: Table for storing intracellular response related metadata. - multivalued: false range: IntracellularResponsesTable required: true + multivalued: false tree_root: true SimultaneousRecordingsTable: name: SimultaneousRecordingsTable @@ -735,7 +682,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -743,15 +689,19 @@ classes: name: recordings description: A reference to one or more rows in the IntracellularRecordingsTable table. - multivalued: false range: SimultaneousRecordingsTable__recordings required: true + multivalued: false recordings_index: name: recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the recordings column. - multivalued: false - range: SimultaneousRecordingsTable__recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true SimultaneousRecordingsTable__recordings: name: SimultaneousRecordingsTable__recordings @@ -762,7 +712,6 @@ classes: name: name: name ifabsent: string(recordings) - identifier: true range: string required: true equals_string: recordings @@ -772,18 +721,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: IntracellularRecordingsTable - SimultaneousRecordingsTable__recordings_index: - name: SimultaneousRecordingsTable__recordings_index - description: Index dataset for the recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(recordings_index) - identifier: true - range: string - required: true - equals_string: recordings_index SequentialRecordingsTable: name: SequentialRecordingsTable description: A table for grouping different sequential recordings from the SimultaneousRecordingsTable @@ -795,7 +732,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -803,20 +739,28 @@ classes: name: simultaneous_recordings description: A reference to one or more rows in the SimultaneousRecordingsTable table. - multivalued: false range: SequentialRecordingsTable__simultaneous_recordings required: true + multivalued: false simultaneous_recordings_index: name: simultaneous_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the simultaneous_recordings column. - multivalued: false - range: SequentialRecordingsTable__simultaneous_recordings_index + range: VectorIndex required: true + multivalued: false stimulus_type: name: stimulus_type description: The type of stimulus used for the sequential recording. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false tree_root: true SequentialRecordingsTable__simultaneous_recordings: name: SequentialRecordingsTable__simultaneous_recordings @@ -827,7 +771,6 @@ classes: name: name: name ifabsent: string(simultaneous_recordings) - identifier: true range: string required: true equals_string: simultaneous_recordings @@ -837,18 +780,6 @@ classes: table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SimultaneousRecordingsTable - SequentialRecordingsTable__simultaneous_recordings_index: - name: SequentialRecordingsTable__simultaneous_recordings_index - description: Index dataset for the simultaneous_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(simultaneous_recordings_index) - identifier: true - range: string - required: true - equals_string: simultaneous_recordings_index RepetitionsTable: name: RepetitionsTable description: A table for grouping different sequential intracellular recordings @@ -860,7 +791,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -868,15 +798,19 @@ classes: name: sequential_recordings description: A reference to one or more rows in the SequentialRecordingsTable table. - multivalued: false range: RepetitionsTable__sequential_recordings required: true + multivalued: false sequential_recordings_index: name: sequential_recordings_index + annotations: + named: + tag: named + value: true description: Index dataset for the sequential_recordings column. - multivalued: false - range: RepetitionsTable__sequential_recordings_index + range: VectorIndex required: true + multivalued: false tree_root: true RepetitionsTable__sequential_recordings: name: RepetitionsTable__sequential_recordings @@ -887,7 +821,6 @@ classes: name: name: name ifabsent: string(sequential_recordings) - identifier: true range: string required: true equals_string: sequential_recordings @@ -897,18 +830,6 @@ classes: region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: SequentialRecordingsTable - RepetitionsTable__sequential_recordings_index: - name: RepetitionsTable__sequential_recordings_index - description: Index dataset for the sequential_recordings column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(sequential_recordings_index) - identifier: true - range: string - required: true - equals_string: sequential_recordings_index ExperimentalConditionsTable: name: ExperimentalConditionsTable description: A table for grouping different intracellular recording repetitions @@ -918,22 +839,25 @@ classes: name: name: name ifabsent: string(experimental_conditions) - identifier: true range: string required: true equals_string: experimental_conditions repetitions: name: repetitions description: A reference to one or more rows in the RepetitionsTable table. - multivalued: false range: ExperimentalConditionsTable__repetitions required: true + multivalued: false repetitions_index: name: repetitions_index + annotations: + named: + tag: named + value: true description: Index dataset for the repetitions column. - multivalued: false - range: ExperimentalConditionsTable__repetitions_index + range: VectorIndex required: true + multivalued: false tree_root: true ExperimentalConditionsTable__repetitions: name: ExperimentalConditionsTable__repetitions @@ -943,7 +867,6 @@ classes: name: name: name ifabsent: string(repetitions) - identifier: true range: string required: true equals_string: repetitions @@ -953,15 +876,3 @@ classes: applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here. range: RepetitionsTable - ExperimentalConditionsTable__repetitions_index: - name: ExperimentalConditionsTable__repetitions_index - description: Index dataset for the repetitions column. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(repetitions_index) - identifier: true - range: string - required: true - equals_string: repetitions_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.image.yaml index 2ffb978..645839e 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.image.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -32,7 +31,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -43,7 +41,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -59,16 +56,15 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Binary data representing images across frames. If data are stored in an external file, this should be an empty 3D array. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -84,12 +80,12 @@ classes: dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: false array: dimensions: - alias: rank range: int32 required: false + multivalued: false external_file: name: external_file description: Paths to one or more external file(s). The field is only present @@ -97,18 +93,18 @@ classes: in the file system as one or more image file(s). This field should NOT be used if the image is stored in another NWB file and that file is linked to this file. - multivalued: false range: ImageSeries__external_file required: false + multivalued: false format: name: format description: Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed. - multivalued: false range: text required: false + multivalued: false tree_root: true ImageSeries__external_file: name: ImageSeries__external_file @@ -120,7 +116,6 @@ classes: name: name: name ifabsent: string(external_file) - identifier: true range: string required: true equals_string: external_file @@ -156,7 +151,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -171,21 +165,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true distance: name: distance description: Distance from camera/monitor to target/eye. - multivalued: false range: float32 required: false + multivalued: false field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -198,9 +191,9 @@ classes: data: name: data description: Images presented to subject, either grayscale or RGB - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -218,9 +211,9 @@ classes: name: orientation description: Description of image relative to some reference frame (e.g., which way is up). Must also specify frame of reference. - multivalued: false range: text required: false + multivalued: false tree_root: true IndexSeries: name: IndexSeries @@ -235,17 +228,16 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Index of the image (using zero-indexing) in the linked Images object. - multivalued: false array: dimensions: - alias: num_times range: uint32 required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.language.yaml index 929628d..f48262a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.misc.yaml index 8ca2b4c..0b95ca2 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.misc.yaml @@ -30,33 +30,32 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Values of each feature at each time. - multivalued: false range: AbstractFeatureSeries__data required: true + multivalued: false feature_units: name: feature_units description: Units of each feature. - multivalued: false array: dimensions: - alias: num_features range: text required: false + multivalued: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: false array: dimensions: - alias: num_features range: text required: true + multivalued: false tree_root: true AbstractFeatureSeries__data: name: AbstractFeatureSeries__data @@ -65,7 +64,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -96,18 +94,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Annotations made during an experiment. - multivalued: false array: dimensions: - alias: num_times range: text required: true + multivalued: false tree_root: true IntervalSeries: name: IntervalSeries @@ -122,18 +119,17 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: false array: dimensions: - alias: num_times range: int8 required: true + multivalued: false tree_root: true DecompositionSeries: name: DecompositionSeries @@ -142,35 +138,38 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Data decomposed into frequency bands. - multivalued: false range: DecompositionSeries__data required: true + multivalued: false metric: name: metric description: The metric used, e.g. phase, amplitude, power. - multivalued: false range: text required: true + multivalued: false source_channels: name: source_channels + annotations: + named: + tag: named + value: true description: DynamicTableRegion pointer to the channels that this decomposition series was generated from. - multivalued: false - range: DecompositionSeries__source_channels + range: DynamicTableRegion required: false + multivalued: 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 + multivalued: false tree_root: true DecompositionSeries__data: name: DecompositionSeries__data @@ -179,7 +178,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data @@ -197,19 +195,6 @@ classes: - alias: num_channels - alias: num_bands range: numeric - 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) - identifier: true - range: string - required: true - equals_string: source_channels DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -219,20 +204,22 @@ classes: name: name: name ifabsent: string(bands) - identifier: true range: string required: true equals_string: bands band_name: name: band_name description: Name of the band, e.g. theta. - multivalued: true + array: + minimum_number_dimensions: 1 + maximum_number_dimensions: false range: text + required: true + multivalued: false 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 array: dimensions: - alias: num_bands @@ -240,24 +227,25 @@ classes: exact_cardinality: 2 range: float32 required: true + multivalued: false band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: false array: dimensions: - alias: num_bands range: float32 required: true + multivalued: false Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -267,31 +255,37 @@ classes: name: name: name ifabsent: string(Units) - identifier: true range: string required: true spike_times_index: name: spike_times_index + annotations: + named: + tag: named + value: true description: Index into the spike_times dataset. - multivalued: false - range: Units__spike_times_index + range: VectorIndex required: false + multivalued: false spike_times: name: spike_times description: Spike times for each unit in seconds. - multivalued: false range: Units__spike_times required: false + multivalued: false obs_intervals_index: name: obs_intervals_index + annotations: + named: + tag: named + value: true description: Index into the obs_intervals dataset. - multivalued: false - range: Units__obs_intervals_index + range: VectorIndex required: false + multivalued: false obs_intervals: name: obs_intervals description: Observation intervals for each unit. - multivalued: false array: dimensions: - alias: num_intervals @@ -299,29 +293,39 @@ classes: exact_cardinality: 2 range: float64 required: false + multivalued: false electrodes_index: name: electrodes_index + annotations: + named: + tag: named + value: true description: Index into electrodes. - multivalued: false - range: Units__electrodes_index + range: VectorIndex required: false + multivalued: false electrodes: name: electrodes + annotations: + named: + tag: named + value: true description: Electrode that each spike unit came from, specified using a DynamicTableRegion. - multivalued: false - range: Units__electrodes + range: DynamicTableRegion required: false + multivalued: false electrode_group: name: electrode_group description: Electrode group that each spike unit came from. - multivalued: true range: ElectrodeGroup + required: false + multivalued: true waveform_mean: name: waveform_mean description: Spike waveform mean for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -335,9 +339,9 @@ classes: waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -373,40 +377,36 @@ classes: 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 array: dimensions: - alias: num_waveforms - alias: num_samples range: numeric required: false + multivalued: false waveforms_index: name: waveforms_index + annotations: + named: + tag: named + value: true description: Index into the waveforms dataset. One value for every spike event. See 'waveforms' for more detail. - multivalued: false - range: Units__waveforms_index + range: VectorIndex required: false + multivalued: false waveforms_index_index: name: waveforms_index_index + annotations: + named: + tag: named + value: true 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 + range: VectorIndex required: false + multivalued: 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) - identifier: true - range: string - required: true - equals_string: spike_times_index Units__spike_times: name: Units__spike_times description: Spike times for each unit in seconds. @@ -415,7 +415,6 @@ classes: name: name: name ifabsent: string(spike_times) - identifier: true range: string required: true equals_string: spike_times @@ -427,65 +426,3 @@ classes: 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) - identifier: true - range: string - required: true - equals_string: obs_intervals_index - Units__electrodes_index: - name: Units__electrodes_index - description: Index into electrodes. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(electrodes_index) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: electrodes - 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) - identifier: true - 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) - identifier: true - range: string - required: true - equals_string: waveforms_index_index diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ogen.yaml index de9e5e0..5c6344e 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ogen.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: @@ -29,9 +28,9 @@ classes: description: Applied power for optogenetic stimulus, in watts. Shape can be 1D or 2D. 2D data is meant to be used in an extension of OptogeneticSeries that defines what the second dimension represents. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -48,27 +47,26 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description of stimulation site. - multivalued: false range: text required: true + multivalued: false excitation_lambda: name: excitation_lambda description: Excitation wavelength, in nm. - multivalued: false range: float32 required: true + multivalued: false location: name: location description: Location of the stimulation site. Specify the area, layer, comments on estimation of area/layer, stereotaxic coordinates if in vivo, etc. Use standard atlas names for anatomical regions when possible. - multivalued: false range: text required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ophys.yaml index 2b87345..b3004c8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.ophys.yaml @@ -23,7 +23,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -60,7 +59,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true pmt_gain: @@ -76,9 +74,9 @@ classes: field_of_view: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. - multivalued: false range: float32 required: false + multivalued: false any_of: - array: dimensions: @@ -97,15 +95,14 @@ classes: attributes: name: name: name - identifier: true range: string required: true data: name: data description: Signals from ROIs. - multivalued: false range: numeric required: true + multivalued: false any_of: - array: dimensions: @@ -116,25 +113,16 @@ classes: - alias: num_rois rois: name: rois + annotations: + named: + tag: named + value: true description: DynamicTableRegion referencing into an ROITable containing information on the ROIs stored in this timeseries. + range: DynamicTableRegion + required: true multivalued: false - range: RoiResponseSeries__rois - required: true tree_root: true - RoiResponseSeries__rois: - name: RoiResponseSeries__rois - description: DynamicTableRegion referencing into an ROITable containing information - on the ROIs stored in this timeseries. - is_a: DynamicTableRegion - attributes: - name: - name: name - ifabsent: string(rois) - identifier: true - range: string - required: true - equals_string: rois DfOverF: name: DfOverF description: dF/F information about a region of interest (ROI). Storage hierarchy @@ -191,56 +179,51 @@ classes: attributes: name: name: name - identifier: true range: string required: true image_mask: name: image_mask description: ROI masks for each ROI. Each image mask is the size of the original imaging plane (or volume) and members of the ROI are finite non-zero. - multivalued: false - range: AnyType + range: PlaneSegmentation__image_mask required: false - any_of: - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - array: - dimensions: - - alias: num_roi - - alias: num_x - - alias: num_y - - alias: num_z + multivalued: false pixel_mask_index: name: pixel_mask_index + annotations: + named: + tag: named + value: true description: Index into pixel_mask. - multivalued: false - range: PlaneSegmentation__pixel_mask_index + range: VectorIndex required: false + multivalued: false pixel_mask: name: pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__pixel_mask required: false + multivalued: false voxel_mask_index: name: voxel_mask_index + annotations: + named: + tag: named + value: true description: Index into voxel_mask. - multivalued: false - range: PlaneSegmentation__voxel_mask_index + range: VectorIndex required: false + multivalued: false voxel_mask: name: voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation' - multivalued: false range: PlaneSegmentation__voxel_mask required: false + multivalued: false reference_images: name: reference_images description: Image stacks that the segmentation masks apply to. @@ -250,18 +233,18 @@ classes: any_of: - range: ImageSeries tree_root: true - PlaneSegmentation__pixel_mask_index: - name: PlaneSegmentation__pixel_mask_index - description: Index into pixel_mask. - is_a: VectorIndex + PlaneSegmentation__image_mask: + name: PlaneSegmentation__image_mask + description: ROI masks for each ROI. Each image mask is the size of the original + imaging plane (or volume) and members of the ROI are finite non-zero. + is_a: VectorData attributes: name: name: name - ifabsent: string(pixel_mask_index) - identifier: true + ifabsent: string(image_mask) range: string required: true - equals_string: pixel_mask_index + equals_string: image_mask PlaneSegmentation__pixel_mask: name: PlaneSegmentation__pixel_mask description: 'Pixel masks for each ROI: a list of indices and weights for the @@ -272,40 +255,27 @@ classes: name: name: name ifabsent: string(pixel_mask) - identifier: true range: string required: true equals_string: pixel_mask x: name: x description: Pixel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Pixel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the pixel. - multivalued: false range: float32 required: false - PlaneSegmentation__voxel_mask_index: - name: PlaneSegmentation__voxel_mask_index - description: Index into voxel_mask. - is_a: VectorIndex - attributes: - name: - name: name - ifabsent: string(voxel_mask_index) - identifier: true - range: string - required: true - equals_string: voxel_mask_index + multivalued: false PlaneSegmentation__voxel_mask: name: PlaneSegmentation__voxel_mask description: 'Voxel masks for each ROI: a list of indices and weights for the @@ -316,34 +286,33 @@ classes: name: name: name ifabsent: string(voxel_mask) - identifier: true range: string required: true equals_string: voxel_mask x: name: x description: Voxel x-coordinate. - multivalued: false range: uint32 required: false + multivalued: false y: name: y description: Voxel y-coordinate. - multivalued: false range: uint32 required: false + multivalued: false z: name: z description: Voxel z-coordinate. - multivalued: false range: uint32 required: false + multivalued: false weight: name: weight description: Weight of the voxel. - multivalued: false range: float32 required: false + multivalued: false ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. @@ -364,21 +333,20 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: name: description description: Description or other notes about the channel. - multivalued: false range: text required: true + multivalued: false emission_lambda: name: emission_lambda description: Emission wavelength for channel, in nm. - multivalued: false range: float32 required: true + multivalued: false tree_root: true MotionCorrection: name: MotionCorrection @@ -402,20 +370,19 @@ classes: attributes: name: name: name - identifier: true range: string required: true corrected: name: corrected description: Image stack with frames shifted to the common coordinates. - multivalued: false range: ImageSeries required: true + multivalued: false xy_translation: name: xy_translation description: Stores the x,y delta necessary to align each frame to the common coordinates, for example, to align each frame to a reference image. - multivalued: false range: TimeSeries required: true + multivalued: false tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.retinotopy.yaml index 31512a5..4bcc17a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_7_0/core.nwb.retinotopy.yaml @@ -29,68 +29,67 @@ classes: name: name: name ifabsent: string(ImagingRetinotopy) - identifier: true range: string required: true axis_1_phase_map: name: axis_1_phase_map description: Phase response to stimulus on the first measured axis. - multivalued: false range: ImagingRetinotopy__axis_1_phase_map required: true + multivalued: false axis_1_power_map: name: axis_1_power_map description: Power response on the first measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_1_power_map required: false + multivalued: false axis_2_phase_map: name: axis_2_phase_map description: Phase response to stimulus on the second measured axis. - multivalued: false range: ImagingRetinotopy__axis_2_phase_map required: true + multivalued: false axis_2_power_map: name: axis_2_power_map description: Power response on the second measured axis. Response is scaled so 0.0 is no power in the response and 1.0 is maximum relative power. - multivalued: false range: ImagingRetinotopy__axis_2_power_map required: false + multivalued: false axis_descriptions: name: axis_descriptions description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: false array: dimensions: - alias: axis_1_axis_2 exact_cardinality: 2 range: text required: true + multivalued: false focal_depth_image: name: focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal depth, wavelength) as data collection. Array format: [rows][columns].' - multivalued: false range: ImagingRetinotopy__focal_depth_image required: false + multivalued: false sign_map: name: sign_map description: Sine of the angle between the direction of the gradient in axis_1 and axis_2. - multivalued: false range: ImagingRetinotopy__sign_map required: false + multivalued: false vasculature_image: name: vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: [rows][columns]' - multivalued: false range: ImagingRetinotopy__vasculature_image required: true + multivalued: false tree_root: true ImagingRetinotopy__axis_1_phase_map: name: ImagingRetinotopy__axis_1_phase_map @@ -99,7 +98,6 @@ classes: name: name: name ifabsent: string(axis_1_phase_map) - identifier: true range: string required: true equals_string: axis_1_phase_map @@ -131,7 +129,6 @@ classes: name: name: name ifabsent: string(axis_1_power_map) - identifier: true range: string required: true equals_string: axis_1_power_map @@ -162,7 +159,6 @@ classes: name: name: name ifabsent: string(axis_2_phase_map) - identifier: true range: string required: true equals_string: axis_2_phase_map @@ -194,7 +190,6 @@ classes: name: name: name ifabsent: string(axis_2_power_map) - identifier: true range: string required: true equals_string: axis_2_power_map @@ -226,7 +221,6 @@ classes: name: name: name ifabsent: string(focal_depth_image) - identifier: true range: string required: true equals_string: focal_depth_image @@ -267,7 +261,6 @@ classes: name: name: name ifabsent: string(sign_map) - identifier: true range: string required: true equals_string: sign_map @@ -295,7 +288,6 @@ classes: name: name: name ifabsent: string(vasculature_image) - identifier: true range: string required: true equals_string: vasculature_image diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.nwb.language.yaml index d85e6fc..68f0304 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.sparse.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.sparse.yaml index 3f8cac0..6c1dbe1 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.sparse.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.sparse.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true shape: @@ -28,21 +27,21 @@ classes: indices: name: indices description: column indices - multivalued: false range: CSRMatrix__indices required: true + multivalued: false indptr: name: indptr description: index pointer - multivalued: false range: CSRMatrix__indptr required: true + multivalued: false data: name: data description: values in the matrix - multivalued: false range: CSRMatrix__data required: true + multivalued: false tree_root: true CSRMatrix__indices: name: CSRMatrix__indices @@ -51,7 +50,6 @@ classes: name: name: name ifabsent: string(indices) - identifier: true range: string required: true equals_string: indices @@ -62,7 +60,6 @@ classes: name: name: name ifabsent: string(indptr) - identifier: true range: string required: true equals_string: indptr @@ -73,7 +70,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.table.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.table.yaml index d86161c..f7a2a0a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.table.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/hdmf-common.table.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -29,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -51,7 +49,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -68,7 +65,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -85,7 +81,6 @@ classes: name: name: name ifabsent: string(element_id) - identifier: true range: string required: true tree_root: true @@ -104,7 +99,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true table: @@ -124,7 +118,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -155,7 +148,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true colnames: @@ -170,22 +162,22 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: false array: dimensions: - alias: num_rows range: int required: true + multivalued: false vector_data: name: vector_data description: Vector columns of this dynamic table. - multivalued: true range: VectorData required: false + multivalued: true vector_index: name: vector_index description: Indices for the vector columns of this dynamic table. - multivalued: true range: VectorIndex required: false + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.nwb.language.yaml index d85e6fc..68f0304 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.sparse.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.sparse.yaml index a18d478..5c825a8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.sparse.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.sparse.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true shape: @@ -28,21 +27,21 @@ classes: indices: name: indices description: column indices - multivalued: false range: CSRMatrix__indices required: true + multivalued: false indptr: name: indptr description: index pointer - multivalued: false range: CSRMatrix__indptr required: true + multivalued: false data: name: data description: values in the matrix - multivalued: false range: CSRMatrix__data required: true + multivalued: false tree_root: true CSRMatrix__indices: name: CSRMatrix__indices @@ -51,7 +50,6 @@ classes: name: name: name ifabsent: string(indices) - identifier: true range: string required: true equals_string: indices @@ -62,7 +60,6 @@ classes: name: name: name ifabsent: string(indptr) - identifier: true range: string required: true equals_string: indptr @@ -73,7 +70,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.table.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.table.yaml index e50fc1a..dec9fc7 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.table.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/hdmf-common.table.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -29,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -51,7 +49,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -68,7 +65,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -85,7 +81,6 @@ classes: name: name: name ifabsent: string(element_id) - identifier: true range: string required: true tree_root: true @@ -104,7 +99,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true table: @@ -124,7 +118,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -155,7 +148,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true colnames: @@ -170,22 +162,22 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: false array: dimensions: - alias: num_rows range: int required: true + multivalued: false vector_data: name: vector_data description: Vector columns of this dynamic table. - multivalued: true range: VectorData required: false + multivalued: true vector_index: name: vector_index description: Indices for the vector columns of this dynamic table. - multivalued: true range: VectorIndex required: false + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.nwb.language.yaml index d85e6fc..68f0304 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.sparse.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.sparse.yaml index c4ddcd4..a7b2bb8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.sparse.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.sparse.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true shape: @@ -28,21 +27,21 @@ classes: indices: name: indices description: column indices - multivalued: false range: CSRMatrix__indices required: true + multivalued: false indptr: name: indptr description: index pointer - multivalued: false range: CSRMatrix__indptr required: true + multivalued: false data: name: data description: values in the matrix - multivalued: false range: CSRMatrix__data required: true + multivalued: false tree_root: true CSRMatrix__indices: name: CSRMatrix__indices @@ -51,7 +50,6 @@ classes: name: name: name ifabsent: string(indices) - identifier: true range: string required: true equals_string: indices @@ -62,7 +60,6 @@ classes: name: name: name ifabsent: string(indptr) - identifier: true range: string required: true equals_string: indptr @@ -73,7 +70,6 @@ classes: name: name: name ifabsent: string(data) - identifier: true range: string required: true equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.table.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.table.yaml index 8ac286c..48a60ac 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.table.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/hdmf-common.table.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -29,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -51,7 +49,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -90,7 +87,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -113,7 +109,6 @@ classes: name: name: name ifabsent: string(element_id) - identifier: true range: string required: true tree_root: true @@ -132,7 +127,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true table: @@ -152,7 +146,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -183,7 +176,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true colnames: @@ -198,22 +190,22 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: false array: dimensions: - alias: num_rows range: int required: true + multivalued: false vector_data: name: vector_data description: Vector columns of this dynamic table. - multivalued: true range: VectorData required: false + multivalued: true vector_index: name: vector_index description: Indices for the vector columns of this dynamic table. - multivalued: true range: VectorIndex required: false + multivalued: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.base.yaml index 38d1d98..e57c52a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.base.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -29,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.nwb.language.yaml index d85e6fc..68f0304 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.sparse.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.sparse.yaml index 7d1fe3e..c5ec31d 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.sparse.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.sparse.yaml @@ -22,7 +22,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true shape: @@ -33,28 +32,35 @@ classes: indices: name: indices description: The column indices. - multivalued: false array: dimensions: - alias: number_of_non_zero_values range: uint required: true + multivalued: false indptr: name: indptr description: The row index pointer. - multivalued: false array: dimensions: - alias: number_of_rows_in_the_matrix_1 range: uint required: true + multivalued: false data: name: data description: The non-zero values in the matrix. - multivalued: false - array: - dimensions: - - alias: number_of_non_zero_values - range: AnyType + range: CSRMatrix__data required: true + multivalued: false tree_root: true + CSRMatrix__data: + name: CSRMatrix__data + description: The non-zero values in the matrix. + attributes: + name: + name: name + ifabsent: string(data) + range: string + required: true + equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.table.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.table.yaml index 7efd118..cbaf95a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.table.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/hdmf-common.table.yaml @@ -27,7 +27,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -68,7 +67,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -85,7 +83,6 @@ classes: name: name: name ifabsent: string(element_id) - identifier: true range: string required: true tree_root: true @@ -104,7 +101,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true table: @@ -141,7 +137,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true colnames: @@ -156,18 +151,18 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: false array: dimensions: - alias: num_rows range: int required: true + multivalued: false vector_data: name: vector_data description: Vector columns, including index columns, of this dynamic table. - multivalued: true range: VectorData required: false + multivalued: true tree_root: true AlignedDynamicTable: name: AlignedDynamicTable diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.base.yaml index 45192b2..0365fab 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.base.yaml @@ -18,7 +18,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true @@ -29,7 +28,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.nwb.language.yaml index d85e6fc..68f0304 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.sparse.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.sparse.yaml index 58f98e1..74e9c04 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.sparse.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.sparse.yaml @@ -22,7 +22,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true shape: @@ -33,28 +32,35 @@ classes: indices: name: indices description: The column indices. - multivalued: false array: dimensions: - alias: number_of_non_zero_values range: uint required: true + multivalued: false indptr: name: indptr description: The row index pointer. - multivalued: false array: dimensions: - alias: number_of_rows_in_the_matrix_1 range: uint required: true + multivalued: false data: name: data description: The non-zero values in the matrix. - multivalued: false - array: - dimensions: - - alias: number_of_non_zero_values - range: AnyType + range: CSRMatrix__data required: true + multivalued: false tree_root: true + CSRMatrix__data: + name: CSRMatrix__data + description: The non-zero values in the matrix. + attributes: + name: + name: name + ifabsent: string(data) + range: string + required: true + equals_string: data diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.table.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.table.yaml index c23cfd0..ecd7b48 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.table.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_8_0/hdmf-common.table.yaml @@ -27,7 +27,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true description: @@ -68,7 +67,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true target: @@ -85,7 +83,6 @@ classes: name: name: name ifabsent: string(element_id) - identifier: true range: string required: true tree_root: true @@ -104,7 +101,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true table: @@ -141,7 +137,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true colnames: @@ -156,18 +151,18 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: false array: dimensions: - alias: num_rows range: int required: true + multivalued: false vector_data: name: vector_data description: Vector columns, including index columns, of this dynamic table. - multivalued: true range: VectorData required: false + multivalued: true tree_root: true AlignedDynamicTable: name: AlignedDynamicTable diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.experimental.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.experimental.yaml index 9d00f8a..c14e264 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.experimental.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.experimental.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true elements: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.nwb.language.yaml index 08b002e..5bb0e2b 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.resources.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.resources.yaml index 7155a0f7..17a7d9d 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.resources.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/hdmf-experimental.resources.yaml @@ -22,41 +22,40 @@ classes: attributes: name: name: name - identifier: true range: string required: true keys: name: keys description: A table for storing user terms that are used to refer to external resources. - multivalued: false range: ExternalResources__keys required: true + multivalued: false entities: name: entities description: A table for mapping user terms (i.e., keys) to resource entities. - multivalued: false range: ExternalResources__entities required: true + multivalued: false resources: name: resources description: A table for mapping user terms (i.e., keys) to resource entities. - multivalued: false range: ExternalResources__resources required: true + multivalued: false objects: name: objects description: A table for identifying which objects in a file contain references to external resources. - multivalued: false range: ExternalResources__objects required: true + multivalued: false object_keys: name: object_keys description: A table for identifying which objects use which keys. - multivalued: false range: ExternalResources__object_keys required: true + multivalued: false tree_root: true ExternalResources__keys: name: ExternalResources__keys @@ -67,7 +66,6 @@ classes: name: name: name ifabsent: string(keys) - identifier: true range: string required: true equals_string: keys @@ -75,9 +73,9 @@ classes: name: key description: The user term that maps to one or more resources in the 'resources' table. - multivalued: false range: text required: true + multivalued: false ExternalResources__entities: name: ExternalResources__entities description: A table for mapping user terms (i.e., keys) to resource entities. @@ -86,35 +84,34 @@ classes: name: name: name ifabsent: string(entities) - identifier: true range: string required: true equals_string: entities keys_idx: name: keys_idx description: The index to the key in the 'keys' table. - multivalued: false range: uint required: true + multivalued: false resources_idx: name: resources_idx description: The index into the 'resources' table - multivalued: false range: uint required: true + multivalued: false entity_id: name: entity_id description: The unique identifier entity. - multivalued: false range: text required: true + multivalued: false entity_uri: name: entity_uri description: The URI for the entity this reference applies to. This can be an empty string. - multivalued: false range: text required: true + multivalued: false ExternalResources__resources: name: ExternalResources__resources description: A table for mapping user terms (i.e., keys) to resource entities. @@ -123,22 +120,21 @@ classes: name: name: name ifabsent: string(resources) - identifier: true range: string required: true equals_string: resources resource: name: resource description: The name of the resource. - multivalued: false range: text required: true + multivalued: false resource_uri: name: resource_uri description: The URI for the resource. This can be an empty string. - multivalued: false range: text required: true + multivalued: false ExternalResources__objects: name: ExternalResources__objects description: A table for identifying which objects in a file contain references @@ -148,23 +144,22 @@ classes: name: name: name ifabsent: string(objects) - identifier: true range: string required: true equals_string: objects object_id: name: object_id description: The UUID for the object. - multivalued: false range: text required: true + multivalued: false field: name: field description: The field of the object. This can be an empty string if the object is a dataset and the field is the dataset values. - multivalued: false range: text required: true + multivalued: false ExternalResources__object_keys: name: ExternalResources__object_keys description: A table for identifying which objects use which keys. @@ -173,7 +168,6 @@ classes: name: name: name ifabsent: string(object_keys) - identifier: true range: string required: true equals_string: object_keys @@ -181,12 +175,12 @@ classes: name: objects_idx description: The index to the 'objects' table for the object that holds the key. - multivalued: false range: uint required: true + multivalued: false keys_idx: name: keys_idx description: The index to the 'keys' table for the key. - multivalued: false range: uint required: true + multivalued: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.experimental.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.experimental.yaml index a5beacd..7bc2244 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.experimental.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.experimental.yaml @@ -21,7 +21,6 @@ classes: attributes: name: name: name - identifier: true range: string required: true elements: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.nwb.language.yaml index 08b002e..5bb0e2b 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.nwb.language.yaml @@ -19,53 +19,67 @@ types: float32: name: float32 typeof: float + repr: np.float32 float64: name: float64 typeof: double + repr: np.float64 long: name: long typeof: integer + repr: np.longlong int64: name: int64 typeof: integer + repr: np.int64 int: name: int typeof: integer int32: name: int32 typeof: integer + repr: np.int32 int16: name: int16 typeof: integer + repr: np.int16 short: name: short typeof: integer + repr: np.int16 int8: name: int8 typeof: integer + repr: np.int8 uint: name: uint typeof: integer + repr: np.uint64 minimum_value: 0 uint32: name: uint32 typeof: integer + repr: np.uint32 minimum_value: 0 uint16: name: uint16 typeof: integer + repr: np.uint16 minimum_value: 0 uint8: name: uint8 typeof: integer + repr: np.uint8 minimum_value: 0 uint64: name: uint64 typeof: integer + repr: np.uint64 minimum_value: 0 numeric: name: numeric typeof: float + repr: np.number text: name: text typeof: string @@ -87,58 +101,7 @@ types: isodatetime: name: isodatetime typeof: datetime -enums: - FlatDType: - name: FlatDType - permissible_values: - float: - text: float - float32: - text: float32 - double: - text: double - float64: - text: float64 - long: - text: long - int64: - text: int64 - int: - text: int - int32: - text: int32 - int16: - text: int16 - short: - text: short - int8: - text: int8 - uint: - text: uint - uint32: - text: uint32 - uint16: - text: uint16 - uint8: - text: uint8 - uint64: - text: uint64 - numeric: - text: numeric - text: - text: text - utf: - text: utf - utf8: - text: utf8 - utf_8: - text: utf_8 - ascii: - text: ascii - bool: - text: bool - isodatetime: - text: isodatetime + repr: np.datetime64 classes: AnyType: name: AnyType diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.resources.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.resources.yaml index 242b36b..d4514ed 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.resources.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_5_0/hdmf-experimental.resources.yaml @@ -21,47 +21,46 @@ classes: attributes: name: name: name - identifier: true range: string required: true keys: name: keys description: A table for storing user terms that are used to refer to external resources. - multivalued: false range: HERD__keys required: true + multivalued: false files: name: files description: A table for storing object ids of files used in external resources. - multivalued: false range: HERD__files required: true + multivalued: false entities: name: entities description: A table for mapping user terms (i.e., keys) to resource entities. - multivalued: false range: HERD__entities required: true + multivalued: false objects: name: objects description: A table for identifying which objects in a file contain references to external resources. - multivalued: false range: HERD__objects required: true + multivalued: false object_keys: name: object_keys description: A table for identifying which objects use which keys. - multivalued: false range: HERD__object_keys required: true + multivalued: false entity_keys: name: entity_keys description: A table for identifying which keys use which entity. - multivalued: false range: HERD__entity_keys required: true + multivalued: false tree_root: true HERD__keys: name: HERD__keys @@ -72,7 +71,6 @@ classes: name: name: name ifabsent: string(keys) - identifier: true range: string required: true equals_string: keys @@ -80,9 +78,9 @@ classes: name: key description: The user term that maps to one or more resources in the `resources` table, e.g., "human". - multivalued: false range: text required: true + multivalued: false HERD__files: name: HERD__files description: A table for storing object ids of files used in external resources. @@ -91,7 +89,6 @@ classes: name: name: name ifabsent: string(files) - identifier: true range: string required: true equals_string: files @@ -99,9 +96,9 @@ classes: name: file_object_id description: The object id (UUID) of a file that contains objects that refers to external resources. - multivalued: false range: text required: true + multivalued: false HERD__entities: name: HERD__entities description: A table for mapping user terms (i.e., keys) to resource entities. @@ -110,7 +107,6 @@ classes: name: name: name ifabsent: string(entities) - identifier: true range: string required: true equals_string: entities @@ -118,16 +114,16 @@ classes: name: entity_id description: The compact uniform resource identifier (CURIE) of the entity, in the form [prefix]:[unique local identifier], e.g., 'NCBI_TAXON:9606'. - multivalued: false range: text required: true + multivalued: false entity_uri: name: entity_uri description: The URI for the entity this reference applies to. This can be an empty string. e.g., https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=info&id=9606 - multivalued: false range: text required: true + multivalued: false HERD__objects: name: HERD__objects description: A table for identifying which objects in a file contain references @@ -137,7 +133,6 @@ classes: name: name: name ifabsent: string(objects) - identifier: true range: string required: true equals_string: objects @@ -145,38 +140,38 @@ classes: name: files_idx description: The row index to the file in the `files` table containing the object. - multivalued: false range: uint required: true + multivalued: false object_id: name: object_id description: The object id (UUID) of the object. - multivalued: false range: text required: true + multivalued: false object_type: name: object_type description: The data type of the object. - multivalued: false range: text required: true + multivalued: false relative_path: name: relative_path description: The relative path from the data object with the `object_id` to the dataset or attribute with the value(s) that is associated with an external resource. This can be an empty string if the object is a dataset that contains the value(s) that is associated with an external resource. - multivalued: false range: text required: true + multivalued: false field: name: field description: The field within the compound data type using an external resource. This is used only if the dataset or attribute is a compound data type; otherwise this should be an empty string. - multivalued: false range: text required: true + multivalued: false HERD__object_keys: name: HERD__object_keys description: A table for identifying which objects use which keys. @@ -185,7 +180,6 @@ classes: name: name: name ifabsent: string(object_keys) - identifier: true range: string required: true equals_string: object_keys @@ -193,15 +187,15 @@ classes: name: objects_idx description: The row index to the object in the `objects` table that holds the key - multivalued: false range: uint required: true + multivalued: false keys_idx: name: keys_idx description: The row index to the key in the `keys` table. - multivalued: false range: uint required: true + multivalued: false HERD__entity_keys: name: HERD__entity_keys description: A table for identifying which keys use which entity. @@ -210,19 +204,18 @@ classes: name: name: name ifabsent: string(entity_keys) - identifier: true range: string required: true equals_string: entity_keys entities_idx: name: entities_idx description: The row index to the entity in the `entities` table. - multivalued: false range: uint required: true + multivalued: false keys_idx: name: keys_idx description: The row index to the key in the `keys` table. - multivalued: false range: uint required: true + multivalued: false diff --git a/nwb_linkml/tests/test_includes/__init__.py b/nwb_linkml/tests/test_includes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/nwb_linkml/tests/test_includes/test_hdmf.py b/nwb_linkml/tests/test_includes/test_hdmf.py new file mode 100644 index 0000000..c5c2f01 --- /dev/null +++ b/nwb_linkml/tests/test_includes/test_hdmf.py @@ -0,0 +1,22 @@ +import pytest +from typing import Tuple +import numpy as np + +from nwb_linkml.models.pydantic.core.v2_7_0.namespace import ElectricalSeries, NWBFileGeneralExtracellularEphysElectrodes + +@pytest.fixture() +def electrical_series() -> Tuple[ElectricalSeries, NWBFileGeneralExtracellularEphysElectrodes]: + """ + Demo electrical series with adjoining electrodes + """ + n_electrodes = 5 + n_times = 100 + data = np.arange(0, n_electrodes*n_times).reshape(n_times, n_electrodes) + timestamps = np.linspace(0, 1, n_times) + + # make electrodes tables + electrodes = NWBFileGeneralExtracellularEphysElectrodes( + id = np.arange(0, n_electrodes), + x = np.arange(0, n_electrodes), + y = np.arange(n_electrodes, n_electrodes*2) + ) \ No newline at end of file