Script Author: David Nitz (dave@millisecond.com), Millisecond
Last Modified: January 30, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
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 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
15 minutes
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.
• 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 script stopsignaltask2019_instructions_inc.iqjs
File Name: stopsignaltask_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 |
| pRs | 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) |
| ssrtMean | 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) |
| srRt | Mean reaction time (in ms) in StopSignal trials (response times of incorrectly hitting a response key) |
| nsRt | Mean reaction time (in ms) in correct NoSignal trials, across blocks => 'choice reaction time' |
| nsHit | Hit percentage in NoSignal trials |
| miss | Misses percentage in NoSignal trials (Miss = no response in NoSignal trials) |
| zScore | 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 |
| pValue | P-value that corresponds to the calculated z-value 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) |
| pRsDeviation | 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. 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) |
| raceModelViolation | 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 |
| nthRt | The RT in the ordered list of ns trial RTs that corresponds to the probability of reacting in ss trials |
| maxNsRt | The max. RT of actual responding in ns trials |
| nsRtsTotal | Number of RTs in ns trials |
| ssrtIntegration | 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) |
File Name: stopsignaltask_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 |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| blockNumber | Number of test blocks run (custom variable) |
| blockNumberAdj | Adjusted number of blocks run (first block is not counted in this count) |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| trialNumber | Number of trials run in a block (custom variable) |
| trialNumberAdj | 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 |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| resetpracticessd | Boolean switch to determine whether SSD should be reset to start value (parameters.ssdStart) 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'. | |
| ssdStart | 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. |