Return to the Continuous Performance Test, Identical Pairs (CPT-IP) page
___________________________________________________________________________________________________________________	

								CONTINUOUS PERFORMANCE TASK - IDENTICAL PAIRS (CPT-IP) 
								(4-digit numbers, 2 visual distraction conditions optional)
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
				script is in part based on Millisecond Software's IMTDMT.iqx by David Nitz
Date: 12-06-2013
last updated:  07-01-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 07-01-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements a subset of the CPT-IP, a test of sustained and selective attention.

Reference:

Cornblatt, B. A., Risch ,N. J., Faris,G., Friedman,D.& Erlenmeyer- Kimling, L. (1988). The continuous performance test, 
identical pairs version (CPT-IP): I. New findings about sustained attention in normal families. 
Psychiatry Research 26, 223-238.

The default variant of the CPT-IP implemented: 4-digit numbers without distractions (default)
2 number distraction conditions are optional: 4-digit number overlapping/4-digit number surrounded by stars

Adjustments to z-scores as described 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)

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
Participants work through several conditions of a Continuous Performance Task with the task to identify identical pairs. 
Participants are presented a continuous stream of 4-digit numbers, one at a time, in the middle of the
screen at a fairly fast presentation rate. The task is to press a response key any time a number is repeated
(=target; Go trials). For non-repeating stimuli, including lures that look similar to the previous stimulus (= catch stimulus),
participants are instructed to wait for the next target (NoGo trials).

2 visual distraction conditions can be added: (A) using overlapping 4-digit numbers and (B) using stars around the the 4-digit numbers

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

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

(1) Raw data file: 'cpt_ip_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.
									
trialtype:							stores the type of the trial: 1 = target; 2 = catch; 3 = filler
stim:								the currently presented 4-digit number
response:							the participant's response (scancode of response code or 0 = no response)
correct:							the correctness of the response (1 = correct; 0 = otherwise)
latency: 							the response latency in ms (measured from onset of stimulus)


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

computer.platform:					the platform the script was run on (win/mac/ios/android)
script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					assigned subject id number
script.groupid:						assigned group id number
script.sessionid:					assigned session id number
script.elapsedtime:					time it took to run script (in ms); measured from onset to offset of script
script.completed:					0 = script was not completed (prematurely aborted); 
									1 = script was completed (all conditions run)

Note: N = Numbers Condition

list.hit_N.itemcount:				the number of target (signal) trials run in the N = Numbers condition
H_N:								Hit rate in the N = Numbers condition
M_N:								Miss rate in the N = Numbers condition

list.FAcatch_N.itemcount:			the number of catch (noise) trials run in the N = Numbers condition
FAc_N:								False Alarm catch rate in the N = Numbers condition
CRc_N:								Correct Rejection catch rate in the N = Numbers condition

RandomError_N.itemcount:			the number of filler trials run in the N = Numbers condition (filler = obviously different numbers)
RandomErrors_N:						Error-Response Rate to filler trials in the N = Numbers condition
CRf_N:								Correct Rejection filler rate in the N = Numbers condition

meanrt_hit_N:						mean reaction time of hits in the N = Numbers condition
meanrt_fa_N:						mean reaction time of false alarms in the N = Numbers condition
meanrt_randomerrors_N: 				mean reaction time of random errors (Filler trials) in the N = Numbers condition

Note: z-score calculations: adjustments (see Gregg & Sedikides, 2010, p.148)
If the hit rate / FA rate is 0 => 0.005 is used instead (aka 0.005 is added to the hit/FA rate)
IF the hit rate / FA rate is 1.0 => 0.995 is used instead (aka 0.005 is subtracted fro
m the hit/FA rate)
zhits_N:							z-score of the hit rate
zFAs_N:								z-score of the false alarm rate
dprime_N:							stores d' (parametric measure of discriminability) for Numbers condition
									(expressions.z_Hit-expressions.z_Fa)
beta_N:								stores ß (beta) (parametric measure of bias) for Numbers condition


IF distractor conditions are to be run: add the corresponding values for the remaining distractor conditions:
NO = overlapping numbers 
NS = starred numbers

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________
By default, this script runs 
1. 1 Practice Block of 50 trials
2. 1 Number Block (no distractions) of 150 trials
target trials: 30
catch trials: 28
filler trials: 92

!!!Note:
This script can also run 2 distraction conditions:
(A) degraded numbers: numbers are partly overlapping (block.numbers_overlap)
(B) starred numbers: numbers are surrounded by a circle of 5 randomly placed stars (block.numbers_stars)

To add distraction conditions, go to section EXPERIMENT

Trials: 3 types
1. Filler trials: not repeating, look different (at least 2 digits differ) from previous stimulus
2. Target trials: repeat previous stimulus
3. Catch trials: similar to previous stimulus (only 1 digit differs)

- Target and Catch trials call filler items => at least one filler item in between targets
- the numbers are presented for 50ms (editable value) and then blacked-out for 950ms => SOA = 1000ms
Participants have the entire 1000ms to respond

Notes: 
If distractor conditions are run, summary statistics need to be added to data files accordingly

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________
white 4-digit numbers (can repeat digits) on a black background in monospaced 'Courier New'.
(a monospaced font was chosen to ensure that all digits get the same screen space)
Size can be adjusted via Editable Parameters - > parameters.height_digits

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________
Instructions are provided by Millisecond Software LLC in the form of html pages which can be edited.
They are not original to Cornblatt et al (1988).
-> 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:

/responsekey:						response key (default: spacebar as " ")

/height_digits:						defines the fontsize of the digits in screen height percentage (default: 20%)
										Note: Cornblatt et al (1988) used the following sizes on their machine
												Numbers:
												- ~each letter 1.5cm wide
												- ~each letter 2.2 cm high
												- ~8cm wide altogether
										(on a 15inch monitor, 20% roughly translates into the suggested sizes)

/height_stars:						defines the size of the distractor stars in screen height percentage (default: 10%)

/getreadyduration:					the duration (in ms) of the get-ready trial (default: 2000ms)
/stimulusduration:					presentation duration (in ms) of the targets (default: 50ms)

/blackoutduration:					interstimulusduration in ms (default: 950ms)			
											=> note: stimulusduration and interstimulusduration together provide a 
											stimulus onset asynchrony (SOA) = 1000ms
											
/minhdist:							minimum number of digits that need to differ between a new filler stimulus and a 
									previous stimulus -comparison is done by comparing digits at the same position (default: 2)

/debugmode:							1 = runs debugmode; 0 = runs test mode