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


___________________________________________________________________________________________________________________	

					Millisecond Auditory Continuous Performance Task (ACPT)
___________________________________________________________________________________________________________________	


Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 11-20-2023
last updated:  12-06-2023 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 12-06-2023 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements Millisecond Software's version of an Auditory Continuous Performance Task (ACPT).
A Continuous Performance Task (CPT) uses a go/nogo testing paradigm with a stream of stimuli that either require a 
go response ("press the spacebar") or a nogo response ("don't do anything"). Usually a CPT presents a 
high frequency of stimuli that require a go response and a low frequency of nogo responses.
It is generally used as a measure of sustained and selective attention. 
The CPT was originally run with visual stimuli; the ACPT runs with auditory stimuli instead.
Specifically, the design of the Millisecond ACPT is a an auditory version of the an AX sub paradigm of the CPT task (see Rosvold, 1956).


/////////////////
References:	
/////////////////

Conners, C. K. (2014). Conners Continuous Performance Test (Conners CPT 3) & 
Conners Continuous Auditory Test of Attention (Conners CATA): 
Technical Manual. Multi-Health Systems Inc.										

Rosvold, H.E., Mirsky, A., Sarason, M., Bransome, E.D., Jr., and Beck, L.H. A Continuous
Performance Test of brain damage. Journal of Consulting Psychology, 20, 343 (1956).

Kallo, Y. (2017). Arousal and Vigilance: The Effects of Physical Exercise and Positive Mood on Attention. 
International Journal of Sports and Exercise Medicine, 3(2). https://doi.org/10.23937/2469-5718/1510057

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________

Participant listen to a stream of low (A) and high beeps (X) and are asked to 
a) press the spacebar for a high beep that follows a low beep (go = target = AX)
Note: "A" is interpreted as a signal, cue or warning
b) to refrain from responding for a high beep that is NOT preceded by a low beep (nogo = no target = X)
(Note: in this case it sounds like a high beep following a high beep)

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

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

(1) Raw data file: 'acpt_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:					with the current subject id
group: 						with the current group id
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. 

blockCounterPerPhase: 		counts the number of blocks run per phase
trialCounterPerBlock:		counts the number of trials run per block (Note: if go trials are repeated, the repeated trials do not count as extra trials)

target:						1 = the current trial presents a target (go trial)
							2 = the current trial does not present a target (nogo trial)
									
shift:						0 = no shift go trial (AX presented in same ear) 
							1 = shift go trial (AX presented in different ears)
									
highPan: 					the presentation ear for the high beep (X)
							-10000 = solely on the left
							+10000 = solely on the right
									
lowPan: 					the presentation ear for the low beep (A)
							-10000 = solely on the left
							+10000 = solely on the right
							
response:					the response of participant (scancode of response button)
							57 = spacebar
							!NOTE: for pCommission Responses, this column may not record the early spacebar press.
							This is because the script is programmed to disregard spacebar presses
							before the high beep as invalid (that is the trial still waits for a valid response).
							Nevertheless, the script records whether such responses have been made 
							under values.pCommissionResponse/pCommissionResponseCounter.
							
responseText:				the name of the pressed response key
							Note: looks empty for spacebar presses because it simply records a " "
							
respCategory: 				hit = a spacebar response to the high beep in a go trial (this spacebar press is the only response made during the trial)
							miss = no spacebar response made in a go trial
							pCommission = perseverative Commission; a spacebar press was made inbetween a low and a high beep (Note: column response may not reflect this response)
							commission = a spacebar response to the high beep in a nogo trial
							correctRejection = no spacebar response in a nogo trial

pCommissionResponse:		0 = no pCommission response was made during the current go trial
							1 = pCommission response was made during the current go trial
							
pCommissionResponseCounter: sums up the number of pCommission responses made during the current go trial
								
countExtraResp:				counts spacebar presses made in the intertrial interval before next trial beep starts
							
correct:					correctness of response (1 = correct, 0 = error) //Note: only 'hits' and 'correct rejections' result in a correct response
sound.highBeep.stimulusOnset: 		the trial onsettime (in ms) of the high beep
latency: 					the response latency (in ms) measured from onset of trial
lowBeepRT: 					the response latency (in ms) measured from onset of low beep (first pCommission response)
highBeepRT: 				the response latency (in ms) measured from onset of high beep
currentSOA:					the current stimulus onset asynchrony (in ms) - SOA between onset of one high beep and onset of following beep


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

///////////////////////
Practice
///////////////////////
practiceBlockCounter:			the number of practice blocks run	
list.ACCPracticeBlock.mean:		stores the proportionCorrect practice performance at the end of the last practice block 				
practicePass:					1 = practice passed; 0 = practiceFailed


///////////////////////
Test
///////////////////////
propACC_overall:				overall (across all test trials) proportion correct responses

hitRate_overall:				overall (across all test go trials) hitrate (response to X in AX trials)

meanHitRT_overall:				overall mean response time (in ms) to targets (response to X in AX trials)
								-> a fast hitRT coupled with high faRate/pCommissionRate may indicate impulsive responding
								-> a slow hitRT (coupled with high error rate) may indicate inattentiveness while responding

sdHitRT_overall:				standard deviation of hitRTs (in ms) across all go trials 
								(consistency of response speed to targets)
								-> indicator of variable attentiveness across the task

faRate_overall:					overall (across all test nogo trials) false alarm/commission rate (response to X in X trials)
								-> higher commission rate coupled with slower hitRate could point to inattentiveness
								-> higher commission rate coupled with normal/fast hitRate could point to impulsivity

meanFaRT_overall:				overall mean response time (in ms) to notargets (response to X in X trials)
sdFaRT_overall:					standard deviation of faRTs (in ms) across all nogo trials

pCommissionRate_overall:		overall proportion of go trials with at least one pCommissions response (response after A, before X)
								-> potentially anticipatory and/or impulsive response

meanPcommissionRT_overall:		overall mean response time (in ms) to first response after low beep before high high beep
sdPcommissionRT_overall:		standard deviation of PcommissionRT (in ms) across all go trials

omissionRate_overall:			overall proportion of omissions across all test blocks (indicator of inattentiveness)

extraResp_overall:				overall number of extra responses made across all test trials
								extra responses: spacebar presses that are not counted as hits, misses, fa, cr or pCommissions responses
								


zHitRate_overall:				the calculate z-score of the overall hitRate
zFaRate_overall:				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)*

dprime:				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)
					
								
c: 					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)
					

////////////////////////
Auditory Mobility
////////////////////////
					
noSwitchHitRate_overall:	the hitrate on no-shift (aka no switch) trials: low and high beep played in the same ear
noSwitchHitRt_overall:		the mean hit response time on no-shift (aka no switch) trials

switchHitRate_overall:		the hitrate on shift (aka switch) trials: low and high beep played in different ears
switchHitRt_overall:		the mean hit response time on shift (aka switch) trials					
					
										
//////////////////////////////////////
Block by Block Performance Statistics											
//////////////////////////////////////											

Note: A decrease in hit response time as well as an increase in error rate over time
could be a sign of waning sustained attention.

hitRate_block1:							hitRate in block1
meanHitRT_block1:						mean hit response time (in ms) in block1
sdHitRT_block1:							standard deviation of the hit response times (in ms) in block1
pCommissionRate_block1:					pCommissionRate in block1
faRate_block1:							false alarmRate/commission rate in block1
meanFaRT_block1:						mean commission response time (in ms) in block1
omissionRate_block1:					omission rate in block1

(same for block2-4)							
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

The Inquisit ACPT is an auditory go/nogo task with a high frequency of go trials.
It is based on the AX CPT paradigm (see Rosvold).

Go trials: play two beeps; low (A) -> high (X)
Nogo trials: play only one beep; high (X)
The beeps are played with the same SOA, so that it sounds like a continuous stream of beeps
to participants.

(1) Intro: all introductory text is presented visually & aurally (can be repeated as often as necessary)

(2) Practice: max. 3 blocks (editable parameters) of 20 practice trials each (editable parameters)
- roughly 75% of practice trials are Go-trials 
- roughly 25% of practice trials are Nogo-trials
- it is randomly decided whether the high beep plays in the left or right ear
- roughly 25% of all go-trials are SHIFT trials (play the low and high sound through different ears)
- the script check practice performance after each practice block
	-> if practice performance is higher than parameters.minPracticeACC (editable), the test can start
	-> the script runs a maximum of 3 practice blocks (editable parameters) before script termination

(3) Test: 
- 4 blocks (editable parameter) of 50 trials each (editable parameters)
- each blocks:
	- 80% Go trials (editable parameter) 
		- 20% Shift trials (editable parameter)
		- half the go trials play the high sound through the left(right) ear
				
	- 20% Nogo trials
		- half the nogo trials play the high sound through the left(right) ear

- each blocks ends with an optional rest trial (editable parameter)

Trialsequence: Go
-> low beep (500ms, plays through) 
-> 1500ms (delay)  
-> high beep (high beep starts playing 2000ms after onset of low beep for max. 500ms) 
-> next beep starts playing 2000ms (SOA) after onset of last high beep

//Notes: 
- A response to the high beep ends the trial. 
Participant have SOA = 2000ms to respond to the high beep (starting at onset of sound)
- A response after the low beep ('pCommission response') but before onset of high beep 
results in an incorrect go trial (however, the trial is not interrupted)
	
Trialsequence: NoGo
-> high beep (max. 500) 
-> next beep starts playing 2000ms (SOA) after onset of last high beep
___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________

provided by Millisecond Software - can be edited under section 'Editable Stimuli'
beeps generated in Audacity.
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________

provided by Millisecond Software - can be edited under section 'Editable Instructions'
Note: all instructions are provided to participants visually and aurally
The instructions were generated using the Google Translate fairy and Audacity.
___________________________________________________________________________________________________________________	
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: