From a73a9ead278bc62dfbb1369604e0733754ccda9e Mon Sep 17 00:00:00 2001 From: chloepasturel Date: Fri, 1 Oct 2021 12:15:57 +0200 Subject: [PATCH 001/156] create branch bep020 --- mkdocs.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 3411357c61..0f4c88410f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,7 +15,7 @@ plugins: - search - branchcustomization: update_config: - - branch: /(?!^master$)/ + - branch: /(?!^bep020$)/ +extra_css: - css/watermark.css - macros: @@ -37,6 +37,7 @@ nav: - Behavioral experiments (with no neural recordings): 04-modality-specific-files/07-behavioral-experiments.md - Genetic Descriptor: 04-modality-specific-files/08-genetic-descriptor.md - Positron Emission Tomography: 04-modality-specific-files/09-positron-emission-tomography.md + - Eye Tracking: 04-modality-specific-files/10-eye-tracking.md - Derivatives: - BIDS Derivatives: 05-derivatives/01-introduction.md - Common data types and metadata: 05-derivatives/02-common-data-types.md From b43e979a581e1a9fdc57ca329ebb2da23b5d3c5d Mon Sep 17 00:00:00 2001 From: chloepasturel Date: Fri, 1 Oct 2021 12:39:15 +0200 Subject: [PATCH 002/156] Add datatype metadata and suffixes for eye tracking --- .../10-eye-tracking.md | 68 +++++++++++++++++++ src/schema/datatypes/eyetrack.yaml | 25 +++++++ src/schema/metadata/AOIDefinition.yaml | 10 +++ .../metadata/AverageCalibrationError.yaml | 5 ++ src/schema/metadata/CalibrationList.yaml | 10 +++ src/schema/metadata/CalibrationPosition.yaml | 12 ++++ src/schema/metadata/CalibrationType.yaml | 8 +++ src/schema/metadata/CalibrationUnit.yaml | 6 ++ src/schema/metadata/CogAtlasID_eyetrack.yaml | 10 +++ src/schema/metadata/CogPOID_eyetrack.yaml | 9 +++ src/schema/metadata/DetectionAlgorithm.yaml | 8 +++ .../metadata/DetectionAlgorithmSettings.yaml | 11 +++ src/schema/metadata/EndMessage.yaml | 6 ++ .../metadata/EnvironmentCoordinates.yaml | 13 ++++ src/schema/metadata/EventIdentifier.yaml | 8 +++ src/schema/metadata/EyeCameraSettings.yaml | 9 +++ .../metadata/FeatureDetectionSettings.yaml | 8 +++ src/schema/metadata/GazeMappingSettings.yaml | 9 +++ .../metadata/IncludedEyeMovementEvents.yaml | 14 ++++ src/schema/metadata/KeyPressMessage.yaml | 6 ++ .../metadata/Manufacturer_eyetrack.yaml | 7 ++ .../ManufacturersModelName_eyetrack.yaml | 6 ++ .../metadata/MaximalCalibrationError.yaml | 5 ++ src/schema/metadata/PupilFitMethod.yaml | 6 ++ src/schema/metadata/PupilPositionType.yaml | 6 ++ src/schema/metadata/RawDataFilters.yaml | 6 ++ src/schema/metadata/RecordedEye.yaml | 5 ++ .../metadata/SampleCoordinateSystem.yaml | 7 ++ src/schema/metadata/SampleCoordinateUnit.yaml | 5 ++ .../metadata/SamplingFrequency_eyetrack.yaml | 9 +++ src/schema/metadata/ScreenDistance.yaml | 11 +++ src/schema/metadata/ScreenRefreshRate.yaml | 6 ++ src/schema/metadata/ScreenResolution.yaml | 13 ++++ src/schema/metadata/ScreenSize.yaml | 13 ++++ .../metadata/SoftwareVersion_eyetrack.yaml | 5 ++ src/schema/metadata/StartMessage.yaml | 6 ++ src/schema/modalities.yaml | 4 ++ src/schema/suffixes/eyetrack.yaml | 4 ++ 38 files changed, 379 insertions(+) create mode 100644 src/04-modality-specific-files/10-eye-tracking.md create mode 100644 src/schema/datatypes/eyetrack.yaml create mode 100644 src/schema/metadata/AOIDefinition.yaml create mode 100644 src/schema/metadata/AverageCalibrationError.yaml create mode 100644 src/schema/metadata/CalibrationList.yaml create mode 100644 src/schema/metadata/CalibrationPosition.yaml create mode 100644 src/schema/metadata/CalibrationType.yaml create mode 100644 src/schema/metadata/CalibrationUnit.yaml create mode 100644 src/schema/metadata/CogAtlasID_eyetrack.yaml create mode 100644 src/schema/metadata/CogPOID_eyetrack.yaml create mode 100644 src/schema/metadata/DetectionAlgorithm.yaml create mode 100644 src/schema/metadata/DetectionAlgorithmSettings.yaml create mode 100644 src/schema/metadata/EndMessage.yaml create mode 100644 src/schema/metadata/EnvironmentCoordinates.yaml create mode 100644 src/schema/metadata/EventIdentifier.yaml create mode 100644 src/schema/metadata/EyeCameraSettings.yaml create mode 100644 src/schema/metadata/FeatureDetectionSettings.yaml create mode 100644 src/schema/metadata/GazeMappingSettings.yaml create mode 100644 src/schema/metadata/IncludedEyeMovementEvents.yaml create mode 100644 src/schema/metadata/KeyPressMessage.yaml create mode 100644 src/schema/metadata/Manufacturer_eyetrack.yaml create mode 100644 src/schema/metadata/ManufacturersModelName_eyetrack.yaml create mode 100644 src/schema/metadata/MaximalCalibrationError.yaml create mode 100644 src/schema/metadata/PupilFitMethod.yaml create mode 100644 src/schema/metadata/PupilPositionType.yaml create mode 100644 src/schema/metadata/RawDataFilters.yaml create mode 100644 src/schema/metadata/RecordedEye.yaml create mode 100644 src/schema/metadata/SampleCoordinateSystem.yaml create mode 100644 src/schema/metadata/SampleCoordinateUnit.yaml create mode 100644 src/schema/metadata/SamplingFrequency_eyetrack.yaml create mode 100644 src/schema/metadata/ScreenDistance.yaml create mode 100644 src/schema/metadata/ScreenRefreshRate.yaml create mode 100644 src/schema/metadata/ScreenResolution.yaml create mode 100644 src/schema/metadata/ScreenSize.yaml create mode 100644 src/schema/metadata/SoftwareVersion_eyetrack.yaml create mode 100644 src/schema/metadata/StartMessage.yaml create mode 100644 src/schema/suffixes/eyetrack.yaml diff --git a/src/04-modality-specific-files/10-eye-tracking.md b/src/04-modality-specific-files/10-eye-tracking.md new file mode 100644 index 0000000000..351e733031 --- /dev/null +++ b/src/04-modality-specific-files/10-eye-tracking.md @@ -0,0 +1,68 @@ + +{{ MACROS___make_filename_template(datatypes=["eyetrack"], suffixes=["eyetrack", "events"]) }} + + +{{ MACROS___make_metadata_table( + { + "TaskName": ("REQUIRED", "A RECOMMENDED convention is to name resting state task using labels beginning with rest."), + } +) }} + + + +{{ MACROS___make_metadata_table( + { + "InstitutionName": "RECOMMENDED", + "InstitutionAddress": "RECOMMENDED", + "Manufacturer_eyetrack": "RECOMMENDED", + "ManufacturersModelName_eyetrack": "RECOMMENDED", + "SoftwareVersion_eyetrack": "RECOMMENDED", + "TaskDescription": "RECOMMENDED", + "Instructions": ("RECOMMENDED", "If no instruction is given, write `none`."), + "CogAtlasID_eyetrack": "RECOMMENDED", + "CogPOID_eyetrack": "RECOMMENDED", + "DeviceSerialNumber": "RECOMMENDED", + } +) }} + + +{{ MACROS___make_metadata_table( + { + "SamplingFrequency_eyetrack": "REQUIRED", + "SampleCoordinateUnit": "REQUIRED", + "SampleCoordinateSystem": "REQUIRED", + "EnvironmentCoordinates": "REQUIRED", + "EventIdentifier": "REQUIRED", + "ScreenSize": "REQUIRED", + "ScreenResolution": "REQUIRED", + "ScreenDistance": "REQUIRED", + } +) }} + + +{{ MACROS___make_metadata_table( + { + + "IncludedEyeMovementEvents": "RECOMMENDED", + "DetectionAlgorithm": "RECOMMENDED", + "DetectionAlgorithmSettings": "RECOMMENDED", + "StartMessage": "RECOMMENDED", + "EndMessage": "RECOMMENDED", + "KeyPressMessage": "RECOMMENDED", + "CalibrationType": "RECOMMENDED", + "CalibrationPosition": "RECOMMENDED", + "CalibrationUnit": "RECOMMENDED", + "MaximalCalibrationError": "RECOMMENDED", + "AverageCalibrationError": "RECOMMENDED", + "CalibrationList": "RECOMMENDED", + "RecordedEye": "RECOMMENDED", + "EyeCameraSettings": "RECOMMENDED", + "FeatureDetectionSettings": "RECOMMENDED", + "GazeMappingSettings": "RECOMMENDED", + "RawDataFilters": "RECOMMENDED", + "ScreenRefreshRate": "RECOMMENDED", + "AOIDefinition": "RECOMMENDED", + "PupilPositionType": "RECOMMENDED", + "PupilFitMethod": "RECOMMENDED", + } +) }} diff --git a/src/schema/datatypes/eyetrack.yaml b/src/schema/datatypes/eyetrack.yaml new file mode 100644 index 0000000000..ea26f90c5e --- /dev/null +++ b/src/schema/datatypes/eyetrack.yaml @@ -0,0 +1,25 @@ +--- +# eyetrack recordings +- suffixes: + - eyetrack + extensions: + - . + - .json + entities: + subject: required + session: optional + task: optional + acquisition: optional + run: optional +# Events +- suffixes: + - events + extensions: + - .tsv + - .json + entities: + subject: required + session: optional + task: optional + acquisition: optional + run: optional diff --git a/src/schema/metadata/AOIDefinition.yaml b/src/schema/metadata/AOIDefinition.yaml new file mode 100644 index 0000000000..b19a88e497 --- /dev/null +++ b/src/schema/metadata/AOIDefinition.yaml @@ -0,0 +1,10 @@ +--- +name: AOIDefinition +description: | + Define, what shape are the AOIs and what coordinates are used. + `[“square”,[“x_start”, “x_stop”, “y_start”, “y_stop”]]` + Other options: + `“custom”/”circle”/”triangle”,[[“x”,”y”],[“x”,”y”],[“x”,”y”],and so on.]` +type: object +items: + type: object diff --git a/src/schema/metadata/AverageCalibrationError.yaml b/src/schema/metadata/AverageCalibrationError.yaml new file mode 100644 index 0000000000..44512b260e --- /dev/null +++ b/src/schema/metadata/AverageCalibrationError.yaml @@ -0,0 +1,5 @@ +--- +name: AverageCalibrationError +description: | + Average calibration error in visual degree. +type: number diff --git a/src/schema/metadata/CalibrationList.yaml b/src/schema/metadata/CalibrationList.yaml new file mode 100644 index 0000000000..0606f97169 --- /dev/null +++ b/src/schema/metadata/CalibrationList.yaml @@ -0,0 +1,10 @@ +--- +name: CalibrationList +description: | + List of lists including information for each calibration. + This list includes the calibration type, recorded eye, + maximal calibration error, average calibration error, + and time relative to the first event of the event file. +type: object +items: + type: object diff --git a/src/schema/metadata/CalibrationPosition.yaml b/src/schema/metadata/CalibrationPosition.yaml new file mode 100644 index 0000000000..a720743ca1 --- /dev/null +++ b/src/schema/metadata/CalibrationPosition.yaml @@ -0,0 +1,12 @@ +--- +name: CalibrationPosition +description: | + Provide a list of `X/Y/Z coordinates` in cm on the screen/world + or the visual angles of the calibration positions used. + The Z coordinate reflects the calibration distance, + for example distance to screen or distance to real-world/virtual objects. +anyOf: + - type: number + - type: array + items: + type: number diff --git a/src/schema/metadata/CalibrationType.yaml b/src/schema/metadata/CalibrationType.yaml new file mode 100644 index 0000000000..042181bc12 --- /dev/null +++ b/src/schema/metadata/CalibrationType.yaml @@ -0,0 +1,8 @@ +--- +name: CalibrationType +description: | + Description of the calibration procedure. + For example the `H3` for horizontal calibration at 3 positions + or `HV9` for horizontal and vertical calibration at 9 positions, + or one point calibration. +type: string diff --git a/src/schema/metadata/CalibrationUnit.yaml b/src/schema/metadata/CalibrationUnit.yaml new file mode 100644 index 0000000000..b721e99550 --- /dev/null +++ b/src/schema/metadata/CalibrationUnit.yaml @@ -0,0 +1,6 @@ +--- +name: CalibrationUnit +description: | + Unit of CalibrationPosition. + For example, in pixel or metric (mm, cm) units. +type: string diff --git a/src/schema/metadata/CogAtlasID_eyetrack.yaml b/src/schema/metadata/CogAtlasID_eyetrack.yaml new file mode 100644 index 0000000000..ce07f25524 --- /dev/null +++ b/src/schema/metadata/CogAtlasID_eyetrack.yaml @@ -0,0 +1,10 @@ +--- +name: CogAtlasID +description: | + [URI](/02-common-principles.html#uniform-resource-indicator) + of the corresponding [Cognitive Atlas](https://www.cognitiveatlas.org/) + term that describes the task + (for example, + [Resting State with eyes closed](http://www.cognitiveatlas.org/task/id/trm_54e69c642d89b)). +type: string +format: uri diff --git a/src/schema/metadata/CogPOID_eyetrack.yaml b/src/schema/metadata/CogPOID_eyetrack.yaml new file mode 100644 index 0000000000..541e8c7f62 --- /dev/null +++ b/src/schema/metadata/CogPOID_eyetrack.yaml @@ -0,0 +1,9 @@ +--- +name: CogPOID +description: | + [URI](/02-common-principles.html#uniform-resource-indicator) + of the corresponding [CogPO](http://www.cogpo.org/) term + that describes the task + (for example, [Rest](http://wiki.cogpo.org/index.php?title=Rest)). +type: string +format: uri diff --git a/src/schema/metadata/DetectionAlgorithm.yaml b/src/schema/metadata/DetectionAlgorithm.yaml new file mode 100644 index 0000000000..d2fe33009c --- /dev/null +++ b/src/schema/metadata/DetectionAlgorithm.yaml @@ -0,0 +1,8 @@ +--- +name: DetectionAlgorithm +description: | + Name the event detection algorithm. + If no events are included write `None`. + If a detection algorithm is used, + settings SHOULD be present at `DetectionAlgorithmSettings`. +type: string diff --git a/src/schema/metadata/DetectionAlgorithmSettings.yaml b/src/schema/metadata/DetectionAlgorithmSettings.yaml new file mode 100644 index 0000000000..184df9a404 --- /dev/null +++ b/src/schema/metadata/DetectionAlgorithmSettings.yaml @@ -0,0 +1,11 @@ +--- +name: DetectionAlgorithmSettings +description: | + List of parameter settings used in the `DetectionAlgorithm` for eye movement events. +anyOf: + - type: object + items: + type: object + - type: string + enum: + - n/a diff --git a/src/schema/metadata/EndMessage.yaml b/src/schema/metadata/EndMessage.yaml new file mode 100644 index 0000000000..72f50bd046 --- /dev/null +++ b/src/schema/metadata/EndMessage.yaml @@ -0,0 +1,6 @@ +--- +name: EndMessage +description: | + The message sent to the eye tracker to indicate the end of each trial presentation. + Could be the end of the presentation of an image, word, video, and so on. +type: string diff --git a/src/schema/metadata/EnvironmentCoordinates.yaml b/src/schema/metadata/EnvironmentCoordinates.yaml new file mode 100644 index 0000000000..79a35d8ca1 --- /dev/null +++ b/src/schema/metadata/EnvironmentCoordinates.yaml @@ -0,0 +1,13 @@ +--- +name: EnvironmentCoordinates +description: | + In the case of the classical gaze-on-screen coordinates, + this can be for example: `[["0,0", "top left"], ["1,1", "bottom right"]]`. + In VR this could take on, amongst others, spherical coordinates. +anyOf: + - type: object + items: + type: object + - type: string + enum: + - n/a diff --git a/src/schema/metadata/EventIdentifier.yaml b/src/schema/metadata/EventIdentifier.yaml new file mode 100644 index 0000000000..7ed8baecd0 --- /dev/null +++ b/src/schema/metadata/EventIdentifier.yaml @@ -0,0 +1,8 @@ +--- +name: EventIdentifier +description: | + The message sent to the eye tracker which disambiguates the belonging + of the sample to a certain event, condition or group. + This can be a unique trial identifier, or in the case of + continuous presentation (for example video) the annotated event of interest. +type: string diff --git a/src/schema/metadata/EyeCameraSettings.yaml b/src/schema/metadata/EyeCameraSettings.yaml new file mode 100644 index 0000000000..3957c9061b --- /dev/null +++ b/src/schema/metadata/EyeCameraSettings.yaml @@ -0,0 +1,9 @@ +--- +name: EyeCameraSettings +description: | + A field to store any settings that influence the resolution + and quality of the eye imagery. + Autowhitebalance? Changes in sharpness? +type: object +items: + type: object diff --git a/src/schema/metadata/FeatureDetectionSettings.yaml b/src/schema/metadata/FeatureDetectionSettings.yaml new file mode 100644 index 0000000000..3325b418a5 --- /dev/null +++ b/src/schema/metadata/FeatureDetectionSettings.yaml @@ -0,0 +1,8 @@ +--- +name: FeatureDetectionSettings +description: | + A place to store arbitrary information related to feature detection. + For example Minimum/maximum pupil size. +type: object +items: + type: object diff --git a/src/schema/metadata/GazeMappingSettings.yaml b/src/schema/metadata/GazeMappingSettings.yaml new file mode 100644 index 0000000000..7c3fbc9145 --- /dev/null +++ b/src/schema/metadata/GazeMappingSettings.yaml @@ -0,0 +1,9 @@ +--- +name: GazeMappingSettings +description: | + A place to store arbitrary information related to gaze mapping. + For example, if there was a threshold on pupil confidence required for gaze mapping, + one could store that information here. +type: object +items: + type: object diff --git a/src/schema/metadata/IncludedEyeMovementEvents.yaml b/src/schema/metadata/IncludedEyeMovementEvents.yaml new file mode 100644 index 0000000000..3127a82f71 --- /dev/null +++ b/src/schema/metadata/IncludedEyeMovementEvents.yaml @@ -0,0 +1,14 @@ +--- +name: IncludedEyeMovementEvents +description: | + List of included events with message specifications. + For example, if fixation markers from the EyeLink are included add: + `[[Start of fixation: “SFIX”], [End of fixation: “EFIX”]]`. + If no events are included write `None`. +anyOf: + - type: object + items: + type: object + - type: string + enum: + - n/a diff --git a/src/schema/metadata/KeyPressMessage.yaml b/src/schema/metadata/KeyPressMessage.yaml new file mode 100644 index 0000000000..ac2e9ee4b5 --- /dev/null +++ b/src/schema/metadata/KeyPressMessage.yaml @@ -0,0 +1,6 @@ +--- +name: KeyPressMessage +description: | + When the paradigm includes pressing a key, + message identifying this should be included to the sidecar JSON file. +type: string diff --git a/src/schema/metadata/Manufacturer_eyetrack.yaml b/src/schema/metadata/Manufacturer_eyetrack.yaml new file mode 100644 index 0000000000..4e90d9c1ec --- /dev/null +++ b/src/schema/metadata/Manufacturer_eyetrack.yaml @@ -0,0 +1,7 @@ +--- +name: Manufacturer +description: | + Manufacturer of the eye-tracking system + (for example `SR-Research`, `Tobii`, `SMI`, `Gazepoint`, `Pupil Labs`, + `Custom built`, ... , `Other`) +type: string diff --git a/src/schema/metadata/ManufacturersModelName_eyetrack.yaml b/src/schema/metadata/ManufacturersModelName_eyetrack.yaml new file mode 100644 index 0000000000..1019ef73a9 --- /dev/null +++ b/src/schema/metadata/ManufacturersModelName_eyetrack.yaml @@ -0,0 +1,6 @@ +--- +name: ManufacturersModelName +description: | + Manufacturer’s designation of the eye-tracker model + (for example `Eye-link 1000`). +type: string diff --git a/src/schema/metadata/MaximalCalibrationError.yaml b/src/schema/metadata/MaximalCalibrationError.yaml new file mode 100644 index 0000000000..39dd0a286e --- /dev/null +++ b/src/schema/metadata/MaximalCalibrationError.yaml @@ -0,0 +1,5 @@ +--- +name: MaximalCalibrationError +description: | + Maximal calibration error in visual degree. +type: number diff --git a/src/schema/metadata/PupilFitMethod.yaml b/src/schema/metadata/PupilFitMethod.yaml new file mode 100644 index 0000000000..74df7b4c84 --- /dev/null +++ b/src/schema/metadata/PupilFitMethod.yaml @@ -0,0 +1,6 @@ +--- +name: PupilFitMethod +description: | + The method employed for fitting the pupil: + `centre of mass` or `ellipse`. +type: string diff --git a/src/schema/metadata/PupilPositionType.yaml b/src/schema/metadata/PupilPositionType.yaml new file mode 100644 index 0000000000..e21f243d3f --- /dev/null +++ b/src/schema/metadata/PupilPositionType.yaml @@ -0,0 +1,6 @@ +--- +name: PupilPositionType +description: | + The type of position that is coded in the datafile. + For example, `raw pupil position on screen`; `pupil-in-head`; or `pupil-in-world` +type: string diff --git a/src/schema/metadata/RawDataFilters.yaml b/src/schema/metadata/RawDataFilters.yaml new file mode 100644 index 0000000000..b156a751b9 --- /dev/null +++ b/src/schema/metadata/RawDataFilters.yaml @@ -0,0 +1,6 @@ +--- +name: RawDataFilters +description: | + Filter settings applied to eye-movement raw data. + For example Eyelink trackers typically automatically filter the raw data. +type: string diff --git a/src/schema/metadata/RecordedEye.yaml b/src/schema/metadata/RecordedEye.yaml new file mode 100644 index 0000000000..51d1e83c99 --- /dev/null +++ b/src/schema/metadata/RecordedEye.yaml @@ -0,0 +1,5 @@ +--- +name: RecordedEye +description: | + Specification for which eye was tracked (`Left`, `Right`, `Both`) +type: string diff --git a/src/schema/metadata/SampleCoordinateSystem.yaml b/src/schema/metadata/SampleCoordinateSystem.yaml new file mode 100644 index 0000000000..611da2fbd9 --- /dev/null +++ b/src/schema/metadata/SampleCoordinateSystem.yaml @@ -0,0 +1,7 @@ +--- +name: SampleCoordinateSystem +description: | + Classical screen-based eye tracking data would be `gaze-on-screen`, + but `eye-in-head` or `gaze-in-world` are also possible coordinate systems + (for example in VR). +type: string diff --git a/src/schema/metadata/SampleCoordinateUnit.yaml b/src/schema/metadata/SampleCoordinateUnit.yaml new file mode 100644 index 0000000000..38d4205dee --- /dev/null +++ b/src/schema/metadata/SampleCoordinateUnit.yaml @@ -0,0 +1,5 @@ +--- +name: SampleCoordinateUnit +description: | + Unit of individual samples. For example, in pixel or metric (mm, cm) units. +type: string diff --git a/src/schema/metadata/SamplingFrequency_eyetrack.yaml b/src/schema/metadata/SamplingFrequency_eyetrack.yaml new file mode 100644 index 0000000000..fc4656441e --- /dev/null +++ b/src/schema/metadata/SamplingFrequency_eyetrack.yaml @@ -0,0 +1,9 @@ +--- +name: SamplingFrequency +description: | + Sampling frequency (in Hz) of the corresponding data in the recording + (for example, `1000`). + If the sampling frequency change across run, + sidecar JSON document must be created specifying the run number. +type: number +unit: Hz diff --git a/src/schema/metadata/ScreenDistance.yaml b/src/schema/metadata/ScreenDistance.yaml new file mode 100644 index 0000000000..4df07237db --- /dev/null +++ b/src/schema/metadata/ScreenDistance.yaml @@ -0,0 +1,11 @@ +--- +name: ScreenDistance +description: | + Screen distance in cm + (for example `60` for a screen distance of 60 cm), + if no screen use `n/a`. +anyOf: + - type: number + - type: string + enum: + - n/a diff --git a/src/schema/metadata/ScreenRefreshRate.yaml b/src/schema/metadata/ScreenRefreshRate.yaml new file mode 100644 index 0000000000..0810fb238f --- /dev/null +++ b/src/schema/metadata/ScreenRefreshRate.yaml @@ -0,0 +1,6 @@ +--- +name: ScreenRefreshRate +description: | + Refresh rate of the monitor (when monitor used), in Hz. + For example, `150 Hz` +type: string diff --git a/src/schema/metadata/ScreenResolution.yaml b/src/schema/metadata/ScreenResolution.yaml new file mode 100644 index 0000000000..7ff9ec06cf --- /dev/null +++ b/src/schema/metadata/ScreenResolution.yaml @@ -0,0 +1,13 @@ +--- +name: ScreenResolution +description: | + Screen resolution in pixel + (for example `[1920, 1200]` for a screen of 1920-length by 1080-height pixels), + if no screen use `n/a`. +anyOf: + - type: array + items: + type: number + - type: string + enum: + - n/a diff --git a/src/schema/metadata/ScreenSize.yaml b/src/schema/metadata/ScreenSize.yaml new file mode 100644 index 0000000000..206ad9398f --- /dev/null +++ b/src/schema/metadata/ScreenSize.yaml @@ -0,0 +1,13 @@ +--- +name: ScreenSize +description: | + Screen size in cm + (for example `[47.2, 29.5]` for a screen of 47.2-length by 29.5-height cm), + if no screen use `n/a`. +anyOf: + - type: array + items: + type: number + - type: string + enum: + - n/a diff --git a/src/schema/metadata/SoftwareVersion_eyetrack.yaml b/src/schema/metadata/SoftwareVersion_eyetrack.yaml new file mode 100644 index 0000000000..65f419de8c --- /dev/null +++ b/src/schema/metadata/SoftwareVersion_eyetrack.yaml @@ -0,0 +1,5 @@ +--- +name: SoftwareVersion +description: | + Manufacturer’s designation of the data acquisition software. +type: string diff --git a/src/schema/metadata/StartMessage.yaml b/src/schema/metadata/StartMessage.yaml new file mode 100644 index 0000000000..e3efbe08b5 --- /dev/null +++ b/src/schema/metadata/StartMessage.yaml @@ -0,0 +1,6 @@ +--- +name: StartMessage +description: | + The message sent to the eye tracker to indicate the start of each trial. + Could be the start of the presentation of an image, word, video, and so on. +type: string diff --git a/src/schema/modalities.yaml b/src/schema/modalities.yaml index 017d6de167..b54cb7ed8a 100644 --- a/src/schema/modalities.yaml +++ b/src/schema/modalities.yaml @@ -27,3 +27,7 @@ pet: name: Positron Emission Tomography datatypes: - pet +eyetrack: + name: Eye Tracking Data + datatypes: + - eyetrack diff --git a/src/schema/suffixes/eyetrack.yaml b/src/schema/suffixes/eyetrack.yaml new file mode 100644 index 0000000000..b6fd410b11 --- /dev/null +++ b/src/schema/suffixes/eyetrack.yaml @@ -0,0 +1,4 @@ +--- +name: Eyetrack +description: | + Eye-tracking recording data. From ac14d1869f32282c8f1ef5365ffa4f16aa6105d0 Mon Sep 17 00:00:00 2001 From: Klara Gregorova <49999446+greckla@users.noreply.github.com> Date: Mon, 29 Nov 2021 10:48:02 +0100 Subject: [PATCH 003/156] bep020 md --- .../10-eye-tracking.md | 132 ++++++++++++++++-- 1 file changed, 122 insertions(+), 10 deletions(-) diff --git a/src/04-modality-specific-files/10-eye-tracking.md b/src/04-modality-specific-files/10-eye-tracking.md index 351e733031..28d27d85fe 100644 --- a/src/04-modality-specific-files/10-eye-tracking.md +++ b/src/04-modality-specific-files/10-eye-tracking.md @@ -1,44 +1,91 @@ +# Eye-tracking including gaze position and pupil size + +Support for eye-tracking dataset developed as a [BIDS Extension Proposal](../07-extensions.md#bids-extension-proposals). Please see [Citing BIDS](../01-introduction.md#citing-bids) on how to appropriately credit this extension when referring to it in the context of the academic literature. + +## Terminology and conventions + +Eye-tracking-BIDS is fully consistent with the BIDS specification as a whole. However, BIDS was initially developed in the context of MRI, so some terminology may be unfamiliar to researchers from other field. This section adds clarifications to [Common Principles - Definitions](../02-common-principles.html) for the eye-tracking context. + +- Eye-tracker - refer to the apparatus allowing the records of gaze position and/or pupil size. +- Screen - Video display used to present visual stimulation (for example projector, monitor, tablet). + +## Eye-tracking data {{ MACROS___make_filename_template(datatypes=["eyetrack"], suffixes=["eyetrack", "events"]) }} +The eye-tracking data files generally contain gaze position (x/y coordinates) and pupil size data. With Eye-Tracking-BIDS, we wish to promote the adoption of good practices in the management of scientific data. Hence, the current emphasis of Eye-Tracking-BIDS is not to impose a generic data format for the modality, but to standardize the way data is stored in repositories. + +Eye-tracking data MUST be stored in the `eyetrack` directory. The current version of this extension *does not* include a specification of the extension format and data formatting of recorded eye-tracking data. Thus, data must be stored in an open format (for example EDF file converted in ASCII `.asc` format or `.tsv` etc) with the `_eyetrack` suffix. + +The OPTIONAL [`task-