Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENH] BEP 020 Eye Tracking #1128

Open
wants to merge 187 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
a73a9ea
create branch bep020
chloepasturel Oct 1, 2021
b43e979
Add datatype metadata and suffixes for eye tracking
chloepasturel Oct 1, 2021
ac14d18
bep020 md
greckla Nov 29, 2021
3316ef5
Update 10-eye-tracking.md
greckla Nov 29, 2021
033a948
minor update md
greckla Nov 29, 2021
971ac2a
minor updates md 2
greckla Nov 29, 2021
6236f83
final changes and working version with mkdocs
Dec 1, 2021
1d71719
add forgotten example
Dec 1, 2021
131b75d
final changes
Dec 1, 2021
b7f4d5d
latest changes
Jun 15, 2022
5aa62f7
Update 10-eye-tracking.md
mszinte Jun 16, 2022
686a5f3
Apply suggestions from code review
Remi-Gau Nov 12, 2022
4a46c9f
Merge branch 'master' into bep020
Remi-Gau Nov 12, 2022
0388cc1
fix bad latin
Remi-Gau Nov 12, 2022
e4f72c9
md lint
Remi-Gau Nov 12, 2022
19d4b6c
fix yml
Remi-Gau Nov 12, 2022
7b6721d
md lint
Remi-Gau Nov 12, 2022
6a71758
lint yml
Remi-Gau Nov 12, 2022
7941bab
add semantic line breaks
Remi-Gau Nov 12, 2022
f1c255b
move suffix
Remi-Gau Nov 12, 2022
2ffe348
rm CogPOID and CogAtlas yml
Remi-Gau Nov 12, 2022
e7658c9
move some metadata
Remi-Gau Nov 12, 2022
3d2bf96
move more metadata
Remi-Gau Nov 12, 2022
0369d4e
move more metadata
Remi-Gau Nov 12, 2022
53e80f1
rely on task.yml for events
Remi-Gau Nov 12, 2022
9f87572
change extension to tsv
Remi-Gau Nov 12, 2022
d19eaf8
fix schema
Remi-Gau Nov 12, 2022
d222325
fix links
Remi-Gau Nov 12, 2022
7c3a071
fix typos
Remi-Gau Nov 12, 2022
53d7894
fix link
Remi-Gau Nov 12, 2022
0cd1366
most of the change but mkserve not working yet
Dec 5, 2022
108c18c
some more change still not working
Dec 6, 2022
df50fd8
change in mkdocs.yml based on commments
Dec 6, 2022
c90de08
run pre-commit and fix yml
Remi-Gau Dec 6, 2022
e01eed1
Merge branch 'master' into bep020
Remi-Gau Dec 6, 2022
5cc22ba
add eyetrack modality object
Remi-Gau Dec 6, 2022
647af5e
format markdown
Remi-Gau Dec 6, 2022
77bf482
format markdown
Remi-Gau Dec 6, 2022
141e480
space missing in tabular_data/eyetrack.yaml
Dec 7, 2022
8c7618f
merging
Dec 7, 2022
d678149
fixing conflict for real
Dec 7, 2022
01332e5
automatic changes by pre-commit
Dec 7, 2022
b89469e
instru
Dec 7, 2022
8fc5f0f
pre-commit stuff
Dec 7, 2022
6fce90b
correct error of manipulation of logo.eps
Dec 7, 2022
0009d63
some test
Dec 7, 2022
dc793a3
some test
Dec 7, 2022
a5f7cfc
some test
Dec 7, 2022
2f81069
some test
Dec 7, 2022
63352df
changes of columns names
Dec 7, 2022
564a206
Update src/modality-specific-files/eye-tracking.md
mszinte Dec 8, 2022
d6e8aed
change in metadata
Dec 8, 2022
42f4527
Merge branch 'bep020' of https://github.com/mszinte/bids-specificatio…
Dec 8, 2022
7ca6a42
test new changes with pre-commit
Dec 8, 2022
7d435de
correct error in eyetrack.md
Dec 8, 2022
ea1d18f
add RecordTimeStart and RecordTimeEnd
Dec 8, 2022
49ec9e9
cahnge eye_sample to eye_timestamp
Dec 8, 2022
7fb149c
correct error example json
Dec 8, 2022
7a55abd
error in datasets links
Dec 8, 2022
e3f74f8
last round of review on main doc
Dec 8, 2022
9df5c68
slight modif of SAOI
Dec 8, 2022
c45f480
slight modif of main md
Dec 8, 2022
edc7c6f
correction of space
Dec 8, 2022
518d8f6
try without modality
Dec 8, 2022
8549d0e
Update src/modality-specific-files/eye-tracking.md
mszinte Dec 8, 2022
f194526
put back mkdocs.yaml with unsorted modality specific files
Dec 8, 2022
0e0f800
Update src/modality-specific-files/eye-tracking.md
mszinte Dec 8, 2022
15f817e
Update src/schema/objects/metadata.yaml
mszinte Dec 8, 2022
171eff9
Update src/schema/objects/metadata.yaml
mszinte Dec 8, 2022
d0c919a
Update src/schema/objects/metadata.yaml
mszinte Dec 8, 2022
39deaae
change after review of tsalo
Dec 8, 2022
b621542
Merge branch 'bep020' of https://github.com/mszinte/bids-specificatio…
Dec 8, 2022
c76af5b
put back /tool/filetree_exampl.ipynb
Dec 8, 2022
70c5edb
instru
Dec 8, 2022
9f223a1
change on metadata based on tsalo comments
Dec 8, 2022
a9bfaaf
change to desambiguate the columns in case of two eyes recording
Dec 16, 2022
4c8327b
change to account for the BEP020
Dec 16, 2022
c6a8354
change of json example in reply to https://github.com/bids-standard/b…
Dec 16, 2022
81d960e
change RecordTimeStart and RecordTimeEnd to StartTime_eyetrack (with …
Dec 16, 2022
1796cec
take out Scree settings from metadata as they were put in the main br…
Dec 16, 2022
457e339
Merge branch 'master' into bep020
mszinte Dec 16, 2022
a0410f8
insist on calibration in the text
Dec 16, 2022
e4c8ad8
add eyetrack suffix to timeseries suffixes in task.yaml in order to a…
Dec 16, 2022
f063523
point 2 on suggestion https://github.com/bids-standard/bids-specifica…
Dec 16, 2022
720311c
Merge remote-tracking branch 'upstream/master' into bep020
Remi-Gau Dec 24, 2022
7868f57
fix markdown
Remi-Gau Dec 24, 2022
8269cd3
fix markdown
Remi-Gau Dec 24, 2022
c4c342b
Merge branch 'master' into bep020
Remi-Gau Apr 5, 2023
752e38d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 5, 2023
893911c
Merge branch 'master' into bep020
Remi-Gau May 23, 2023
d802ab2
Merge branch 'master' into bep020
Remi-Gau Jun 6, 2023
af48333
Merge remote-tracking branch 'upstream/master' into bep20
Remi-Gau Jun 12, 2023
37f7cd1
codespell fixes
Remi-Gau Jun 12, 2023
9ecb9ea
schema fix
Remi-Gau Jun 12, 2023
e286064
change to follow recommandations of https://doi.org/10.3758/s13428-02…
Jun 28, 2023
e513efa
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 28, 2023
a414937
Merge branch 'master' into bep020
Remi-Gau Jun 28, 2023
6f535cb
split metadata
Remi-Gau Jun 29, 2023
3ac5ca5
fix metadata
Remi-Gau Jun 29, 2023
a31fbdd
format
Remi-Gau Jun 29, 2023
17f296d
fix typo
Remi-Gau Jul 3, 2023
691ec27
update example
Remi-Gau Jul 3, 2023
a4af030
make gunzip optional
Remi-Gau Jul 3, 2023
c9787a8
Merge branch 'master' into bep020
Remi-Gau Jul 4, 2023
a0acebe
add required events.json metadata
Remi-Gau Jul 5, 2023
f96f383
fix list
Remi-Gau Jul 6, 2023
08250d3
fix list
Remi-Gau Jul 6, 2023
95d6dbf
Merge branch 'master' into bep020
Remi-Gau Sep 7, 2023
2169021
Update eye-tracking.md
mszinte Oct 5, 2023
9314fc0
Changes for metadata
julia-pfarr Oct 5, 2023
8e01771
Merge pull request #1 from julia-pfarr/julia
julia-pfarr Oct 5, 2023
1aeeff5
Merge pull request #5 from julia-pfarr/bep020
julia-pfarr Oct 26, 2023
2b85072
change unit of ScreenSize in example events.json
julia-pfarr Oct 26, 2023
754f1c0
Merge pull request #6 from julia-pfarr/bep020
julia-pfarr Nov 9, 2023
205a35f
Update src/modality-specific-files/eye-tracking.md
Remi-Gau Nov 20, 2023
cda8874
Apply suggestions from code review
Remi-Gau Nov 28, 2023
8be9429
Update src/schema/objects/columns.yaml
Remi-Gau Nov 28, 2023
e6ef2d6
Update src/schema/objects/columns.yaml
Remi-Gau Nov 28, 2023
84b869a
Update metadata.yaml
mszinte Nov 30, 2023
0ca61b4
Merge branch 'master' into bep020
Remi-Gau Nov 30, 2023
53fcd97
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 30, 2023
4c7a30f
Update src/schema/objects/metadata.yaml
Remi-Gau Nov 30, 2023
6c2b2f5
fix issues in mkdocs.yml
Remi-Gau Nov 30, 2023
79fd36b
hasty copy paste
Remi-Gau Nov 30, 2023
edc81bc
fix time stamp
Remi-Gau Nov 30, 2023
fcaaeaa
add placeholder for eventual publication
sappelhoff Nov 30, 2023
0bb5e41
Update metadata.yaml
mszinte Nov 30, 2023
c2ca15b
Update src/modality-specific-files/eye-tracking.md
mszinte Nov 30, 2023
632eca2
Update src/modality-specific-files/eye-tracking.md
mszinte Dec 7, 2023
75c0baa
Update src/modality-specific-files/near-infrared-spectroscopy.md
Remi-Gau Feb 29, 2024
05c8227
enh: a proposal for the new ``RecordingType`` (-> ``PhysioType``) idea
oesteban Feb 29, 2024
cbd2da7
enh: add eyetracking examples
oesteban Feb 29, 2024
8f90b33
enh: revise metadata specifications
oesteban Feb 29, 2024
a1126da
fix: remove duplicated metadata entry
oesteban Feb 29, 2024
e728546
restore eyetrack sidecars
oesteban Feb 29, 2024
87e93c1
Merge pull request #8 from oesteban/bep020-proposal
oesteban Feb 29, 2024
ef49458
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 29, 2024
1d05d11
fix: pacify codespell
oesteban Feb 29, 2024
2920134
fix: pacify markdown linter
oesteban Feb 29, 2024
3636333
fix: attempt to get line numbers on tsv files
oesteban Feb 29, 2024
aeac149
fix: attempt 2 to get line numbers on tsv files
oesteban Feb 29, 2024
9df5c4e
Update src/modality-specific-files/eye-tracking.md
oesteban Mar 1, 2024
b7d19b2
fix: address several issues, add example datasets, pacify remark
oesteban Mar 1, 2024
8b2e7e5
enh: better ordering, clearer definitions
oesteban Mar 1, 2024
6968915
sty: pacify remark
oesteban Mar 1, 2024
b56d7e0
enh: change zero-based to one-base indexes, more consistent with BIDS
oesteban Mar 1, 2024
a618326
fix: remove redirected URL
oesteban Mar 1, 2024
57b1737
Merge branch 'master' into bep020
oesteban Mar 1, 2024
12b1abc
enh: add columns definition for physioevents and improve eyetracker e…
oesteban Mar 1, 2024
c8d8fc3
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 1, 2024
01f820d
fix: length of new message column description
oesteban Mar 1, 2024
61a1f31
fix: improved definition of ForeignIndexColumn
oesteban Mar 1, 2024
ea5cc44
Merge branch 'master' into bep020
oesteban Mar 2, 2024
1e188a0
enh: clearly state specific physio types at the outset
oesteban Mar 2, 2024
366cbc9
enh: improving and adding example file trees
oesteban Mar 2, 2024
3b71c1f
fix: normalize file tree macros and repare syntax of some
oesteban Mar 2, 2024
e209833
fix: typos and readability improvements
oesteban Mar 2, 2024
e9fcd85
review and slight text modification
Mar 21, 2024
6f0d8fb
Merge branch 'master' into bep020
Remi-Gau Mar 21, 2024
d16fd64
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 21, 2024
5ef41f4
Merge remote-tracking branch 'upstream/master' into bep020
oesteban Mar 22, 2024
311b645
fix: revert boilerplate about publication
oesteban Mar 22, 2024
90b9fba
enh: drop "old" eyetrack
oesteban Mar 22, 2024
51d7ae9
fix: ``"cyclopean"`` value for ``RecordedEye`` metadata
oesteban Mar 22, 2024
239f93c
fix: deduplicate example datasets, and move eyetrack's ones into an a…
oesteban Mar 22, 2024
f34589c
fix: missing setting eyetrack tabular data allowed to add columns
oesteban Mar 22, 2024
3606735
enh: deep reorganization of the section
oesteban Mar 24, 2024
4aed597
fix: pacify linter
oesteban Mar 24, 2024
3bbe59c
Update src/modality-specific-files/physiological-and-other-continuous…
oesteban Mar 25, 2024
3beafc6
enh: move escalating events' metadata to REQUIRED into task data section
oesteban Mar 25, 2024
8c95b8c
Merge remote-tracking branch 'upstream/master' into bep020
oesteban Apr 11, 2024
96d984e
Merge branch 'master' into bep020
oesteban May 29, 2024
f57f393
fix unit
Remi-Gau Jul 28, 2024
8b6d458
use levels to describe metadata
Remi-Gau Jul 28, 2024
6aeb1c2
Merge remote-tracking branch 'upstream/master' into pr/mszinte/1128
Remi-Gau Jul 28, 2024
e92027c
fix typo
Remi-Gau Jul 28, 2024
26c463a
minor schema fix
Remi-Gau Jul 28, 2024
a6a1c9d
Merge branch 'master' into bep020
Remi-Gau Sep 5, 2024
0ad7fb1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 5, 2024
a5ea212
fix
Remi-Gau Sep 5, 2024
6e787b6
enh: add @Sourav-Kulkarni's suggestions about eye-tracker/screen dist…
oesteban Oct 3, 2024
9e697d2
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 3, 2024
09b40d7
enh: address @qian-chu's review comment about documenting timestamp
oesteban Oct 3, 2024
cce40a0
enh: address @Remi-Gau's comment on column order
oesteban Oct 3, 2024
19dab86
Update src/modality-specific-files/physiological-recordings.md
oesteban Dec 18, 2024
e222088
Update src/modality-specific-files/physiological-recordings.md
oesteban Dec 18, 2024
edaeace
Update src/modality-specific-files/physiological-recordings.md
mszinte Dec 19, 2024
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
3 changes: 2 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ plugins:
- search
- branchcustomization:
update_config:
- branch: /(?!^master$)/
- branch: /(?!^bep020$)/
mszinte marked this conversation as resolved.
Show resolved Hide resolved
+extra_css:
- css/watermark.css
- macros:
Expand All @@ -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
Remi-Gau marked this conversation as resolved.
Show resolved Hide resolved
- Derivatives:
- BIDS Derivatives: 05-derivatives/01-introduction.md
- Common data types and metadata: 05-derivatives/02-common-data-types.md
Expand Down
187 changes: 187 additions & 0 deletions src/04-modality-specific-files/10-eye-tracking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
# 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 fields. This section adds clarifications to [Common Principles - Definitions](../02-common-principles.html) for the eye-tracking context.
mszinte marked this conversation as resolved.
Show resolved Hide resolved

- __Eye-tracker__ - refer to the apparatus allowing the records of gaze position and/or pupil size.
mszinte marked this conversation as resolved.
Show resolved Hide resolved
Remi-Gau marked this conversation as resolved.
Show resolved Hide resolved
- __Screen__ - Video display used to present visual stimulation (for example projector, monitor, tablet).
Remi-Gau marked this conversation as resolved.
Show resolved Hide resolved

## Eye-tracking data

mszinte marked this conversation as resolved.
Show resolved Hide resolved
```Text
sub-<label>/
[ses-<label>/]
<datatype>/
sub-<label>[_ses-<label>][_task-<label>][_acq-<label>][_run-<index>]_eyetrack.<datatype>
sub-<label>[_ses-<label>][_task-<label>][_acq-<label>][_run-<index>]_eyetrack.json
sub-<label>[_ses-<label>][_task-<label>][_acq-<label>][_run-<index>]_events.json
sub-<label>[_ses-<label>][_task-<label>][_acq-<label>][_run-<index>]_events.tsv
```

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.
mszinte marked this conversation as resolved.
Show resolved Hide resolved
mszinte marked this conversation as resolved.
Show resolved Hide resolved

Eye-tracking data MUST be stored in the main data recording modality or `<datatype>` directory (for example func, anat, dwi, meg, eeg, ieeg, or beh). 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.
Remi-Gau marked this conversation as resolved.
Show resolved Hide resolved

mszinte marked this conversation as resolved.
Show resolved Hide resolved
We encourage every user to put the raw data before conversion within the `/sourcedata` folder (for example put property EDF files in the sourcedata folder).
mszinte marked this conversation as resolved.
Show resolved Hide resolved

The OPTIONAL [`task-<label>`](../99-appendices/09-entities.md#task) is used to indicate a task subject were asked to perform while eye-tracking records were obtained. Those labels MUST be consistent across subjects and sessions. For task based eye-tracking, a corresponding [task events](../04-modality-specific-files/05-task-events.md) file MUST be provided (please note that this file is not necessary for resting state tasks).

The OPTIONAL [`acq-<label>`](../99-appendices/09-entities.md#acq) refers to a custom label the user MAY use to distinguish a different set of parameters used for acquiring the same modality. Acquisition labels corresponds mostly to imaging records (for example eye-tracking with fMRI) but can also be specified when combining eye-tracking and imaging methods.

If more than one run of the same task and acquisition are acquired during the same session, the [`run-<index>`](../99-appendices/09-entities.md#run) entity MUST be used: _run-1, _run-2, _run-3, and so on. If only one run was acquired the run-<index> can be omitted.

### Sidecar JSON document (`*_eyetrack.json`)

Generic fields MUST be present:

{{ MACROS___make_metadata_table(
{
"TaskName": ("REQUIRED", "A RECOMMENDED convention is to name resting state task using labels beginning with `rest`."),
}
) }}

SHOULD be present:

For consistency between studies and institutions, we encourage users to extract the values of these fields from the actual raw data. Whenever possible, please avoid using ad hoc wording.

{{ MACROS___make_metadata_table(
{
"InstitutionName": "RECOMMENDED",
"InstitutionAddress": "RECOMMENDED",
"Manufacturer": (
"RECOMMENDED",
"Manufacturer of the eye-tracking system (for example "
'`"SR-Research"`, `"Tobii"`, `"SMI"`, `"Gazepoint"`, '
'`"Pupil Labs"`, `"Custom built"`, `"Other"`) '
),
"ManufacturersModelName": (
"RECOMMENDED",
"Manufacturer's designation of the eye-tracker model (for example"
'`"Eye-link 1000"`).'
),
"SoftwareVersion": "RECOMMENDED",
"TaskDescription": "RECOMMENDED",
"Instructions": (
"RECOMMENDED",
"Text of the instructions given to participants before the experiment."),
"CogAtlasID": "RECOMMENDED",
"CogPOID": "RECOMMENDED",
mszinte marked this conversation as resolved.
Show resolved Hide resolved
"DeviceSerialNumber": "RECOMMENDED",
}
) }}


Specific ET fields MUST be present:
Remi-Gau marked this conversation as resolved.
Show resolved Hide resolved

{{ MACROS___make_metadata_table(
{
"SamplingFrequency_eyetrack": "REQUIRED",
mszinte marked this conversation as resolved.
Show resolved Hide resolved
"SampleCoordinateUnit": "REQUIRED",
mszinte marked this conversation as resolved.
Show resolved Hide resolved
"SampleCoordinateSystem": "REQUIRED",
"EnvironmentCoordinates": "REQUIRED",
"ScreenSize": "REQUIRED",
"ScreenResolution": "REQUIRED",
"ScreenDistance": (
"REQUIRED",
"Screen distance in cm (e.g 60 for a screen distance of 60 cm), "
'if no screen use "n/a". '
"For MRI, it corresponds to the distance between the head-coil mirror "
"to the projection screen for example."),
mszinte marked this conversation as resolved.
Show resolved Hide resolved
}
) }}

Specific ET fields SHOULD be present:

{{ MACROS___make_metadata_table(
{
"IncludedEyeMovementEvents": "RECOMMENDED",
"DetectionAlgorithm": "RECOMMENDED",
"DetectionAlgorithmSettings": "RECOMMENDED",
"StartMessage": "RECOMMENDED",
"EndMessage": "RECOMMENDED",
"KeyPressMessage": "RECOMMENDED",
"CalibrationType": "RECOMMENDED",
"CalibrationUnit": "RECOMMENDED",
"CalibrationPosition": "RECOMMENDED",
"MaximalCalibrationError": "RECOMMENDED",
"AverageCalibrationError": "RECOMMENDED",
"CalibrationList": "RECOMMENDED",
"RecordedEye": "RECOMMENDED",
"EyeCameraSettings": "RECOMMENDED",
"FeatureDetectionSettings": "RECOMMENDED",
"GazeMappingSettings": "RECOMMENDED",
"RawDataFilters": "RECOMMENDED",
"ScreenRefreshRate": "RECOMMENDED",
mszinte marked this conversation as resolved.
Show resolved Hide resolved
"AOIDefinition": "RECOMMENDED",
mszinte marked this conversation as resolved.
Show resolved Hide resolved
"PupilFitMethod": "RECOMMENDED",
}
) }}

### Example:

```JSON
{"TaskName": "PSC_train",
"InstitutionName": "Goethe-University of Frankfurt; Department of Psychology",
"InstitutionAdress": "Theodor-W.-Adorno-Platz 6 60323 Frankfurt am Main; Germany",
"Manufacturer": "SR-Research",
"ManufacturersModelName": "EYELINK II CL v4.56 Aug 18 2010",
"SoftwareVersion": "SREB1.10.1630 WIN32 LID:F2AE011 Mod:2017.04.21 15:19 CEST",
"TaskDescription": "Sentence reading",
"Instructions": "Read sentences as you would read a book or a newspaper",
"SamplingFrequency": 1000,
"SampleCoordinateUnit": "pixel",
mszinte marked this conversation as resolved.
Show resolved Hide resolved
"SampleCoordinateSystem": "gaze-on-screen",
"EnvironmentCoordinates": "top-left",
"IncludedEyeMovementEvents": [["Start of fixation", "SFIX"],["End of fixation", "EFIX"],["Start of saccade", "SSACC"], ["End of saccade", "ESACC"],["Start of blink", "SBLINK"], ["End of blink", "EBLINK"]],
"DetectionAlgorithm": "SR-Research",
"StartMessage": "SENTENCESTART",
"EndMessage": "SENTENCESTOP",
"KeyPressMessage": "ANSWER",
"RecordedEye": "Both",
"ScreenSize": [38.6, 29],
"ScreenResolution": [1024, 768],
"ScreenDistance": 60,
"AOIDefinition": ["square",["x_start", "x_stop", "y_start", "y_stop"]] ,
}
```

### Example Dataset
mszinte marked this conversation as resolved.
Show resolved Hide resolved

**Potsdam Sentence Corpus Dataset**

Eye-tracking data, measured with an Eyelink, from 2 German speaker learners reading 36 sentences from the Potsdamer Sentence Corpus ([Kliegl et al., 2004](https://doi.org/10.1080/09541440340000213)). They were measured on four occasions, in a randomized controlled design (that is, before and after a control and experimental training). The sentences appeared after the calibration check on the fixation cross and disappeared as soon as a saccade crossed the invisible boundary on the right sight of the screen. The participants were asked to fixate the fixation cross and then read the sentences naturally as they would read a book or a newspaper. After they have read the sentence, they should look to a fixation cross in the right down corner of the screen. With this action they automatically passed the boundary and the sentence disappeared. After some sentences a question sign appeared and the experimenter asked the participant a question about the content of the sentence to check if the participant understood it. The correctness of the answer was recorded by the experimenter by pressing the key "r" ("correct") or "f" ("false").
mszinte marked this conversation as resolved.
Show resolved Hide resolved

[BIDS dataset](https://github.com/greckla/Eye-Tracking-BIDS/tree/master/PSC_train/PSC_train_raw_data_BIDS)<br />
[Conversion script](https://github.com/greckla/Eye-Tracking-BIDS/blob/master/PSC_train/from_asc_to_BIDS_asc.Rmd)


**Reading Hyperlinks Dataset**

Eye-tracking data, measured with an Eyelink, from 8 subjects reading sentences with 320 embedded target words and invisible boundary manipulation. The task of participants was similar as in the Dataset in 4.1, silent reading with comprehension questions. The main interest of the study was to investigate word recognition processes of the target word under different conditions (for example, was the word presented in blue or black). The invisible boundary manipulation allowed the investigation of parafoveal preview benefits in relation to the conditions of interest. Here, the predominant characteristics of Hyperlinks.
mszinte marked this conversation as resolved.
Show resolved Hide resolved
For details see [here](https://doi.org/10.7717/peerj.2467).

[BIDS dataset](https://github.com/greckla/Eye-Tracking-BIDS/tree/master/hyperlink/hyperlinks_raw_data_BIDS)<br />
[Conversion script](https://github.com/greckla/Eye-Tracking-BIDS/blob/master/hyperlink/from_asc_to_BIDS_asc.Rmd)

**Emotional Faces Dataset**

Eye-tracking data, measured with an Eyelink, from 4 subjects viewing a grid of sixteen faces showing different emotions without any explicit task. The procedure resembled that described by Lazarov and colleagues (2018). Grids of 4x4 stimulus matrices of 16 color photographs of human faces displaying emotional expressions were presented. Photos were taken from the FACES database (Ebner et al., 2010). The paradigm was divided into two tasks:
- Task 1 (happy + sad): 8 faces with happy and 8 faces with sad expression.
- Task 2 (happy/sad + neutral): 8 faces with happy or sad and 8 faces with neutral expression.
In both tasks, 64 stimulus matrices in 2 blocks of 32 matrices were presented. Participants were asked to just look at the photos. Each matrix was presented for 6s.

[BIDS dataset](https://github.com/greckla/Eye-Tracking-BIDS/tree/master/emotional_faces/freeviewfaces_raw_data_BIDS)<br />
[Conversion script](https://github.com/greckla/Eye-Tracking-BIDS/blob/master/emotional_faces/from_asc_to_BIDS_asc.Rmd)

**Resting State inside MRI Dataset**

Eye-tracking data, measured with an Eyelink 2000 in a 3T Philips Achieva scanner. 20 participants were
invited to fixate at the screen center during 2 runs. They were told to keep the eyes open
and to let their mind wander.
Here we use this example dataset to present how to deal with eyetracking data when the main recording
modality is fMRI, therefore we provide T1w/T2w, functional and field map data in addition to eye tracking records.

[BIDS dataset](https://openneuro.org/datasets/ds004158/versions/1.0.1)
25 changes: 25 additions & 0 deletions src/schema/datatypes/eyetrack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
# eyetrack recordings
- suffixes:
- eyetrack
extensions:
- .<datatype>
- .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
10 changes: 10 additions & 0 deletions src/schema/metadata/AOIDefinition.yaml
Original file line number Diff line number Diff line change
@@ -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.]`
Remi-Gau marked this conversation as resolved.
Show resolved Hide resolved
type: object
mszinte marked this conversation as resolved.
Show resolved Hide resolved
items:
type: object
5 changes: 5 additions & 0 deletions src/schema/metadata/AverageCalibrationError.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
name: AverageCalibrationError
description: |
Average calibration error in visual degree.
type: number
10 changes: 10 additions & 0 deletions src/schema/metadata/CalibrationList.yaml
Original file line number Diff line number Diff line change
@@ -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
10 changes: 10 additions & 0 deletions src/schema/metadata/CalibrationPosition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: CalibrationPosition
description: |
Provide a list of X/Y coordinates in the `CalibrationUnit`.
For example, using 5 positions calibration presented on an HD screen,
it could be `[[960,50],[960,540],[960,1030],[50,540],[1870,540]]`.
anyOf:
- type: array
items:
type: number
8 changes: 8 additions & 0 deletions src/schema/metadata/CalibrationType.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
name: CalibrationType
description: |
Description of the calibration procedure.
For example the `"H3"` for horizontal calibration with 3 positions
or `"HV9"` for horizontal and vertical calibration with 9 positions,
or one point calibration.
type: string
6 changes: 6 additions & 0 deletions src/schema/metadata/CalibrationUnit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
name: CalibrationUnit
description: |
Unit of `CalibrationPosition`: `"pixel"`, `"mm"` or `"cm"`.

type: string
10 changes: 10 additions & 0 deletions src/schema/metadata/CogAtlasID_eyetrack.yaml
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions src/schema/metadata/CogPOID_eyetrack.yaml
Original file line number Diff line number Diff line change
@@ -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
7 changes: 7 additions & 0 deletions src/schema/metadata/DetectionAlgorithm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
name: DetectionAlgorithm
description: |
Name the event detection algorithm.
If a detection algorithm is used,
settings SHOULD be present in `DetectionAlgorithmSettings`.
type: string
11 changes: 11 additions & 0 deletions src/schema/metadata/DetectionAlgorithmSettings.yaml
Original file line number Diff line number Diff line change
@@ -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
6 changes: 6 additions & 0 deletions src/schema/metadata/EndMessage.yaml
Original file line number Diff line number Diff line change
@@ -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
7 changes: 7 additions & 0 deletions src/schema/metadata/EnvironmentCoordinates.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
name: EnvironmentCoordinates
description: |
Coordinates origin (or zero), for gaze-on-screen coordinates,
this can be for example: `"top-left"` or `"center"`.
For virtual reality this could be, amongst others, spherical coordinates.
type: string
8 changes: 8 additions & 0 deletions src/schema/metadata/EventIdentifier.yaml
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions src/schema/metadata/EyeCameraSettings.yaml
Original file line number Diff line number Diff line change
@@ -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
8 changes: 8 additions & 0 deletions src/schema/metadata/FeatureDetectionSettings.yaml
Original file line number Diff line number Diff line change
@@ -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
9 changes: 9 additions & 0 deletions src/schema/metadata/GazeMappingSettings.yaml
Original file line number Diff line number Diff line change
@@ -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
14 changes: 14 additions & 0 deletions src/schema/metadata/IncludedEyeMovementEvents.yaml
Original file line number Diff line number Diff line change
@@ -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”]]`.
Remi-Gau marked this conversation as resolved.
Show resolved Hide resolved
If no events are included write `None`.
anyOf:
- type: object
mszinte marked this conversation as resolved.
Show resolved Hide resolved
items:
type: object
- type: string
enum:
- n/a
Loading