User Manual: Inquisit Letter Wheel Task (session 3)


___________________________________________________________________________________________________________________	

										*Letter Wheel Task*
					(Note: this runs the Letter Wheel Task with instructions for sessions 3+)
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 12-07-2020
last updated:  02-24-2022 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 02-24-2022 Millisecond Software

Millisecond Software thanks Dr. Eric Altmann and his lab for collaborating on this script!

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	

This script implements the Letter Wheel task (Burgoyne et al, 2019), a test of spacekeeping abilities that
taps primarily spatial mechanisms.

Reference:

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

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________	

Participants are presented with a circle of 9 letters randomly placed in 9 possible circle positions 
(Note: 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.

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 25 minutes to complete

___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________		
The default data stored in the data files are:

(1) Raw data file: 'letterwheel_session3_raw*.iqdat' (a separate file for each participant)*


build:						The specific Inquisit version used (the 'build') that was run
computer.platform:			the platform the script was run on (win/mac/ios/android)
date, time: 				date and time script was run 
subject, group: 			with the current subject/groupnumber
session:					with the current session id

blockcode, blocknum:		the name and number of the current block (built-in Inquisit variable)
trialcode, trialnum: 		the name and number of the currently recorded trial (built-in Inquisit variable)
								Note: 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
trialCount_perblock:		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 (Note: 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
							4 = potentially random input of letters
 
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 data recording trials:									
response:					the participant's response (scancode of response button)
							Example: 
							spacebar = 57, b = 48, c = 47, d = 32 etc.
							Note: 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)
							Note: 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
									
									
(2) Summary data file: 'letterwheel_session3_summary*.iqdat' (a separate file for each participant)*

inquisit.version:				Inquisit version run
computer.platform:				the platform the script was run on (win/mac/ios/android)
startDate:						date script was run
startTime:						time script was started
subjectid:						assigned subject id number
groupid:						assigned group id number
sessionid:						assigned session id number
elapsedTime:					time it took to run script (in ms); measured from onset to offset of script
completed:						0 = script was not completed (prematurely aborted); 
								1 = script was completed (all conditions run)
									
countAlphabet:					number of times the alphabeth was requested across test blocks

list.interruptions.mean:		mean number of trials run before an interruption
																		
nTrials_overall:				the number of letterwheel test trials run (across all blocks)
nCorrect_overall:				the number of correct letterwheel test trials (across all blocks)
nSequenceErrors_overall:		the number of sequence errors -errortype 1/2- made (across all blocks)  
corrRT_overall:					the mean response time for entering a correct letterwheel solution

(+ separate variables for block1/block2)
							
							
* separate data files: to change to one data file for all participants (on Inquisit Lab only), go to section
"DATA" and follow further instructions

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

(1) Intro: introduction

(2) Practice: 20 practice letterwheel trials
- 3 interruptions (each interruption runs 5 star trials)
Note: 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 (Note: 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)

**The number of trials (N) before an interruption occurs is calculated by:
N = B + floor(-ln(U(0, 1))/R) (see expressions.generateNextInterruption)

B = 4 (see parameters.MinTestRun)
R = .288 is the rate parameter for the exponential distribution, 
U(0, 1) is a random sample from a uniform distribution bounded by 0 and 1.

The average number of uninterrupted trials before an interruption (N) sampled with this equation is
~7.
 
___________________________________________________________________________________________________________________
STIMULI
___________________________________________________________________________________________________________________

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.

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
provided by Millisecond Software - can be edited under section Editable Instructions
The provided instructions are based on the originals provided by Dr. Eric Altmann
___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________	
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code 
to further customize your experiment.

The parameters you can change are: