diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.base.yaml index 677b981..805820e 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.base.yaml @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.2.0 imports: @@ -39,32 +46,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -130,7 +130,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -138,7 +141,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -146,7 +152,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -201,27 +210,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -268,13 +276,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: Images diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.behavior.yaml index d9662ae..aa4ab77 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.behavior.yaml @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.2.0 imports: @@ -59,19 +66,15 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -88,12 +91,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -101,12 +105,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -114,36 +119,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -154,22 +162,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.device.yaml index aaabc95..e1947cd 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.device.yaml @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.2.0 imports: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ecephys.yaml index b04a85a..ecaa563 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ecephys.yaml @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.2.0 imports: @@ -25,8 +32,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -45,47 +65,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion' - and 'channel_conversion' (if present). - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -120,52 +106,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -181,19 +146,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -204,36 +180,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -270,13 +216,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -287,12 +239,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -309,12 +262,13 @@ classes: the ElectricalSeries. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -323,12 +277,13 @@ classes: properties should be noted in the ElectricalSeries description or comments field. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -385,72 +340,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -472,21 +379,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.epoch.yaml index 9ed7171..5ac1f3c 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.epoch.yaml @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.2.0 imports: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.file.yaml index 3859c5b..40bfb11 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.file.yaml @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.2.0 imports: @@ -41,7 +48,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -183,9 +193,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -274,7 +289,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -286,7 +304,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -318,7 +339,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -622,42 +646,3 @@ classes: multivalued: false range: SweepTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.icephys.yaml index 5726b5d..f1ac89f 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.icephys.yaml @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.2.0 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.image.yaml index b533fee..3e471d0 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.image.yaml @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.2.0 imports: @@ -16,22 +23,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -42,28 +34,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -74,28 +45,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -115,12 +65,27 @@ classes: name: data description: Binary data representing images across frames. multivalued: false - range: ImageSeries__data + range: numeric required: false + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -130,8 +95,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -143,40 +108,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -216,8 +182,17 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -226,36 +201,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -274,7 +219,10 @@ classes: data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int32 required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.language.yaml index c57e91f..edba729 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.language.yaml @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.misc.yaml index 467ac48..bc542e8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.misc.yaml @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.2.0 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -169,23 +184,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -209,33 +213,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -269,7 +271,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -292,14 +299,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes tree_root: true Units__spike_times_index: name: Units__spike_times_index @@ -345,18 +372,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -381,43 +396,3 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ogen.yaml index 0aaa21a..ea5c428 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ogen.yaml @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.2.0 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ophys.yaml index 910b672..8eeb122 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.ophys.yaml @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.2.0 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,12 +139,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: DynamicTable tree_root: true ImagingPlane: name: ImagingPlane @@ -302,29 +273,21 @@ classes: range: text array: name: array - range: ImagingPlane__manifold__Array - ImagingPlane__manifold__Array: - name: ImagingPlane__manifold__Array - is_a: Arraylike - attributes: - height: - name: height range: float32 - required: true - width: - name: width - range: float32 - required: true - x, y, z: - name: x, y, z - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 - depth: - name: depth - range: float32 - required: false + any_of: + - array: + dimensions: + - alias: height + - alias: width + - alias: x, y, z + exact_cardinality: 3 + - array: + dimensions: + - alias: height + - alias: width + - alias: depth + - alias: x, y, z + exact_cardinality: 3 ImagingPlane__origin_coords: name: ImagingPlane__origin_coords description: Physical location of the first element of the imaging plane (0, 0) @@ -344,23 +307,13 @@ classes: range: text array: name: array - range: ImagingPlane__origin_coords__Array - ImagingPlane__origin_coords__Array: - name: ImagingPlane__origin_coords__Array - is_a: Arraylike - attributes: - x, y: - name: x, y + array: + dimensions: + - alias: x, y + exact_cardinality: 2 + - alias: x, y, z + exact_cardinality: 3 range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - x, y, z: - name: x, y, z - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 ImagingPlane__grid_spacing: name: ImagingPlane__grid_spacing description: Space between pixels in (x, y) or voxels in (x, y, z) directions, @@ -380,23 +333,13 @@ classes: range: text array: name: array - range: ImagingPlane__grid_spacing__Array - ImagingPlane__grid_spacing__Array: - name: ImagingPlane__grid_spacing__Array - is_a: Arraylike - attributes: - x, y: - name: x, y + array: + dimensions: + - alias: x, y + exact_cardinality: 2 + - alias: x, y, z + exact_cardinality: 3 range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - x, y, z: - name: x, y, z - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 OpticalChannel: name: OpticalChannel description: An optical channel used to record from an imaging plane. @@ -426,10 +369,11 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.retinotopy.yaml index 9150be9..d717b32 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/core.nwb.retinotopy.yaml @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.2.0 imports: @@ -28,20 +35,12 @@ classes: range: float32 array: name: array - range: RetinotopyMap__Array + array: + dimensions: + - alias: num_rows + - alias: num_cols + range: float32 tree_root: true - RetinotopyMap__Array: - name: RetinotopyMap__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows - range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true AxisMap: name: AxisMap description: Abstract two-dimensional map of responses to stimuli along a single @@ -59,20 +58,12 @@ classes: range: text array: name: array - range: AxisMap__Array + array: + dimensions: + - alias: num_rows + - alias: num_cols + range: float32 tree_root: true - AxisMap__Array: - name: AxisMap__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows - range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true RetinotopyImage: name: RetinotopyImage description: 'Gray-scale image related to retinotopic mapping. Array structure: @@ -155,7 +146,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_axes + exact_cardinality: 2 range: text required: true focal_depth_image: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/namespace.yaml index 9d9e3e8..0aff3ae 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_0/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.2.0 diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.base.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.base.yaml index 7fee945..0e3f8dd 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.base.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.base.yaml @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.2.1 imports: @@ -39,32 +46,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -130,7 +130,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -138,7 +141,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -146,7 +152,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -201,27 +210,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -268,13 +276,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: Images diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.behavior.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.behavior.yaml index d78319f..e21f8c7 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.behavior.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.behavior.yaml @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.2.1 imports: @@ -59,19 +66,15 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -88,12 +91,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -101,12 +105,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -114,36 +119,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -154,22 +162,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.device.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.device.yaml index 2870228..d2031fd 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.device.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.device.yaml @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.2.1 imports: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ecephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ecephys.yaml index 4a2e8ae..c84d7f5 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ecephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ecephys.yaml @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.2.1 imports: @@ -25,8 +32,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -45,47 +65,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion' - and 'channel_conversion' (if present). - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -120,52 +106,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -181,19 +146,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -204,36 +180,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -270,13 +216,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -287,12 +239,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -309,12 +262,13 @@ classes: the ElectricalSeries. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -323,12 +277,13 @@ classes: properties should be noted in the ElectricalSeries description or comments field. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -385,72 +340,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -472,21 +379,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.epoch.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.epoch.yaml index 92f6983..b58cc4e 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.epoch.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.epoch.yaml @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.2.1 imports: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.file.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.file.yaml index c2799c2..1ecf130 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.file.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.file.yaml @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.2.1 imports: @@ -41,7 +48,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -183,9 +193,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -274,7 +289,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -286,7 +304,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -318,7 +339,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -622,42 +646,3 @@ classes: multivalued: false range: SweepTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.icephys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.icephys.yaml index be5faf5..d5cb863 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.icephys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.icephys.yaml @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.2.1 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.image.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.image.yaml index 29f0726..bfded6d 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.image.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.image.yaml @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.2.1 imports: @@ -16,22 +23,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -42,28 +34,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -74,28 +45,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -115,12 +65,27 @@ classes: name: data description: Binary data representing images across frames. multivalued: false - range: ImageSeries__data + range: numeric required: false + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -130,8 +95,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -143,40 +108,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -216,8 +182,17 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -226,36 +201,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -274,7 +219,10 @@ classes: data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int32 required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.language.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.language.yaml index c57e91f..edba729 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.language.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.language.yaml @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.misc.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.misc.yaml index 4bce50a..d04f85b 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.misc.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.misc.yaml @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.2.1 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -169,23 +184,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -209,33 +213,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -269,7 +271,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -292,14 +299,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes tree_root: true Units__spike_times_index: name: Units__spike_times_index @@ -345,18 +372,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -381,43 +396,3 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ogen.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ogen.yaml index 1336019..8404680 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ogen.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ogen.yaml @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.2.1 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ophys.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ophys.yaml index 8c000e7..469788a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ophys.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.ophys.yaml @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.2.1 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,12 +139,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: DynamicTable tree_root: true ImagingPlane: name: ImagingPlane @@ -302,29 +273,21 @@ classes: range: text array: name: array - range: ImagingPlane__manifold__Array - ImagingPlane__manifold__Array: - name: ImagingPlane__manifold__Array - is_a: Arraylike - attributes: - height: - name: height range: float32 - required: true - width: - name: width - range: float32 - required: true - x, y, z: - name: x, y, z - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 - depth: - name: depth - range: float32 - required: false + any_of: + - array: + dimensions: + - alias: height + - alias: width + - alias: x, y, z + exact_cardinality: 3 + - array: + dimensions: + - alias: height + - alias: width + - alias: depth + - alias: x, y, z + exact_cardinality: 3 ImagingPlane__origin_coords: name: ImagingPlane__origin_coords description: Physical location of the first element of the imaging plane (0, 0) @@ -344,23 +307,13 @@ classes: range: text array: name: array - range: ImagingPlane__origin_coords__Array - ImagingPlane__origin_coords__Array: - name: ImagingPlane__origin_coords__Array - is_a: Arraylike - attributes: - x, y: - name: x, y + array: + dimensions: + - alias: x, y + exact_cardinality: 2 + - alias: x, y, z + exact_cardinality: 3 range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - x, y, z: - name: x, y, z - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 ImagingPlane__grid_spacing: name: ImagingPlane__grid_spacing description: Space between pixels in (x, y) or voxels in (x, y, z) directions, @@ -380,23 +333,13 @@ classes: range: text array: name: array - range: ImagingPlane__grid_spacing__Array - ImagingPlane__grid_spacing__Array: - name: ImagingPlane__grid_spacing__Array - is_a: Arraylike - attributes: - x, y: - name: x, y + array: + dimensions: + - alias: x, y + exact_cardinality: 2 + - alias: x, y, z + exact_cardinality: 3 range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - x, y, z: - name: x, y, z - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 OpticalChannel: name: OpticalChannel description: An optical channel used to record from an imaging plane. @@ -426,10 +369,11 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.retinotopy.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.retinotopy.yaml index 25a6ef5..1cf2daf 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.retinotopy.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/core.nwb.retinotopy.yaml @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.2.1 imports: @@ -28,20 +35,12 @@ classes: range: float32 array: name: array - range: RetinotopyMap__Array + array: + dimensions: + - alias: num_rows + - alias: num_cols + range: float32 tree_root: true - RetinotopyMap__Array: - name: RetinotopyMap__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows - range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true AxisMap: name: AxisMap description: Abstract two-dimensional map of responses to stimuli along a single @@ -59,20 +58,12 @@ classes: range: text array: name: array - range: AxisMap__Array + array: + dimensions: + - alias: num_rows + - alias: num_cols + range: float32 tree_root: true - AxisMap__Array: - name: AxisMap__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows - range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true RetinotopyImage: name: RetinotopyImage description: 'Gray-scale image related to retinotopic mapping. Array structure: @@ -155,7 +146,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_axes + exact_cardinality: 2 range: text required: true focal_depth_image: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/namespace.yaml index 2a81855..4864718 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_1/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.2.1 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 5f06b33..a68fc43 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 @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.2.2 imports: @@ -39,32 +46,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -130,7 +130,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -138,7 +141,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -146,7 +152,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -201,27 +210,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -268,13 +276,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: Images 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 1f4b370..d2b99a4 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 @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.2.2 imports: @@ -59,19 +66,15 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -88,12 +91,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -101,12 +105,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -114,36 +119,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -154,22 +162,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true 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 b669e93..150a0b1 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 @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.2.2 imports: 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 fc0575d..d3197fb 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 @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.2.2 imports: @@ -25,8 +32,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -45,47 +65,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion' - and 'channel_conversion' (if present). - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -120,52 +106,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -181,19 +146,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -204,36 +180,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -270,13 +216,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -287,12 +239,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -309,12 +262,13 @@ classes: the ElectricalSeries. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -323,12 +277,13 @@ classes: properties should be noted in the ElectricalSeries description or comments field. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -385,72 +340,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -472,21 +379,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true 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 215a042..5f64174 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 @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.2.2 imports: 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 8f239b1..f758026 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 @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.2.2 imports: @@ -41,7 +48,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -183,9 +193,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -274,7 +289,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -286,7 +304,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -318,7 +339,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -622,42 +646,3 @@ classes: multivalued: false range: SweepTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: 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 b2acbbb..daa1fd9 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 @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.2.2 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding 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 2b24ebd..6453d3a 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 @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.2.2 imports: @@ -16,22 +23,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -42,28 +34,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -74,28 +45,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -115,12 +65,27 @@ classes: name: data description: Binary data representing images across frames. multivalued: false - range: ImageSeries__data + range: numeric required: false + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -130,8 +95,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -143,40 +108,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -216,14 +182,36 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 data: name: data description: Images presented to subject, either grayscale or RGB multivalued: false - range: OpticalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -232,72 +220,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - OpticalSeries__data: - name: OpticalSeries__data - description: Images presented to subject, either grayscale or RGB - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: OpticalSeries__data__Array - OpticalSeries__data__Array: - name: OpticalSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -316,7 +238,10 @@ classes: data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int32 required: true 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 c57e91f..edba729 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 @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 9b667e1..53d7a9c 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 @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.2.2 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -169,23 +184,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -209,33 +213,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -269,7 +271,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -292,14 +299,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes tree_root: true Units__spike_times_index: name: Units__spike_times_index @@ -345,18 +372,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -381,43 +396,3 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text 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 c3e23ed..03a42a0 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 @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.2.2 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true 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 def2b96..da24d9a 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 @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.2.2 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,24 +139,26 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: DynamicTable tree_root: true ImagingPlane: name: ImagingPlane description: An imaging plane and its metadata. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBContainer + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBContainer tree_root: true MotionCorrection: name: MotionCorrection @@ -195,10 +167,11 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface tree_root: true 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 fa692c0..b0ba8c6 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 @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.2.2 imports: @@ -55,7 +62,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: axis_1, axis_2 + exact_cardinality: 2 range: text required: true focal_depth_image: @@ -106,19 +117,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_phase_map__Array - ImagingRetinotopy__axis_1_phase_map__Array: - name: ImagingRetinotopy__axis_1_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_1_power_map: name: ImagingRetinotopy__axis_1_power_map description: Power response on the first measured axis. Response is scaled so @@ -146,19 +149,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_power_map__Array - ImagingRetinotopy__axis_1_power_map__Array: - name: ImagingRetinotopy__axis_1_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_phase_map: name: ImagingRetinotopy__axis_2_phase_map description: Phase response to stimulus on the second measured axis. @@ -185,19 +180,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_phase_map__Array - ImagingRetinotopy__axis_2_phase_map__Array: - name: ImagingRetinotopy__axis_2_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_power_map: name: ImagingRetinotopy__axis_2_power_map description: Power response on the second measured axis. Response is scaled so @@ -225,19 +212,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_power_map__Array - ImagingRetinotopy__axis_2_power_map__Array: - name: ImagingRetinotopy__axis_2_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__focal_depth_image: name: ImagingRetinotopy__focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal @@ -274,19 +253,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__focal_depth_image__Array - ImagingRetinotopy__focal_depth_image__Array: - name: ImagingRetinotopy__focal_depth_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true ImagingRetinotopy__sign_map: name: ImagingRetinotopy__sign_map description: Sine of the angle between the direction of the gradient in axis_1 @@ -310,19 +281,11 @@ classes: range: float32 array: name: array - range: ImagingRetinotopy__sign_map__Array - ImagingRetinotopy__sign_map__Array: - name: ImagingRetinotopy__sign_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__vasculature_image: name: ImagingRetinotopy__vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: @@ -355,16 +318,8 @@ classes: range: text array: name: array - range: ImagingRetinotopy__vasculature_image__Array - ImagingRetinotopy__vasculature_image__Array: - name: ImagingRetinotopy__vasculature_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/namespace.yaml index daa5754..f918a52 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_2/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.2.2 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 d02d959..14daf08 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 @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.2.4 imports: @@ -39,32 +46,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -130,7 +130,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -138,7 +141,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -146,7 +152,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -201,27 +210,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -268,13 +276,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: Images 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 e414f93..98b836c 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 @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.2.4 imports: @@ -59,19 +66,15 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -88,12 +91,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -101,12 +105,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -114,36 +119,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -154,22 +162,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true 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 ceb2d08..bd6c3cf 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 @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.2.4 imports: 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 d0d49a1..8e03555 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 @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.2.4 imports: @@ -25,8 +32,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -45,47 +65,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion' - and 'channel_conversion' (if present). - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -120,52 +106,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -181,19 +146,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -204,36 +180,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -270,13 +216,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -287,12 +239,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -309,12 +262,13 @@ classes: the ElectricalSeries. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -323,12 +277,13 @@ classes: properties should be noted in the ElectricalSeries description or comments field. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -385,72 +340,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -472,21 +379,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true 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 13822e7..8c9a07e 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 @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.2.4 imports: 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 37f4484..88d3032 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 @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.2.4 imports: @@ -56,7 +63,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -198,9 +208,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -289,7 +304,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -301,7 +319,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -333,7 +354,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -575,45 +599,6 @@ classes: multivalued: false range: SweepTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. 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 76ba65b..3fbf2c8 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 @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.2.4 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding 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 d7788bb..33213e7 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 @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.2.4 imports: @@ -16,22 +23,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -42,28 +34,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -74,28 +45,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -115,12 +65,27 @@ classes: name: data description: Binary data representing images across frames. multivalued: false - range: ImageSeries__data + range: numeric required: false + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -130,8 +95,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -143,40 +108,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -216,14 +182,36 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 data: name: data description: Images presented to subject, either grayscale or RGB multivalued: false - range: OpticalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -232,72 +220,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - OpticalSeries__data: - name: OpticalSeries__data - description: Images presented to subject, either grayscale or RGB - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: OpticalSeries__data__Array - OpticalSeries__data__Array: - name: OpticalSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -316,7 +238,10 @@ classes: data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int32 required: true 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 c57e91f..edba729 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 @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 e6a644b..6177d09 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 @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.2.4 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -169,23 +184,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -209,33 +213,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -269,7 +271,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -292,14 +299,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes tree_root: true Units__spike_times_index: name: Units__spike_times_index @@ -345,18 +372,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -381,43 +396,3 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text 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 bc49283..e1f0320 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 @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.2.4 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true 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 831a683..3444dac 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 @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.2.4 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: true - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,12 +139,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: PlaneSegmentation + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: PlaneSegmentation tree_root: true PlaneSegmentation: name: PlaneSegmentation @@ -191,8 +162,20 @@ classes: 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: PlaneSegmentation__image_mask + range: AnyType 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 pixel_mask_index: name: pixel_mask_index description: Index into pixel_mask. @@ -228,19 +211,6 @@ classes: any_of: - range: ImageSeries tree_root: true - 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(image_mask) - identifier: true - range: string - required: true - equals_string: image_mask PlaneSegmentation__pixel_mask_index: name: PlaneSegmentation__pixel_mask_index description: Index into pixel_mask. @@ -270,12 +240,13 @@ classes: description: An imaging plane and its metadata. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: OpticalChannel + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: OpticalChannel tree_root: true OpticalChannel: name: OpticalChannel @@ -307,12 +278,13 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: CorrectedImageStack + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: CorrectedImageStack tree_root: true CorrectedImageStack: name: CorrectedImageStack 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 a597f23..5f4183f 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 @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.2.4 imports: @@ -55,7 +62,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: axis_1, axis_2 + exact_cardinality: 2 range: text required: true focal_depth_image: @@ -106,19 +117,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_phase_map__Array - ImagingRetinotopy__axis_1_phase_map__Array: - name: ImagingRetinotopy__axis_1_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_1_power_map: name: ImagingRetinotopy__axis_1_power_map description: Power response on the first measured axis. Response is scaled so @@ -146,19 +149,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_power_map__Array - ImagingRetinotopy__axis_1_power_map__Array: - name: ImagingRetinotopy__axis_1_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_phase_map: name: ImagingRetinotopy__axis_2_phase_map description: Phase response to stimulus on the second measured axis. @@ -185,19 +180,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_phase_map__Array - ImagingRetinotopy__axis_2_phase_map__Array: - name: ImagingRetinotopy__axis_2_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_power_map: name: ImagingRetinotopy__axis_2_power_map description: Power response on the second measured axis. Response is scaled so @@ -225,19 +212,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_power_map__Array - ImagingRetinotopy__axis_2_power_map__Array: - name: ImagingRetinotopy__axis_2_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__focal_depth_image: name: ImagingRetinotopy__focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal @@ -274,19 +253,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__focal_depth_image__Array - ImagingRetinotopy__focal_depth_image__Array: - name: ImagingRetinotopy__focal_depth_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true ImagingRetinotopy__sign_map: name: ImagingRetinotopy__sign_map description: Sine of the angle between the direction of the gradient in axis_1 @@ -310,19 +281,11 @@ classes: range: float32 array: name: array - range: ImagingRetinotopy__sign_map__Array - ImagingRetinotopy__sign_map__Array: - name: ImagingRetinotopy__sign_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__vasculature_image: name: ImagingRetinotopy__vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: @@ -355,16 +318,8 @@ classes: range: text array: name: array - range: ImagingRetinotopy__vasculature_image__Array - ImagingRetinotopy__vasculature_image__Array: - name: ImagingRetinotopy__vasculature_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/namespace.yaml index 9e1371b..b061ff8 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_4/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.2.4 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 3bc9a86..466517d 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 @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.2.5 imports: @@ -39,32 +46,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -130,7 +130,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -138,7 +141,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -146,7 +152,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -201,27 +210,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -268,13 +276,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: Images 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 0fd2ee4..f41873f 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 @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.2.5 imports: @@ -59,19 +66,15 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -88,12 +91,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -101,12 +105,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -114,36 +119,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -154,22 +162,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true 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 eb826f3..1ea59e7 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 @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.2.5 imports: 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 4051dfd..9c9a128 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 @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.2.5 imports: @@ -25,8 +32,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -45,47 +65,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion' - and 'channel_conversion' (if present). - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -120,52 +106,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -181,19 +146,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -204,36 +180,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -270,13 +216,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -287,12 +239,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -309,12 +262,13 @@ classes: the ElectricalSeries. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -323,12 +277,13 @@ classes: properties should be noted in the ElectricalSeries description or comments field. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -385,72 +340,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -472,21 +379,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true 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 5865f7e..c4d07b5 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 @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.2.5 imports: 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 34824bf..d003d2a 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 @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.2.5 imports: @@ -56,7 +63,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -198,9 +208,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -289,7 +304,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -301,7 +319,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -333,7 +354,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -575,45 +599,6 @@ classes: multivalued: false range: SweepTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. 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 f924642..d446bc3 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 @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.2.5 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding 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 552f1e4..0fe5553 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 @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.2.5 imports: @@ -16,22 +23,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -42,28 +34,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -74,28 +45,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -115,12 +65,27 @@ classes: name: data description: Binary data representing images across frames. multivalued: false - range: ImageSeries__data + range: numeric required: false + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -130,8 +95,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -143,40 +108,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -216,14 +182,36 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 data: name: data description: Images presented to subject, either grayscale or RGB multivalued: false - range: OpticalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -232,72 +220,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - OpticalSeries__data: - name: OpticalSeries__data - description: Images presented to subject, either grayscale or RGB - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: OpticalSeries__data__Array - OpticalSeries__data__Array: - name: OpticalSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -316,7 +238,10 @@ classes: data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int32 required: true 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 c57e91f..edba729 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 @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 4c8d3fe..056c439 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 @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.2.5 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -169,23 +184,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__bands: name: DecompositionSeries__bands description: Table for describing the bands that this series was generated from. @@ -209,33 +213,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -269,7 +271,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -292,14 +299,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes tree_root: true Units__spike_times_index: name: Units__spike_times_index @@ -345,18 +372,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -381,43 +396,3 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text 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 b88e0e3..7a4847e 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 @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.2.5 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true 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 2863219..ae0c707 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 @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.2.5 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height|depth + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,12 +139,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: PlaneSegmentation + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: PlaneSegmentation tree_root: true PlaneSegmentation: name: PlaneSegmentation @@ -191,8 +162,20 @@ classes: 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: PlaneSegmentation__image_mask + range: AnyType 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 pixel_mask_index: name: pixel_mask_index description: Index into pixel_mask. @@ -228,19 +211,6 @@ classes: any_of: - range: ImageSeries tree_root: true - 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(image_mask) - identifier: true - range: string - required: true - equals_string: image_mask PlaneSegmentation__pixel_mask_index: name: PlaneSegmentation__pixel_mask_index description: Index into pixel_mask. @@ -270,12 +240,13 @@ classes: description: An imaging plane and its metadata. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: OpticalChannel + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: OpticalChannel tree_root: true OpticalChannel: name: OpticalChannel @@ -307,12 +278,13 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: CorrectedImageStack + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: CorrectedImageStack tree_root: true CorrectedImageStack: name: CorrectedImageStack 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 db940d0..9b7ae8c 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 @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.2.5 imports: @@ -55,7 +62,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: axis_1, axis_2 + exact_cardinality: 2 range: text required: true focal_depth_image: @@ -106,19 +117,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_phase_map__Array - ImagingRetinotopy__axis_1_phase_map__Array: - name: ImagingRetinotopy__axis_1_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_1_power_map: name: ImagingRetinotopy__axis_1_power_map description: Power response on the first measured axis. Response is scaled so @@ -146,19 +149,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_power_map__Array - ImagingRetinotopy__axis_1_power_map__Array: - name: ImagingRetinotopy__axis_1_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_phase_map: name: ImagingRetinotopy__axis_2_phase_map description: Phase response to stimulus on the second measured axis. @@ -185,19 +180,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_phase_map__Array - ImagingRetinotopy__axis_2_phase_map__Array: - name: ImagingRetinotopy__axis_2_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_power_map: name: ImagingRetinotopy__axis_2_power_map description: Power response on the second measured axis. Response is scaled so @@ -225,19 +212,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_power_map__Array - ImagingRetinotopy__axis_2_power_map__Array: - name: ImagingRetinotopy__axis_2_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__focal_depth_image: name: ImagingRetinotopy__focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal @@ -274,19 +253,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__focal_depth_image__Array - ImagingRetinotopy__focal_depth_image__Array: - name: ImagingRetinotopy__focal_depth_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true ImagingRetinotopy__sign_map: name: ImagingRetinotopy__sign_map description: Sine of the angle between the direction of the gradient in axis_1 @@ -310,19 +281,11 @@ classes: range: float32 array: name: array - range: ImagingRetinotopy__sign_map__Array - ImagingRetinotopy__sign_map__Array: - name: ImagingRetinotopy__sign_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__vasculature_image: name: ImagingRetinotopy__vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: @@ -355,16 +318,8 @@ classes: range: text array: name: array - range: ImagingRetinotopy__vasculature_image__Array - ImagingRetinotopy__vasculature_image__Array: - name: ImagingRetinotopy__vasculature_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/namespace.yaml index 65d1766..c2aa8dc 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_2_5/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.2.5 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 51f261e..b817010 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 @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.3.0 imports: @@ -40,32 +47,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -131,7 +131,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -139,7 +142,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -147,7 +153,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -214,27 +223,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -281,13 +289,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: Images 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 e5eb504..c5268e7 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 @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.3.0 imports: @@ -59,19 +66,15 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -88,12 +91,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -101,12 +105,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -114,36 +119,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -154,22 +162,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true 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 b69e8d3..44217f7 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 @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.3.0 imports: 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 9171aaf..5ff3db5 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 @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.3.0 imports: @@ -35,8 +42,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -55,47 +75,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion' - and 'channel_conversion' (if present). - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -130,52 +116,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -191,19 +156,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -214,36 +190,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -280,13 +226,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -297,12 +249,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -319,12 +272,13 @@ classes: the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -333,12 +287,13 @@ classes: properties should be noted in the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -395,72 +350,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -482,21 +389,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true 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 750c28d..502aa87 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 @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.3.0 imports: 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 a4b867a..f3948e7 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 @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.3.0 imports: @@ -56,7 +63,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -198,9 +208,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -289,7 +304,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -301,7 +319,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -333,7 +354,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -576,45 +600,6 @@ classes: multivalued: false range: SweepTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. 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 4cb2b01..63a0b6a 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 @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.3.0 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding 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 5dc9f16..238a590 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 @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.3.0 imports: @@ -17,22 +24,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -43,28 +35,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -75,28 +46,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -116,12 +66,27 @@ classes: name: data description: Binary data representing images across frames. multivalued: false - range: ImageSeries__data + range: numeric required: false + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -131,8 +96,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -144,40 +109,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -217,14 +183,36 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 data: name: data description: Images presented to subject, either grayscale or RGB multivalued: false - range: OpticalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -233,72 +221,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - OpticalSeries__data: - name: OpticalSeries__data - description: Images presented to subject, either grayscale or RGB - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: OpticalSeries__data__Array - OpticalSeries__data__Array: - name: OpticalSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -317,7 +239,10 @@ classes: data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int32 required: true 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 c57e91f..edba729 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 @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 b1f44e0..ac1eb11 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 @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.3.0 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -176,23 +191,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__source_channels: name: DecompositionSeries__source_channels description: DynamicTableRegion pointer to the channels that this decomposition @@ -229,33 +233,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -289,7 +291,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -312,14 +319,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveforms: name: waveforms description: Individual waveforms for each spike on each electrode. This is @@ -346,7 +373,11 @@ classes: same order as the electrodes referenced in the 'electrodes' column of this table. The number of samples for each waveform must be the same. multivalued: false - range: Units__waveforms + array: + dimensions: + - alias: num_waveforms + - alias: num_samples + range: numeric required: false waveforms_index: name: waveforms_index @@ -407,18 +438,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -443,88 +462,6 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveforms: - name: Units__waveforms - description: Individual waveforms for each spike on each electrode. This is a - doubly indexed column. The 'waveforms_index' column indexes which waveforms - in this column belong to the same spike event for a given unit, where each waveform - was recorded from a different electrode. The 'waveforms_index_index' column - indexes the 'waveforms_index' column to indicate which spike events belong to - a given unit. For example, if the 'waveforms_index_index' column has values - [2, 5, 6], then the first 2 elements of the 'waveforms_index' column correspond - to the 2 spike events of the first unit, the next 3 elements of the 'waveforms_index' - column correspond to the 3 spike events of the second unit, and the next 1 element - of the 'waveforms_index' column corresponds to the 1 spike event of the third - unit. If the 'waveforms_index' column has values [3, 6, 8, 10, 12, 13], then - the first 3 elements of the 'waveforms' column contain the 3 spike waveforms - that were recorded from 3 different electrodes for the first spike time of the - first unit. See https://nwb-schema.readthedocs.io/en/stable/format_description.html#doubly-ragged-arrays - for a graphical representation of this example. When there is only one electrode - for each unit (i.e., each spike time is associated with a single waveform), - then the 'waveforms_index' column will have values 1, 2, ..., N, where N is - the number of spike events. The number of electrodes for each spike event should - be the same within a given unit. The 'electrodes' column should be used to indicate - which electrodes are associated with each unit, and the order of the waveforms - within a given unit x spike event should be in the same order as the electrodes - referenced in the 'electrodes' column of this table. The number of samples for - each waveform must be the same. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveforms) - identifier: true - range: string - required: true - equals_string: waveforms - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text Units__waveforms_index: name: Units__waveforms_index description: Index into the waveforms dataset. One value for every spike event. 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 c305004..f4f0673 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 @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.3.0 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true 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 ed59306..42b638d 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 @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.3.0 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height|depth + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,12 +139,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: PlaneSegmentation + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: PlaneSegmentation tree_root: true PlaneSegmentation: name: PlaneSegmentation @@ -191,8 +162,20 @@ classes: 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: PlaneSegmentation__image_mask + range: AnyType 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 pixel_mask_index: name: pixel_mask_index description: Index into pixel_mask. @@ -228,19 +211,6 @@ classes: any_of: - range: ImageSeries tree_root: true - 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(image_mask) - identifier: true - range: string - required: true - equals_string: image_mask PlaneSegmentation__pixel_mask_index: name: PlaneSegmentation__pixel_mask_index description: Index into pixel_mask. @@ -270,12 +240,13 @@ classes: description: An imaging plane and its metadata. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: OpticalChannel + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: OpticalChannel tree_root: true OpticalChannel: name: OpticalChannel @@ -307,12 +278,13 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: CorrectedImageStack + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: CorrectedImageStack tree_root: true CorrectedImageStack: name: CorrectedImageStack 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 f257f82..f44a870 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 @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.3.0 imports: @@ -55,7 +62,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: axis_1, axis_2 + exact_cardinality: 2 range: text required: true focal_depth_image: @@ -106,19 +117,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_phase_map__Array - ImagingRetinotopy__axis_1_phase_map__Array: - name: ImagingRetinotopy__axis_1_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_1_power_map: name: ImagingRetinotopy__axis_1_power_map description: Power response on the first measured axis. Response is scaled so @@ -146,19 +149,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_power_map__Array - ImagingRetinotopy__axis_1_power_map__Array: - name: ImagingRetinotopy__axis_1_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_phase_map: name: ImagingRetinotopy__axis_2_phase_map description: Phase response to stimulus on the second measured axis. @@ -185,19 +180,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_phase_map__Array - ImagingRetinotopy__axis_2_phase_map__Array: - name: ImagingRetinotopy__axis_2_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_power_map: name: ImagingRetinotopy__axis_2_power_map description: Power response on the second measured axis. Response is scaled so @@ -225,19 +212,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_power_map__Array - ImagingRetinotopy__axis_2_power_map__Array: - name: ImagingRetinotopy__axis_2_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__focal_depth_image: name: ImagingRetinotopy__focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal @@ -274,19 +253,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__focal_depth_image__Array - ImagingRetinotopy__focal_depth_image__Array: - name: ImagingRetinotopy__focal_depth_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true ImagingRetinotopy__sign_map: name: ImagingRetinotopy__sign_map description: Sine of the angle between the direction of the gradient in axis_1 @@ -310,19 +281,11 @@ classes: range: float32 array: name: array - range: ImagingRetinotopy__sign_map__Array - ImagingRetinotopy__sign_map__Array: - name: ImagingRetinotopy__sign_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__vasculature_image: name: ImagingRetinotopy__vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: @@ -355,16 +318,8 @@ classes: range: text array: name: array - range: ImagingRetinotopy__vasculature_image__Array - ImagingRetinotopy__vasculature_image__Array: - name: ImagingRetinotopy__vasculature_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/namespace.yaml index cbe558c..2725965 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_3_0/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.3.0 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 6a82617..e1832c4 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 @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.4.0 imports: @@ -53,32 +60,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -144,7 +144,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -152,7 +155,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -160,7 +166,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -227,27 +236,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -294,13 +302,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: Images 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 97b402a..95940a5 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 @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.4.0 imports: @@ -59,19 +66,15 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -88,12 +91,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -101,12 +105,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -114,36 +119,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -154,22 +162,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true 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 cb7a567..2631baa 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 @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.4.0 imports: 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 456d52d..f6a0150 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 @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.4.0 imports: @@ -35,8 +42,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -55,47 +75,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion' - and 'channel_conversion' (if present). - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -130,52 +116,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -191,19 +156,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -214,36 +190,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -280,13 +226,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -297,12 +249,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -319,12 +272,13 @@ classes: the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -333,12 +287,13 @@ classes: properties should be noted in the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -395,72 +350,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -482,21 +389,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true 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 b223191..88b0139 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 @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.4.0 imports: 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 474db3e..72c41cf 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 @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.4.0 imports: @@ -56,7 +63,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -198,9 +208,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -289,7 +304,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -301,7 +319,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -333,7 +354,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -630,45 +654,6 @@ classes: multivalued: false range: ExperimentalConditionsTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. 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 d83c0ec..6aa85d5 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 @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.4.0 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding 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 7cbe234..f0986dd 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 @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.4.0 imports: @@ -17,22 +24,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -43,28 +35,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -75,28 +46,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -117,12 +67,27 @@ classes: 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: ImageSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -132,8 +97,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -145,41 +110,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. If data are stored - in an external file, this should be an empty 3D array. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -219,14 +184,36 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 data: name: data description: Images presented to subject, either grayscale or RGB multivalued: false - range: OpticalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -235,72 +222,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - OpticalSeries__data: - name: OpticalSeries__data - description: Images presented to subject, either grayscale or RGB - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: OpticalSeries__data__Array - OpticalSeries__data__Array: - name: OpticalSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -319,7 +240,10 @@ classes: data: name: data description: Index of the frame in the referenced ImageSeries. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int32 required: true 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 c57e91f..edba729 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 @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 e9ef754..c56c722 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 @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.4.0 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -176,23 +191,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__source_channels: name: DecompositionSeries__source_channels description: DynamicTableRegion pointer to the channels that this decomposition @@ -229,33 +233,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -289,7 +291,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -312,14 +319,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveforms: name: waveforms description: Individual waveforms for each spike on each electrode. This is @@ -346,7 +373,11 @@ classes: same order as the electrodes referenced in the 'electrodes' column of this table. The number of samples for each waveform must be the same. multivalued: false - range: Units__waveforms + array: + dimensions: + - alias: num_waveforms + - alias: num_samples + range: numeric required: false waveforms_index: name: waveforms_index @@ -407,18 +438,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -443,88 +462,6 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveforms: - name: Units__waveforms - description: Individual waveforms for each spike on each electrode. This is a - doubly indexed column. The 'waveforms_index' column indexes which waveforms - in this column belong to the same spike event for a given unit, where each waveform - was recorded from a different electrode. The 'waveforms_index_index' column - indexes the 'waveforms_index' column to indicate which spike events belong to - a given unit. For example, if the 'waveforms_index_index' column has values - [2, 5, 6], then the first 2 elements of the 'waveforms_index' column correspond - to the 2 spike events of the first unit, the next 3 elements of the 'waveforms_index' - column correspond to the 3 spike events of the second unit, and the next 1 element - of the 'waveforms_index' column corresponds to the 1 spike event of the third - unit. If the 'waveforms_index' column has values [3, 6, 8, 10, 12, 13], then - the first 3 elements of the 'waveforms' column contain the 3 spike waveforms - that were recorded from 3 different electrodes for the first spike time of the - first unit. See https://nwb-schema.readthedocs.io/en/stable/format_description.html#doubly-ragged-arrays - for a graphical representation of this example. When there is only one electrode - for each unit (i.e., each spike time is associated with a single waveform), - then the 'waveforms_index' column will have values 1, 2, ..., N, where N is - the number of spike events. The number of electrodes for each spike event should - be the same within a given unit. The 'electrodes' column should be used to indicate - which electrodes are associated with each unit, and the order of the waveforms - within a given unit x spike event should be in the same order as the electrodes - referenced in the 'electrodes' column of this table. The number of samples for - each waveform must be the same. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveforms) - identifier: true - range: string - required: true - equals_string: waveforms - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text Units__waveforms_index: name: Units__waveforms_index description: Index into the waveforms dataset. One value for every spike event. 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 b847259..3879929 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 @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.4.0 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true 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 e8ff89d..1e62ac5 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 @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.4.0 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height|depth + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,12 +139,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: PlaneSegmentation + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: PlaneSegmentation tree_root: true PlaneSegmentation: name: PlaneSegmentation @@ -191,8 +162,20 @@ classes: 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: PlaneSegmentation__image_mask + range: AnyType 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 pixel_mask_index: name: pixel_mask_index description: Index into pixel_mask. @@ -228,19 +211,6 @@ classes: any_of: - range: ImageSeries tree_root: true - 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(image_mask) - identifier: true - range: string - required: true - equals_string: image_mask PlaneSegmentation__pixel_mask_index: name: PlaneSegmentation__pixel_mask_index description: Index into pixel_mask. @@ -270,12 +240,13 @@ classes: description: An imaging plane and its metadata. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: OpticalChannel + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: OpticalChannel tree_root: true OpticalChannel: name: OpticalChannel @@ -307,12 +278,13 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: CorrectedImageStack + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: CorrectedImageStack tree_root: true CorrectedImageStack: name: CorrectedImageStack 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 beacf03..464e367 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 @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.4.0 imports: @@ -55,7 +62,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: axis_1, axis_2 + exact_cardinality: 2 range: text required: true focal_depth_image: @@ -106,19 +117,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_phase_map__Array - ImagingRetinotopy__axis_1_phase_map__Array: - name: ImagingRetinotopy__axis_1_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_1_power_map: name: ImagingRetinotopy__axis_1_power_map description: Power response on the first measured axis. Response is scaled so @@ -146,19 +149,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_power_map__Array - ImagingRetinotopy__axis_1_power_map__Array: - name: ImagingRetinotopy__axis_1_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_phase_map: name: ImagingRetinotopy__axis_2_phase_map description: Phase response to stimulus on the second measured axis. @@ -185,19 +180,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_phase_map__Array - ImagingRetinotopy__axis_2_phase_map__Array: - name: ImagingRetinotopy__axis_2_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_power_map: name: ImagingRetinotopy__axis_2_power_map description: Power response on the second measured axis. Response is scaled so @@ -225,19 +212,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_power_map__Array - ImagingRetinotopy__axis_2_power_map__Array: - name: ImagingRetinotopy__axis_2_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__focal_depth_image: name: ImagingRetinotopy__focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal @@ -274,19 +253,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__focal_depth_image__Array - ImagingRetinotopy__focal_depth_image__Array: - name: ImagingRetinotopy__focal_depth_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true ImagingRetinotopy__sign_map: name: ImagingRetinotopy__sign_map description: Sine of the angle between the direction of the gradient in axis_1 @@ -310,19 +281,11 @@ classes: range: float32 array: name: array - range: ImagingRetinotopy__sign_map__Array - ImagingRetinotopy__sign_map__Array: - name: ImagingRetinotopy__sign_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__vasculature_image: name: ImagingRetinotopy__vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: @@ -355,16 +318,8 @@ classes: range: text array: name: array - range: ImagingRetinotopy__vasculature_image__Array - ImagingRetinotopy__vasculature_image__Array: - name: ImagingRetinotopy__vasculature_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/namespace.yaml index 00e8404..2b3dff6 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_4_0/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.4.0 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 729211d..39857f8 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 @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.5.0 imports: @@ -53,32 +60,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 ImageReferences: name: ImageReferences description: Ordered dataset of references to Image objects. @@ -89,18 +89,13 @@ classes: identifier: true range: string required: true - array: - name: array - range: ImageReferences__Array - tree_root: true - ImageReferences__Array: - name: ImageReferences__Array - is_a: Arraylike - attributes: - num_images: - name: num_images + image: + name: image + description: Ordered dataset of references to Image objects. + multivalued: true range: Image required: true + tree_root: true NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -166,7 +161,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -174,7 +172,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -182,7 +183,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -257,27 +261,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -324,13 +327,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: 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 a785773..14d8293 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 @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.5.0 imports: @@ -60,33 +67,26 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - x: - name: x - range: numeric - required: false - minimum_cardinality: 1 - maximum_cardinality: 1 - x,y: - name: x,y - range: numeric - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - x,y,z: - name: x,y,z - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: x + exact_cardinality: 1 + - array: + dimensions: + - alias: num_times + - alias: x,y + exact_cardinality: 2 + - array: + dimensions: + - alias: num_times + - alias: x,y,z + exact_cardinality: 3 BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -103,12 +103,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -116,12 +117,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -129,36 +131,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -169,22 +174,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true 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 8a72bea..ea60a74 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 @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.5.0 imports: 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 3697759..6c73e13 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 @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.5.0 imports: @@ -35,8 +42,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -55,47 +75,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion', - followed by 'channel_conversion' (if present), and then add 'offset'. - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -130,52 +116,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -191,19 +156,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -214,36 +190,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -280,13 +226,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -297,12 +249,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -319,12 +272,13 @@ classes: the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -333,12 +287,13 @@ classes: properties should be noted in the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -395,72 +350,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -482,21 +389,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true 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 8024ef1..cd992b0 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 @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.5.0 imports: 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 2f63730..76ebf3d 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 @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.5.0 imports: @@ -56,7 +63,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -198,9 +208,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -290,7 +305,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -302,7 +320,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -334,7 +355,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -633,45 +657,6 @@ classes: multivalued: false range: ExperimentalConditionsTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. 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 8107ace..dd240da 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 @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.5.0 imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion' and add 'offset'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding 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 d4b1a86..2cef030 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 @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.5.0 imports: @@ -17,22 +24,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -43,28 +35,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -75,28 +46,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -117,12 +67,27 @@ classes: 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: ImageSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -132,8 +97,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -145,41 +110,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. If data are stored - in an external file, this should be an empty 3D array. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -219,14 +184,36 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 data: name: data description: Images presented to subject, either grayscale or RGB multivalued: false - range: OpticalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -235,72 +222,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - OpticalSeries__data: - name: OpticalSeries__data - description: Images presented to subject, either grayscale or RGB - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: OpticalSeries__data__Array - OpticalSeries__data__Array: - name: OpticalSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -321,7 +242,10 @@ classes: name: data description: Index of the image (using zero-indexing) in the linked Images object. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint32 required: true 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 c57e91f..edba729 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 @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 2d03a8e..51b0078 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 @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.5.0 imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -176,23 +191,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__source_channels: name: DecompositionSeries__source_channels description: DynamicTableRegion pointer to the channels that this decomposition @@ -229,33 +233,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -289,7 +291,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -312,14 +319,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveforms: name: waveforms description: Individual waveforms for each spike on each electrode. This is @@ -346,7 +373,11 @@ classes: same order as the electrodes referenced in the 'electrodes' column of this table. The number of samples for each waveform must be the same. multivalued: false - range: Units__waveforms + array: + dimensions: + - alias: num_waveforms + - alias: num_samples + range: numeric required: false waveforms_index: name: waveforms_index @@ -407,18 +438,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -443,88 +462,6 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveforms: - name: Units__waveforms - description: Individual waveforms for each spike on each electrode. This is a - doubly indexed column. The 'waveforms_index' column indexes which waveforms - in this column belong to the same spike event for a given unit, where each waveform - was recorded from a different electrode. The 'waveforms_index_index' column - indexes the 'waveforms_index' column to indicate which spike events belong to - a given unit. For example, if the 'waveforms_index_index' column has values - [2, 5, 6], then the first 2 elements of the 'waveforms_index' column correspond - to the 2 spike events of the first unit, the next 3 elements of the 'waveforms_index' - column correspond to the 3 spike events of the second unit, and the next 1 element - of the 'waveforms_index' column corresponds to the 1 spike event of the third - unit. If the 'waveforms_index' column has values [3, 6, 8, 10, 12, 13], then - the first 3 elements of the 'waveforms' column contain the 3 spike waveforms - that were recorded from 3 different electrodes for the first spike time of the - first unit. See https://nwb-schema.readthedocs.io/en/stable/format_description.html#doubly-ragged-arrays - for a graphical representation of this example. When there is only one electrode - for each unit (i.e., each spike time is associated with a single waveform), - then the 'waveforms_index' column will have values 1, 2, ..., N, where N is - the number of spike events. The number of electrodes for each spike event should - be the same within a given unit. The 'electrodes' column should be used to indicate - which electrodes are associated with each unit, and the order of the waveforms - within a given unit x spike event should be in the same order as the electrodes - referenced in the 'electrodes' column of this table. The number of samples for - each waveform must be the same. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveforms) - identifier: true - range: string - required: true - equals_string: waveforms - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text Units__waveforms_index: name: Units__waveforms_index description: Index into the waveforms dataset. One value for every spike event. 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 9da2ad2..546b9cd 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 @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.5.0 imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true 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 646318d..a205204 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 @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.5.0 imports: @@ -33,39 +40,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height|depth + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -81,8 +67,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -91,32 +85,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -137,12 +105,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -151,12 +120,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -169,12 +139,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: PlaneSegmentation + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: PlaneSegmentation tree_root: true PlaneSegmentation: name: PlaneSegmentation @@ -191,8 +162,20 @@ classes: 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: PlaneSegmentation__image_mask + range: AnyType 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 pixel_mask_index: name: pixel_mask_index description: Index into pixel_mask. @@ -228,19 +211,6 @@ classes: any_of: - range: ImageSeries tree_root: true - 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(image_mask) - identifier: true - range: string - required: true - equals_string: image_mask PlaneSegmentation__pixel_mask_index: name: PlaneSegmentation__pixel_mask_index description: Index into pixel_mask. @@ -270,12 +240,13 @@ classes: description: An imaging plane and its metadata. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: OpticalChannel + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: OpticalChannel tree_root: true OpticalChannel: name: OpticalChannel @@ -307,12 +278,13 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: CorrectedImageStack + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: CorrectedImageStack tree_root: true CorrectedImageStack: name: CorrectedImageStack 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 1710053..8562943 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 @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.5.0 imports: @@ -55,7 +62,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: axis_1, axis_2 + exact_cardinality: 2 range: text required: true focal_depth_image: @@ -106,19 +117,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_phase_map__Array - ImagingRetinotopy__axis_1_phase_map__Array: - name: ImagingRetinotopy__axis_1_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_1_power_map: name: ImagingRetinotopy__axis_1_power_map description: Power response on the first measured axis. Response is scaled so @@ -146,19 +149,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_power_map__Array - ImagingRetinotopy__axis_1_power_map__Array: - name: ImagingRetinotopy__axis_1_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_phase_map: name: ImagingRetinotopy__axis_2_phase_map description: Phase response to stimulus on the second measured axis. @@ -185,19 +180,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_phase_map__Array - ImagingRetinotopy__axis_2_phase_map__Array: - name: ImagingRetinotopy__axis_2_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_power_map: name: ImagingRetinotopy__axis_2_power_map description: Power response on the second measured axis. Response is scaled so @@ -225,19 +212,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_power_map__Array - ImagingRetinotopy__axis_2_power_map__Array: - name: ImagingRetinotopy__axis_2_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__focal_depth_image: name: ImagingRetinotopy__focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal @@ -274,19 +253,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__focal_depth_image__Array - ImagingRetinotopy__focal_depth_image__Array: - name: ImagingRetinotopy__focal_depth_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true ImagingRetinotopy__sign_map: name: ImagingRetinotopy__sign_map description: Sine of the angle between the direction of the gradient in axis_1 @@ -310,19 +281,11 @@ classes: range: float32 array: name: array - range: ImagingRetinotopy__sign_map__Array - ImagingRetinotopy__sign_map__Array: - name: ImagingRetinotopy__sign_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__vasculature_image: name: ImagingRetinotopy__vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: @@ -355,16 +318,8 @@ classes: range: text array: name: array - range: ImagingRetinotopy__vasculature_image__Array - ImagingRetinotopy__vasculature_image__Array: - name: ImagingRetinotopy__vasculature_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/namespace.yaml index e7d33bd..b33d409 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_5_0/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.5.0 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 ca6eca6..053d845 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 @@ -1,4 +1,11 @@ name: core.nwb.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.base version: 2.6.0-alpha imports: @@ -53,32 +60,25 @@ classes: range: text array: name: array - range: Image__Array + range: numeric + any_of: + - array: + dimensions: + - alias: x + - alias: y + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 + - array: + dimensions: + - alias: x + - alias: y + - alias: r, g, b, a + exact_cardinality: 4 tree_root: true - Image__Array: - name: Image__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - r, g, b, a: - name: r, g, b, a - range: numeric - required: false - minimum_cardinality: 4 - maximum_cardinality: 4 ImageReferences: name: ImageReferences description: Ordered dataset of references to Image objects. @@ -89,18 +89,13 @@ classes: identifier: true range: string required: true - array: - name: array - range: ImageReferences__Array - tree_root: true - ImageReferences__Array: - name: ImageReferences__Array - is_a: Arraylike - attributes: - num_images: - name: num_images + image: + name: image + description: Ordered dataset of references to Image objects. + multivalued: true range: Image required: true + tree_root: true NWBContainer: name: NWBContainer description: An abstract data type for a generic container storing collections @@ -166,7 +161,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: false control: @@ -174,7 +172,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint8 required: false control_description: @@ -182,7 +183,10 @@ classes: 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: true + multivalued: false + array: + dimensions: + - alias: num_control_values range: text required: false sync: @@ -257,27 +261,26 @@ classes: range: text array: name: array - range: TimeSeries__data__Array - TimeSeries__data__Array: - name: TimeSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: AnyType - required: true - num_DIM2: - name: num_DIM2 - range: AnyType - required: false - num_DIM3: - name: num_DIM3 - range: AnyType - required: false - num_DIM4: - name: num_DIM4 - range: AnyType - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - array: + dimensions: + - alias: num_times + - alias: num_DIM2 + - alias: num_DIM3 + - alias: num_DIM4 TimeSeries__starting_time: name: TimeSeries__starting_time description: Timestamp of the first sample in seconds. When timestamps are uniformly @@ -324,13 +327,14 @@ classes: description: A collection of processed data. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: NWBDataInterface - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: NWBDataInterface + - range: DynamicTable tree_root: true Images: name: 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 43ada3d..d656941 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 @@ -1,4 +1,11 @@ name: core.nwb.behavior +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.behavior version: 2.6.0-alpha imports: @@ -60,33 +67,26 @@ classes: range: text array: name: array - range: SpatialSeries__data__Array - SpatialSeries__data__Array: - name: SpatialSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - x: - name: x - range: numeric - required: false - minimum_cardinality: 1 - maximum_cardinality: 1 - x,y: - name: x,y - range: numeric - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - x,y,z: - name: x,y,z - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: x + exact_cardinality: 1 + - array: + dimensions: + - alias: num_times + - alias: x,y + exact_cardinality: 2 + - array: + dimensions: + - alias: num_times + - alias: x,y,z + exact_cardinality: 3 BehavioralEpochs: name: BehavioralEpochs description: TimeSeries for storing behavioral epochs. The objective of this @@ -103,12 +103,13 @@ classes: events. BehavioralTimeSeries is for continuous data. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: IntervalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: IntervalSeries tree_root: true BehavioralEvents: name: BehavioralEvents @@ -116,12 +117,13 @@ classes: for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true BehavioralTimeSeries: name: BehavioralTimeSeries @@ -129,36 +131,39 @@ classes: of BehavioralEpochs for more details. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true PupilTracking: name: PupilTracking description: Eye-tracking data, representing pupil size. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: TimeSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeSeries tree_root: true EyeTracking: name: EyeTracking description: Eye-tracking data, representing direction of gaze. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true CompassDirection: name: CompassDirection @@ -169,22 +174,24 @@ classes: be radians or degrees. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true Position: name: Position description: Position data, whether along the x, x/y or x/y/z axis. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpatialSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpatialSeries tree_root: true 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 93c1e39..56e0400 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 @@ -1,4 +1,11 @@ name: core.nwb.device +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.device version: 2.6.0-alpha imports: 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 776a807..97a5f08 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 @@ -1,4 +1,11 @@ name: core.nwb.ecephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ecephys version: 2.6.0-alpha imports: @@ -35,8 +42,21 @@ classes: name: data description: Recorded voltage data. multivalued: false - range: ElectricalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_channels + - array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_samples electrodes: name: electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -55,47 +75,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: true + multivalued: false + array: + dimensions: + - alias: num_channels range: float32 required: false tree_root: true - ElectricalSeries__data: - name: ElectricalSeries__data - description: Recorded voltage data. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Base unit of measurement for working with the data. This value - is fixed to 'volts'. Actual stored values are not necessarily stored in - these units. To access the data in these units, multiply 'data' by 'conversion', - followed by 'channel_conversion' (if present), and then add 'offset'. - range: text - array: - name: array - range: ElectricalSeries__data__Array - ElectricalSeries__data__Array: - name: ElectricalSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false - num_samples: - name: num_samples - range: numeric - required: false ElectricalSeries__electrodes: name: ElectricalSeries__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -130,52 +116,31 @@ classes: name: data description: Spike waveforms. multivalued: false - range: SpikeEventSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_events + - alias: num_samples + - array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_samples timestamps: name: timestamps description: Timestamps for samples stored in data, in seconds, relative to the common experiment master-clock stored in NWBFile.timestamps_reference_time. Timestamps are required for the events. Unlike for TimeSeries, timestamps are required for SpikeEventSeries and are thus re-specified here. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: float64 required: true tree_root: true - SpikeEventSeries__data: - name: SpikeEventSeries__data - description: Spike waveforms. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - unit: - name: unit - description: Unit of measurement for waveforms, which is fixed to 'volts'. - range: text - array: - name: array - range: SpikeEventSeries__data__Array - SpikeEventSeries__data__Array: - name: SpikeEventSeries__data__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: numeric - required: true - num_samples: - name: num_samples - range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: false FeatureExtraction: name: FeatureExtraction description: Features, such as PC1 and PC2, that are extracted from signals stored @@ -191,19 +156,30 @@ classes: name: description description: Description of features (eg, ''PC1'') for each of the extracted features. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true features: name: features description: Multi-dimensional array of features extracted from each event. multivalued: false - range: FeatureExtraction__features + array: + dimensions: + - alias: num_events + - alias: num_channels + - alias: num_features + range: float32 required: true times: name: times description: Times of events that features correspond to (can be a link). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true electrodes: @@ -214,36 +190,6 @@ classes: range: FeatureExtraction__electrodes required: true tree_root: true - FeatureExtraction__features: - name: FeatureExtraction__features - description: Multi-dimensional array of features extracted from each event. - attributes: - name: - name: name - ifabsent: string(features) - identifier: true - range: string - required: true - equals_string: features - array: - name: array - range: FeatureExtraction__features__Array - FeatureExtraction__features__Array: - name: FeatureExtraction__features__Array - is_a: Arraylike - attributes: - num_events: - name: num_events - range: float32 - required: true - num_channels: - name: num_channels - range: float32 - required: true - num_features: - name: num_features - range: float32 - required: true FeatureExtraction__electrodes: name: FeatureExtraction__electrodes description: DynamicTableRegion pointer to the electrodes that this time series @@ -280,13 +226,19 @@ classes: corresponding to time of event. ''description'' should define what is meant by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc). The index points to each event from the raw data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true times: name: times description: Timestamps of events, in seconds. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true tree_root: true @@ -297,12 +249,13 @@ classes: during experiment acquisition. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: SpikeEventSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: SpikeEventSeries tree_root: true FilteredEphys: name: FilteredEphys @@ -319,12 +272,13 @@ classes: the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true LFP: name: LFP @@ -333,12 +287,13 @@ classes: properties should be noted in the ElectricalSeries 'filtering' attribute. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: ElectricalSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: ElectricalSeries tree_root: true ElectrodeGroup: name: ElectrodeGroup @@ -395,72 +350,24 @@ classes: 3 is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should be empty (e.g., zero- filled) multivalued: false - range: ClusterWaveforms__waveform_mean + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true waveform_sd: name: waveform_sd description: Stdev of waveforms for each cluster, using the same indices as in mean multivalued: false - range: ClusterWaveforms__waveform_sd + array: + dimensions: + - alias: num_clusters + - alias: num_samples + range: float32 required: true tree_root: true - ClusterWaveforms__waveform_mean: - name: ClusterWaveforms__waveform_mean - description: The mean waveform for each cluster, using the same indices for each - wave as cluster numbers in the associated Clustering module (i.e, cluster 3 - is in array slot [3]). Waveforms corresponding to gaps in cluster sequence should - be empty (e.g., zero- filled) - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - array: - name: array - range: ClusterWaveforms__waveform_mean__Array - ClusterWaveforms__waveform_mean__Array: - name: ClusterWaveforms__waveform_mean__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true - ClusterWaveforms__waveform_sd: - name: ClusterWaveforms__waveform_sd - description: Stdev of waveforms for each cluster, using the same indices as in - mean - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - array: - name: array - range: ClusterWaveforms__waveform_sd__Array - ClusterWaveforms__waveform_sd__Array: - name: ClusterWaveforms__waveform_sd__Array - is_a: Arraylike - attributes: - num_clusters: - name: num_clusters - range: float32 - required: true - num_samples: - name: num_samples - range: float32 - required: true Clustering: name: Clustering description: DEPRECATED Clustered spike data, whether from automatic clustering @@ -482,21 +389,30 @@ classes: num: name: num description: Cluster number of each event - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: int32 required: true peak_over_rms: name: peak_over_rms description: Maximum ratio of waveform peak to RMS on any channel in the cluster (provides a basic clustering metric). - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_clusters range: float32 required: true times: name: times description: Times of clustered events, in seconds. This may be a link to times field in associated FeatureExtraction module. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_events range: float64 required: true 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 29a14be..89328ec 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 @@ -1,4 +1,11 @@ name: core.nwb.epoch +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.epoch version: 2.6.0-alpha imports: 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 2e7876a..6a536a3 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 @@ -1,4 +1,11 @@ name: core.nwb.file +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.file version: 2.6.0-alpha imports: @@ -56,7 +63,10 @@ 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: true + multivalued: false + array: + dimensions: + - alias: num_modifications range: isodatetime required: true identifier: @@ -198,9 +208,14 @@ classes: having a particular scientific goal, trials (see trials subgroup) during an experiment, or epochs (see epochs subgroup) deriving from analysis of data. - multivalued: false - range: NWBFile__intervals - required: false + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals + - range: TimeIntervals units: name: units description: Data about sorted spike units. @@ -290,7 +305,10 @@ classes: name: experimenter description: Name of person(s) who performed the experiment. Can also specify roles of different people involved. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_experimenters range: text required: false institution: @@ -302,7 +320,10 @@ classes: keywords: name: keywords description: Terms to search over. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_keywords range: text required: false lab: @@ -334,7 +355,10 @@ classes: related_publications: name: related_publications description: Publication information. PMID, DOI, URL, etc. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_publications range: text required: false session_id: @@ -633,45 +657,6 @@ classes: multivalued: false range: ExperimentalConditionsTable required: false - NWBFile__intervals: - name: NWBFile__intervals - description: Experimental intervals, whether that be logically distinct sub-experiments - having a particular scientific goal, trials (see trials subgroup) during an - experiment, or epochs (see epochs subgroup) deriving from analysis of data. - attributes: - name: - name: name - ifabsent: string(intervals) - identifier: true - range: string - required: true - equals_string: intervals - epochs: - name: epochs - description: Divisions in time marking experimental stages or sub-divisions - of a single recording session. - multivalued: false - range: TimeIntervals - required: false - trials: - name: trials - description: Repeated experimental events that have a logical grouping. - multivalued: false - range: TimeIntervals - required: false - invalid_times: - name: invalid_times - description: Time intervals that should be removed from analysis. - multivalued: false - range: TimeIntervals - required: false - time_intervals: - name: time_intervals - description: Optional additional table(s) for describing other experimental - time intervals. - multivalued: true - range: TimeIntervals - required: false LabMetaData: name: LabMetaData description: Lab-specific meta-data. 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 ff23e85..a034515 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 @@ -1,4 +1,11 @@ name: core.nwb.icephys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.icephys version: 2.6.0-alpha imports: @@ -30,8 +37,8 @@ classes: data: name: data description: Recorded voltage or current. - multivalued: true - range: numeric + multivalued: false + range: PatchClampSeries__data required: true gain: name: gain @@ -41,6 +48,29 @@ classes: range: float32 required: false tree_root: true + PatchClampSeries__data: + name: PatchClampSeries__data + description: Recorded voltage or current. + attributes: + name: + name: name + ifabsent: string(data) + identifier: true + range: string + required: true + equals_string: data + unit: + name: unit + description: Base unit of measurement for working with the data. Actual stored + values are not necessarily stored in these units. To access the data in + these units, multiply 'data' by 'conversion' and add 'offset'. + range: text + array: + name: array + array: + dimensions: + - alias: num_times + range: numeric CurrentClampSeries: name: CurrentClampSeries description: Voltage data from an intracellular current-clamp recording. A corresponding 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 5ea10fe..f171d2e 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 @@ -1,4 +1,11 @@ name: core.nwb.image +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.image version: 2.6.0-alpha imports: @@ -17,22 +24,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: GrayscaleImage__Array tree_root: true - GrayscaleImage__Array: - name: GrayscaleImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true RGBImage: name: RGBImage description: A color image. @@ -43,28 +35,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBImage__Array tree_root: true - RGBImage__Array: - name: RGBImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: true - minimum_cardinality: 3 - maximum_cardinality: 3 RGBAImage: name: RGBAImage description: A color image with transparency. @@ -75,28 +46,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: RGBAImage__Array tree_root: true - RGBAImage__Array: - name: RGBAImage__Array - is_a: Arraylike - attributes: - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b, a: - name: r, g, b, a - range: numeric - required: true - minimum_cardinality: 4 - maximum_cardinality: 4 ImageSeries: name: ImageSeries description: General image data that is common between acquisition and stimulus @@ -117,12 +67,27 @@ classes: 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: ImageSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: z dimension: name: dimension description: Number of pixels on x, y, (and z) axes. - multivalued: true + multivalued: false + array: + dimensions: + - alias: rank range: int32 required: false external_file: @@ -132,8 +97,8 @@ 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: true - range: text + multivalued: false + range: ImageSeries__external_file required: false format: name: format @@ -145,41 +110,41 @@ classes: range: text required: false tree_root: true - ImageSeries__data: - name: ImageSeries__data - description: Binary data representing images across frames. If data are stored - in an external file, this should be an empty 3D array. + ImageSeries__external_file: + name: ImageSeries__external_file + description: Paths to one or more external file(s). The field is only present + if format='external'. This is only relevant if the image series is stored 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. attributes: name: name: name - ifabsent: string(data) + ifabsent: string(external_file) identifier: true range: string required: true - equals_string: data + equals_string: external_file + starting_frame: + name: starting_frame + description: Each external image may contain one or more consecutive frames + of the full ImageSeries. This attribute serves as an index to indicate which + frames each file contains, to faciliate random access. The 'starting_frame' + attribute, hence, contains a list of frame numbers within the full ImageSeries + of the first frame of each file listed in the parent 'external_file' dataset. + Zero-based indexing is used (hence, the first element will always be zero). + For example, if the 'external_file' dataset has three paths to files and + the first file has 5 frames, the second file has 10 frames, and the third + file has 20 frames, then this attribute will have values [0, 5, 15]. If + there is a single external file that holds all of the frames of the ImageSeries + (and so there is a single element in the 'external_file' dataset), then + this attribute should have value [0]. + range: int32 array: name: array - range: ImageSeries__data__Array - ImageSeries__data__Array: - name: ImageSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - z: - name: z - range: numeric - required: false + array: + dimensions: + - alias: num_files + range: text ImageMaskSeries: name: ImageMaskSeries description: An alpha mask that is applied to a presented visual stimulus. The @@ -219,14 +184,36 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: OpticalSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width, height + exact_cardinality: 2 + - array: + dimensions: + - alias: width, height, depth + exact_cardinality: 3 data: name: data description: Images presented to subject, either grayscale or RGB multivalued: false - range: OpticalSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - array: + dimensions: + - alias: frame + - alias: x + - alias: y + - alias: r, g, b + exact_cardinality: 3 orientation: name: orientation description: Description of image relative to some reference frame (e.g., @@ -235,72 +222,6 @@ classes: range: text required: false tree_root: true - OpticalSeries__field_of_view: - name: OpticalSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: OpticalSeries__field_of_view__Array - OpticalSeries__field_of_view__Array: - name: OpticalSeries__field_of_view__Array - is_a: Arraylike - attributes: - width, height: - name: width, height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width, height, depth: - name: width, height, depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 - OpticalSeries__data: - name: OpticalSeries__data - description: Images presented to subject, either grayscale or RGB - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: OpticalSeries__data__Array - OpticalSeries__data__Array: - name: OpticalSeries__data__Array - is_a: Arraylike - attributes: - frame: - name: frame - range: numeric - required: true - x: - name: x - range: numeric - required: true - y: - name: y - range: numeric - required: true - r, g, b: - name: r, g, b - range: numeric - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 IndexSeries: name: IndexSeries description: Stores indices to image frames stored in an ImageSeries. The purpose @@ -321,7 +242,10 @@ classes: name: data description: Index of the image (using zero-indexing) in the linked Images object. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: uint32 required: true 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 c57e91f..edba729 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 @@ -1,4 +1,11 @@ name: core.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 52ede98..c349c6c 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 @@ -1,4 +1,11 @@ name: core.nwb.misc +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.misc version: 2.6.0-alpha imports: @@ -35,13 +42,19 @@ classes: feature_units: name: feature_units description: Units of each feature. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: false features: name: features description: Description of the features represented in TimeSeries::data. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_features range: text required: true tree_root: true @@ -64,19 +77,15 @@ classes: range: text array: name: array - range: AbstractFeatureSeries__data__Array - AbstractFeatureSeries__data__Array: - name: AbstractFeatureSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times range: numeric - required: true - num_features: - name: num_features - range: numeric - required: false + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_features AnnotationSeries: name: AnnotationSeries description: Stores user annotations made during an experiment. The data[] field @@ -93,7 +102,10 @@ classes: data: name: data description: Annotations made during an experiment. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: text required: true tree_root: true @@ -116,7 +128,10 @@ classes: data: name: data description: Use values >0 if interval started, <0 if interval ended. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: int8 required: true tree_root: true @@ -176,23 +191,12 @@ classes: range: text array: name: array - range: DecompositionSeries__data__Array - DecompositionSeries__data__Array: - name: DecompositionSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times + array: + dimensions: + - alias: num_times + - alias: num_channels + - alias: num_bands range: numeric - required: true - num_channels: - name: num_channels - range: numeric - required: true - num_bands: - name: num_bands - range: numeric - required: true DecompositionSeries__source_channels: name: DecompositionSeries__source_channels description: DynamicTableRegion pointer to the channels that this decomposition @@ -229,33 +233,31 @@ classes: description: Low and high limit of each band in Hz. If it is a Gaussian filter, use 2 SD on either side of the center. multivalued: false - range: DecompositionSeries__bands__band_limits + array: + dimensions: + - alias: num_bands + - alias: low, high + exact_cardinality: 2 + range: float32 required: true band_mean: name: band_mean description: The mean Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true band_stdev: name: band_stdev description: The standard deviation of Gaussian filters, in Hz. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_bands range: float32 required: true - DecompositionSeries__bands__band_limits: - name: DecompositionSeries__bands__band_limits - description: Low and high limit of each band in Hz. If it is a Gaussian filter, - use 2 SD on either side of the center. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(band_limits) - identifier: true - range: string - required: true - equals_string: band_limits Units: name: Units description: Data about spiking units. Event times of observed units (e.g. cell, @@ -289,7 +291,12 @@ classes: name: obs_intervals description: Observation intervals for each unit. multivalued: false - range: Units__obs_intervals + array: + dimensions: + - alias: num_intervals + - alias: start|end + exact_cardinality: 2 + range: float64 required: false electrodes_index: name: electrodes_index @@ -312,14 +319,34 @@ classes: name: waveform_mean description: Spike waveform mean for each spike unit. multivalued: false - range: Units__waveform_mean + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveform_sd: name: waveform_sd description: Spike waveform standard deviation for each spike unit. multivalued: false - range: Units__waveform_sd + range: float32 required: false + any_of: + - array: + dimensions: + - alias: num_units + - alias: num_samples + - array: + dimensions: + - alias: num_units + - alias: num_samples + - alias: num_electrodes waveforms: name: waveforms description: Individual waveforms for each spike on each electrode. This is @@ -346,7 +373,11 @@ classes: same order as the electrodes referenced in the 'electrodes' column of this table. The number of samples for each waveform must be the same. multivalued: false - range: Units__waveforms + array: + dimensions: + - alias: num_waveforms + - alias: num_samples + range: numeric required: false waveforms_index: name: waveforms_index @@ -407,18 +438,6 @@ classes: range: string required: true equals_string: obs_intervals_index - Units__obs_intervals: - name: Units__obs_intervals - description: Observation intervals for each unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(obs_intervals) - identifier: true - range: string - required: true - equals_string: obs_intervals Units__electrodes_index: name: Units__electrodes_index description: Index into electrodes. @@ -443,88 +462,6 @@ classes: range: string required: true equals_string: electrodes - Units__waveform_mean: - name: Units__waveform_mean - description: Spike waveform mean for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_mean) - identifier: true - range: string - required: true - equals_string: waveform_mean - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveform_sd: - name: Units__waveform_sd - description: Spike waveform standard deviation for each spike unit. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveform_sd) - identifier: true - range: string - required: true - equals_string: waveform_sd - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text - Units__waveforms: - name: Units__waveforms - description: Individual waveforms for each spike on each electrode. This is a - doubly indexed column. The 'waveforms_index' column indexes which waveforms - in this column belong to the same spike event for a given unit, where each waveform - was recorded from a different electrode. The 'waveforms_index_index' column - indexes the 'waveforms_index' column to indicate which spike events belong to - a given unit. For example, if the 'waveforms_index_index' column has values - [2, 5, 6], then the first 2 elements of the 'waveforms_index' column correspond - to the 2 spike events of the first unit, the next 3 elements of the 'waveforms_index' - column correspond to the 3 spike events of the second unit, and the next 1 element - of the 'waveforms_index' column corresponds to the 1 spike event of the third - unit. If the 'waveforms_index' column has values [3, 6, 8, 10, 12, 13], then - the first 3 elements of the 'waveforms' column contain the 3 spike waveforms - that were recorded from 3 different electrodes for the first spike time of the - first unit. See https://nwb-schema.readthedocs.io/en/stable/format_description.html#doubly-ragged-arrays - for a graphical representation of this example. When there is only one electrode - for each unit (i.e., each spike time is associated with a single waveform), - then the 'waveforms_index' column will have values 1, 2, ..., N, where N is - the number of spike events. The number of electrodes for each spike event should - be the same within a given unit. The 'electrodes' column should be used to indicate - which electrodes are associated with each unit, and the order of the waveforms - within a given unit x spike event should be in the same order as the electrodes - referenced in the 'electrodes' column of this table. The number of samples for - each waveform must be the same. - is_a: VectorData - attributes: - name: - name: name - ifabsent: string(waveforms) - identifier: true - range: string - required: true - equals_string: waveforms - sampling_rate: - name: sampling_rate - description: Sampling rate, in hertz. - range: float32 - unit: - name: unit - description: Unit of measurement. This value is fixed to 'volts'. - range: text Units__waveforms_index: name: Units__waveforms_index description: Index into the waveforms dataset. One value for every spike event. 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 3bd5676..183bb5e 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 @@ -1,4 +1,11 @@ name: core.nwb.ogen +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ogen version: 2.6.0-alpha imports: @@ -20,7 +27,10 @@ classes: data: name: data description: Applied power for optogenetic stimulus, in watts. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_times range: numeric required: true 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 d53bc17..00d10b3 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 @@ -1,4 +1,11 @@ name: core.nwb.ophys +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.ophys version: 2.6.0-alpha imports: @@ -70,39 +77,18 @@ classes: name: field_of_view description: Width, height and depth of image, or imaged area, in meters. multivalued: false - range: TwoPhotonSeries__field_of_view + range: float32 required: false + any_of: + - array: + dimensions: + - alias: width|height + exact_cardinality: 2 + - array: + dimensions: + - alias: width|height|depth + exact_cardinality: 3 tree_root: true - TwoPhotonSeries__field_of_view: - name: TwoPhotonSeries__field_of_view - description: Width, height and depth of image, or imaged area, in meters. - attributes: - name: - name: name - ifabsent: string(field_of_view) - identifier: true - range: string - required: true - equals_string: field_of_view - array: - name: array - range: TwoPhotonSeries__field_of_view__Array - TwoPhotonSeries__field_of_view__Array: - name: TwoPhotonSeries__field_of_view__Array - is_a: Arraylike - attributes: - width|height: - name: width|height - range: float32 - required: false - minimum_cardinality: 2 - maximum_cardinality: 2 - width|height|depth: - name: width|height|depth - range: float32 - required: false - minimum_cardinality: 3 - maximum_cardinality: 3 RoiResponseSeries: name: RoiResponseSeries description: ROI responses over an imaging plane. The first dimension represents @@ -118,8 +104,16 @@ classes: name: data description: Signals from ROIs. multivalued: false - range: RoiResponseSeries__data + range: numeric required: true + any_of: + - array: + dimensions: + - alias: num_times + - array: + dimensions: + - alias: num_times + - alias: num_ROIs rois: name: rois description: DynamicTableRegion referencing into an ROITable containing information @@ -128,32 +122,6 @@ classes: range: RoiResponseSeries__rois required: true tree_root: true - RoiResponseSeries__data: - name: RoiResponseSeries__data - description: Signals from ROIs. - attributes: - name: - name: name - ifabsent: string(data) - identifier: true - range: string - required: true - equals_string: data - array: - name: array - range: RoiResponseSeries__data__Array - RoiResponseSeries__data__Array: - name: RoiResponseSeries__data__Array - is_a: Arraylike - attributes: - num_times: - name: num_times - range: numeric - required: true - num_ROIs: - name: num_ROIs - range: numeric - required: false RoiResponseSeries__rois: name: RoiResponseSeries__rois description: DynamicTableRegion referencing into an ROITable containing information @@ -174,12 +142,13 @@ classes: for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true Fluorescence: name: Fluorescence @@ -188,12 +157,13 @@ classes: for ROIs and for image planes). is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: RoiResponseSeries + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: RoiResponseSeries tree_root: true ImageSegmentation: name: ImageSegmentation @@ -206,12 +176,13 @@ classes: is required and ROI names should remain consistent between them. is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: PlaneSegmentation + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: PlaneSegmentation tree_root: true PlaneSegmentation: name: PlaneSegmentation @@ -228,8 +199,20 @@ classes: 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: PlaneSegmentation__image_mask + range: AnyType 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 pixel_mask_index: name: pixel_mask_index description: Index into pixel_mask. @@ -265,19 +248,6 @@ classes: any_of: - range: ImageSeries tree_root: true - 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(image_mask) - identifier: true - range: string - required: true - equals_string: image_mask PlaneSegmentation__pixel_mask_index: name: PlaneSegmentation__pixel_mask_index description: Index into pixel_mask. @@ -307,12 +277,13 @@ classes: description: An imaging plane and its metadata. is_a: NWBContainer attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: OpticalChannel + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: OpticalChannel tree_root: true OpticalChannel: name: OpticalChannel @@ -344,12 +315,13 @@ classes: frame at each point in time is assumed to be 2-D (has only x & y dimensions).' is_a: NWBDataInterface attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: CorrectedImageStack + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: CorrectedImageStack tree_root: true CorrectedImageStack: name: CorrectedImageStack 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 fffbd47..364898f 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 @@ -1,4 +1,11 @@ name: core.nwb.retinotopy +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: core id: core.nwb.retinotopy version: 2.6.0-alpha imports: @@ -55,7 +62,11 @@ classes: description: Two-element array describing the contents of the two response axis fields. Description should be something like ['altitude', 'azimuth'] or '['radius', 'theta']. - multivalued: true + multivalued: false + array: + dimensions: + - alias: axis_1, axis_2 + exact_cardinality: 2 range: text required: true focal_depth_image: @@ -106,19 +117,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_phase_map__Array - ImagingRetinotopy__axis_1_phase_map__Array: - name: ImagingRetinotopy__axis_1_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_1_power_map: name: ImagingRetinotopy__axis_1_power_map description: Power response on the first measured axis. Response is scaled so @@ -146,19 +149,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_1_power_map__Array - ImagingRetinotopy__axis_1_power_map__Array: - name: ImagingRetinotopy__axis_1_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_phase_map: name: ImagingRetinotopy__axis_2_phase_map description: Phase response to stimulus on the second measured axis. @@ -185,19 +180,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_phase_map__Array - ImagingRetinotopy__axis_2_phase_map__Array: - name: ImagingRetinotopy__axis_2_phase_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__axis_2_power_map: name: ImagingRetinotopy__axis_2_power_map description: Power response on the second measured axis. Response is scaled so @@ -225,19 +212,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__axis_2_power_map__Array - ImagingRetinotopy__axis_2_power_map__Array: - name: ImagingRetinotopy__axis_2_power_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__focal_depth_image: name: ImagingRetinotopy__focal_depth_image description: 'Gray-scale image taken with same settings/parameters (e.g., focal @@ -274,19 +253,11 @@ classes: range: text array: name: array - range: ImagingRetinotopy__focal_depth_image__Array - ImagingRetinotopy__focal_depth_image__Array: - name: ImagingRetinotopy__focal_depth_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true ImagingRetinotopy__sign_map: name: ImagingRetinotopy__sign_map description: Sine of the angle between the direction of the gradient in axis_1 @@ -310,19 +281,11 @@ classes: range: float32 array: name: array - range: ImagingRetinotopy__sign_map__Array - ImagingRetinotopy__sign_map__Array: - name: ImagingRetinotopy__sign_map__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: float32 - required: true - num_cols: - name: num_cols - range: float32 - required: true ImagingRetinotopy__vasculature_image: name: ImagingRetinotopy__vasculature_image description: 'Gray-scale anatomical image of cortical surface. Array structure: @@ -355,16 +318,8 @@ classes: range: text array: name: array - range: ImagingRetinotopy__vasculature_image__Array - ImagingRetinotopy__vasculature_image__Array: - name: ImagingRetinotopy__vasculature_image__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows + - alias: num_cols range: uint16 - required: true - num_cols: - name: num_cols - range: uint16 - required: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/namespace.yaml index c254e70..42d9b3a 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/core/v2_6_0_alpha/namespace.yaml @@ -1,8 +1,11 @@ name: core annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: core description: NWB namespace id: core version: 2.6.0-alpha 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 e499b2f..2afd49a 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 @@ -1,4 +1,11 @@ name: hdmf-common.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 478a77c..3f8cac0 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 @@ -1,4 +1,11 @@ name: hdmf-common.sparse +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.sparse version: 1.1.0 imports: 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 f6e9288..a6a3c01 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 @@ -1,4 +1,11 @@ name: hdmf-common.table +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.table version: 1.1.0 imports: @@ -80,18 +87,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: ElementIdentifiers__Array tree_root: true - ElementIdentifiers__Array: - name: ElementIdentifiers__Array - is_a: Arraylike - attributes: - num_elements: - name: num_elements - range: int - required: true DynamicTableRegion: name: DynamicTableRegion description: DynamicTableRegion provides a link from one table to an index or @@ -173,7 +169,10 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: int required: true vector_data: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/namespace.yaml index 9df791d..6c72a1b 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_0/namespace.yaml @@ -1,8 +1,11 @@ name: hdmf-common annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: hdmf-common description: Common data structures provided by HDMF id: hdmf-common version: 1.1.0 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 e499b2f..2afd49a 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 @@ -1,4 +1,11 @@ name: hdmf-common.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 ef2d9fc..a18d478 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 @@ -1,4 +1,11 @@ name: hdmf-common.sparse +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.sparse version: 1.1.2 imports: 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 4baef63..9fb473d 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 @@ -1,4 +1,11 @@ name: hdmf-common.table +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.table version: 1.1.2 imports: @@ -80,18 +87,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: ElementIdentifiers__Array tree_root: true - ElementIdentifiers__Array: - name: ElementIdentifiers__Array - is_a: Arraylike - attributes: - num_elements: - name: num_elements - range: int - required: true DynamicTableRegion: name: DynamicTableRegion description: DynamicTableRegion provides a link from one table to an index or @@ -173,7 +169,10 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: int required: true vector_data: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/namespace.yaml index 95cb847..6355968 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_2/namespace.yaml @@ -1,8 +1,11 @@ name: hdmf-common annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: hdmf-common description: Common data structures provided by HDMF id: hdmf-common version: 1.1.2 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 e499b2f..2afd49a 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 @@ -1,4 +1,11 @@ name: hdmf-common.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 7f35d65..c4ddcd4 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 @@ -1,4 +1,11 @@ name: hdmf-common.sparse +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.sparse version: 1.1.3 imports: 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 a9f6b65..452518d 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 @@ -1,4 +1,11 @@ name: hdmf-common.table +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.table version: 1.1.3 imports: @@ -53,28 +60,27 @@ classes: range: text array: name: array - range: VectorData__Array + range: AnyType + any_of: + - array: + dimensions: + - alias: dim0 + - array: + dimensions: + - alias: dim0 + - alias: dim1 + - array: + dimensions: + - alias: dim0 + - alias: dim1 + - alias: dim2 + - array: + dimensions: + - alias: dim0 + - alias: dim1 + - alias: dim2 + - alias: dim3 tree_root: true - VectorData__Array: - name: VectorData__Array - is_a: Arraylike - attributes: - dim0: - name: dim0 - range: AnyType - required: true - dim1: - name: dim1 - range: AnyType - required: false - dim2: - name: dim2 - range: AnyType - required: false - dim3: - name: dim3 - range: AnyType - required: false VectorIndex: name: VectorIndex description: Used with VectorData to encode a ragged array. An array of indices @@ -93,16 +99,11 @@ classes: range: VectorData array: name: array - range: VectorIndex__Array - tree_root: true - VectorIndex__Array: - name: VectorIndex__Array - is_a: Arraylike - attributes: - num_rows: - name: num_rows + array: + dimensions: + - alias: num_rows range: AnyType - required: true + tree_root: true ElementIdentifiers: name: ElementIdentifiers description: A list of unique identifiers for values within a dataset, e.g. rows @@ -114,18 +115,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: ElementIdentifiers__Array tree_root: true - ElementIdentifiers__Array: - name: ElementIdentifiers__Array - is_a: Arraylike - attributes: - num_elements: - name: num_elements - range: int - required: true DynamicTableRegion: name: DynamicTableRegion description: DynamicTableRegion provides a link from one table to an index or @@ -207,7 +197,10 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: int required: true vector_data: diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/namespace.yaml index c97f2ad..9edd21c 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_1_3/namespace.yaml @@ -1,8 +1,11 @@ name: hdmf-common annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: hdmf-common description: Common data structures provided by HDMF id: hdmf-common version: 1.1.3 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 df76a37..38d1d98 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 @@ -1,4 +1,11 @@ name: hdmf-common.base +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.base version: 1.5.0 imports: @@ -31,10 +38,11 @@ classes: description: A simple Container for holding onto multiple containers. is_a: Container attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: Container + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: Container 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 e499b2f..2afd49a 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 @@ -1,4 +1,11 @@ name: hdmf-common.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 805df51..aa3c20d 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 @@ -1,4 +1,11 @@ name: hdmf-common.sparse +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.sparse version: 1.5.0 imports: @@ -26,19 +33,28 @@ classes: indices: name: indices description: The column indices. - multivalued: true + multivalued: false + array: + dimensions: + - alias: number of non-zero values range: uint required: true indptr: name: indptr description: The row index pointer. - multivalued: true + multivalued: false + array: + dimensions: + - alias: number of rows in the matrix + 1 range: uint required: true data: name: data description: The non-zero values in the matrix. - multivalued: true + multivalued: false + array: + dimensions: + - alias: number of non-zero values range: AnyType required: true tree_root: true 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 95164bd..fae9434 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 @@ -1,4 +1,11 @@ name: hdmf-common.table +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-common id: hdmf-common.table version: 1.5.0 imports: @@ -29,28 +36,27 @@ classes: range: text array: name: array - range: VectorData__Array + range: AnyType + any_of: + - array: + dimensions: + - alias: dim0 + - array: + dimensions: + - alias: dim0 + - alias: dim1 + - array: + dimensions: + - alias: dim0 + - alias: dim1 + - alias: dim2 + - array: + dimensions: + - alias: dim0 + - alias: dim1 + - alias: dim2 + - alias: dim3 tree_root: true - VectorData__Array: - name: VectorData__Array - is_a: Arraylike - attributes: - dim0: - name: dim0 - range: AnyType - required: true - dim1: - name: dim1 - range: AnyType - required: false - dim2: - name: dim2 - range: AnyType - required: false - dim3: - name: dim3 - range: AnyType - required: false VectorIndex: name: VectorIndex description: Used with VectorData to encode a ragged array. An array of indices @@ -81,18 +87,7 @@ classes: identifier: true range: string required: true - array: - name: array - range: ElementIdentifiers__Array tree_root: true - ElementIdentifiers__Array: - name: ElementIdentifiers__Array - is_a: Arraylike - attributes: - num_elements: - name: num_elements - range: int - required: true DynamicTableRegion: name: DynamicTableRegion description: DynamicTableRegion provides a link from one table to an index or @@ -160,7 +155,10 @@ classes: id: name: id description: Array of unique identifiers for the rows of this dynamic table. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: int required: true vector_data: @@ -181,10 +179,11 @@ classes: by a separate DynamicTable stored within the group. is_a: DynamicTable attributes: - - name: children - multivalued: true - inlined: true - inlined_as_list: false - any_of: - - range: DynamicTable + children: + name: children + multivalued: true + inlined: true + inlined_as_list: false + any_of: + - range: DynamicTable tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/namespace.yaml index 30ce551..5415c21 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_common/v1_5_0/namespace.yaml @@ -1,8 +1,11 @@ name: hdmf-common annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: hdmf-common description: Common data structures provided by HDMF id: hdmf-common version: 1.5.0 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 078e4bc..9d00f8a 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 @@ -1,4 +1,11 @@ name: hdmf-experimental.experimental +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-experimental id: hdmf-experimental.experimental version: 0.1.0 imports: 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 fc1debc..59a6caa 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 @@ -1,4 +1,11 @@ name: hdmf-experimental.nwb.language +annotations: + is_namespace: + tag: is_namespace + value: 'False' + namespace: + tag: namespace + value: core description: Adapter objects to mimic the behavior of elements in the nwb-schema-language id: nwb.language imports: 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 85d99be..190f60e 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 @@ -1,4 +1,11 @@ name: hdmf-experimental.resources +annotations: + is_namespace: + tag: is_namespace + value: false + namespace: + tag: namespace + value: hdmf-experimental id: hdmf-experimental.resources version: 0.1.0 imports: @@ -22,32 +29,47 @@ classes: name: keys description: A table for storing user terms that are used to refer to external resources. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: AnyType required: true entities: name: entities description: A table for mapping user terms (i.e., keys) to resource entities. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: AnyType required: true resources: name: resources description: A table for mapping user terms (i.e., keys) to resource entities. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: AnyType required: true objects: name: objects description: A table for identifying which objects in a file contain references to external resources. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: AnyType required: true object_keys: name: object_keys description: A table for identifying which objects use which keys. - multivalued: true + multivalued: false + array: + dimensions: + - alias: num_rows range: AnyType required: true tree_root: true diff --git a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/namespace.yaml b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/namespace.yaml index 4e39cad..1fd095b 100644 --- a/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/namespace.yaml +++ b/nwb_linkml/src/nwb_linkml/schema/linkml/hdmf_experimental/v0_1_0/namespace.yaml @@ -1,8 +1,11 @@ name: hdmf-experimental annotations: + is_namespace: + tag: is_namespace + value: true namespace: tag: namespace - value: 'True' + value: hdmf-experimental description: Experimental data structures provided by HDMF. These are not guaranteed to be available in the future id: hdmf-experimental