User Manual: Inquisit Continuous Performance Test


___________________________________________________________________________________________________________________	

									CONTINUOUS PERFORMANCE TEST (CPT)
___________________________________________________________________________________________________________________

last updated:  02-21-2022 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC
Script Copyright © 02-21-2022 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements the Continuous Performance Test, a test of sustained and selective attention.

Reference:

Rosvold, H.E., Mirsky, A., Sarason, M., Bransome, E.D., Jr., and Beck, L.H. A Continuous
Performance Test of brain damage. Journal of Consulting Psychology, 20, 343 (1956).

Even numbered  participants are assigned the longer adult version
Odd numbered participants are assigned the shorter child's version

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________	
Participants get presented a sequence of letters (one-by-one).
Task1: press the Spacebar whenever the letter is an X
Task2: press the Spacebar whenever the letter is an X that follows an A.

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
short version: the default set up takes appr. 15min to run
long version: the default set up takes appr. 25min to run

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

(1) Raw data file: 'cpt_rosvold_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 such as feedback trials. Thus, trialnum 
										may not reflect the number of main trials run per block. 
										
phase:								current phase of the procedure: "x practice" vs. "x test", "ax practice" vs. "ax test"

blockcount_xpractice:				counts the number of practice blocks run for phase X
blockcount_xtest:					counts the number of test blocks run for phase X
blockcount_axpractice:				counts the number of practice blocks run for phase AX
blockcount_axtest:					counts the number of test blocks run for phase AX

previousLetter:						the letter presented in the previous trial
currentLetter:						the letter presented in the current trial

response							the scancode for the key that was pressed (if any)
									57 = spacebar press; 
									0 = noresponse
									
correct								whether the response was correct: 1 = correct; 0 = error
latency								the response time in milliseconds; measured from onset of letter

(2) Summary data file: 'cpt_rosvold_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)

blockcount_xpractice:				counts the number of practice blocks run for phase X
blockcount_xtest:					counts the number of test blocks run for phase X
blockcount_axpractice:				counts the number of practice blocks run for phase AX
blockcount_axtest:					counts the number of test blocks run for phase AX

xtestsignaltrialcount:				counts all signal (=target) trials during Phase X
xtestomissionerrorcount :			number of errors when X was presented but no response was given during Phase X
xtestomissionerrorrate :			omission rate during Phase X

xtestnoisetrialcount:				counts all non-signal (= non target) trials during Phase X
xtestcomissionerrorcount:			number of false alarms during Phase X
xtestcomissionerrorrate:			commission rate during Phase X

axtestsignaltrialcount:				counts all signal (=target) trials during Phase AX
axtestomissionerrorcount:			number of errors when X was presented but no response was given during Phase AX
axtestomissionerrorrate:			omission rate during Phase AX

axtestnoisetrialcount:				counts all non-signal (= non target) trials during Phase AX
axtestcomissionerrorcount:			number of false alarms during Phase AX
axtestcomissionerrorrate:			commission rate during Phase AX

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________
long version (even groupnumbers)/short version (odd groupnumbers)

(1) phase "X":
- 2 blocks practice
- 10 (short version)/20 (long version) test blocks (duration of test blocks: ~ 5min total for short version/ ~10 min total for long version)
- each blocks runs 31 letters with 8 targets (order is randomly determined)
- the no-target letters are selected randomly WITH replacement from item.xletters

(2) phase "AX"
- 2 blocks practice
- 10 (short version)/20 (long version) test blocks
- each block runs 31 letters with: 6 targets (target = letter X that follows an A)  ~ 5min total for short version/ ~10 min total for long version)
- the no-target letters are selected randomly WITH replacement from item.axletters (with the constraint that no A is followed by an X)
Note: in this script, any letter can precede an X (including X itself); any letter can follow an A (including A itself);
the number of 'no-signal As' as well as 'no target Xs' are randomly determined per block

Trial Sequence:
letter (690ms)-> ISI: blank screen (230ms)-> letter....
response is accepted until end of letter duration
(trial timings can be edited under section Editable Parameters)
	
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
see section Editable Instructions

___________________________________________________________________________________________________________________	
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:

/resttime:							the time of the rest duration in ms (default: 120000ms => 2 min)
/letterDuration:					duration of the letters in ms (default: 690ms) (time to respond)
/isi:								interstimulus interval (= blank screen) in ms (default: 230ms)

/letterHeight:						the size (proportional to canvas height) of the the letters (default: 8%)