Skip to content

Commit 4bb8ef2

Browse files
authored
Merge pull request #482 from NeurodataWithoutBorders/schema-260-release
add schema files and update default version
2 parents 8879f01 + f7fef6a commit 4bb8ef2

20 files changed

+3314
-1
lines changed

generateCore.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function generateCore(varargin)
2323
%
2424
% See also GENERATEEXTENSION
2525

26-
latestVersion = '2.5.0';
26+
latestVersion = '2.6.0';
2727

2828
if nargin == 0 || strcmp(varargin{1}, 'savedir')
2929
version = latestVersion;
Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
datasets:
2+
- neurodata_type_def: NWBData
3+
neurodata_type_inc: Data
4+
doc: An abstract data type for a dataset.
5+
6+
- neurodata_type_def: TimeSeriesReferenceVectorData
7+
neurodata_type_inc: VectorData
8+
default_name: timeseries
9+
dtype:
10+
- name: idx_start
11+
dtype: int32
12+
doc: Start index into the TimeSeries 'data' and 'timestamp' datasets of the referenced
13+
TimeSeries. The first dimension of those arrays is always time.
14+
- name: count
15+
dtype: int32
16+
doc: Number of data samples available in this time series, during this epoch
17+
- name: timeseries
18+
dtype:
19+
target_type: TimeSeries
20+
reftype: object
21+
doc: The TimeSeries that this index applies to
22+
doc: Column storing references to a TimeSeries (rows). For each TimeSeries this
23+
VectorData column stores the start_index and count to indicate the range in time
24+
to be selected as well as an object reference to the TimeSeries.
25+
26+
- neurodata_type_def: Image
27+
neurodata_type_inc: NWBData
28+
dtype: numeric
29+
dims:
30+
- - x
31+
- y
32+
- - x
33+
- y
34+
- r, g, b
35+
- - x
36+
- y
37+
- r, g, b, a
38+
shape:
39+
- - null
40+
- null
41+
- - null
42+
- null
43+
- 3
44+
- - null
45+
- null
46+
- 4
47+
doc: An abstract data type for an image. Shape can be 2-D (x, y), or 3-D where the
48+
third dimension can have three or four elements, e.g. (x, y, (r, g, b)) or
49+
(x, y, (r, g, b, a)).
50+
attributes:
51+
- name: resolution
52+
dtype: float32
53+
doc: Pixel resolution of the image, in pixels per centimeter.
54+
required: false
55+
- name: description
56+
dtype: text
57+
doc: Description of the image.
58+
required: false
59+
60+
- neurodata_type_def: ImageReferences
61+
neurodata_type_inc: NWBData
62+
dtype:
63+
target_type: Image
64+
reftype: object
65+
dims:
66+
- num_images
67+
shape:
68+
- null
69+
doc: Ordered dataset of references to Image objects.
70+
71+
groups:
72+
- neurodata_type_def: NWBContainer
73+
neurodata_type_inc: Container
74+
doc: An abstract data type for a generic container storing collections of data and
75+
metadata. Base type for all data and metadata containers.
76+
77+
- neurodata_type_def: NWBDataInterface
78+
neurodata_type_inc: NWBContainer
79+
doc: An abstract data type for a generic container storing collections of data,
80+
as opposed to metadata.
81+
82+
- neurodata_type_def: TimeSeries
83+
neurodata_type_inc: NWBDataInterface
84+
doc: General purpose time series.
85+
attributes:
86+
- name: description
87+
dtype: text
88+
default_value: no description
89+
doc: Description of the time series.
90+
required: false
91+
- name: comments
92+
dtype: text
93+
default_value: no comments
94+
doc: Human-readable comments about the TimeSeries. This second descriptive field
95+
can be used to store additional information, or descriptive information if the
96+
primary description field is populated with a computer-readable string.
97+
required: false
98+
datasets:
99+
- name: data
100+
dims:
101+
- - num_times
102+
- - num_times
103+
- num_DIM2
104+
- - num_times
105+
- num_DIM2
106+
- num_DIM3
107+
- - num_times
108+
- num_DIM2
109+
- num_DIM3
110+
- num_DIM4
111+
shape:
112+
- - null
113+
- - null
114+
- null
115+
- - null
116+
- null
117+
- null
118+
- - null
119+
- null
120+
- null
121+
- null
122+
doc: Data values. Data can be in 1-D, 2-D, 3-D, or 4-D. The first dimension
123+
should always represent time. This can also be used to store binary data
124+
(e.g., image frames). This can also be a link to data stored in an external file.
125+
attributes:
126+
- name: conversion
127+
dtype: float32
128+
default_value: 1.0
129+
doc: Scalar to multiply each element in data to convert it to the specified 'unit'.
130+
If the data are stored in acquisition system units or other units
131+
that require a conversion to be interpretable, multiply the data by 'conversion'
132+
to convert the data to the specified 'unit'. e.g. if the data acquisition system
133+
stores values in this object as signed 16-bit integers (int16 range
134+
-32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data
135+
acquisition system gain is 8000X, then the 'conversion' multiplier to get from
136+
raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.
137+
required: false
138+
- name: offset
139+
dtype: float32
140+
default_value: 0.0
141+
doc: Scalar to add to the data after scaling by 'conversion' to finalize its coercion
142+
to the specified 'unit'. Two common examples of this include (a) data stored in an
143+
unsigned type that requires a shift after scaling to re-center the data,
144+
and (b) specialized recording devices that naturally cause a scalar offset with
145+
respect to the true units.
146+
required: false
147+
- name: resolution
148+
dtype: float32
149+
default_value: -1.0
150+
doc: Smallest meaningful difference between values in data, stored in the specified
151+
by unit, e.g., the change in value of the least significant bit, or a larger
152+
number if signal noise is known to be present. If unknown, use -1.0.
153+
required: false
154+
- name: unit
155+
dtype: text
156+
doc: Base unit of measurement for working with the data. Actual stored values are
157+
not necessarily stored in these units. To access the data in these units,
158+
multiply 'data' by 'conversion' and add 'offset'.
159+
- name: continuity
160+
dtype: text
161+
doc: Optionally describe the continuity of the data. Can be "continuous", "instantaneous", or
162+
"step". For example, a voltage trace would be "continuous", because samples
163+
are recorded from a continuous process. An array of lick times would be "instantaneous",
164+
because the data represents distinct moments in time. Times of image presentations would be
165+
"step" because the picture remains the same until the next timepoint. This field is optional,
166+
but is useful in providing information about the underlying data. It may inform the way this
167+
data is interpreted, the way it is visualized, and what analysis methods are applicable.
168+
required: false
169+
- name: starting_time
170+
dtype: float64
171+
doc: Timestamp of the first sample in seconds. When timestamps are uniformly
172+
spaced, the timestamp of the first sample can be specified and all subsequent
173+
ones calculated from the sampling rate attribute.
174+
quantity: '?'
175+
attributes:
176+
- name: rate
177+
dtype: float32
178+
doc: Sampling rate, in Hz.
179+
- name: unit
180+
dtype: text
181+
value: seconds
182+
doc: Unit of measurement for time, which is fixed to 'seconds'.
183+
- name: timestamps
184+
dtype: float64
185+
dims:
186+
- num_times
187+
shape:
188+
- null
189+
doc: Timestamps for samples stored in data, in seconds, relative to the
190+
common experiment master-clock stored in NWBFile.timestamps_reference_time.
191+
quantity: '?'
192+
attributes:
193+
- name: interval
194+
dtype: int32
195+
value: 1
196+
doc: Value is '1'
197+
- name: unit
198+
dtype: text
199+
value: seconds
200+
doc: Unit of measurement for timestamps, which is fixed to 'seconds'.
201+
- name: control
202+
dtype: uint8
203+
dims:
204+
- num_times
205+
shape:
206+
- null
207+
doc: Numerical labels that apply to each time point in data for the purpose of
208+
querying and slicing data by these values. If present, the length of this
209+
array should be the same size as the first dimension of data.
210+
quantity: '?'
211+
- name: control_description
212+
dtype: text
213+
dims:
214+
- num_control_values
215+
shape:
216+
- null
217+
doc: Description of each control value. Must be present if control is present.
218+
If present, control_description[0] should describe time points where control == 0.
219+
quantity: '?'
220+
groups:
221+
- name: sync
222+
doc: Lab-specific time and sync information as provided directly from hardware
223+
devices and that is necessary for aligning all acquired time information to
224+
a common timebase. The timestamp array stores time in the common timebase.
225+
This group will usually only be populated in TimeSeries that are
226+
stored external to the NWB file, in files storing raw data. Once timestamp
227+
data is calculated, the contents of 'sync' are mostly for archival purposes.
228+
quantity: '?'
229+
230+
- neurodata_type_def: ProcessingModule
231+
neurodata_type_inc: NWBContainer
232+
doc: A collection of processed data.
233+
attributes:
234+
- name: description
235+
dtype: text
236+
doc: Description of this collection of processed data.
237+
groups:
238+
- neurodata_type_inc: NWBDataInterface
239+
doc: Data objects stored in this collection.
240+
quantity: '*'
241+
- neurodata_type_inc: DynamicTable
242+
doc: Tables stored in this collection.
243+
quantity: '*'
244+
245+
- neurodata_type_def: Images
246+
neurodata_type_inc: NWBDataInterface
247+
default_name: Images
248+
doc: A collection of images with an optional way to specify the order of the images
249+
using the "order_of_images" dataset. An order must be specified if the images are
250+
referenced by index, e.g., from an IndexSeries.
251+
attributes:
252+
- name: description
253+
dtype: text
254+
doc: Description of this collection of images.
255+
datasets:
256+
- neurodata_type_inc: Image
257+
doc: Images stored in this collection.
258+
quantity: '+'
259+
- name: order_of_images
260+
neurodata_type_inc: ImageReferences
261+
doc: Ordered dataset of references to Image objects stored in the parent group.
262+
Each Image object in the Images group should be stored once and only once, so
263+
the dataset should have the same length as the number of images.
264+
quantity: '?'
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
groups:
2+
- neurodata_type_def: SpatialSeries
3+
neurodata_type_inc: TimeSeries
4+
doc: "Direction, e.g., of gaze or travel, or position. The TimeSeries::data field\
5+
\ is a 2D array storing position or direction relative to some reference frame.\
6+
\ Array structure: [num measurements] [num dimensions]. Each SpatialSeries has\
7+
\ a text dataset reference_frame that indicates the zero-position, or the zero-axes\
8+
\ for direction. For example, if representing gaze direction, 'straight-ahead'\
9+
\ might be a specific pixel on the monitor, or some other point in space. For\
10+
\ position data, the 0,0 point might be the top-left corner of an enclosure, as\
11+
\ viewed from the tracking camera. The unit of data will indicate how to interpret\
12+
\ SpatialSeries values."
13+
datasets:
14+
- name: data
15+
dtype: numeric
16+
dims:
17+
- - num_times
18+
- - num_times
19+
- x
20+
- - num_times
21+
- x,y
22+
- - num_times
23+
- x,y,z
24+
shape:
25+
- - null
26+
- - null
27+
- 1
28+
- - null
29+
- 2
30+
- - null
31+
- 3
32+
doc: 1-D or 2-D array storing position or direction relative to some reference frame.
33+
attributes:
34+
- name: unit
35+
dtype: text
36+
default_value: meters
37+
doc: Base unit of measurement for working with the data. The default value
38+
is 'meters'. Actual stored values are not necessarily stored in these units.
39+
To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.
40+
required: false
41+
- name: reference_frame
42+
dtype: text
43+
doc: Description defining what exactly 'straight-ahead' means.
44+
quantity: '?'
45+
46+
- neurodata_type_def: BehavioralEpochs
47+
neurodata_type_inc: NWBDataInterface
48+
default_name: BehavioralEpochs
49+
doc: TimeSeries for storing behavioral epochs. The objective of this and the other
50+
two Behavioral interfaces (e.g. BehavioralEvents and BehavioralTimeSeries) is
51+
to provide generic hooks for software tools/scripts. This allows a tool/script
52+
to take the output one specific interface (e.g., UnitTimes) and plot that data
53+
relative to another data modality (e.g., behavioral events) without having to
54+
define all possible modalities in advance. Declaring one of these interfaces means
55+
that one or more TimeSeries of the specified type is published. These TimeSeries
56+
should reside in a group having the same name as the interface. For example, if
57+
a BehavioralTimeSeries interface is declared, the module will have one or more
58+
TimeSeries defined in the module sub-group 'BehavioralTimeSeries'. BehavioralEpochs
59+
should use IntervalSeries. BehavioralEvents is used for irregular events. BehavioralTimeSeries
60+
is for continuous data.
61+
groups:
62+
- neurodata_type_inc: IntervalSeries
63+
doc: IntervalSeries object containing start and stop times of epochs.
64+
quantity: '*'
65+
66+
- neurodata_type_def: BehavioralEvents
67+
neurodata_type_inc: NWBDataInterface
68+
default_name: BehavioralEvents
69+
doc: TimeSeries for storing behavioral events. See description of <a href="#BehavioralEpochs">BehavioralEpochs</a>
70+
for more details.
71+
groups:
72+
- neurodata_type_inc: TimeSeries
73+
doc: TimeSeries object containing behavioral events.
74+
quantity: '*'
75+
76+
- neurodata_type_def: BehavioralTimeSeries
77+
neurodata_type_inc: NWBDataInterface
78+
default_name: BehavioralTimeSeries
79+
doc: TimeSeries for storing Behavoioral time series data. See description of <a href="#BehavioralEpochs">BehavioralEpochs</a>
80+
for more details.
81+
groups:
82+
- neurodata_type_inc: TimeSeries
83+
doc: TimeSeries object containing continuous behavioral data.
84+
quantity: '*'
85+
86+
- neurodata_type_def: PupilTracking
87+
neurodata_type_inc: NWBDataInterface
88+
default_name: PupilTracking
89+
doc: Eye-tracking data, representing pupil size.
90+
groups:
91+
- neurodata_type_inc: TimeSeries
92+
doc: TimeSeries object containing time series data on pupil size.
93+
quantity: '+'
94+
95+
- neurodata_type_def: EyeTracking
96+
neurodata_type_inc: NWBDataInterface
97+
default_name: EyeTracking
98+
doc: Eye-tracking data, representing direction of gaze.
99+
groups:
100+
- neurodata_type_inc: SpatialSeries
101+
doc: SpatialSeries object containing data measuring direction of gaze.
102+
quantity: '*'
103+
104+
- neurodata_type_def: CompassDirection
105+
neurodata_type_inc: NWBDataInterface
106+
default_name: CompassDirection
107+
doc: With a CompassDirection interface, a module publishes a SpatialSeries object
108+
representing a floating point value for theta. The SpatialSeries::reference_frame
109+
field should indicate what direction corresponds to 0 and which is the direction
110+
of rotation (this should be clockwise). The si_unit for the SpatialSeries should
111+
be radians or degrees.
112+
groups:
113+
- neurodata_type_inc: SpatialSeries
114+
doc: SpatialSeries object containing direction of gaze travel.
115+
quantity: '*'
116+
117+
- neurodata_type_def: Position
118+
neurodata_type_inc: NWBDataInterface
119+
default_name: Position
120+
doc: Position data, whether along the x, x/y or x/y/z axis.
121+
groups:
122+
- neurodata_type_inc: SpatialSeries
123+
doc: SpatialSeries object containing position data.
124+
quantity: '+'

0 commit comments

Comments
 (0)