User Manual: Inquisit Continuous Performance Test - Short version


___________________________________________________________________________________________________________________	

									CONTINUOUS PERFORMANCE TEST (CPT) - Hebrew Version
									*short version*
___________________________________________________________________________________________________________________

last updated:  09-24-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC
Script Copyright © 09-24-2024 Millisecond Software

Millisecond Software thanks Ilana Hairston (hanahai@telhai.ac.il) for sharing the Hebrew translations!

Note from Ilana Hairston:
This script was adapted to be used in Hebrew.  Some of the instructions are hidden due to problems with 
display of Hebrew fonts. If you want to edit the text, copy and paste the element into any simple text editor, 
make the changes and then paste back into Inquisit.
GOOD LUCK!

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements the Continuous Performance Test, a test of sustained and selective attention.
This script implements the short version of the task (suitable for children).

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).

___________________________________________________________________________________________________________________
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

___________________________________________________________________________________________________________________	
DATA OUTPUT DICTIONARY
___________________________________________________________________________________________________________________	
The fields 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"

blockCountXPractice:				counts the number of practice blocks run for phase X
blockCountXTest:					counts the number of test blocks run for phase X
blockCountAxPractice:				counts the number of practice blocks run for phase AX
blockCountAxTest:					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)

blockCountXPractice:			counts the number of practice blocks run for phase X
blockCountXTest:				counts the number of test blocks run for phase X
blockCountAxPractice:			counts the number of practice blocks run for phase AX
blockCountAxTest:				counts the number of test blocks run for phase AX

xTestSignalTrialCount:				counts all signal (=target) trials during Phase X
xTestMissCount :					number of errors when X was presented but no response was given during Phase X
xTestMissRate :						omission rate during Phase X
xTestHitRate:						hit rate during Phase X

xTestNoiseTrialCount:				counts all non-signal (= non target) trials during Phase X
xTestFalseAlarmCount:				number of false alarms during Phase X
xTestFalseAlarmRate:				commission rate during Phase X
xTestCorrRejectRate:				correct rejection rate during Phase X

/////signal detection measures:
zHitRatextest: 						the calculate z-score of the hitRate during Phase X
zFARaTextest:						the calculated z-score of the falseAlarm/commission rate during Phase X
					
Note: *Adjustments to z-scores as recommended by:
Gregg, A. & Sedikides, C. (2010). Narcissistic Fragility:
Rethinking Its Links to Explicit and Implicit Self-esteem, Self and Identity, 9:2, 142-161 (p.148)										
=> Adjustments are made if the  FArate (hitRate) = 0 (increased to 0.005) or 1 (decreased to 0.995)*

dPrimeXTest:		Computes d' (parametric measure of discriminability btw. signals and noise)
					=> Range (in this script): 
					-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)
					=> The higher the value, the better signals (go stims) were overall distinguished from noise (nogo stims)
					(d' = 0: chance performance; negative d-primes: participant treated nontargets as targets and targets as nontargets)
					
								
cXTest: 			c-criterion in signal detection:The absolute value of c provides an indication of the strength of
					the response bias/response style
					negative: participant more likely to report that signal is present (liberal response style);
					may favor faster responding in speed-accuracy trade-off response paradigms
					positive: favoring caution (conservative response style)
					
					
axTestSignalTrialCount:				counts all signal (=target) trials during Phase AX
axTestMissCount:					number of errors when X was presented but no response was given during Phase AX
axTestMissRate:						omission rate during Phase AX
axTestHitRate:						hit rate during Phase AX

axTestNoiseTrialCount:				counts all non-signal (= non target) trials during Phase AX
axTestFalseAlarmCount:				number of false alarms during Phase AX
axTestFalseAlarmRate:				commission rate during Phase AX
axTestCorrRejectRate:				correct rejection rate during Phase AX

/////signal detection measures:
zHitRateAXTest: 	the calculate z-score of the hitRate during Phase AX
zFARateAXTest:		the calculated z-score of the falseAlarm/commission rate during Phase AX

dPrimeAXTest:		d' for Phase AX													
cAXTest: 			calculated c-criterion for Phase AX
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________

(1) phase "X":
- 2 blocks practice
- 10 (short version) test blocks (duration of test blocks: ~ 5min total for short 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) test blocks
- each block runs 31 letters with: 6 targets (target = letter X that follows an A)  ~ 5min total for short 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%)