Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Credits:
Millisecond thanks Dr. Eric Altmann and his lab for collaborating on this script!
Created: January 07, 2020
Last Modified: January 08, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Letter Wheel task (Burgoyne et al, 2019), a test of spacekeeping abilities that taps primarily spatial mechanisms.
Burgoyne, A.P., David Z. Hambrick, D.Z. & Erik M. Altmann, E.M. (2019). Placekeeping Ability as a Component of Fluid Intelligence: Not Just Working Memory Capacity. The American Journal of Psychology , Vol. 132, No. 4 (Winter 2019), pp. 439-449
25 minutes
Participants are presented with a circle of 9 letters randomly placed in 9 possible circle positions ( the actual letters stay the same across all trials, however their circle positions will change). Participants are asked to alphabetize sequences of 3 adjacent letters ('triplets'). Each trial, the starting letter of the next target triplet shifts clockwise one position around the circle. Participants have to keep track -from one trial to the next- of the position of the first letter of the target triplet even if they are interrupted at random points by 'interruption trials'. During those interruption trials (always 5 trials) participant are presented with 7-9 stars and have to enter the number of stars presented. Only correct responses will allow participants to return to the letterwheel.
(1) Intro: introduction + 6 demo trials (with circles, only correct solutions accepted)
(2) Practice: 25 practice letterwheel trials
- 3 interruptions (each interruption runs 5 star trials)
participants receive circled triplets after the first interruption only
- only correct responses accepted for the letterwheel and the interruption trials
(3) Test: 2 blocks with appr. 63 trials each
- Each block runs 8 interruptions + 1 ( the nineth interruption is the end of the block)**
- interruption trials require a correct response to move on
- the first letterwheel trial only shows the circled letters
• sequence Error: the script establishes which triplet was worked upon and selects the next triplet in sequence
based on erroneous response (that is sequence errors lead to a sequence adjustment)
• nonsequence Error: next triplet is selected in sequence based on current target triplet
(=> no sequence adjustments)
letterwheel:
- 9 letters arranged in a circle, the size of the circle can be adjusted (presented white on black)
stars:
7-9 stars are presented in randomly selected positions of a 8 columns x 6 rows matrix (presented white on black)
(star size can be adjusted under section Editable Parameters)
Error message:
the error message in this script is a flickering white box presented as an animated gif.
The flickering occurs at 100Hz and the stimulus is presented for 200ms.
Edit the errormessage under section Editable Stimuli.
provided by Millisecond - can be edited under section Editable Instructions
The provided instructions are based on the originals provided by Dr. Eric Altmann
File Name: letterwheel_session2_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 |
| countAlphabet | Number of times the alphabeth was requested across test blocks |
| list.interruptions.mean | Mean number of trials run before an interruption |
| nTrialsOverall | The number of letterwheel test trials run (across all blocks) |
| nCorrectOverall | The number of correct letterwheel test trials (across all blocks) |
| nSequenceErrorsOverall | The number of sequence errors -errortype 1/2- made (across all blocks) |
| corrRTOverall | The mean response time for entering a correct letterwheel solution |
| nTrialsBlock1 | The number of letterwheel test trials run in block1 |
| nCorrectBlock1 | The number of correct letterwheel test trials in block1 |
| nSequenceErrorsBlock1 | The number of sequence errors -errortype 1/2- made in block1 |
| corrRTBlock1 | The mean response time for entering a correct letterwheel solution in block1 |
| nTrialsBlock2 | The number of letterwheel test trials run in block2 |
| nCorrectBlock2 | The number of correct letterwheel test trials in block2 |
| nSequenceErrorsBlock2 | The number of sequence errors -errortype 1/2- made in block2 |
| corrRTBlock2 | The mean response time for entering a correct letterwheel solution in block2 |
File Name: letterwheel_session2_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. |
| testBlockCounter | Counts the number of test blocks run |
| countDemoTrials | The number of demo trials run (note: a 'trial' is completed if three letters have been entered) |
| countPracticeTrials | The number of practice trials run |
| trialCountPerBlock | The number of test trials run per block (resets for each block) |
| interruptionCount | The number of interruptions run |
| interruption | Stores the number of trials (+ parameters.MinRunlength) that will be run until the next scheduled interruption |
Letterwheel Variables |
|
| letter1 - letter9 | Stores the letters that appear in the 9 spots in the letter wheel (for reference purposes: '1' sits in the 3 o'clock position) |
| 123 - 912 | Store the alphabetized triplets for all 9 possible letter triplets (for reference purposes: '1' sits in the 3 o'clock position) |
| targetPosition1 | Stores position (1-9) of the first letter of the currently targeted triplet |
| targetPosition2 | Stores position (1-9) of the second letter of the currently targeted triplet |
| targetPosition3 | Stores position (1-9) of the third letter of the currently targeted triplet |
| targetLetter1 | Stores the letter presented in targetPosition1 of the currently targeted triplet |
| targetLetter2 | Stores the letter presented in targetPosition2 of the currently targeted triplet |
| targetLetter3 | Stores the letter presented in targetPosition3 of the currently targeted triplet |
| correctSolution | Stores the alphabetized order of the three target letters |
| countLetters | The number of letters entered ( 3 -> last input for a trial) |
Letterwheel Custom Dvs (Note: Dvs Stored When Values.Countletters = 3) |
|
| responseTriplet | The entered response (the three letters as entered) |
| responseTripletAcc | 1 = the response Triplet is the same as the correct Solution; 0 = otherwise |
| responseTripletRT | The response time (in ms); measured from onset of first letter wheel until third letter is entered |
| errorType | 0 = correct response (correct sequence & correctly alphabetized) 1 = sequence error (wrong triplet selected) but chosen triplet correctly alphabetized 2 = sequence error (wrong triplet selected) and chosen triplet was incorrectly alphabetized 3 = non-sequence error (correct triplet selected) but triplet was incorrectly alphabetized |
| sequenceError | 1 = participant worked on the wrong triplet (errorType1/errorType2) 0 = otherwise |
| nonSequenceError | 1 = any error other than a sequence error (errorType3/errorType4) 0 = otherwise |
| selectedTargetPosition | The starting position of the triplet that participant worked upon Notes 1) the script will use this position to the targetPosition1 clockwiese to the next spot on the letter wheel 2) for errorType4, the script will use the current targetPosition1 as no better triplet could have been established |
Interruption Variables |
|
| starCount | The number of stars presented during one interruption trial |
Built-In Inquisit Dvs For All Performance Metrics Recording Trials |
|
| response | The participant's response (scancode of response button) Example spacebar = 57, b = 48, c = 47, d = 32 etc. scancodes for number buttons look confusing Example: "1" can be represented by scancode 2 or 79 |
| responseText | The translated scancode (example: B for scancode 48) for spacebar (scancode 57), the column will look empty (as it shows a space) For number buttons, it will store the actual number pressed |
| correct | Accuracy of response: 1 = correct response; 0 = otherwise |
| latency | The response latency (in ms) of the current trial Note trial.letterwheel: response time of making current response; measured from onset of letters trial.interruption: response time of hitting the number key; measured from onset of stars |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design |
||
| numberOfInterruptionTrials | The number of star trials to run per interruption | 5 |
| numberDemoTrials | The number of demo trials to run ( demo trials run during instruction block with circles for every trial) | 6 |
| numberOfTestBlocks | The number of letterwheel test blocks to run ( the script only collects summary data for up to 2 blocks) | 2 |
| minRunLength | Minimum number of trials to run before the next interruption (Min: 1) | 4 |
| testTrialRuns | 1 + number of interruptions in the test block | 9 |
Sizing Parameters |
||
| starSize | The proportional sizing of the star (max: 10%) | 3% |
| starSurroundArea | The proportional sizing of the area surrounding the star (max. 10%) | 7% |
Response Keys |
||
| wheelLetter1 | "z" | |
| wheelLetter2 | "x" | |
| wheelLetter3 | "d" | |
| wheelLetter4 | "c" | |
| wheelLetter5 | "t" | |
| wheelLetter6 | "b" | |
| wheelLetter7 | "y" | |
| wheelLetter8 | "h" | |
| wheelLetter9 | "n" | |