diff --git a/src/04-modality-specific-files/02-magnetoencephalography.md b/src/04-modality-specific-files/02-magnetoencephalography.md index b49c9ae556..80aa26abad 100644 --- a/src/04-modality-specific-files/02-magnetoencephalography.md +++ b/src/04-modality-specific-files/02-magnetoencephalography.md @@ -284,7 +284,7 @@ and a guide for using macros can be found at {{ MACROS___make_columns_table( { "name__channels": "REQUIRED", - "type__channels": "REQUIRED", + "type__meg_channels": "REQUIRED", "units": "REQUIRED", } ) }} diff --git a/src/04-modality-specific-files/03-electroencephalography.md b/src/04-modality-specific-files/03-electroencephalography.md index 95bdeb7850..52c5cd0b8a 100644 --- a/src/04-modality-specific-files/03-electroencephalography.md +++ b/src/04-modality-specific-files/03-electroencephalography.md @@ -252,7 +252,7 @@ and a guide for using macros can be found at {{ MACROS___make_columns_table( { "name__channels": "REQUIRED", - "type__channels": "REQUIRED", + "type__eeg_channels": "REQUIRED", "units": "REQUIRED", } ) }} diff --git a/src/04-modality-specific-files/04-intracranial-electroencephalography.md b/src/04-modality-specific-files/04-intracranial-electroencephalography.md index a79387f0e2..0f4551c651 100644 --- a/src/04-modality-specific-files/04-intracranial-electroencephalography.md +++ b/src/04-modality-specific-files/04-intracranial-electroencephalography.md @@ -276,7 +276,7 @@ and a guide for using macros can be found at "name__channels": ("REQUIRED", "When a corresponding electrode is specified in `_electrodes.tsv`, " "the name of that electrode MAY be specified here and the reference electrode " "name MAY be provided in the `reference` column."), - "type__channels": "REQUIRED", + "type__ieeg_channels": "REQUIRED", "units": "REQUIRED", "low_cutoff": "REQUIRED", "high_cutoff": "REQUIRED", diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index 36e93fe308..b9547f176f 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -466,7 +466,31 @@ trigger: continuous measurement of the scanner trigger signal type: number # type column in channels.tsv files -type__channels: +type__eeg_channels: + name: type + description: | + Type of channel; MUST use the channel types listed below. + Note that the type MUST be in upper-case. + type: string + enum: + - AUDIO + - EEG + - EOG + - ECG + - EMG + - EYEGAZE + - GSR + - HEOG + - MISC + - PPG + - PUPIL + - REF + - RESP + - SYSCLOCK + - TEMP + - TRIG + - VEOG +type__meg_channels: name: type description: | Type of channel; MUST use the channel types listed below. @@ -501,6 +525,33 @@ type__channels: - HLU - FITERR - OTHER +type__ieg_channels: + name: type + description: | + Type of channel; MUST use the channel types listed below. + Note that the type MUST be in upper-case. + type: string + enum: + - EEG + - ECOG + - SEEG + - DBS + - VEOG + - HEOG + - EOG + - ECG + - EMG + - TRIG + - AUDIO + - PD + - EYEGAZE + - PUPIL + - MISC + - SYSCLOCK + - ADC + - DAC + - REF + - OTHER # type column for electrodes.tsv files type__electrodes: name: type diff --git a/src/schema/rules/tabular_data/eeg.yaml b/src/schema/rules/tabular_data/eeg.yaml new file mode 100644 index 0000000000..ee987de4f7 --- /dev/null +++ b/src/schema/rules/tabular_data/eeg.yaml @@ -0,0 +1,36 @@ +--- +EEGChannels: + selectors: + - datatype == "eeg" + - suffix == "channels" + - extension == ".tsv" + initial_columns: [name__channels, type__eeg_channels, units] + columns: + name__channels: REQUIRED + type__eeg_channels: REQUIRED + units: REQUIRED + description: OPTIONAL + sampling_frequency: OPTIONAL + reference: OPTIONAL + low_cutoff: OPTIONAL + high_cutoff: OPTIONAL + notch: OPTIONAL + status: OPTIONAL + status_descriptions: OPTIONAL + additional_columns: allowed_if_defined + +EEGElectrodes: + selectors: + - datatype == "eeg" + - suffix == "electrodes" + - extension == ".tsv" + initial_columns: [name__electrodes, x, y, z] + columns: + name__electrodes: REQUIRED + x: REQUIRED + y: REQUIRED + z: REQUIRED + type__electrodes: RECOMMENDED + material: RECOMMENDED + impedance: RECOMMENDED + additional_columns: allowed_if_defined diff --git a/src/schema/rules/tabular_data/ieeg.yaml b/src/schema/rules/tabular_data/ieeg.yaml new file mode 100644 index 0000000000..faa968f160 --- /dev/null +++ b/src/schema/rules/tabular_data/ieeg.yaml @@ -0,0 +1,42 @@ +--- +iEEGChannels: + selectors: + - datatype == "ieeg" + - suffix == "channels" + - extension == ".tsv" + initial_columns: [name__channels, type__ieeg_channels, units] + columns: + name__channels: REQUIRED + type__ieeg_channels: REQUIRED + units: REQUIRED + low_cutoff: REQUIRED + high_cutoff: REQUIRED + reference: OPTIONAL + group: OPTIONAL + sampling_frequency: OPTIONAL + description: OPTIONAL + notch: OPTIONAL + status: OPTIONAL + status_descriptions: OPTIONAL + additional_columns: allowed_if_defined + +iEEGElectrodes: + selectors: + - datatype == "ieeg" + - suffix == "electrodes" + - extension == ".tsv" + initial_columns: [name__electrodes, x, y, z] + columns: + name__electrodes: REQUIRED + x: REQUIRED + y: REQUIRED + z: REQUIRED + size: REQUIRED + material: RECOMMENDED + manufacturer: RECOMMENDED + group: RECOMMENDED + hemisphere: RECOMMENDED + type__electrodes: OPTIONAL + impedance: OPTIONAL + dimension: OPTIONAL + additional_columns: allowed_if_defined diff --git a/src/schema/rules/tabular_data/meg.yaml b/src/schema/rules/tabular_data/meg.yaml new file mode 100644 index 0000000000..f5bc01862a --- /dev/null +++ b/src/schema/rules/tabular_data/meg.yaml @@ -0,0 +1,20 @@ +--- +MEGChannels: + selectors: + - datatype == "eeg" + - suffix == "channels" + - extension == ".tsv" + initial_columns: [name__channels, type__meg_channels, units] + columns: + name__channels: REQUIRED + type__meg_channels: REQUIRED + units: REQUIRED + description: OPTIONAL + sampling_frequency: OPTIONAL + low_cutoff: OPTIONAL + high_cutoff: OPTIONAL + notch: OPTIONAL + software_filters: OPTIONAL + status: OPTIONAL + status_descriptions: OPTIONAL + additional_columns: allowed_if_defined diff --git a/src/schema/rules/tabular_data/perf.yaml b/src/schema/rules/tabular_data/perf.yaml new file mode 100644 index 0000000000..4ced4b5e7d --- /dev/null +++ b/src/schema/rules/tabular_data/perf.yaml @@ -0,0 +1,8 @@ +--- +ASLContext: + selectors: + - datatype == "perf" + - suffix == "aslcontext" + columns: + volume_type: REQUIRED + additional_columns: not_allowed diff --git a/src/schema/rules/tabular_data/physio.yaml b/src/schema/rules/tabular_data/physio.yaml new file mode 100644 index 0000000000..e8d122f6ea --- /dev/null +++ b/src/schema/rules/tabular_data/physio.yaml @@ -0,0 +1,9 @@ +--- +PhysioColumns: + selectors: + - suffix == "physio" + columns: + cardiac: OPTIONAL + respiratory: OPTIONAL + trigger: OPTIONAL + additional_columns: allowed diff --git a/src/schema/rules/tabular_data/task.yaml b/src/schema/rules/tabular_data/task.yaml new file mode 100644 index 0000000000..a370adc739 --- /dev/null +++ b/src/schema/rules/tabular_data/task.yaml @@ -0,0 +1,15 @@ +--- +TaskEvents: + selectors: + - entities contains "task" + - suffix == "events" + columns: + onset: REQUIRED + duration: REQUIRED + sample: OPTIONAL + trial_type: OPTIONAL + response_time: OPTIONAL + value: OPTIONAL + HED: OPTIONAL + stim_file: OPTIONAL + additional_columns: allowed