Skip to content

Commit 7eb1419

Browse files
authored
Merge branch 'dev' into nwbep001
2 parents b72fa28 + ade50ef commit 7eb1419

File tree

12 files changed

+102
-32
lines changed

12 files changed

+102
-32
lines changed

Legal.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
“nwb-schema” Copyright (c) 2017-2024, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
1+
“nwb-schema” Copyright (c) 2017-2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
22

33
If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at [email protected].
44

README.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ NWB Schema Format
33

44
A format specification schema for the Neurodata Without Borders (NWB) data format.
55

6-
To get started using NWB, please go to the `NWB overview website <https://nwb-overview.readthedocs.io/en/latest/>`_.
6+
To get started using NWB, please go to `nwb.org <https://nwb.org>`_.
77

88
This repo contains:
99

@@ -27,7 +27,7 @@ The NWB 1.0 format and API are archived in the `NeurodataWithoutBorders/api-pyth
2727
License
2828
========================
2929

30-
“nwb-schema” Copyright (c) 2017-2024, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
30+
“nwb-schema” Copyright (c) 2017-2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
3131

3232
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
3333

@@ -45,7 +45,7 @@ You are under no obligation whatsoever to provide any bug fixes, patches, or upg
4545
Copyright
4646
========================
4747

48-
“nwb-schema” Copyright (c) 2017-2024, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
48+
“nwb-schema” Copyright (c) 2017-2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.
4949

5050
If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at [email protected].
5151

core/nwb.device.yaml

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
groups:
22
- neurodata_type_def: Device
33
neurodata_type_inc: NWBContainer
4-
doc: Metadata about a data acquisition device, e.g., recording system, electrode, microscope.
4+
doc: Metadata about a specific instance of a data acquisition device, e.g., recording system, electrode, microscope.
5+
Link to a DeviceModel.model to represent information about the model of the device.
56
attributes:
67
- name: description
78
dtype: text
@@ -10,17 +11,48 @@ groups:
1011
required: false
1112
- name: manufacturer
1213
dtype: text
13-
doc: The name of the manufacturer of the device, e.g., Imec, Plexon, Thorlabs.
14+
doc: DEPRECATED. The name of the manufacturer of the device, e.g., Imec, Plexon, Thorlabs.
15+
Instead of using this field, store the value in DeviceModel.manufacturer and link to that
16+
DeviceModel from this Device.
1417
required: false
1518
- name: model_number
1619
dtype: text
17-
doc: The model number (or part/product number) of the device, e.g., PRB_1_4_0480_1, PLX-VP-32-15SE(75)-(260-80)(460-10)-300-(1)CON/32m-V, BERGAMO.
20+
doc: DEPRECATED. The model number (or part/product number) of the device, e.g., PRB_1_4_0480_1,
21+
PLX-VP-32-15SE(75)-(260-80)(460-10)-300-(1)CON/32m-V, BERGAMO.
22+
Instead of using this field, store the value in DeviceModel.model_number and link to that
23+
DeviceModel from this Device.
1824
required: false
1925
- name: model_name
2026
dtype: text
21-
doc: The model name of the device, e.g., Neuropixels 1.0, V-Probe, Bergamo III.
27+
doc: DEPRECATED. The model name of the device, e.g., Neuropixels 1.0, V-Probe, Bergamo III.
28+
Instead of using this field, create and add a new DeviceModel named the model name and
29+
link to that DeviceModel from this Device.
2230
required: false
2331
- name: serial_number
2432
dtype: text
2533
doc: The serial number of the device.
2634
required: false
35+
links:
36+
- name: model
37+
target_type: DeviceModel
38+
doc: The model of the device.
39+
quantity: '?'
40+
- neurodata_type_def: DeviceModel
41+
neurodata_type_inc: NWBContainer
42+
doc: Model properties of a data acquisition device, e.g., recording system, electrode, microscope.
43+
This should be extended for specific types of device models to include additional attributes specific to each type.
44+
The name of the DeviceModel should be the most common representation of the model name, e.g.,
45+
Neuropixels 1.0, V-Probe, Bergamo III.
46+
attributes:
47+
- name: manufacturer
48+
dtype: text
49+
doc: The name of the manufacturer of the device model, e.g., Imec, Plexon, Thorlabs.
50+
- name: model_number
51+
dtype: text
52+
doc: The model number (or part/product number) of the device, e.g., PRB_1_4_0480_1,
53+
PLX-VP-32-15SE(75)-(260-80)(460-10)-300-(1)CON/32m-V, BERGAMO.
54+
required: false
55+
- name: description
56+
dtype: text
57+
doc: Description of the device model as free-form text.
58+
required: false

core/nwb.ecephys.yaml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ groups:
104104
common experiment master-clock stored in NWBFile.timestamps_reference_time.
105105
Timestamps are required for the events. Unlike for TimeSeries, timestamps are
106106
required for SpikeEventSeries and are thus re-specified here.
107+
quantity: 1
107108
attributes:
108109
- name: interval
109110
dtype: int32
@@ -161,25 +162,30 @@ groups:
161162
- name: source_idx
162163
dtype: int32
163164
dims:
164-
- num_events
165+
- - num_events
166+
- - num_events
167+
- time_index, channel_index
165168
shape:
166-
- null
167-
doc: Indices (zero-based) into source ElectricalSeries::data array corresponding
168-
to time of event. ''description'' should define what is meant by time of
169-
event (e.g., .25 ms before action potential peak, zero-crossing time, etc).
169+
- - null
170+
- - null
171+
- 2
172+
doc: Indices (zero-based) into the linked source ElectricalSeries::data array corresponding
173+
to time of event or time and channel of event. ''description'' should define what is meant
174+
by time of event (e.g., .25 ms before action potential peak, zero-crossing time, etc).
170175
The index points to each event from the raw data.
171176
- name: times
172177
dtype: float64
173178
dims:
174179
- num_events
175180
shape:
176181
- null
177-
doc: Timestamps of events, in seconds.
182+
doc: DEPRECATED. Timestamps of events, in seconds.
178183
attributes:
179184
- name: unit
180185
dtype: text
181186
value: seconds
182187
doc: Unit of measurement for event times, which is fixed to 'seconds'.
188+
quantity: '?'
183189
links:
184190
- name: source_electricalseries
185191
target_type: ElectricalSeries

core/nwb.file.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ groups:
77
attributes:
88
- name: nwb_version
99
dtype: text
10-
value: "2.9.0-alpha"
10+
value: "2.9.0"
1111
doc: File version string. Use semantic versioning, e.g. 1.2.1. This will be the
1212
name of the format with trailing major, minor and patch numbers.
1313
datasets:
@@ -280,6 +280,13 @@ groups:
280280
- neurodata_type_inc: Device
281281
doc: Data acquisition devices.
282282
quantity: '*'
283+
- name: models
284+
doc: Collection of data acquisition device models.
285+
quantity: '?'
286+
groups:
287+
- neurodata_type_inc: DeviceModel
288+
doc: Data acquisition device models.
289+
quantity: '*'
283290
- name: subject
284291
neurodata_type_inc: Subject
285292
doc: Information about the animal or person from which the data was measured.

core/nwb.image.yaml

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -177,13 +177,20 @@ groups:
177177

178178
- neurodata_type_def: IndexSeries
179179
neurodata_type_inc: TimeSeries
180-
doc: Stores indices to image frames stored in an ImageSeries. The purpose of the
181-
IndexSeries is to allow a static image stack to be stored in an Images
182-
object, and the images in the stack to be referenced out-of-order. This can be for
183-
the display of individual images, or of movie segments (as a movie is simply a
184-
series of images). The data field stores the index of the frame in the referenced
185-
Images object, and the timestamps array indicates when that image
186-
was displayed.
180+
doc: Stores indices that reference images defined in other containers. The primary purpose
181+
of the IndexSeries is to allow images stored in an Images container to be referenced in a
182+
specific sequence through the 'indexed_images' link. This approach avoids duplicating image data
183+
when the same image needs to be presented multiple times or when images need to be shown in a
184+
different order than they are stored. Since images in an Images container do not have an inherent
185+
order, the Images container needs to include an 'order_of_images' dataset (of type
186+
ImageReferences) when being referenced by an IndexSeries. This dataset establishes the ordered
187+
sequence that the indices in IndexSeries refer to. The 'data' field stores the index into this
188+
ordered sequence, and the 'timestamps' array indicates the precise presentation time of each
189+
indexed image during an experiment. This can be used for displaying individual images or creating
190+
movie segments by referencing a sequence of images with the appropriate timestamps. While
191+
IndexSeries can also reference frames from an ImageSeries through the 'indexed_timeseries' link,
192+
this usage is discouraged and will be deprecated in favor of using Images containers with
193+
'order_of_images'.
187194
datasets:
188195
- name: data
189196
dtype: uint32

core/nwb.namespace.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,4 @@ namespaces:
6060
- doc: This source module contains neurodata_type for retinotopy data.
6161
source: nwb.retinotopy.yaml
6262
title: Retinotopy
63-
version: "2.9.0-alpha"
63+
version: "2.9.0"

core/nwb.ophys.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ groups:
125125
- neurodata_type_def: PlaneSegmentation
126126
neurodata_type_inc: DynamicTable
127127
doc: Results from image segmentation of a specific imaging plane.
128+
At least one of `image_mask`, `pixel_mask`, or `voxel_mask` is required.
128129
datasets:
129130
- name: image_mask
130131
neurodata_type_inc: VectorData
@@ -146,6 +147,7 @@ groups:
146147
- null
147148
doc: ROI masks for each ROI. Each image mask is the size of the original imaging
148149
plane (or volume) and members of the ROI are finite non-zero.
150+
At least one of `image_mask`, `pixel_mask`, or `voxel_mask` is required.
149151
quantity: '?'
150152
- name: pixel_mask_index
151153
neurodata_type_inc: VectorIndex
@@ -164,7 +166,8 @@ groups:
164166
dtype: float32
165167
doc: Weight of the pixel.
166168
doc: 'Pixel masks for each ROI: a list of indices and weights for the ROI. Pixel
167-
masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation'
169+
masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation.
170+
At least one of `image_mask`, `pixel_mask`, or `voxel_mask` is required.'
168171
quantity: '?'
169172
- name: voxel_mask_index
170173
neurodata_type_inc: VectorIndex
@@ -186,7 +189,8 @@ groups:
186189
dtype: float32
187190
doc: Weight of the voxel.
188191
doc: 'Voxel masks for each ROI: a list of indices and weights for the ROI. Voxel
189-
masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation'
192+
masks are concatenated and parsing of this dataset is maintained by the PlaneSegmentation.
193+
At least one of `image_mask`, `pixel_mask`, or `voxel_mask` is required.'
190194
quantity: '?'
191195
groups:
192196
- name: reference_images

docs/format/Readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The NWB specification documentation uses Sphinx [https://www.sphinx-doc.org/en/s
44

55
**Prerequisites**
66

7-
```pip install hdmf-docutils```
7+
```pip install ../../requirements-doc.txt```
88

99
**Rebuilding All**
1010

docs/format/source/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def setup(app):
7676

7777
# General information about the project.
7878
project = u'NWB Format Specification'
79-
copyright = u'2017-2024, Neurodata Without Borders'
79+
copyright = u'2017-2025, Neurodata Without Borders'
8080

8181
# The version info for the project you're documenting, acts as replacement for
8282
# |version| and |release|, also used in various other places throughout the
@@ -85,7 +85,7 @@ def setup(app):
8585
# The short X.Y version.
8686
version = '2.9.0'
8787
# The full version, including alpha/beta/rc tags.
88-
release = '2.9.0-alpha'
88+
release = '2.9.0'
8989

9090
# The language for content autogenerated by Sphinx. Refer to documentation
9191
# for a list of supported languages.

0 commit comments

Comments
 (0)