Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 14, 2024
Last Modified: January 24, 2024 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a basic shift go/nogo paradigm with X and Y stimuli (Claus & Hendershot, 2015), in which the go trials are shift trials (shifting from one type of stimuli to another) and the nogo trials are the 'stay' trials (repeated stimuli). In general, Go/Nogo Tasks are used as behavioral measures of inhibition and cognitive control. The shifting component adds further complexity.
Claus, E. D., & Hendershot, C. S. (2015). Moderating effect of working memory capacity on acute alcohol effects on BOLD response during inhibition and error monitoring in male heavy drinkers. Psychopharmacology, 232(4), 765–776. https://doi.org/10.1007/s00213-014-3711-2
4 minutes
Participants see a string of X and Y, presented one-by-one, in the center of the screen. They are asked to press the spacebar whenever the stimulus they see is different than the previous one (Example: X->Y, go trials). If the stimulus remains the same, they should refrain from responding (Example: X->X, nogo trials).
The default task runs 100 fixed test trials with 10% nogo trials (trial order as well as frequency of go/nogo trials can be edited)
(1) Demo Block (optional, see section Editable Parameters)
- 10 trials (+ start); 5 shift and 5 stay trials (order is randomized, see list.demoTrials)
- demo trials provide response instructions
- stimuli are presented longer than for test trials
- demo can be repeated if needed
(2) Test Block(s)
- each test blocks start with a START trial that randomly selects the first stim
- each test blocks then runs as many TEST trials as listed in list.trialOrder
- list.trialOrder further controls whether the trialtypes (go and nogo trials)
are presented in a fixed (default) or random order
=> The default script runs: a fixed order with 90 go-trials and 10-nogo trials (=> 10% nogo trials)
- A REST trial is run after 50 test trials (basically breaking up the one block into 2, see editable parameters).
The trial immediately following a rest trial is another START trial (not a test trial).
Trial Sequence:
Stim for 700ms (editable parameter) -> fixation (editable parameter) -> ....
- The response window is as long as the stimulus presentation duration
- a response does NOT cut down on stimulus presentation duration
(so each stimulus is presented the same amount of time regardless of response.
script provides a quick visual response feedback if a spacebar press is detected in time.)
provided by Millisecond - can be edited under section 'Editable Stimuli'
provided by Millisecond - can be edited under section 'Editable Instructions'
File Name: shiftgng_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| 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 |
The Following Summary Variables Are Based On Test Trial Performance Only |
|
| propCorrect | Overall proportion correct responses across go and nogo test trials |
| numberGoTrials | The number of go trials run |
| hitRate | Proportion correct go trials |
| missRate | Proportion errors on go trials (omissions) |
| hitRT | Mean correct go trial response time |
| numberNoGoTrials | The number of nogo trials run |
| faRate | Proportion errors in nogo trials (commission errors/false alarms) |
| corrRejectRate | Proportion correct responses in nogo trials (correct suppression of response) |
| faRT | Mean incorrect nogo trial response time (commission response time) |
Signal Detection Measures |
|
| zHitRate | The z-score of the hitRate |
| zFARate | The z-score of the faRate (commission rate/false alarms) |
| dPrime | Difference btw. (zHitRate - zFARate): measure of Sensitivity => Range (in this script) -5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance) => The higher the value, the better signals were overall distinguished from noise (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 (go stims) is present (liberal response style) may favor faster responding in speed-accuracy trade-off response paradigms positive: favoring caution (conservative response style) |
File Name: shiftgng_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| goTrialDef | The preset definition of a go trial: either 'different' trials (shift trials) or 'same' trials (remain trials) |
| blockCounter | Tracks the number of test blocks run |
| trialCounterPerBlock | Tracks the number of test trials run per block |
| trialType | 1 = go trial 0 = nogo trial 999 = other trial run during a test block (e.g. rest and start trials) |
| currentStim | The currently presented stimulus |
| response | The response of participant (scancode of response button) 57 = spacebar 0 = no response |
| respCategory | Go trials: "hit", "omission", nogo trials: "commission", "corr reject" |
| correct | Correctness of response (1 = correct, 0 = error) |
| latency | Response latency (in ms); measured from: onset of stim |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design Elements |
||
| goTrialDef | Choose from "same" (go trials are the repeat trials) or "different" (go trials are the shift trials) | "different" |
| runDemo | true | |
| numberTestBlocks: | Number of test blocks to run. Currently all test blocks use list.trialOrder See below to fine-tune number of trials, number of go/nogo trials and trial order in list.trialOrder | 1 |
| restTrials | Number of test trials before a rest trial is run the first trial after a rest trial is NOT considered one of the test trials | 50 |
Stims |
||
| stim1 | The letter used for stim1 | "X" |
| stim2 | The letter used for stim2 | "Y" |
| stimHeightPct | Proportional height (relative to canvas) of the stims | 15% |
| fixationStim | The fixation stimulus presented (can be left blank) | "+" |
| fixationHeightPct | Proportional height (relative to canvas) of the fixation stimulus | 5% |
Timing Parameters |
||
| getreadyDurationMS | The duration (ms) of the get-ready trial at the start of each test block | 2000 |
| stimPresentationDemoMS | The duration (ms) that the stims are presented during the demo session (also the response window) | 3000 |
| stimPresentationMS | The duration (ms) that the stims are presented during the test session (also the response window) | 700 |
| stimIsiMS | The duration (ms) of the interstimulus interval (presents the fixationStim) | 300 |
Responsekeys |
||
| responseKey | " " => space bar | " " |
| responseKeyLabel | The response key Label used in instructions | "[space]" |