see scoreOne.bash -h
- designed for antisaccades
mgs
andmsgencode
(dani_eyetools_mgsencode
) are scored outside of the main pipelinefix
is scored by examining the drops after scoring like antisaccade
These scripts score eye movements collected by ASL model 5000
or 6000
, saved as ASL eyd v602
input is expected at
[required] Data/Task/$paradigm/Basic/$lunaid/$date/EyeData/Raw/*eyd
[optional] Data/Task/$paradigm/Basic/$lunaid/$date/EyeData/Scored/fs*xls
Recent (2024) updates include EyeLink/
scoring, but use the EyeLink provided saccades ranges instead of identifying within R code like for the ASL tracker.
Luna dataset eye-tracking data was scored with the same automatic scoring algorithms from our previous work (Montez 2017; Tervo-Clemmens 2017).
Responses were scored with a custom scoring script written in R (see Ravindranath et al., 2020 for details).
Correct responses in the antisaccade task were defined as those in which the first eye movement during the saccade epoch with velocity greater than or equal to 30°/sec was made toward the mirror location of the peripheral cue and extended beyond a 2.5°/ visual angle from central fixation. Incorrect responses were defined by evidence that the first saccade during the saccade epoch was directed toward the peripheral stimulus and exceeded the 2.5°/ visual angle central fixation zone but were subsequently directed to the correct location, indicating that the instructions were being followed but the participant was unable to suppress their response. Trials in which no eye movements were generated, or in which the tracker lost fixation, were excluded from analyses. On average, 12.25 % of trials were omitted per subject, and the percent of omitted trials per subject did not significantly differ by age or sex. This scoring system was automated using custom software which has been made publicly available on GitHub (https://github.com/LabNeuroCogDevel/autoeyescore).
Eye movements in the response epoch were a scored as a correct AS if the first eye movement during the response epoch had a velocity greater than or equal to 30°/s (Gitelman, 2002) and was made in the mirror location of the peripheral cue and extended at least 2.5° visual angle from central fixation. In contrast, eye movements were marked as an incorrect AS if the first saccade in the response epochs was made toward the peripheral cue and extended at least 2.5° visual angle from central fixation, but then later directed toward the correct location, suggesting task compliance. Trials in which no saccade occurred or if the eye-tracker lost fixation were excluded from all analyses. Scan sessions were excluded from all behavioral and fMRI analysis if the proportion of excluded trials was greater than 33%.
Saccadic events were detected using an in-house suite of automated routines. Individual saccade candidate events were detected from local maxima in the eye-movement velocity trace. Saccade start and end times were determined by searching backward and forward in time in the velocity trace to find the sample where velocity dropped below 1/10th of the peak velocity (Gitelman, 2002).
Each trial asks the participant to make a saccades toward (pro) or away (anti) from a vertically centered target along the width of the presentation screen. Eye position, pupil dilation, and an XDAT code are sampled at 60Hz. While eye position and dilation are raw recordings of the participant from the eyetracker, XDATs are sent by the presentation and denote the start of a trial, onset of a cue (target), and end of a trial. Each trial should have 3 associated codes (where the last, stop code, is always 250). The direction and final position of the correct saccade for a trial are given by the trial's middle, "target", XDAT. A "correct" trial is one where the first saccade is in this direction. Trials can also be classified as an "error," when the first saccade is in the opposite direction and no saccades go to the correct position, or as a "corrected error," when the first saccade is in the wrong direction, but a subsequent saccade moves in the correct direction (eye position moves beyond baseline toward the correct position). The latency of a trial always refers to the initiation of the first saccade, regardless of it's label as correct or error.
The target position is given in ASL coordinates. The subject sees a presentation screen that is 800px wide. ASL is 261 px.
At the start of a trial, eye position should be centered until .067seconds after the onset of the cue. 50px/261px leway is given for this center fixation to allow for center drift. Trials are dropped if fixation is further than this, if there is no tracking (x position), or if there is not fixation.
Saccades are identified if the change in horizontal gaze position is greater than 4px/60Hz. The initiation of a saccade is then set when the change in horz gaze pos first reached above 1px/60Hz. Initiation of the first saccade describes latency. The saccade's end position is extended similarly, and minimally effects scoring logic (extends values to determine max or min horz position)
Saccades moving toward the target position are labeled correct; those moving away are label "error." Saccades are further classified to be within or outside of the proximity of the exact target location. This more specific classification is not used.
The horz position 5 samples before target onset and 2 samples after are used to set the trials baseline. The trial baseline must be within 50px of true center. On trials where the first saccade is an error, the trail is labeled as "error." However, if any subsequent saccade then crosses this baseline, the trail label is changed to "corrected error."
Trails are dropped when the standard deviation of the difference in horz gaze position of neighboring samples is greater than 40 to remove trials with unreliable or unusable tracking of eye position. Missing samples (potential blinks) that immediately perceed a saccade are incorparted in saccade calcuations. When the first saccades in a trial has less than 80% tracking (80% of the expected samples or less report a horizontal gaze value), the whole trial is dropped. If there is no tracking for ___ seconds before the first saccade or ___ seconds within the 5 samples before and 2 after target onset, the trial is dropped.
If there is a xpos velocity over 4samples/60Hz in the .067s after onset before a participant is able to process the cue, the trial is dropped.
Parameters (particularly velocity and stddev xpos) have been set to maximize agreement with XXXX trials scored by human inspection. Of the _XXX trials where this algorithm disagrees with human scoring, further manual inspection estimates ___% can be attributed to human error.
each task has its own directory (anti,bars,scannerbars) with subdirectories for results and tests
from this directory, ../score.R
is run which sources settings and scores. but use runme.bash
see runme.bash for help
finding files:
root in /mnt/B/bea_res/Data/Tasks/$TASK/Basic/$SUBJ/$DATE/
prased to Raw/txt/$SUBJ.$DATE.$RUN.data.tsv
output saved as Scored/txt/$SUBJ.$DATE.$RUN.{trial,summary}.tsv
parsing eyds: ../eyds/dataFromAnyEyd.pl
(which needs ../eyds/EyeTracking-EYD/EyeTracking-EYD-0.1.2/lib/EyeTracking/EYD.pm
)
- check score.Rout (in results if successful) for errors!
- the bottom of the file lists all subjects.date.runs that were not processed
in R # for behavioral bars source('viewdiffs/checkBarsBeh.R')
in R
# for behavioral bars
source('bars/bars.settings.R')
source('ScoreRun.R')
source('getSacsbyDot.R')
source('scoreTests.R')
and
runme.sh -T