Skip to content

Commit aad23e1

Browse files
rlystephprince
andauthored
Add DeviceModel neurodata type (#608)
Co-authored-by: Steph Prince <[email protected]>
1 parent 29bd1fd commit aad23e1

File tree

3 files changed

+51
-5
lines changed

3 files changed

+51
-5
lines changed

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, storing the value in DeviceModel.name and link to that
29+
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.file.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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.

docs/format/source/format_release_notes.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,19 @@ Release Notes
88

99
Major changes
1010
^^^^^^^^^^^^^
11+
- Deprecated ``Device.model_number``, ``Device.model_name``, ``Device.serial_number``. Use
12+
``Device.model`` link and new ``DeviceModel`` neurodata type instead. (#608)
13+
- Added ``DeviceModel`` neurodata type to represent the model of a device instead of a specific instance of a device.
14+
This deduplicates information when a session involves multiple instances of the same device model, and it helps
15+
combine data across sessions and experiments when the model is the same.
16+
See https://github.com/NeurodataWithoutBorders/nwb-schema/issues/607 for details. (#608)
1117
- Added ``BaseImage`` and ``ExternalImage`` as new neurodata types. The first so both ``Image`` and ``ExternalImage``
1218
can inherit from it. The second to store external images (#604, #623, #627)
1319
- Changed ``NWBFile.electrodes`` from a generic ``DynamicTable`` with added columns to a new ``ElectrodesTable``
1420
neurodata type that extends ``DynamicTable`` with added columns. (#539, #624)
21+
- Changed ``DecompositionSeries.bands`` from a generic ``DynamicTable`` with added columns to a new ``FrequencyBandsTable``
22+
neurodata type that extends ``DynamicTable`` with added columns. (#610)
1523
- Made ``SpikeEventSeries.timestamps`` explicitly required as described in the documentation. (#629)
16-
- Changed ``DecompositionSeries.bands`` from a generic ``DynamicTable`` with added columns to a new ``FrequencyBandsTable`` neurodata type that extends ``DynamicTable`` with added columns. (#610)
1724
- Allowed `EventDetection` to have shape (num_events, 2) to store the channel index of the detected event. (#620)
1825

1926
Minor changes

0 commit comments

Comments
 (0)