Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 17, 2022
Last Modified: January 09, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements an affective 2-back procedure -based on Pe et al (2013)- to study the role of updating affective information in working memory (WM) on emotional functioning.
10 minutes
Participants are working on 4 blocks of n2Back tasks with affective word stimuli. The task is to indicate for each word whether its valence matches the valence of the word presented two trials before. Participants are asked to press one key if the word is a match, and a different key if the word is not a match (2key n-back). Each block consists of 24 words.
The word lists used for sets 1-4 (as well as the practice set) were computer generated based on the
Bradley & Lang (1999) published 'Affective norms for English words' (ANEW).
This script does NOT use the original words (nor valence order) used by Pe et al (2013).
Steps:
(1) Words with valence ratings <= 3 (1,2,3) were categorized as 'negative' words
words with valence ratings >= 7 (7,8,9) were categorized as 'positive' words
( some words were censored by Millisecond and not used for list generation)
(2) 60 positive stims (from the generated list of positive stims) were randomly selected
and paired with a negative word roughly based on arousal ratings (difference could not be more than 2)
and word length (difference could not be more than 2).
The first randomly selected negative stim that fulfilled those constraints was taken
as the match.
provided by Millisecond - can be edited under section 'Editable Instructions'
File Name: affectivenBackSummary*.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 |
| n | 2 (for n2Back) |
| setSequence | The order in which sets1-4 were run (Example: 1342) |
| list.acc.mean | Overall proportion correct |
| list.rt.mean | Overall correct mean latency (in ms) |
| list.accPosPosPos.itemCount | Counts the number of times 'pos-pos-pos' trials were run during the test blocks |
| list.accPosPosPos.mean | Proportion correct 'pos-pos-pos' trials across the test blocks |
| list.rtPosPosPos.itemCount | Number of correct 'pos-pos-pos' trials across the test blocks |
| list.rtPosPosPos.mean | Mean rt (in ms) of correct 'pos-pos-pos' trials across the test blocks |
| list.accPosNegPos.itemCount | Counts the number of times 'pos-neg-pos' trials were run during the test blocks |
| list.accPosNegPos.mean | Proportion correct 'pos-neg-pos' trials across the test blocks |
| list.rtPosNegPos.itemCount | Number of correct 'pos-neg-pos' trials across the test blocks |
| list.rtPosNegPos.mean | Mean rt (in ms) of correct 'pos-neg-pos' trials across the test blocks |
| list.accNegNegNeg.itemCount | Counts the number of times 'neg-neg-neg' trials were run during the test blocks |
| list.accNegNegNeg.mean | Proportion correct 'neg-neg-neg' trials across the test blocks |
| list.rtNegNegNeg.itemCount | Number of correct 'neg-neg-neg' trials across the test blocks |
| list.rtNegNegNeg.mean | Mean rt (in ms) of correct 'neg-neg-neg' trials across the test blocks |
| list.accNegPosNeg.itemCount | Counts the number of times 'neg-pos-neg' trials were run during the test blocks |
| list.accNegPosNeg.mean | Proportion correct 'neg-pos-neg' trials across the test blocks |
| list.rtNegPosNeg.itemCount | Number of correct 'neg-pos-neg' trials across the test blocks |
| list.rtNegPosNeg.mean | Mean rt (in ms) of correct 'neg-pos-neg' trials across the test blocks |
File Name: affectivenBack_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. |
| phase | 0 = Practice; 1 = Test |
| testBlockCount | Counts the test blocks run |
| n | 2 (for n2Back) |
| setSequence | The order in which sets1-4 are run (Example: 1342) by default, the sets are assigned in a random order (see list.setAssignment) |
| set | Refers to the set of stimuli run in the current block (0-4; set0 is the practice set) by default, the sets are assigned in sequence |
| index | Refers to the itemnumber of the current word |
| stim | The currently presented word |
| stimValence | "pos" vs. "neg" |
| valenceN2Back | Pos-pos-pos, pos-pos-neg, pos-neg-pos, pos-neg-neg, neg-neg-neg, neg-neg-pos, neg-pos-neg, neg-pos-pos |
| matchTrialType | 1 = pos-pos-pos 2 = pos-neg-pos 3 = neg-neg-neg 4 = neg-pos-neg 0 = anything else |
| middleRoleN2Back | "" (empty) vs. "facilitator" vs. "distractor" Example pos-pos-pos: middle one ('pos') is facilitator pos-neg-pos: middle one ('neg') is distractor |
| valenceMatch | The valence of the match from 2 trials back: "pos" vs. "neg" |
| match | "y" (yes) (the current stim is a target = match in valence to stim 2 trials back); "n" (no) |
| corrResponse | Stores the correct response key to press (1 vs. 2) |
| responseText | Stores the pressed response key (1 vs. 2); 0 = no response |
| correct | 1 = response was correct; 0 = response was incorrect (also for no responses) |
| rt | Stores the response latency in ms (is empty for no responses); measured from onset of stim |
| latency | Stores the response latency in ms (stores 3000 = responsetimeout for no responses); measured from onset of stim |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Timing Parameters |
||
| getReadyDuration | The duration (in ms) of the get-Ready trial | 3000 |
| stimDuration | The duration (in ms) that each word is presented on screen | 500 |
| soa | The duration (in ms) that responses are allowed after onset of word soa - stimDuration => ITI of 2500ms | 3000 |
| feedbackDuration | The feedback duration (in ms) during practice | 500 |
Sizing Parameters |
||
| stimSize | The proportional size (proportional to canvas height) of the word stimuli | 8% |
Response Keys |
||
| leftKey | The dedicated 'left' key (on QWERTY keyboard) | "1" |
| rightKey | The dedicated 'right' key (on QWERTY keyboard), 'right' of the 'left' key | "2" |
| yesKey | The key assigned to the 'yes-key' (yes-key = target detected); by defaults it's '1' | parameters.leftKey |
| noKey | The key assigned to the 'no-key' (no-key = no target); by defaults it's '2' | parameters.rightKey |