Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 31, 2014
Last Modified: January 07, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Inquisit's interpretation of the Integrated Visual and Auditory Continuous Performance Test (IVACPT), a test of sustained and selective attention.
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)
! the script is a best guess effort by Millisecond. Differences between the commercially available IVA+Plus CPT and this script are likely.
25 minutes
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).
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.
! The Baseline Phase in this script is a best guess effort by Millisecond
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.
! The Practice Phase in this script is a best guess effort by Millisecond
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
! The Baseline Phase in this script is a best guess effort by Millisecond
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
The provided instructions are written by Millisecond and are presented in the form of
htmlpages. The html files can be edited.
File Name: ivacpt_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| 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 *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 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 |
|
| 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) |
File Name: ivacpt_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| phase | "warmup", "practice", "test", "cooldown" |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| 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 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 |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design Parameters |
||
| blockTrialNumber | The number of trials in a block (here: 50) 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 | 50 |
| baselineTrialNumber | The number of trials run in a baseline block each baseline block lasts roughly ~1min | 30 |
| practiceTrialNumber | The number of trials run during practice 60 trials lasting 1500ms (default) each ~ 1.5min | 60 |
| highFrequency | Sets the frequency of targets (nontargets) in the blocks in which targets (nontargets) are presented more frequently (default: 0.84) | 0.84 |
Sizing Parameters |
||
| fontSize | Fontsize of the visual digits in screen height percentages | 10% |
| frameWidth | The width of the frame in screen height percentages | 10% |
| frameHeight | The height of the frame in screen height percentages | 20% |
Timing Parameters |
||
| visualStimulusDuration | Presentation duration of the visual digits in ms duration of audio files is controlled by length of audio file (here: 500ms) | 167 |
| trialDuration | The total duration (in ms) of the test trials (= the time participants have to respond) before the next stimulus is presented (default: 1500ms) | 1500 |