Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 29, 2020
Last Modified: January 21, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Contextual Cueing Task (Chun et al, 1998), a task that aims to understand how contextual information influences visual attention.
Chun, M.M. and Jiang, Y. (1998) Contextual cueing: implicit learning and memory of visual context guides spatial attention. Cognit. Psychol., 36, 28–71
40 minutes
Participants see displays of 11 "L" and one "T" (the target). The 12 items are presented within a 8x6 matrix in in four different colors (red, green, blue, yellow). Distractor items can be rotated by 0, 90, 180 or 270degrees. The target T can be rotated by 90deg (-> points to the right) or by 270degrees (-> points to the left). Participants have to press a left key (here: A) if the T points to the left and a right key (here: L) when the T points to the right.
(1) Practice
- 24 trials (practice trials show unique scenes)
(2) Test: 30 blocks (a set of 5 consecutive blocks is grouped into one 'epoch' -> a total of 6 epochs is run)
- each block runs 12 OLD scenes and 12 NEW scenes (24 trials)
- at the end of each block participants are given a minimum of 10s to rest
Trial Sequence:
- fixation cross for 500ms
- display 'scene' until response
- correct/errorfeedback via soundfiles
- intertrial interval for 1000ms
Explanation of scene (and their generation):
Scene:
- 12 items (1 target + 11 distractors) located in a 8x6 matrix (each generated scene uses a UNIQUE spatial configuration for the items)
=> items appear in each 8x6 location, slightly jittered from the center
- 4 colors: red, green, blue, yellow (each color appears 3 times in each scene)
- target (T) is either oriented 90degress to the left (=270degrees) or 90degrees to the right (randomly determined for each trial)
- distractors (L) can be rotated by 4 angles (0, 90, 180, 270deg)
Old Scenes:
- 12 old scenes generated at beginning of the script - they are repeatedly used throughout the experiment
- the target appears in a different position for each of the 12 scenes
- the target appears equally often in each color
- The old scenes stay the same each time they are presented throughout the experiment:
same locations for targets/distractors, same color for targets/distractors, same angles for distractors
EXCEPT for the angle of the target (that is randomly decided each time the scene is presented)
New Scenes:
- targets appear in 12 dedicated locations
=> the same 12 target locations for NEW targets are used in each block
(the colors of the targets in those locations also stay the same across the experiment)
( 12 locations are assigned to OLD scenes, different 12 locations are assigned to NEW scenes)
- distractor positions change from scene to scene (this is the defining difference to OLD scenes)
- distractor colors change from scene to scene
Algorithm to generate unique scene locations/configurations:
- establish the target location
- then randomly sample the distractor locations out of the remaining 47 possible locations
- order the locations from smallest to largest
- check if this 'configuration' has been used before
- if used before: repeat process until a unique spatial configuration has been found OR
1000 unsuccessful attempts have been made (in this case values.repeatConfigurations will be set to 1)
Color Assignment (red, green, yellow, blue):
- across one block: the target appears in each color three times in the New configurations
- across one block: the target appears in each color three times in the Old configurations
=> across one block of 24 trials: the target appears in each color 6 times
Angle Assignment:
- Targets: for each trial it is randomly (with replacement) decided whether the target angle is 90 degree (left) or 270 degrees (right);
this is the case for Old and New configurations ( the target can have different rotation angles in the same Old scene)
- Distractors: each distractor gets randomly (with replacement) assigned angle of 0, 90, 180, or 270 degrees
=> each angle has the same probability to be sampled (frequencies of angles will likely vary)
provided by Millisecond - can be edited under section Editable Stimuli
provided by Millisecond - can be edited under section Editable Instructions
Instructions are not original to the task. They are provided by Millisecond
as htm/html pages.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).
File Name: contextualcueingtask_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| propCorrectOldOverall | Proportion correct for OLD scenes across all test blocks |
| meanCorrRTOldOverall | Mean correct response time (in ms) for OLD scenes across all test blocks |
| propCorrectOldEpoch1 | Proportion correct for Old Epoch1 |
| meanCorrRTOldEpoch1 | Mean correct RT for Old Epoch1 |
| propCorrectOldEpoch2 | Proportion correct for Old Epoch2 |
| meanCorrRTOldEpoch2 | Mean correct RT for Old Epoch2 |
| propCorrectOldEpoch3 | Proportion correct for Old Epoch3 |
| meanCorrRTOldEpoch3 | Mean correct RT for Old Epoch3 |
| propCorrectOldEpoch4 | Proportion correct for Old Epoch4 |
| meanCorrRTOldEpoch4 | Mean correct RT for Old Epoch4 |
| propCorrectOldEpoch5 | Proportion correct for Old Epoch6 |
| meanCorrRTOldEpoch5 | Mean correct RT for Old Epoch6 |
| propCorrectOldEpoch6 | Proportion correct for Old Epoch6 |
| meanCorrRTOldEpoch6 | Mean correct RT for Old Epoch6 |
| propCorrectNewOverall | Proportion correct for NEW scenes across all test blocks |
| meanCorrRTNewOverall | Mean correct response time (in ms) for NEW scenes across all test blocks |
| propCorrectNewEpoch1 | Proportion correct for New Epoch1 |
| meanCorrRTNewEpoch1 | Mean correct RT for New Epoch1 |
| propCorrectNewEpoch2 | Proportion correct for New Epoch2 |
| meanCorrRTNewEpoch2 | Mean correct RT for New Epoch2 |
| propCorrectNewEpoch3 | Proportion correct for New Epoch3 |
| meanCorrRTNewEpoch3 | Mean correct RT for New Epoch3 |
| propCorrectNewEpoch4 | Proportion correct for New Epoch4 |
| meanCorrRTNewEpoch4 | Mean correct RT for New Epoch4 |
| propCorrectNewEpoch5 | Proportion correct for New Epoch6 |
| meanCorrRTNewEpoch5 | Mean correct RT for New Epoch6 |
| propCorrectNewEpoch6 | Proportion correct for New Epoch6 |
| meanCorrRTNewEpoch6 | Mean correct RT for New Epoch6 |
File Name: contextualcueingtask_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| targetLocationsOld | String variable that stores all the target locations used for the OLD scenes |
| targetLocationsNew | String variable that stores all the target locations used for the NEW scenes |
| blockCount | Custom test block counter |
| epoch | 1-6 ( each set of 5 consecutive test blocks make up one epoch) |
| trialCountPerBlock | Custom trial counter for each block |
| category | 0 = practice trial; 1 = OLD scene; 2 = NEW scene |
| old | 1-12 |
| angleT | 90 vs. 270 (the randomly generated angle of the target T) |
Dv |
|
| response | The participant's response (scancode of response button) 30 = A 38 = L |
| correct | Accuracy of response: 1 = correct response; 0 = otherwise |
| latency | The response latency (in ms); measured from: onset of display |
Scene Information |
|
| configuration | Stores the ordered locations of the currently presented scene ( each location uses 2 digits) |
| repeatConfiguration | 1 = flag: the current spatial configuration is a repeat of a previous one (should not happen and if so very rarely) 0 = the current spatial configuration is unique |
| positionT | The position (1-48) assigned to the Target |
| positionD1 | The position (1-48) assigned to Distractor1 |
| positionD2 | The position (1-48) assigned to Distractor2 |
| positionD3 | The position (1-48) assigned to Distractor3 |
| positionD4 | The position (1-48) assigned to Distractor4 |
| positionD5 | The position (1-48) assigned to Distractor5 |
| positionD6 | The position (1-48) assigned to Distractor6 |
| positionD7 | The position (1-48) assigned to Distractor7 |
| positionD8 | The position (1-48) assigned to Distractor8 |
| positionD9 | The position (1-48) assigned to Distractor9 |
| positionD10 | The position (1-48) assigned to Distractor10 |
| positionD11 | The position (1-48) assigned to Distractor11 |
| colorT | The color assigned to the Target |
| colorD1 | The color assigned to Distractor1 |
| colorD2 | The color assigned to Distractor2 |
| colorD3 | The color assigned to Distractor3 |
| colorD4 | The color assigned to Distractor4 |
| colorD5 | The color assigned to Distractor5 |
| colorD6 | The color assigned to Distractor6 |
| colorD7 | The color assigned to Distractor7 |
| colorD8 | The color assigned to Distractor8 |
| colorD9 | The color assigned to Distractor9 |
| colorD10 | The color assigned to Distractor10 |
| colorD11 | The color assigned to Distractor11 |
| angleT | The angle assigned to the Target |
| angleD1 | The angle assigned to Distractor1 |
| angleD2 | The angle assigned to Distractor2 |
| angleD3 | The angle assigned to Distractor3 |
| angleD4 | The angle assigned to Distractor4 |
| angleD5 | The angle assigned to Distractor5 |
| angleD6 | The angle assigned to Distractor6 |
| angleD7 | The angle assigned to Distractor7 |
| angleD8 | The angle assigned to Distractor8 |
| angleD9 | The angle assigned to Distractor9 |
| angleD10 | The angle assigned to Distractor10 |
| angleD11 | The angle assigned to Distractor11 |
Remaining Variables Stored In The Performance Metricsfile Used For Internal Debugging Purposes |
|
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| matrixSize | The 8x6 matrix uses 80% of the active canvas height and 80% of the active canvas width | 80% |
| stimFontSize | The proportion of the T/L fontsize relative to the height of a matrix box Example: matrixSize = 80% of active canvas Height, 6 rows of stimuli height of matribox = 80%/6 = 13.333% of the active canvas stimFontSize = 0.8 * 13.333% = 10.67% of the active screen canvas ! if size is increased, the current jitter algorithm of dispersing the letters slightly within their matrix boxes may not work as implemented | 0.8 |
| fixationSize | The percentage size (to active screen canvas) of the fixation cross | 10% |
Duration Parameters |
||
| readyDuration | The duration (in ms) of the get ready trial | 3000 |
| fixationDuration | The duration (in ms) of the fixation cross | 500 |
| iti | The intertrial interval (in ms) (default; 1000ms) | 1000 |
| breakDuration | The minimum break duration in ms | 10000 |
Response Key Parameters |
||
| leftKey | The left response key | "A" |
| rightKey | The right response key | "L" |