User Manual: Inquisit Integrated Visual and Auditory Continuous Performance Test (IVA-CPT)


___________________________________________________________________________________________________________________	

						 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:  09-24-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright ©  09-24-2024 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements Inquisit's interpretation of 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 OUTPUT DICTIONARY
___________________________________________________________________________________________________________________
The fields 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
session:							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
countTrialsBlock:					counts the trials run in a block
countTrialsTotal:					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
										
rtTest: 							stores the latency (in ms) of the left mouse click in test (and practice) trials 

hitsV:								cumulative count of Hits in visual trials 
missesV:							cumulative count of Misses in visual trial
fasV:								cumulative count of False Alarms in visual trials
crsV:								cumulative count of Correct Rejections in visual trials

hitsA:								cumulative count of Hits in audio trials 
missesA:							cumulative count of Misses in audio trial
fasA:								cumulative count of False Alarms in audio trials
crsA:								cumulative count of Correct Rejections in audio trials


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

meanRTVisualBaseline1-
stdAudioBaseline1:					store Mean and standard deviations of visual and auditory response latencies (in ms) for the warm-up baseline (1)
meanRTVisualBaseline2-
stdAudioBaseline2: 					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
propCorrectOverall:					the proportion correct responses across all test trials

hitRateOverall:					the overall hit rate across all test trials (=correct responses in Go trials)
hitRateV:							the overall hit rate across all visual test trials (=correct responses in visual Go trials)
hitRateA:							the overall hit rate across all auditory test trials (=correct responses in auditory Go trials)
missRateOverall:					the overall miss rate across all test trials (=error responses in Go trials)
missRateV:							the overall miss rate across all visual test trials (=error responses in visual Go trials)
missRateA:							the overall miss rate across all auditory test trials (=error responses in auditory Go trials)

faRateOverall:						the overall false alarm rate across all test trials (=error responses in NoGo trials)
faRateV:							the overall false alarm rate across all visual test trials (=error responses in visual NoGo trials)
faRateA:							the overall false alarm rate across all auditory test trials (=error responses in auditory NoGo trials)
corrRejectRateOverall:				the overall corrReject rate across all test trials (=correct responses in NoGo trials)
corrRejectRateV:					the overall corrReject rate across all visual test trials (=correct responses in visual NoGo trials)
corrRejectRateA:					the overall corrReject rate across all auditory test trials (=correct responses in auditory NoGo trials)

//////////////////////////
Signal Detection Measures
///////////////////////////

zHitRateOverall:				the calculate z-score of the overall hitRate
zFARateOverall:				the calculated z-score of the overall falseAlarm/commission rate

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

dPrimeOverall:		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)
					
								
cOverall: 			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)
					
(also separate measures for V(isual) and A(uditory trials))


meanRTHits -
meanRTFAs  							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)

meanRTSet12V:						mean latency (in ms) of hits for visual trials in the 1. and 2. sets (combined)
meanRTSet45V:						mean latency (in ms) of hits for visual trials in the 4. and 5. sets (combined)
meanRTSet12A:						mean latency (in ms) of hits for auditory trials in the 1. and 2. sets (combined)
meanRTSet45A:						mean latency (in ms) of hits for auditory trials in the 4. and 5. sets (combined)
meanRTMoreTargetV:					mean latency (in ms) of hits for visual trials in high frequency target blocks
meanRTFewerTargetV:					mean latency (in ms) of hits for visual trials in low frequency target blocks
meanRTMoreTargetA:					mean latency (in ms) of hits for auditory trials in high frequency target blocks
meanRTFewerTargetA:					mean latency (in ms) of hits for auditory trials in low frequency target blocks

q1V:								Q1 (25th percentile) of visual hit latencies in ms
medianRTHitsV:						visual hit latency (in ms) median (50th percentile)
q3V:								Q3 (75th percentile) of visual hit latencies in ms
q1A:								Q1 (25th percentile) of auditory hit latencies in ms
medianRTHitsA:						auditory hit latency (in ms) median (50th percentile)
q3A:								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)

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

viaPerc:			'Vigilance Auditory Scale Percent (100-((VIA#45) x 100)'
					=> in script: 100 - ((expressions.Misses A45) * 100)
vivPerc:				'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: