Return to the Stop Signal Task 2019 page
*Stop Signal Task (SST)*
Script Author: David Nitz (firstname.lastname@example.org) for Millisecond Software, LLC
last updated: 06-30-2020 by K. Borchert (email@example.com) for Millisecond Software, LLC
Script Copyright © 06-30-2020 Millisecond Software
Millisecond Software thanks Dr. Sylvain Iceta for sharing his original French translations!
Any mistakes in the French translations used in this updated script are Millisecond Software's alone.
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. (https://www.ncbi.nlm.nih.gov/pubmed/31033438)
Verbruggen, F., Logan, G. D., & Stevens, M. A. (2008). STOP-IT: Windows executable software for the
Behavior Research Methods, 40(2), 479-483.
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
DATA FILE INFORMATION
The default data stored in the data files are:
(1) Raw data file: 'stopsignaltask_french_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)
values.blocknumber: Number of test blocks run
expressions.blocknumber: 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.
values.trialnumber: Number of trials run in a block
expressions.trialnumber: adjusted Number of trials run in a block (the first trial in each block is regarded as 'practice')
values.ssd: ssd for the current trial
values.stimulus: 1 = left arrow,
2 = right arrow
values.signal: 1 = presence of an auditory signal,
correct: 0 = incorrect;
2 = correct
response: key pressed by subject (scancode of response button pressed)
32 = D
37 = K
0 = no response
57 = spacebar
values.responseCategory: 1 = left;
2 = right;
0 = no response
values.rt: reaction time in ms (0 = no response); measured from onset of arrow
(2) Summary data file: 'stopsignaltask_french_summary*.iqdat' (a separate file for each participant)
Computer Platform: the platform the script was run on (win/mac/ios/android)
Date: date script was run
Time: time script was started
Subject ID: assigned subject id number
Group ID: assigned group id number
Session ID: assigned session id number
Script Duration: time it took to run script (in ms); measured from onset to offset of script
Script Completion: 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.
prob(response|signal): probability of reacting in Stop Signal Trials
mean 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 Method: 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)
SignalResponse RT: mean reaction time (in ms) in StopSignal trials (response times of incorrectly hitting a response key)
hitRT: mean reaction time (in ms) in correct NoSignal trials, across blocks => 'choice reaction time'
Hits: hit percentage in NoSignal trials
Misses: 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)
expressions.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)
expressions.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 index: 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.