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