Return to the Integrated Visual and Auditory Continuous Performance Test (IVA-CPT) page
___________________________________________________________________________________________________________________	

						 INTEGRATED VISUAL AND AUDITORY CONTINUOUS PERFORMANCE TEST (IVACPT)
___________________________________________________________________________________________________________________

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 01-31-2014
last updated:  03-06-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-06-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements the Integrated Visual and Auditory Continuous Performance Test (IVACPT), 
a test of sustained and selective attention.

Reference:

E. Strauss, E. M. S. Sherman, & O. Spreen (2006). A Compendium of Neuropsychological Tests: Administration, Norms, and Commentary.
3rd ed., Oxford University Press, New York, (p.575-582)

!Note: the script is a best guess effort by Millisecond Software. Differences between the commercially
available IVA+Plus CPT and this script are likely.

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
Participants are presented digits (here: 1 or 2) in visual or auditory form. One of the digits is
defined as the target or GO digit (here: 1), the other digit is the nontarget or NOGO digit (here: 2).
Participants are asked to press the response key (here: Spacebar) whenever they see OR hear a GO digit (here: 1) but
to refrain from responding whenever they see OR hear a NOGO digit (here: 2).

___________________________________________________________________________________________________________________	
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: 'ivacpt_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
script.sessionid:					with the current session id

phase:								"warmup", "practice", "test", "cooldown"

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.
																		
set:								setcount (5 sets of 100 trials are run; each set consists of 2 Blocks of 50 trials)
testblockcount:						counts the number of test blocks run
counttrials_block:					counts the trials run in a block
counttrials_total:					counts the trials run across all test blocks
targetdigit:						stores the digit that is assigned target status

currentdigit:						variable used to select the digit for the current trial
										
modalityType:						1 = visual; 2 = audio
trialtype:							1 = Go; 2 = NoGo								
response:							the participant's response for that trial (lbuttondown = left mouse click)
correct:							the correctness of the response (1 = correct; 0 = otherwise)

latency: 							the response latency in ms;
										Note: for test trials 'RT test' contains the actual response latency
										
rt_test: 							stores the latency (in ms) of the left mouse click in test (and practice) trials 

Hits_V:								cumulative count of Hits in visual trials 
Misses_V:							cumulative count of Misses in visual trial
FAs_V:								cumulative count of False Alarms in visual trials
CRs_V:								cumulative count of Correct Rejections in visual trials

Hits_A:								cumulative count of Hits in audio trials 
Misses_A:							cumulative count of Misses in audio trial
FAs_A:								cumulative count of False Alarms in audio trials
CRs_A:								cumulative count of Correct Rejections in audio trials


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

meanRT_visualbaseline1-
STD_audiobaseline1:					store Mean and standard deviations of visual and auditory response latencies (in ms) for the warm-up baseline (1)
meanRT_visualbaseline2-
STD_audiobaseline2: 				store Mean and standard deviations of visual and auditory response latencies (in ms) for the cool-down baseline (2)

trialcount:							counts the trials run across all test blocks
propcorrect_overall:				the proportion correct responses across all test trials
hitRate_overall:					the overall hit rate across all test trials (=correct responses in Go trials)
hitRate_V:							the overall hit rate across all visual test trials (=correct responses in visual Go trials)
hitRate_A:							the overall hit rate across all auditory test trials (=correct responses in auditory Go trials)
FaRate_overall:						the overall false alarm rate across all test trials (=error responses in NoGo trials)
FaRate_V:							the overall false alarm rate across all visual test trials (=error responses in visual NoGo trials)
FaRate_A:							the overall false alarm rate across all auditory test trials (=error responses in auditory NoGo trials)

meanRT_hits -
meanRT_FAs  						mean latencies in ms of hits and false alarms across and separate for visual (V) and auditory (A) conditions
										Note: see under section Expressions for further summary variables that are calculated and could be
										added to the datafile (e.g. standard deviations)

meanRT_Set12V:						mean latency (in ms) of hits for visual trials in the 1. and 2. sets (combined)
meanRT_Set45V:						mean latency (in ms) of hits for visual trials in the 4. and 5. sets (combined)
meanRT_Set12A:						mean latency (in ms) of hits for auditory trials in the 1. and 2. sets (combined)
meanRT_Set45A:						mean latency (in ms) of hits for auditory trials in the 4. and 5. sets (combined)
meanRT_moretargetV:					mean latency (in ms) of hits for visual trials in high frequency target blocks
meanRT_fewertargetV:				mean latency (in ms) of hits for visual trials in low frequency target blocks
meanRT_moretargetA:					mean latency (in ms) of hits for auditory trials in high frequency target blocks
meanRT_fewertargetA:				mean latency (in ms) of hits for auditory trials in low frequency target blocks

Q1_V:								Q1 (25th percentile) of visual hit latencies in ms
medianRT_hits_V:					visual hit latency (in ms) median (50th percentile)
Q3_V:								Q3 (75th percentile) of visual hit latencies in ms
Q1_A:								Q1 (25th percentile) of auditory hit latencies in ms
medianRT_hits_A:					auditory hit latency (in ms) median (50th percentile)
Q3_A:								Q3 (75th percentile) of auditory hit latencies in ms
																										
Subscale Raw Scores:
 
Note: these summary statistics are a best guess effort of Millisecond Software and might not
be comparable to the scores obtained with commercially available programs  (see section EXPRESSIONS)

pra_perc:			'Prudence Auditory Scale Percent (100-((PRA#75) x 100)'
					=> in script: 100 - ((expressions.FAs A75) * 100)
prv_perc:			'Prudence Visual Scale Percent (100-((PRV#65) x 100)'
					=> in script: 100 - ((expressions.FAs V65) * 100)

via_perc:			'Vigilance Auditory Scale Percent (100-((VIA#45) x 100)'
					=> in script: 100 - ((expressions.Misses A45) * 100)
viv_perc:				'Vigilance Visual Scale Percent (100-((VIV#45) x 100)'
					=> in script: 100 - ((expressions.Misses V45) * 100)

CONA:				'Consistency Auditory Scale ((Quartile 1 RTQuartile 3RT) x 100)'
									=> in script: (Q1 or visual hit RTs  Q3 of visual hit RTs)) * 100
CONV:				'Consistency Visual Scale ((Quartile 1 RTQuartile 3RT) x 100)'
									=> in script: ((Q1 of auditory hit RTs  Q3 of auditory hit RTs)) * 100

STMA:				'Stamina Auditory Scale ((Sets 1 + 2)(Sets 4 + 5)) x 100'
									=> in script: ((mean latency of auditory hits in sets 1 and 2  mean latency of auditory hits in sets 4 and 5)) * 100
STMV:				'Stamina Visual Scale ((Sets 1 + 2)(Sets 4 + 5)) x 100'
									=> in script: ((mean latency of visual hits in sets 1 and 2  mean latency of visual hits in sets 4 and 5)) * 100

MNA:				'Mean Auditory reaction time for all trials (Speed Scale)'
									=> in this script: mean latency of hits across all auditory test trials
MNV:				'Mean Visual reaction time for all trials (Speed Scale, Max N = 125)'
									=> in this script: mean latency of hits across all visual test trials

FOCA:				'Focus Auditory Scale ((1 - (SDMN)) x 100)'
									=> in this script: (1 - (standard deviation of auditory hit latenciesmean hit latency for auditory trials)) * 100
FOCV:				'Focus Visual Scale ((1 - (SDMN)) x 100)'
									=> in this script: (1 - (standard deviation of visual hit latenciesmean hit latency for visual trials)) * 100

RFRA:				'Ratio FrequentRare Auditory RT x 100 (Readiness Scale)'
									=> in this script: (mean auditory hit latency in blocks with frequent targetsmean auditory hit latency in blocks with rare targets) * 100
RFRV:				'Ratio FrequentRare Visual RT x 100 (Readiness Scale)'
									=> in this script: (mean visual hit latency in blocks with frequent targetsmean visual hit latency in blocks with rare targets) * 100

RVAC:				Ratio VisualAuditory Combined RT x 100 (Balance Scale)
									=> in this script: (mean visual hit latencymean auditory hit latency) * 100

RWCA:				Ratio Warm-upCool-down Auditory RT x 100 (Persistence Scale)
									=> in this script: (mean auditory latency from baseline1  mean auditory latency from baseline2) * 100
RWCV:				Ratio Warm-upCool-down Visual RT x 100 (Persistence Scale)
									=> in this script: (mean visual latency from baseline1  mean visual latency from baseline2) * 100

AAQ:				'Auditory Attention Quotient (based on VIA perc + FOCA + MNA)
ARCQ:				'Auditory Response Control Quotient (based on: PRA perc + CONA + STMA)

VAQ:				'Visual Attention Quotient (based on VIV perc + FOCV + MNV)
VRCQ:				'Visual Response Control Quotient (based on: PRV perc + CONV + STMV)

FAQ:				'Full Scale Attention Quotient (based on AAQ + VAQ)
FRCQ:				'Full Scale Response Control Quotient (based on ARCQ + VRCQ)

SMA:				'SensoryMotor Auditory Scale (better of Warm-upCool down RT)
					=> in this script: the faster mean reaction time of audio warm-up (baseline1) or audio cool-down (baseline2)
SMV: 				'SensoryMotor Visual Scale (better of Warm-upCool down RT)
					=> in this script: the faster mean reaction time of visual warm-up (baseline1) or visual cool-down (baseline2)

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	
	
a) Warm-up Baseline:
- 2 blocks (one for visual assessment, one for audio assessment) for warm-up at the beginning of the session
- each block runs for parameters.baselinetrialnumber (-> editable parameter, default: 30)
- Trial Sequence: after a randomly selected time period (-> list.iti_baseline, editable list) a stimulus is presented and 
baseline response latencies are measured
- default response is a left mouse button press
- at the end of each blocks mean reaction times (as well as their stds) are stored for comparison purposes
=> as a measure of Persistence scores RWCA/RWCV calculate the ratios of the warm-up mean latencies to the equivalent cool-down mean latencies
separately for audio (A) and visual (V) latencies.

!Note: The Baseline Phase in this script is a best guess effort by Millisecond Software LLC

b) Practice:
- 1 block of practice trials between baseline blocks and test blocks
- practice block is equivalent to a test block with parameters.practicetrialnumber (editable parameter, default: 50)
but does not count towards summary scores.
- by default, the frequency of targets equals that of non-targets during the practice session.

!Note: The Practice Phase in this script is a best guess effort by Millisecond Software LLC

c) Test:
- 10 Blocks of 50 trials (Total: 500) divided into 5 sets: the first block in a set presents a high frequency of
targets (default: 84%); the second block in a set presents a low frequency of targets (16%) (-> parameters.highfrequency, editable parameter)
- Half of the trials in each block present visual stimuli, half the trials present auditory stimuli;
the order is randomly determined
- the order of Go and Nogo trials is randomly determined in each block
- The visual stimuli appear in a box in the middle of the screen for parameters.visualstimulusduration (default: 167ms, editable parameter)
- the auditory stimuli are played for 500ms (length of the audio files) - to change the length different audio files have to be used
- the total trialduration (and the time to collect responses) is parameters.trialduration (default: 1500ms, editable parameter)
- response mode is the mouse

d) Cooling-down Baseline (same as (a))
- 2 blocks (one for visual assessment, one for audio assessment) for cool-down at the end of the session

!Note: The Baseline Phase in this script is a best guess effort by Millisecond Software LLC

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________
visual stimuli (default: digits 1 and 2) and audio stimuli can be edited under 
section Editable Stimuli

The visual digits are presented in a frame in the middle of the screen. Size of the
digits and the frames can be edited under section Editable Parameters

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________
The provided instructions are written by Millisecond Software and are presented in the form of
htmlpages. The html files can be edited.

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

/fontsize:								fontsize of the visual digits in screen height percentages (default: 10%)
/framewidth:							the width of the frame in screen height percentages (default: 10%)
/frameheight:							the height of the frame in screen height percentages (default: 20%)

/visualstimulusduration:				presentation duration of the visual digits in ms (default: 167ms)
											Note: duration of audio files is controlled by length of audio file (here: 500ms)
											
/trialduration:							the total duration (in ms) of the test trials (= the time participants have to respond)
										before the next stimulus is presented (default: 1500ms)

/trialnumber:							the number of trials in a block (here: 50)
											Note: in this script the 'official' sets of 100 trials each are divided up into 2
													blocks of 50 trials: the first block is the one to present a higher frequency of targets
													and the second block presents a lower frequency of targets
													
/baselinetrialnumber:					the number of trials run in a baseline block (default: 35)
											Note: each baseline block lasts roughly ~1min
											
/practicetrialnumber:					the number of trials run during practice
											Note: 60 trials lasting 1500ms (default) each ~ 1.5min
	
/highfrequency:							sets the frequency of targets (nontargets) in the blocks in which targets (nontargets) are 
										presented more frequently (default: 0.84)