Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/validate_datasets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
- name: Install BIDS validator (dev)
if: matrix.bids-validator == 'dev'
run: |
git clone -b dev https://github.com/bids-standard/bids-validator/ ../bids-validator
git clone -b bep020 https://github.com/bids-standard/bids-validator/ ../bids-validator
cd ../bids-validator
deno compile -A -o $HOME/.deno/bin/bids-validator src/bids-validator.ts

Expand Down Expand Up @@ -107,7 +107,7 @@ jobs:
fi

- name: Skip legacy validation for post-legacy datasets
run: for DS in mrs_* dwi_deriv pet006 pheno004 volume_timing; do touch $DS/.SKIP_VALIDATION; done
run: for DS in mrs_* dwi_deriv pet006 pheno004 volume_timing eyetracking_*; do touch $DS/.SKIP_VALIDATION; done
if: matrix.bids-validator == 'legacy'

- name: Skip stable validation for datasets with unreleased validator features
Expand All @@ -119,7 +119,7 @@ jobs:
- name: Skip main validation for datasets with unreleased spec features
# Replace ${EMPTY} with dataset patterns, when this is needed
# Reset to "for DS in ${EMPTY}; ..." after a spec release
run: for DS in dwi_deriv pheno004; do touch $DS/.SKIP_VALIDATION; done
run: for DS in eyetracking_*; do touch $DS/.SKIP_VALIDATION; done
if: matrix.bids-validator != 'dev'

- name: Set BIDS_SCHEMA variable for dev version
Expand All @@ -128,7 +128,7 @@ jobs:
# Update this URL to the schema.json from PRs to the spec, when needed.
# If this variable is unset, dev will generally track the latest development
# release of https://jsr.io/@bids/schema
run: echo BIDS_SCHEMA=https://bids-specification.readthedocs.io/en/latest/schema.json >> $GITHUB_ENV
run: echo BIDS_SCHEMA=https://bids-specification--1128.org.readthedocs.build/en/1128/schema.json >> $GITHUB_ENV

- name: Validate all BIDS datasets using bids-validator
run: |
Expand Down
24 changes: 24 additions & 0 deletions eyetracking_binocular/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Example BIDS Physio-EyeTracking Dataset - Binocular Recordings

## Data descriptor

Authors: Martin SZINTE, Guillaume Masson, Jason Samonds & Nicholas Priebe
BIDS-Conversion: Julia-Katharina Pfarr, Rémi Gau
BIDS-Example: Julia-Katharina Pfarr, Oscar Esteban
Project: natImSac
Version: 1.0

## Data

This example corresponds to the structure of the "natImSac" project, adapted to demonstrate BEP020.
This example does not contain any eye-tracking data, it just shows the BIDS organization of an experiment with an eye-tracker.
For the full example preserving the actual eye-tracker recordings, please access the DataLad dataset at https://github.com/julia-pfarr/natImSac_BIDSexample.git.

The original source data is found at https://github.com/mszinte/natImSac.
The natImSac involved an experiment in which human participant free view natural images to determine saccade and fixation statistics.
Full description of the project is found in the following [publication](https://doi.org/10.1523/ENEURO.0287-23.2023).
Only the eye-tracking data of the original dataset and a subset of participants and runs thereof were kept for this example dataset.

## Methods (BIDS Conversion)

Sourcedata was converted to raw data according to the BIDS Physio-EyeTracking specification using the [eye2bids](https://github.com/bids-standard/eye2bids) converter tool.
28 changes: 28 additions & 0 deletions eyetracking_binocular/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"Name": "natImSac",
"BIDSVersion": "1.10.0-dev",
"DatasetType": "raw",
"License": "CCBY4",
"Authors": [
"Martin Szinte",
"Guillaume Masson",
"Jason Samonds",
"Nicholas Priebe"
],
"HowToAcknowledge": "Please cite this paper: https://doi.org/10.1523/ENEURO.0287-23.2023",
"Funding": [
"This research was funded by Agence Nationale de la Recherche ANR-20NEUC-0002 (G.S.M.) and National Institutes of Health NIH-R01NS120562 (N.J.P.), NIH-R01EY025102 (N.J.P.), and NIH-R01EY034092 (J.M.S.)."
],
"GeneratedBy": [
{
"Name": "eye2bids",
"CodeURL": "https://github.com/bids-standard/eye2bids"
}
],
"SourceDatasets": [
{
"URL": "https://github.com/mszinte/natImSac",
"Version": "October 2020"
}
]
}
6 changes: 6 additions & 0 deletions eyetracking_binocular/participants.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"participant_id": {
"LongName": "patient idnetification",
"Description": "anonymized, BIDS compatible identification"
}
}
2 changes: 2 additions & 0 deletions eyetracking_binocular/participants.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
participant_id
sub-01
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
onset duration run_number trial_number image_blank_size image_blank_num
1785.302201 32.0600146 1 1 2 77
1817.506034 31.9947156 1 2 1 16
1849.675358 32.0047486 1 3 1 50
1881.846792 31.9950453 1 4 1 70
1914.00865 32.0089389 1 5 1 33
1946.145349 31.9961995 1 6 1 81
1978.265709 31.9956032 1 7 2 57
2010.394642 31.995466 1 8 2 26
2042.549024 29.9995082 1 9 1 76
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"StartTime": 1648407,
"StopTime": 1993390,
"CalibrationCount": 1,
"CalibrationType": "HV13",
"RecordedEye": "left",
"AverageCalibrationError": 0.29,
"MaximalCalibrationError": 0.61
}
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"StartTime": 1648407,
"StopTime": 1993390,
"CalibrationCount": 1,
"CalibrationType": "HV13",
"RecordedEye": "right",
"AverageCalibrationError": 0.3,
"MaximalCalibrationError": 0.65
}
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
onset duration run_number trial_number image_blank_size image_blank_num
2169.998589 32.008892 2 10 2 79
2202.127506 31.9959166 2 11 2 68
2234.231261 31.9961381 2 12 2 83
2266.418559 31.9962044 2 13 1 32
2298.574443 31.9991934 2 14 2 13
2330.768193 31.9959178 2 15 1 51
2362.913755 31.999576 2 16 2 1
2395.109372 32.0043407 2 17 1 39
2427.254733 29.9965816 2 18 1 30
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"StartTime": 2078643,
"StopTime": 2378110,
"CalibrationCount": 1,
"CalibrationType": "HV13",
"RecordedEye": "left",
"AverageCalibrationError": 0.51,
"MaximalCalibrationError": 2.54
}
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"StartTime": 2078643,
"StopTime": 2378110,
"CalibrationCount": 1,
"CalibrationType": "HV13",
"RecordedEye": "right",
"AverageCalibrationError": 0.51,
"MaximalCalibrationError": 3.53
}
Binary file not shown.
Binary file not shown.
47 changes: 47 additions & 0 deletions eyetracking_binocular/task-FreeView_events.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"Columns": [
"onset",
"duration",
"run_number",
"trial_number",
"image_blank_size",
"image_blank_num"
],
"Description": "Timing and other properties of events recorded during a run.",
"OnsetSource": "timestamp",
"onset": {
"Description": "Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file."
},
"duration": {
"Description": "Duration of the event (measured from onset) in seconds."
},
"run_number": {
"Description": "Number of run according to run-<index> specification."
},
"trial_number": {
"Description": "Number of trial within one session."
},
"image_blank_size": {
"Description": "Size of the image displayed, where 1 = 583.7x465.83 pixel and 2 = 1204.87 x 950.44 pixel"
},
"image_blank_num": {
"Description": "Index number of the image displayed from https://github.com/mszinte/natImSac/tree/main/stim."
},
"TaskName": "FreeView",
"InstitutionAddress": "27 Bd Jean Moulin, 13005 Marseille, France",
"InstitutionName": "Institut de Neurosciences de la Timone",
"StimulusPresentation": {
"ScreenDistance": 0.6,
"ScreenOrigin": ["top", "left"],
"ScreenRefreshRate": 120,
"ScreenSize": [
0.696,
0.391
],
"ScreenResolution": [
1919,
1079
],
"Code": "https://github.com/mszinte/natImSac/tree/main/trials"
}
}
36 changes: 36 additions & 0 deletions eyetracking_binocular/task-FreeView_physio.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"Manufacturer": "SR-Research",
"PhysioType": "eyetrack",
"Columns": [
"timestamp",
"x_coordinate",
"y_coordinate",
"pupil_size"
],
"timestamp": {
"Description": "a continuously increasing identifier of the sampling time registered by the device",
"Units": "ms",
"Origin": "SystemStartup"

},
"x_coordinate": {
"LongName": "Gaze position (x)",
"Description": "Gaze position x-coordinate of the recorded eye, in the coordinate units specified in the corresponding metadata sidecar.",
"Units": "pixel"
},
"y_coordinate": {
"LongName": "Gaze position (y)",
"Description": "Gaze position y-coordinate of the recorded eye, in the coordinate units specified in the corresponding metadata sidecar.",
"Units": "pixel"
},
"pupil_size": {
"Description": "Pupil area of the recorded eye as calculated by the eye-tracker in arbitrary units (see EyeLink's documentation for conversion).",
"Units": "a.u."
},
"SampleCoordinateSystem": "gaze-on-screen",
"ManufacturersModelName": "EYELINK II CL v5.12 May 12 2017",
"DeviceSerialNumber": "CLG-BAF38",
"PupilFitMethod": "CENTROID",
"SamplingFrequency": 1000,
"EyeTrackingMethod": "P-CR"
}
28 changes: 28 additions & 0 deletions eyetracking_binocular/task-FreeView_physioevents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"Columns": [
"onset",
"duration",
"trial_type",
"blink",
"message"
],
"Description": "Messages logged by the measurement device",
"OnsetSource": "timestamp",
"blink": {
"Description": "Gives status of the eye.",
"Levels": {
"0": "Indicates if the eye was open.",
"1": "Indicates if the eye was closed."
}
},
"message": {
"Description": "String messages logged by the eye-tracker."
},
"trial_type": {
"Description": "Event type as identified by the eye-tracker's model.",
"Levels": {
"fixation": "Indicates a fixation.",
"saccade": "Indicates a saccade."
}
}
}
2 changes: 2 additions & 0 deletions eyetracking_fmri/CHANGES
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
2.0.6 2025-05-09
- updated jsons according to new BEP020 updates
21 changes: 21 additions & 0 deletions eyetracking_fmri/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Eye-tracking example for BEP020 from OpenNeuro's ds004158 REST_EYE

Sourcedata by : Martin Szinte, Anna Montagnini & Guillaume Masson<br/>
Sourcedata: https://openneuro.org/datasets/ds004158

Curated-by: Julia-Katharina Pfarr, Oscar Esteban

## Methods (BIDS Conversion)

Sourcedata was converted to raw data according to the BIDS Physio-EyeTracking specification using the [eye2bids](https://github.com/bids-standard/eye2bids) converter tool.

Please refer to the source dataset to learn more about the original
experiment, or to access the full dataset.

## Experiment description

Participants where told to let their mind wonder while keeping fixation to a fixation dot at the screen
center.<br/>
Participants where told to let their mind wonder while keeping fixation to a fixation dot at the screen
These data are here use to provide an example of BIDS eyetracking data together with fMRI.<br/>

12 changes: 12 additions & 0 deletions eyetracking_fmri/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"Name": "rest_eye",
"BIDSVersion": "1.1.1",
"Authors": [
"Martin Szinte",
"Anna Montagnini",
"Guillaume Masson"
],
"Note": "These data are part of a larger dataset and presented here only to provide an example to BIDS eyetracking modality",
"DatasetDOI": "doi:10.18112/openneuro.ds004158.v2.0.6",
"License": "CC0"
}
24 changes: 24 additions & 0 deletions eyetracking_fmri/participants.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"participant_id": {
"LongName": "patient idnetification",
"Description": "anonymized, BIDS compatible identification"
},
"sex": {
"Levels": {
"M" : "Male",
"F" : "Female"
}
},
"age": {
"Description" : "Age of the subject at time of scan with 3 digits"
},
"GUID": {
"Description" : "Unique participant ID as set in the INT"
},
"eTIV": {
"LongName": "EstimatedTotalIntraCranialVol",
"Description" : "Estimated total intracranial volume as measured with 'mri_segstats' function of Freesurfer (mri_segstats --subject subjid --etiv-only)",
"Units": "mm3"
}

}
2 changes: 2 additions & 0 deletions eyetracking_fmri/participants.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
participant_id sex age GUID eTIV
sub-01 M 35 19B10ABE8F9F 1775498
Loading