User Manual: Inquisit Stop Signal Task 2019 (SST)


										*Stop Signal Task (SST)*

Script Author: David Nitz ( for Millisecond Software, LLC
last updated:  10-17-2022 by K. Borchert ( for Millisecond Software, LLC

Script Copyright © 10-17-2022 Millisecond Software

This script implements the 'Stop Signal Task'. The Stop Signal Task is a choice go/nogo reaction time task that 
provides a measure to estimate the time it takes to stop executing a response that might already be underway 
but needs to be halted (called the stop signal reaction time).

This script incorporates the "best practice" recommendations by Verbruggen et al (2019)


	Verbruggen F, et al. (2019). A consensus guide to capturing the ability to inhibit actions and impulsive behaviors in the stop-signal task.
	eLife, 8, e46323. (

	Verbruggen, F., Logan, G. D., & Stevens, M. A. (2008). STOP-IT: Windows executable software for the 
	stop-signal paradigm. 
	Behavior Research Methods, 40(2), 479-483.
	Additional References:
	Logan, G. D. (1994). On the ability to inhibit thought and action: A user’s guide to the stop signal paradigm. 
	In D. Dagenbach  & T. H. Carr, Inhibitory processes in attention, memory, and language (pp. 189-239). 
	San Diego: Academic Press	

After looking at a fixation circle, participants are presented an arrow within this circle that either 
points right or left.  The task is to press the left response key if the arrow points to the left and press the 
right response key if the arrow points to the right UNLESS a signal beep is played AFTER the presentation
of the arrow.   In this case the response should be stopped before execution. 

The delay between presentation of arrow and signal beep (starting at 250ms) is adjusted up or down (by 50ms) 
depending on performance.  The delay gets longer if the previous signal stop was successful (up to 1150ms) 
and it gets smaller if the previous signal stop was not successful (down to 50ms). 
The stimlus onset asynchrony between the start of each trial (onset of fixation circles) is 2000ms.
Participants can respond up until the next trial starts.
the default set-up of the script takes appr. 15 minutes to complete

The default data stored in the data files are:

(1) Raw data file: 'stopsignaltask_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

blockcode, blocknum:			the name and number of the current block (built-in Inquisit variable)

blocknumber:					Number of test blocks run (custom variable)
blocknumber_adj:				adjusted number of blocks run (first block is not counted in this count)

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. 

trialnumber:					Number of trials run in a block (custom variable)
trialnumber_adj:				adjusted Number of trials run in a block (the first trial in each block is regarded as 'practice')

ssd:							ssd for the current trial

stimulus:						1 = left arrow, 
								2 = right arrow
signal:							1 = presence of an auditory signal, 
								0 otherwise  
correct:						0 = incorrect; 
								2 = correct  
response:						key pressed by subject (scancode of response button pressed)
								32 = D
								37 = K
								0 = no response
								57 = spacebar
responseCategory:				1 = left; 
								2 = right; 
								0 = no response
rt:								reaction time in ms (0 = no response); measured from onset of arrow

(2) Summary data file: 'stopsignaltask_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)
NOTE: according to Verbrueggen et al (2008, p.482), the first trial in each test block is not analyzed and thus not
part of summary statistics in this script.								

p_rs:				probability of reacting in Stop Signal Trials (prob(response|signal))
ssd: 				mean stop signal delays (in ms) in StopSignal trials 

Mean Method SSRT: as of 2019 not recommended anymore (see Verbruggen et al, 2019)

ssrt_Mean: 			estimation of the covert stop signal reaction time in ms (SSRT) 
					(the time required to stop the initiated go-process)
					=> the slower the SSRT the more difficult to stop the go-process 
					=> the faster the SSRT the easier to stop the go-process
					(measure of inhibition ability)
sr_rt:  			mean reaction time (in ms) in StopSignal trials (response times of incorrectly hitting a response key)
ns_rt: 				mean reaction time (in ms) in correct NoSignal trials, across blocks => 'choice reaction time'
ns_hit:				hit percentage in NoSignal trials 
miss: 				misses percentage in NoSignal trials (Miss = no response in NoSignal trials)

z_score:			z-score of p(response|signal) with
					expected mean = n*p; standard deviation = sqrt(n*p*q); 
					with n= number of stop signal trials; p = parameters.p; q = 1-p
p_value:			p-value	that corresponds to the calculated z-value							
					NOTE: z-score and corresponding p-value indicate whether a participant inhibited significantly more or less than 
					50% of the time	(see parameters.p)
					(Verbruggen et al: for participants who inhibited significantly more or less than 50% of the time
					the mean method to calculate SSRT cannot be used)
p_rs_deviation: 	returns true (1) if p(r|s) deviates substantially from 0.5, 
					returns false (0) otherwise, 
					i.e. p(r|s) does NOT deviate substantially from 0.5.
					The cut-offs are somewhat arbitrary.	
					Note: the cut-off values used in this script are p(r|s) < 0.25 OR p(r|s) > 0.75 (Verbruggen et al, 2019, p.9)

race_model_violation: 	returns true (1) if race model assumption for calculation of SSRT is violated, 
						returns false (0) otherwise, 
						i.e. race model NOT violated.
						This calculation is based on a comparison of mean response time in ss-trials to ns-trials.
						If mean response time in ss-trials > mean response time in ns-trials, the expression
						returns true (1); otherwise (0)

Integration Method SSRT (as of 2019): recommended (see Verbruggen et al, 2019)								

nth:				the index in list of ns trial RTs that corresponds to the probability of reacting in ss trials

nth_rt:				the RT in the ordered list of ns trial RTs that corresponds to the probability of reacting in ss trials

max_ns_rt:			the max. RT of actual responding in ns trials 

ns_rts_total:		number of RTs in ns trials  

SSRT_integration:	estimation of the covert stop signal reaction time in ms (SSRT) using the INTEGRATION method;
					the recommended method as of 2019
					(the time required to stop the initiated go-process; measure of inhibition ability)
* tests Stop Signal Delays between: 50ms (min) - 1150ms (max) with adjustment steps = 50ms
* The initial Stop Signal Delay is set to 250ms
* The total trialduration of each signal and no signal trial is 2000ms	(= SOA between onsets of fixation stims)
* half the arrows in each trialtype point left, the other right (arrow direction randomly determined)

1 Practice Block: 32 trials (8 signal trials : 24 no signal trials = 1:3)
3 Test Blocks: 72 trials each (18 signal trials : 54 no signal trials = 1:3)	

see section Editable INSTRUCTIONS

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:

	Adjustable Task Parameters:
	- resetpracticessd			Boolean switch to determine whether SSD should be reset to 
								start value (parameters.ssd_start) after practice block. Default is 'false'.
	- leftkey					Keyboard scan code for the left response key. Default is ("D").
	- rightkey					Keyboard scan code for the right response key. Default is ("K").
	- minssd					Minimum allowable Stop Signal Delay (SSD). Default is '50'.
								Given that a '0' delay does not make sense, this value should usually 
								be set to match parameters.adjustment.
	- maxssd					Maximum allowable Stop Signal Delay (SSD). Default is '1150'.
								Given the default trial/stimulus timing
								'/ stimulustimes = [0=fixation; 250=stim; 1500=erasestim]', this value 
								should be chosen such that 'maxssd + stopsignalduration <= 1250'.
								Otherwise the Stop Signal would occur *after* the given trial has 
								already terminated, which, of course, would not make any sense.
	- adjustment				Amount in ms by which SSD should be in- or decreased depending on 
								successful or unsuccessful response inhibition. Default is '50'.
	- ssd_start					Initial Stop Signal Delay (SSD) in ms. Default is '250'.
	- pretrialpause				Duration of pretrialpause in ms. Default is '500'.
	- trialduration				Total duration for a given trial in ms. Default is '2000'.
	- waitbetweenblocks			Wait period between blocks in seconds. Default is '10'.
	- p							Target response inhibition probability. Default is '0.5'.
								Do *not* change this value unless you are very familiar with
								the Stop Signal paradigm.