Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 17, 2022
Last Modified: January 04, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the Internal Shift Task (IST), a paradigm to study executive functioning as measured by inhibition and set shifting, in response to processing internally held (aka in memory) emotional and non-emotional face stimuli as opposed to external stimuli (Koster et al, 2013).
DISCLAIMER: The implemented procedure is based on the description of the task by Koster et al (2013) and is a best guess-effort based on the provided information.
The task can be run with an absolute screen size to ensure that distances stay the same across devices. The default settings use proportional sizing. Go to section Defaults for more information.
Koster, E. H. W., Lissnyder, E. D., De Raedt, R. (2013). Rumination is characterized by valence-specific impairments in switching of attention. Acta Psychologica, 144(3), 563-570. doi:10.1016/j.actpsy.2013.09.008.
20 minutes
This task is about mental updating of counts. Participants self-pace through sequences of female and male faces with either angry or neutral expressions. At the beginning of each round, they are told whether to concentrate on Gender or Emotion. For each face they are shown, they are asked to update their mental counts for female/male (category: gender) OR angry/neutral (category: neutral). Once they have updated their mental counts, they press [space] to see the next face in the sequence. At the end of each block, they enter their mental counts using the keyboard keys. The two categories (Gender and Emotion) are tested in a blocked design. The order of the categories is counterbalanced by groupnumber.
The two categories GENDER and EMOTION is tested in blocked format.
This script counterbalances the orders of the two categories GENDER and EMOTION by groupnumber.
Odd groupnumbers run: Gender -> Emotion
Even groupnumbers run: Emotion -> Gender
(1) Intro Block
(2) Task1 Practice: 3 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
During practice participants receive feedback.
(3) Task1 Test: 12 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
Participants receive no feedback during the test.
(4) Break (self-paced) and task change
(5) Task2 Practice: 3 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
During practice participants receive feedback.
(6) Task2 Test: 12 blocks with randomly 10-14 faces each
- Faces stay on screen until mental counts are updated, then participant self-paces via spacebar
presses through the face sequence.
- at the end of the block, participants are asked to enter their mental counts separately for
level1 (Gender: female; Emotion: angry) and level2 (Gender: male; Emotion: neutral) instances.
Participants are always asked about level1 counts before level2 counts.
Participants receive no feedback during the test.
provided by Millisecond - can be edited under section 'Editable Stimuli'
provided by Millisecond - can be edited under section 'Editable Instructions'.
The instructions are not original to the task.
File Name: internalshifttaskSummary*.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 |
| expGroup | 1: order category1 (GENDER) -> categeory2 (EMOTION) 2: order category2 (EMOTION) -> category1 (GENDER) |
Accuracy Data |
|
| propCorrectGeneral | Proportion Correct blockACCs across category1 (here: gender) and category2 (here: emotion) blocks |
| propCorrectCategory1 | Proportion Correct blockACCs across category1 (here: gender) only |
| propCorrectCategory2 | Proportion Correct blockACCs across category2 (here: emotion) only |
Switch/Noswitch Counts |
|
| countSwitchTrialsGeneral | The number of Switch trials run across all test blocks (across categories) |
| countNoSwitchTrialsGeneral | The number of NoSwitch trials run across all test blocks (across categories) |
| countSwitchTrialsCategory1 | The number of Switch trials run across all Category1 (gender) test blocks |
| countNoSwitchTrialsCategory1 | The number of NoSwitch trials run across all Category1 (gender) test blocks |
| countSwitchTrialsCategory2 | The number of Switch trials run across all Category2 (emotion) test blocks |
| countNoSwitchTrialsCategory2 | The number of NoSwitch trials run across all Category2 (emotion) test blocks |
Response Time Data |
|
| generalSwitchRT | MEDIAN switch RT (in ms) across category1 (here: gender) and category2 (here: emotion) switch trials |
| generalNoSwitchRT | MEDIAN noSwitch (aka 'repeat') RT (in ms) across category1 (here: gender) and category2 (here: emotion) noSwitch trials |
| generalSwitchCosts | The difference btw. 'generalSwitchRT - generalNoSwitchRT' => positive values indicate that participants took longer on switch trials than on non-switch trials |
| category1SwitchRT | MEDIAN switch RT (in ms) across category1 (here: gender) switch trials |
| category1NoSwitchRT | MEDIAN noSwitch (aka 'repeat') RT (in ms) across category1 (here: gender)noSwitch trials |
| category1SwitchCosts | The difference btw. 'category1SwitchRT - categoryNoSwitchRT' => positive values indicate that participants took longer on switch trials than on non-switch trials |
| category2SwitchRT | MEDIAN switch RT (in ms) across category2 (here: emotion) switch trials |
| category2NoSwitchRT | MEDIAN noSwitch (aka 'repeat') RT (in ms) across category2 (here: emotion) noSwitch trials |
| category2SwitchCosts | The difference btw. 'category2SwitchRT - categoryNoSwitchRT' => positive values indicate that participants took longer on switch trials than on non-switch trials |
File Name: internalshifttask_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. |
| expGroup | 1: runs order category1 (GENDER) -> categeory2 (EMOTION) 2: runs order category2 (EMOTION) -> category1 (GENDER) |
| phase | "practice" vs. "test" |
| practiceBlockCounter | Tracks the number of practice blocks run in the current category |
| blockCounterCategory1 | Tracks the number of test blocks run in category1 |
| blockCounterCategory2 | Tracks the number of test blocks run in category2 |
| targetCategory | Stores the targetCategory of the current task ("GENDER" vs. "EMOTION") |
| level1 | Stores level1 (Gender: Female, Emotion: Angry) |
| level2 | Stores level2 (Gender: Male, Emotion: Neutral) |
| numberTrials | The number of trials run in the current round (randomly selected from 10-14 trials) |
| trialCounter | Tracks the number of trials run |
| previousTargetLevel | Stores the level of the previous face |
| currentTargetLevel | Stores the level of the current face |
| currentTarget | Stores the image file of the current face |
| switch | 0 = there was no switch btw. levels Example: for category GENDER: current face is female, previous face was female -> switch: 0 1 = levels switched (the current face has a different level than the previous one) Example: for category GENDER: current face is female, previous face was male -> switch: 1 |
| switchCategory | AA: previous level was level1, current level is level1 (Example: female-female in category GENDER) -> No Switch AB: previous level was level1, current level is level2 (Example: female-male in category GENDER) -> Switch BA: previous level was level2, current level is level1 (Example: male-female in category GENDER) -> Switch BB: previous level was level2, current level is level2 (Example: male-male in category GENDER) -> No Switch |
| countSwitchTrialsPerBlock | Tracks the number of switch trials run in the current block |
| countNoSwitchTrialsPerBlock | Tracks the number of no-switch trials run in the current block |
| response | The scancode of response button (e.g. 57 for spacebar) |
| responseText | The label of response button ( will look empty for spacebar) |
| latency | The response latency; measured from onset of face image |
| counterLevel1 | Counts the instances of level1 faces for the current category |
| counterLevel2 | Counts the instances of level2 faces for the current category |
| reportedCountsLevel1 | Stores the participant reported instances of level1 faces for the current category |
| reportedCountsLevel2 | Stores the participant reported instances of level2 faces for the current category |
| accReportedCountsLevel1 | 1 = the reported count for level1 is correct; 0 = otherwise |
| accReportedCountsLevel2 | 1 = the reported count for level2 is correct; 0 = otherwise |
| accBlock | 1 = BOTH reported level1 AND level2 counts were correct 0 = otherwise (at least one incorrect count) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design |
||
| numberOfPracticeBlocksPerCategory | The number of practice blocks run per category | 3 |
| numberOfTestBlocksPerCategory | The number of test blocks run per category | 12 |
Color Parameter |
||
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') | black |
| canvasFrameColor | Frame color of the canvas | black |
| screenColor | Color of the screen not used by the board | black |
| defaultTextColor | Default color of textitems | white |
Stimsizing |
||
| imageHeightPct | The proportional height of the face images (relative to canvas height) | 60% |
Timing Parameters |
||
| itiMS | The intertrial interval (in ms) in between faces | 200 |
Response Keys |
||
| responseKey | The response key (here: spacebar) | " " |
Categories Labels (Used In Instructions) |
||
| category1 | The category run as 'category1' in this script | "GENDER" |
| category1A | Level1 of category1 in this script | "Female" |
| category1B | Level2 of category1 in this script | "Male" |
| category2 | The category run as 'category2' in this script | "EMOTION" |
| category2A | Level1 of category2 in this script | "Angry" |
| category2B | Level2 of category2 in this script | "Neutral" |
Debugging |
||
| debugMode | 0 = the script runs in test mode 1 = the script runs in debug mode (displays the correct counts) | 0 |