Return to the Continuous Performance Test page
						
									CONTINUOUS PERFORMANCE TEST (CPT)

SCRIPT INFO

last updated: 01-04-2018 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC
Copyright © 01-04-2018 Millisecond Software


BACKGROUND INFO

											*Purpose*
This script implements the Continuous Performance Test as described 
in:

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 (10 minutes per task). 
Odd numbered participants are assigned the shorter child's version (5 minutes per task).



											  *Task*
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.


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

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

build:								Inquisit build
computer.platform:					the platform the script was run on
date, time, subject, group:			date and time script was run with the current subject/groupnumber (odd -> short version; even -> long version)
blockcode, blocknum:				the name and number of the current block
trialcode, trialnum: 				the name and number of the currently recorded trial
										(Note: not all trials that are run might record data; by default data is collected unless /recorddata = false is set for a particular trial/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_xpractice:				counts the number of practice blocks run for phase AX
/blockcount_xtest:					counts the number of test blocks run for phase AX


stimulusitem:						here: the particular letter presented
response							the scancode for the key that was pressed (if any)
latency								the response time in milliseconds
correct								whether the response was correct: 1 = correct; 0 = error

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

/xtestcommissionerrorcount			number of false alarms during Phase X
/xtestcommissiontrialcount			counts all non-signal (= non target) trials during Phase X
/xtestcommissionerrorrate			commission rate during Phase X

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

/axtestcommissionerrorcount			number of false alarms during Phase AX
/axtestcommissiontrialcount			counts all non-signal (= non target) trials during Phase AX
/axtestcommissionerrorrate			commission rate during Phase AX

(2) Summary data file: 'CPTRosvold_summary*.iqdat' (a separate file for each participant)

script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					subject id number
script.groupid:						group id number: odd -> short version; even -> long version
script.elapsedtime:					time it took to run script (in ms)
computer.platform:					the platform the script was run on
/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_xpractice:				counts the number of practice blocks run for phase AX
/blockcount_xtest:					counts the number of test blocks run for phase AX

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

/xtestcommissionerrorcount			number of false alarms during Phase X
/xtestcommissiontrialcount			counts all non-signal (= non target) trials during Phase X
/xtestcommissionerrorrate			commission rate during Phase X

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

/axtestcommissionerrorcount			number of false alarms during Phase AX
/axtestcommissiontrialcount			counts all non-signal (= non target) trials during Phase AX
/axtestcommissionerrorrate			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
- 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)
- 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%)
Copyright © Millisecond Software. All rights reserved.
Contact | Terms of Service | Privacy Statement | Security Statement | GDPR