Now Shipping! – The EyeLink 3; combined head and eye tracking at up to 1000 Hz.

FAQ: How do I implement a pro/anti saccade task?
#1
This tutorial outlines how to create a basic pro/anti-saccade task with Experiment Builder. It also describes how to visualise the data and output some useful analysis metrics via Data Viewer. There are many different variations of the basic pro and anti- saccade tasks, and consequently many different potential analysis approaches. The goal of this tutorial is to showcase a few possible ways of going about the analysis and provide some useful tips.

The key metrics for the prosaccade task are the latency and amplitude of the “primary saccade” following target onset. For the antisaccade task, key metrics are error rate (the number of trials for which the primary saccade went towards the target rather than away from it) and the latency and amplitude of saccdes in the wrong direction (error saccades) and correct ones. Many researchers also choose to apply various criteria as to what constitutes a valid trial – for example trials may be excluded from analysis if the latency of the primary saccade is less than 80ms after target onset, or if the primary saccade does not start from within 1 degree of the initial central target.  This tutorial aims to show how such criteria may be applied at the analysis stage, but does not provide explicit advice on which criteria are relevant / appropriate for any specific task – researchers should always be guided by the literature on such matters.

Creating the task with Experiment Builder:
If you are new to Experiment Builder it is recommended that you first take a look at the Experiment Builder video tutorial series here https://www.sr-research.com/support/thread-32.html before going through this pro/anti saccade tutorial. The included ProAntiSaccade task has 6 pro followed by 6 anti-saccade trials. Each trial starts with a drift-check, followed by a central fixation with a variable duration of 500, 1000 or 1500ms, then a left or right peripheral saccade target is presented for 1 second.
The task details are as follows: after showing the main instructions and allowing for calibration, there is a TRIAL sequence with a data source as shown below. The 12 trials (rows) are divided into 6 pro and 6 anti-saccade trials (type = pro/anti). Here you also have the target_direction (LEFT vs RIGHT) column and expected_direction (expected saccade direction for a correct response) column based on whether each trial is pro or anti. These columns (variables) are useful at the analysis stage, as they allow the actual direction of the primary saccade to be compared to the expected direction. The "fix_duration" column allows for the duration of the fixation target to be randomised across trials (500, 1000 or 1500 milliseconds).The data source randomisation settings block the "type" column so the pro-saccade trials are presented first, followed by the anti-saccade trials. The row (trial) order within each block is randomised via the "Enable Trial Randomisation" option, which has a checkmark beside it.

   


The "target_loc" data source column lists the x y coordinate pairs for the saccade target location in each trial: (331.0,540.0) places the target at 331 screen pixels along the x coordinates and 540 pixels along the y coordinates using a top-left screen coordinate system. This places the target on the left side of the screen and vertically centred. The other x y coordinate pair (1589.0, 540.0) places the target on the right side of the screen and vertically centred. As the task is presented on a 1920 x 1080 monitor (see Edit > Preferences > DISPLAY > Width, Height from the top menu bar in Experiment Builder), the horizontal distance of each saccade target from the middle of the screen is 629 pixels. In this demo, the participant's eyes were 97cm away from the monitor so the target amplitude is ~10 degress of visual angle. You can calculate and adjust the target amplitude for your own task using this visual angle calculator on our website as a guide: https://www.sr-research.com/visual-angle-calculator/ . The image below shows the values entered in the visual angle calculator for a 970mm eye-to-screen distance.

   

Inside the TRIAL sequence of the Experiment Builder project there are two CONDITIONAL triggers: CHECK_TRIAL_1 checks whether the current trial is the first trial. If true, the pro-saccade instructions are shown. CHECK_TRIAL_7 checks whether the current trial is the seventh trial, and if true the anti-saccade instructions are shown.
Inside the RECORDING sequence there is a CENTRAL_FIXATION Display Screen node which presents a central fixation target, and creates a central circular interest area (labelled CENTRAL_IA) around it. The Interest Area can be used at the analysis stage. For instance it allows for checking that the primary saccade started from a location close to the center of the screen. The TIMER_FIXATION node controls the variable fixation presentation duration via its "Duration" property, which is linked to the "fix_duration" data source column.
The SACCADE_TARGET Display Screen node draws the saccade target (elliptical resource), with its "Location" property linked to the target_Loc data source column. This ensures that the target is presented at the left or right side of the screen an equal number of times. This node is followed by a TIMER trigger (TIMER_1000) so the saccade target is presented for 1000ms before the DISPLAY_BLANK node shows a blank screen at the end of the trial. Critically, the “Message” property of all the Display Screen nodes have been filled out so that the task writes the messages CENTRAL_FIXATION, SACCADE_TARGET and DISPLAY_BLANK to the EyeLink Data File on each trial, to mark the onset of each of these events and so there is a record of when they were presented at the analysis stage.

Visualising and analysing the data with Data Viewer:
For this tutorial, the Experiment Builder task was deployed and data from 3 participants (p1, p2 and p3) was collected - see ProAntiSaccade_deploy.zip folder. To visualise the data, open a new Data viewer session, click on File > Import Data > Multiple EyeLink Data Files... and navigate to the "results" directory within the ProAntiSaccade_deploy folder to import the data for all 3 participants. You should see the three grouping nodes p1, p2 and p3 in the top panel of the Inspector window on the left. Each grouping node should have 12 trials within it. If you are new to Data Viewer and would like a general overview you can watch the video tutorial series for Data Viewer here: https://www.sr-research.com/support/thread-31.html
If you are only interested in target-driven saccades you could create a "target_period" Interest Period in Data Viewer to isolate a temporal window in each trial from the time when the saccade target appears (SACCADE_TARGET message) up to the end of the trial (DISPLAY_BLANK message). Click on the "Full Trial Period" drop-down menu at the top > “Edit”, click on the “New Interest Period” icon and set an Interest Period as shown below.

   

To ensure you are still able to see the interest area on the central fixation (which is now outside the interest period) you can click on the “Preferences” tab in the Inspector window > “Data Filters” and put a checkmark beside “Show Interest Areas Pre Interest Period”. Click back on the “Data” tab of the Inspector, toggle ON the visibility of both the saccades and fixations (see below) so that in the default Spatial Overlay view you can see the central interest area, saccades and fixations for each trial during this interest period. In the image below you can see that in trial 2 of participant p1 there is an initial fixation close to the centre (because the central fixation target was present). This fixation is followed by a saccade that slightly undershoots the target, followed by another (brief) fixation and a second corrective saccade reaching the target and a final fixation close to the target.

   

When analysing pro and antisaccade data, it is often more useful to visualise the data as a “gaze position vs time” plot. To do this, click on the "Temporal Graph" view. Toggle the sample visibility ON and zoom out. You should see gaze x y position (y axis) over time (x axis) with fixations and saccades marked in light-blue and yellow respectively.

   

If you now toggle ON the visibilty of blinks and click on trial 7 of participant p3 you will see a trial which contains a blink within the selected interest period (the period surrounded by the two vertical purple lines). The blink appears as a red vertical bar and is always surrounded by a saccade (a blink-saccade). Blink-saccades occur because EyeLink eye trackers identify the centre of the pupil when computing gaze position. At the start of a blink, the pupil appears to get smaller as it becomes occluded by the eyelid, so the pupil centre shifts downwards and is recorded as a fast, downward shift in gaze position, which in turn is classified as a downward saccade until the pupil disappears completely behind the eyelid (at which point the onset of the blink is signaled). A similar saccade artefact appears when the eyelid re-opens at the end of a blink.

   

These “blink-saccade” artefacts can potentially interfere with the analysis of real saccades, so they can be removed (merged with the blink) from the Data viewer session as follows: click on the "Preferences" tab of the Inspector. In the top Inspector panel select “Data Filters”. In the bottom panel uncheck the "Display Blink Saccades" preference. Once you do so you will notice that in the Temporal Graph view, the red bar around the blink will become larger to also include the blink-saccade surrounding the blink. 
You can now output a report which includes all saccades within the "target_period" interest period by doing the following:
1) First click on the “Preferences” tab of the Inspector window. Click on “Output / Analysis” in the top panel and in the bottom panel select “Time Scale: IP Relative”. This setting will make the timing of events in the report become relative to the start of the interest period i.e. time zero of all events in the report will be the SACCADE_TARGET onset. This is important as it will allow the latency of the primary saccade to be determined.
2) Click on Analysis > Reports > Saccade Report (from the top menu bar) and include the following variables (amongst others you might be interested in):
 
CURRENT_SAC_INDEX
CURRENT_SAC_START_INTEREST_AREA_LABEL
CURRENT_SAC_DIRECTION
CURRENT_SAC_ANGLE
CURRENT_SAC_AMPLITUDE
CURRENT_SAC_START_TIME
CURRENT_SAC_END_TIME
TRIAL_SACCADE_TOTAL
target_direction
expected_direction
type

For the first 8 variables above, clicking on each variable provides a description below it. The last 3 variables are ones which were created by the Experiment Builder script and include some experiment data source variables. For an illustration of how the CURRENT_SAC_ANGLE variable works please take a look at the Data Viewer manual (click on Help > Contents to open the manual) and navigate to the section: Data Analysis and Output > Saccade Report > Note 2. The saccade report will contain one row of data, per saccade, per trial, per participant.
If you look at the resulting Data Viewer report by opening it in Excel you will notice that very small saccades (such as the second saccade of trial 4 for participant p1 and the second saccade of trial 5 for participant p1) are too small to have a meaningful direction, so CURRENT_SAC_DIRECTION for such saccades is shown as a dot (missing value). In this report you can see what happened to all saccades after the SACCADE_TARGET onset. For instance, in trial 1 of participant p1, the first saccade which started inside the CENTRAL_IA interest area (i.e., close to the middle of the screen), moved to the right (CURRENT_SAC_DIRECTION = RIGHT) in the direction of the target (target_direction = RIGHT) and in the expected direction (type = pro; expected_direction = RIGHT). The saccade amplitude was 9.24 degrees of visual angle and its start latency was 228ms.

   

From this Excel file you can also observe for instance, that trial 7 of participant p2 is an anti-saccade trial (type = anti). Target direction is LEFT, expected direction is RIGHT, however the participant hesitates and after making an erroneous large initial saccade from the centre to the left target (CURRENT_SAC_INDEX = 1; CURRENT_SAC_START_INTEREST_AREA_LABEL = CENTRAL_IA; CURRENT_SAC_DIRECTION = LEFT; CURRENT_SAC_AMPLITUDE = 9.49), corrects with the next(larger) saccade, in the correct direction i.e, to the right, opposite the target (CURRENT_SAC_INDEX = 2; CURRENT_SAC_DIRECTION = RIGHT; CURRENT_SAC_AMPLITUDE = 15.7).
 
Reaction Time Events:
Data Viewer allows users to automatically flag the first saccade which satisfies specific criteria so you can include this information in  reports. You can do this by setting a “Reaction Time Event” as follows: click on Analysis > Reaction Time Manager (from the top menu bar). In the Reaction Time Definition Manager window click on the icon which looks like a sheet of paper (“New RT Definition”) to open the Reaction Time Definition Editor. Select “Saccade Event” in the "End Event Type" drop-down menu. Click on the “Reaction Time” tab and in the field beside “Start Time Message Text:” enter SACCADE_TARGET (this is the message sent by the demo experiment when the saccade target was shown). In the field beside "Minimum Saccadic Amplitude" you can enter 5, or whatever value in degrees of visual angle you want to have as the smallest saccade amplitude to identify the primary saccade. Click OK twice to close the reaction time windows. If you look at the "Temporal Graph" view again, you should see the primary saccade which satisfies the criteria above identified with a red vertical line on its left side (at the start of the primary saccade). Therefore, for those trials which contain a saccade that satisfies the Reaction Time Event criteria the primary saccade will be identified as shown below.

   

You can re-generate the saccade report and include the CURRENT_SAC_IS_RT_END variable which identifies the primary saccade. In the resulting Excel file report, if you look at participant p1, trial 10 you can see that there is only one sacade within the interest period  (CURRENT_SAC_INDEX = 1). This saccade has CURRENT_SAC_START_INTEREST_AREA_LABEL = CENTRAL_IA, CURRENT_SAC_IS_RT_END = TRUE and its CURRENT_SAC_DIRECTION is the same as “expected_direction”. So this has been identified as the primary saccade, was the first saccade after SACCADE_TARGET onset, started in the middle, had an amplitude of at least 5 degrees and was made in the correct direction. In trial 7 of participant p3, the first saccade was smaller than 5 degrees. The second saccade was large enough to be picked up by the reaction time definition and was in the correct direction. Trial 10 of participant p3 on the other hand had no saccades which were 5 degrees or larger after SACCADE_TARGET onset as both saccades have CURRENT_SAC_IS_RT_END = FALSE.
You can check whether any anticipatory saccades were made before the SACCADE_TARGET onset by setting a new Interest Period and adjusting the Reaction Time Event: Create a new Interest Period, call it “pre_target” and use the start-time message CENTRAL_FIXATION and end-time message SACCADE_TARGET. Then click on Analysis > Reaction Time Manager and edit the existing reaction time definition (new RT: 01) by clicking on it and click on the “Edit Selected RT Definition” icon. Click on the “Reaction Time” tab and change the “Start Time Message Text:” field to CENTRAL_FIXATION. Click OK twice to close the reaction time windows. 

If you click on trial 10 of participant P3 in the Inspector, you can see an anticipatory saccade before the SACCADE_TARGET onset in the temporal graph view which is identified by the reaction time definition as it is 5 degrees or larger (there is a vertical red line at the start of the saccade).

   

If you output a saccade report (Analysis > Reports Saccade report) and include the same variables as before, you will see a list of saccades which occurred between CENTRAL_FIXATION and SACCADE_TARGET. There is one saccade identified in trial 10 of participant p3 and its CURRENT_SAC_IS_RT_END value is TRUE so this anticipatory saccade was large enough to be considered as an anticipatory primary saccade by the reaction time definition.


Attached Files
.ebz   ProAntiSaccade.ebz (Size: 44.89 KB / Downloads: 1)