From 3fece8483020b7fb7718e9721d59a8f208090430 Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 06:51:09 +0100 Subject: [PATCH 01/17] enhancement(units): Remove dimension_unit and add default mm for probe --- src/schema/objects/columns.yaml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index 6fd0a78128..f93d6a15bc 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -166,10 +166,11 @@ depth__probes: name: depth display_name: Depth description: | - Physical depth of the probe, for example, '0.3'. + Physical depth of the probe in mm, for example, '0.3'. This dimension should be omitted or set to 0 for two-dimensional (shank-type) probes. This dimension corresponds to the z-axis of the probe's local coordinate frame. type: number + unit: mm coordinate_system: name: coordinate_system display_name: Coordinate System @@ -244,15 +245,6 @@ dimension: Size of the group (grid/strip/probe) that this electrode belongs to. Must be of form `[AxB]` with the smallest dimension first (for example, `[1x8]`). type: string -# TODO: Add unit enums if everyone agrees to keep this column. -dimension_unit: - name: dimension_unit - display_name: Dimension unit - description: | - Spatial units for a position or a physical dimension of electrodes, such as - 'width', 'height' or 'depth' of the probe. - For example, `um`. - type: string duration: name: duration display_name: Event duration @@ -369,10 +361,11 @@ height__probes: name: height display_name: Probe height description: | - Physical height of the probe, for example, '0.3'. + Physical height of the probe in mm, for example, '0.3'. This dimension should be omitted or set to 0 for one-dimensional (linear) probes. This dimension corresponds to the y-axis of the probe's local coordinate frame. type: number + unit: mm hemisphere: name: hemisphere display_name: Electrode hemisphere @@ -1208,9 +1201,10 @@ width__probes: name: width display_name: Width description: | - Physical width of the probe, for example, '5'. + Physical width of the probe in mm, for example, '5'. This dimension corresponds to the x-axis of the probe's local coordinate frame. type: number + unit: mm whole_blood_radioactivity: name: whole_blood_radioactivity display_name: Whole blood radioactivity From 4e28f8e6a9ffe27c262a9ae3e74f5df18ee98f8a Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 07:09:28 +0100 Subject: [PATCH 02/17] cleanup: remove resolved comment --- src/schema/objects/columns.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index f93d6a15bc..2733acf7e5 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -289,7 +289,6 @@ filename: Relative paths to files. type: string format: participant_relative -# TODO: Figure out and add rule for default values. gain: name: gain display_name: Gain From d84b1e0fcbd5ceb3f167a3f9af63aefb6bf48a52 Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 07:19:36 +0100 Subject: [PATCH 03/17] cleanup: remove resolved comment --- src/schema/objects/columns.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index 2733acf7e5..9ca615a7cc 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -297,7 +297,6 @@ gain: to the signal stored in the data file. If no gain factor is provided it is assumed to be 1. type: number -# TODO: Clarify if the optionality of the column be defined here or as an addendum in the rules. ground: name: ground display_name: Ground From e8b12685286c63f5782b8bb627e59295d6183a7d Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 07:29:14 +0100 Subject: [PATCH 04/17] cleanup(schema): mark hemisphere__probes for future unification with base hemispher column --- src/schema/objects/columns.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index 9ca615a7cc..fd7fd09a05 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -373,7 +373,7 @@ hemisphere: enum: - $ref: objects.enums.left_hemisphere.value - $ref: objects.enums.right_hemisphere.value -# TODO: Should the hemisphere details be unified for electrodes and probes or will it break other modality? +# TODO (future schema cleanup): unify with `hemisphere` for electrodes.tsv files by generalizing its description. hemisphere__probes: name: hemisphere display_name: Hemisphere From 65b5289a271a0e30e54e3269cf2e57d633634944 Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 09:35:34 +0100 Subject: [PATCH 05/17] cleanup: comments about unifying probes and electrodes column --- src/schema/objects/columns.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index fd7fd09a05..b6bab5aa61 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -373,7 +373,7 @@ hemisphere: enum: - $ref: objects.enums.left_hemisphere.value - $ref: objects.enums.right_hemisphere.value -# TODO (future schema cleanup): unify with `hemisphere` for electrodes.tsv files by generalizing its description. +# consider unifying with base `hemisphere` column between electrodes and probes hemisphere__probes: name: hemisphere display_name: Hemisphere @@ -444,7 +444,7 @@ manufacturer: The manufacturer for each electrode. Can be used if electrodes were manufactured by more than one company. type: string -# TODO: Should the manufacturer details be unified for electrodes and probes? +# consider unifying with base `manufacturer` column between electrodes and probes manufacturer__probes: name: manufacturer display_name: Manufacturer From be82cb9861e8a34fba1b595b19bc0e581e6ee8c7 Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 09:50:25 +0100 Subject: [PATCH 06/17] =?UTF-8?q?fix(schema):=20use=20um=C2=B2=20for=20mic?= =?UTF-8?q?roephys=20electrode=20size?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Microelectrodes require micrometer-scale measurements different from iEEG. Added size__microephys with um² units. --- src/schema/objects/columns.yaml | 8 +++++++- src/schema/rules/tabular_data/microephys.yaml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index b6bab5aa61..91f7028b3e 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -825,7 +825,6 @@ short_channel: The total number of channels listed as short channels SHOULD be stored in `ShortChannelCount` in `*_nirs.json`. type: boolean -# TODO: might need to dup for microephys__size and have it um^2 signal_electrode: name: signal_electrode display_name: Signal electrode @@ -840,6 +839,13 @@ size: Surface area of the electrode, units MUST be in `mm^2`. type: number unit: 'mm^2' +size__microephys: + name: size + display_name: Electrode size + description: | + Surface area of the electrode, units MUST be in `um^2`. + type: number + unit: 'um^2' software_filters: name: software_filters display_name: Software filters diff --git a/src/schema/rules/tabular_data/microephys.yaml b/src/schema/rules/tabular_data/microephys.yaml index 76605084df..3010a5f0db 100644 --- a/src/schema/rules/tabular_data/microephys.yaml +++ b/src/schema/rules/tabular_data/microephys.yaml @@ -60,7 +60,7 @@ microephysElectrodes: hemisphere: recommended impedance: recommended shank_id: optional - size: optional + size__microephys: optional electrode_shape: optional material: optional location: recommended From 3a86a52857c72b3a557441edec5d75bc75c5c698 Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 10:04:26 +0100 Subject: [PATCH 07/17] fix(schema): remove use of dimension_unit in microephys --- src/schema/rules/tabular_data/microephys.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/schema/rules/tabular_data/microephys.yaml b/src/schema/rules/tabular_data/microephys.yaml index 3010a5f0db..2fc1b66170 100644 --- a/src/schema/rules/tabular_data/microephys.yaml +++ b/src/schema/rules/tabular_data/microephys.yaml @@ -27,7 +27,6 @@ microephysProbes: width__probes: optional height__probes: optional depth__probes: optional - dimension_unit: optional rotation_angle: recommended coordinate_reference_point: recommended anatomical_reference_point: optional From add8b6ff026597660940f8ce30eb0bc8b5a5b96d Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 11:15:15 +0100 Subject: [PATCH 08/17] cleanup: remove unused surgery_date column (moved as comment to PR #1839) --- src/schema/objects/columns.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index 91f7028b3e..d6f2f78ada 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -953,16 +953,6 @@ stream_id: description: | Data stream of the recording the signal. type: string -# TODO: Clarify if column values can be arrays. -surgery_date: - name: surgery_date - display_name: Surgery date - description: | - Date(s) of surgery. Datetime format and their anonymization - are described in [Units](SPEC_ROOT/common-principles.md#units). - The details of the surgery should be described in the sidecar json file. - type: string - format: datetime target_muscle: name: target_muscle display_name: Target muscle From 57b0292b23fbd97fee4966558b74f439469050ab Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 11:33:30 +0100 Subject: [PATCH 09/17] fix(desc): include microephys for channel column in events --- src/schema/rules/tabular_data/events.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schema/rules/tabular_data/events.yaml b/src/schema/rules/tabular_data/events.yaml index 53403ea54b..e2366c4c72 100644 --- a/src/schema/rules/tabular_data/events.yaml +++ b/src/schema/rules/tabular_data/events.yaml @@ -13,7 +13,7 @@ Events: level: optional description_addendum: | Note that this column only applies to data types where - channels are specified, such as EEG, iEEG, MEG or NIRS. + channels are specified, such as EEG, iEEG, MEG, NIRS or microephys. # TODO: Make the addendums more clear and descriptive data_entity_id: level: optional From 5112f4fde22a97eb6e94bfb5755cb67fb2093a72 Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 11:34:18 +0100 Subject: [PATCH 10/17] fix(typo): microeelectrode in events --- src/schema/rules/tabular_data/events.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/schema/rules/tabular_data/events.yaml b/src/schema/rules/tabular_data/events.yaml index e2366c4c72..b25e9f894c 100644 --- a/src/schema/rules/tabular_data/events.yaml +++ b/src/schema/rules/tabular_data/events.yaml @@ -19,22 +19,22 @@ Events: level: optional description_addendum: | Note that this column only applies to - microelectrode eleectrophysiology data type. + microelectrode electrophysiology data type. duration_index: level: optional description_addendum: | Note that this column only applies to - microelectrode eleectrophysiology data type. + microelectrode electrophysiology data type. onset_index: level: optional description_addendum: | Note that this column only applies to - microelectrode eleectrophysiology data type. + microelectrode electrophysiology data type. trial_id: level: optional description_addendum: | Note that this column only applies to - microelectrode eleectrophysiology data type. + microelectrode electrophysiology data type. additional_columns: allowed initial_columns: - onset From 938e9f9a18a3fde9d78c6f6fdfdc220aee4e5d20 Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Mon, 5 Jan 2026 12:12:18 +0100 Subject: [PATCH 11/17] refactor(schema): use base x/y/z columns with addendums for electrodes --- src/schema/objects/columns.yaml | 48 ------------------- src/schema/rules/tabular_data/microephys.yaml | 41 +++++++++++++--- 2 files changed, 35 insertions(+), 54 deletions(-) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index d6f2f78ada..b4f71efc13 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -1255,54 +1255,6 @@ z__optodes: - type: string enum: - n/a -# TODO: Remove the overspecified entries for electrode positions if not used in microephys -# TODO: finish up setup below -x__electrodes: - name: x - display_name: Electrode X position - description: | - When no [`space-