___________________________________________________________________________________________________________________ Negative Priming with Affective Stimuli ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 07-31-2024 last updated: 08-22-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 08-22-2024 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This Inquisit script implements a Negative Priming Procedure with affective stimuli. Negative Priming is generally characterized as the implicit memory effect in which actively suppressing information processing of a stimulus can impair processing of related material shortly there after. Negative Affective Priming uses stimuli of different valences (positive vs. negative). It has been used in the study of impaired cognitive processing in depression (Joorman & Gotlib, 2010) The implemented Negative Affective Priming procedure is based on the published paradigm by Joorman & Gotlib (2010). //////Reference: Joormann, J., & Gotlib, I. H. (2010). Emotion regulation in depression: Relation to cognitive inhibition. Cognition and Emotion, 24(2), 281–298. https://doi.org/10.1080/02699930903407948 ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ Participants see two words on top of each other. One is the target word (printed in blue) and one is the distractor (printed in red). The words come from different valence categories (one is positive and the other negative). Participants are asked to ignore the red words. Their task is to categorize the blue words as positive or negative via corresponding keyboard responses. Test trials are divided into 2 parts: Part1 are the Priming Trials (PTrials). Part2 are the Target Trials (TTrials). For Negative Priming (NP) trials, the valence of the ignored (red) word in the PTrial (=distractor) is the same as the valence of the (blue) target word in the TTrial. The valence of the (blue) target in PTrials is opposite of the valence of the (blue) target in TTrials => negative priming is expected (slower responses in TTrials due to negative priming via the suppressed distractor of the same valence) => since the attended targets are of opposite valences there should not be any 'positive' valence priming effect For Control (Ctrl) trials, the valence of the ignored (red) word in the PTrial is neutral compared to the positive or negative target word in the TTrial. The valence of the (blue) target in PTrials is opposite of the valence of the (blue) target in TTrials (same as in NP trials) => no negative priming is expected (neutral suppressed distractor should NOT negatively prime the target in the TTrial) => since the attended targets are of opposite valences there should not be any 'positive' valence priming effect in Ctrl trials either Differences in TTrial Response Times in NP condition should be due to Negative Priming. Note: Although PTrials and TTrials are individual trials from a participant's perspective, participants may nonetheless potentially catch on the predictable response pattern created by PTrials and TTrial always requiring opposite responses. Thus, this script has the built functionality to add filler trials to obscure this response pattern. ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ 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: 'negativepriming_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: with the current subject id group: with the current group id session: with the current session id blockcode, blocknum: the name and number of the current block (built-in Inquisit variable) 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. blockCounter: tracks the number of blocks run trialCounterPerBlock: tracks the number of trials run per block (Test Trial = (PTrial + TTrial) count as one trial) trialPhase: "P" (PTrial), "T" (TTrial), "F" (Filler) /////IV: stays the same across PTtrial and TTrial trialType: 1 = NP; 2 = Ctrl (Main IV); 3 = Filler (ignored for data analyses) targetValenceTTrial: 1 = target in TTrial is negative; 2 = target in TTrial is positive targetPositionPTrial: 1 = target in PTrial is on top; 2 = target in PTrial is on the bottom targetPositionTTrial: 1 = target in TTrial is on top; 2 = target in TTrial is on the bottom ////changes btw. PTrial and TTrial targetWord: the currently presented target word distractorWord: the currently presented distractor word targetValence: 1 = the currently presented target is negative; 2 = the currently presented target is positive distractorValence: 1 = the currently presented distractor is negative; 2 = the currently presented distractor is positive; 3 = distractor is neutral targetPosition: 1 = current target is on top (distractor on bottom); 2 = current target is on the bottom (distractor on top) correctResp: stores the correct response key for the current trial ////DVs: response: the response of participant (scancode of response button) responseText: the response button pressed Example: response = 18 (scancode) => responseText = "E" correct: correctness of response (1 = correct, 0 = error) latency: response latency (in ms); measured from: onset of words validRT: 1 = latency falls within 300 <= latency <= 2000 (see editable parameters) 0 = latency falls outside of specified range ///////additional variables: targetY: stores the vertical screen coordinate of the target distractorY: stores the vertical screen coordinate of the distractor Note: 0% = top of the screen -> 100% bottom of the screen ////ratings of targets and distractors tValence: the valence rating assigned to the current target tArousal: the arousal rating assigned to the current target tDominance: the dominance rating assigned to the current target tLength: the length of the current target dValence: the valence rating assigned to the current distractor dArousal: the arousal rating assigned to the current distractor dDominance: the dominance rating assigned to the current distractor dLength: the length of the current distractor //previous stimuli used (to check that no repeats across pTrials and tTrials) prevDistractor: stores the distractor stimulus from the previous trial prevTarget: stores the target stimulus from the previous trials (2) Summary data file: 'negativepriming_summary*.iqdat' (a separate file for each participant) inquisit.version: Inquisit version run computer.platform: the platform the script was run on (win/mac/ios/android) startDate: date script was run startTime: time script was started subjectId: assigned subject id number groupId: assigned group id number sessionid: assigned session id number elapsedTime: time it took to run script (in ms); measured from onset to offset of script completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) /////summary data////// Notes: - summary variable based on TTrial performance only - latency data based on validRTs only (300 <= latency <= 2000) propCorrect: proportion correct responses across all test trials (TTrial only) meanCorrRT: mean correct response time across all test trials (TTrial only) Note: extreme latency outliers removed (300 <= latency <= 2000) propRTOutliers: proportion removed latency data relative to all latency data (correct or incorrect responses) propCorrectNP: proportion correct responses across all NP trials (TTrial only) meanCorrRTNP: mean correct response time across all NP trials (TTrials only) - extreme outliers removed propCorrectCtrl: proportion correct responses across all Control trials (TTrial only) meanCorrRTCtrl: mean correct response time across all Control trials (TTrials only) - extreme outliers removed ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ ///////////////////////// (1) Practice: ///////////////////////// - 10 practice trials - practice trials are individual trials (NOT 2-part trials like the test trials) - half the practice trials require a positive response (half a negative response) - the valence of the distractor is opposite to the target valence - half the practice trials present the target on top, half on the bottom (randomly selected) - the trial order is randomly determined - practice trials select from their own pool of stimuli - error feedback is provided ///////////////////////// (2) Test: 5 test blocks (editable parameter) ///////////////////////// - Each test block runs 32 test trials (each test trial has 2 parts) and 16 filler trials (see editable parameters) => from a participant's perspective there are (2*32) + 16 = 80 individual trials to run - the order of the trials is randomly generated for each block - no feedback ***Test Trials ('double trials')*** 2 trialtypes (NP vs. Ctrl) x 2 target valences in target trials (pos vs neg) x 2 target positions in PTrials (top vs. bottom) x 2 target positions in target trials (top vs.bottom) => minimum of 16 test trials per block for a balanced design (each test trial runs 2 individual trials) => with 32 test trials, each combination is run twice - Half the test trials are NP trials, half are Ctrl trials NP: distractor valence in PTrial = target valence in TTrial (negative priming) target valence in PTrial opposite of target valence in TTrial (no positive priming) Ctrl: distractor valence in PTrial neutral and thus different than target valence in TTrial (no negative priming) target valence in PTrial opposite of target valence in TTrial (no positive priming) ***Filler Trials ('single trials')*** number of filler trials can be controlled via an editable parameter. By default, this script runs half as many filler trials as test trials => 0.5*32 = 16 Filler Trials - filler trials randomly (with replacement) select neutral, positive or negative distractors - filler trial select a different valence for their targets - target screen position (top or bottom) is selected randomly with replacement ***Trial Sequence*** -> Fixation cross only for 500ms -> Target and Distractor until response ///////Note on Stimuli Selection - all neutral stimuli are selected randomly without replacement from the pool of neutral stimuli (automatically resets once all stimuli have been selected) - all negative stimuli are selected randomly without replacement from the pool of negative stimuli (automatically resets once all stimuli have been selected)* - all positive stimuli are selected randomly without replacement from the pool of positive stimuli (automatically resets once all stimuli have been selected)* *The script ensures that no stimuli are repeated in PTrials and TTrials, thus the script forces a reset of the positive and negative selection lists if there are not at least 2 different stimuli left to select. Other consecutive trials can repeat stimuli however. ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ provided by Millisecond Software - can be edited and/or replaced under section 'Editable Stimuli' The stimuli are NOT original to Joorman & Gotlib (2010)* They were generated for the Inquisit script as follows: Words taken from the Affective Norms of English words (Bradley & Lang,1999) Bradley, MM.; Lang, PJ. Affective norms for English words (ANEW): Technical Manual and Affective Ratings. Gainesville, FL: The Center for Research in Psychophysiology, University of Florida; 1999. ///////////////////// ////Positive items: ///////////////////// - valence rating >= 7 - arousal rating: 4 <= arousal <= 6 (midlevel arousal) - dominance rating: 4 <= arousal <= 6 (midlevel dominance) - word length: 4 <= word length <= 6 (target and distractor should be within 2 letters of each other, and neither too short nor too long) Of the determined 41 stimuli, Millisecond selected the 32 words with the highest valence: Mean Valence: 7.52 Mean Arousal: 5.01 Mean Dominance: 5.55 Mean word length: 5.13 ///////////////////// ////Neutral items: ///////////////////// - 4.5 <=valence rating <= 5.5 - arousal rating: 4 <= arousal <= 6 (midlevel arousal) - dominance rating: 4 <= arousal <= 6 (midlevel dominance) - word length: 4 <= word length <= 6 (target and distractor should be within 2 letters of each other, and neither too short nor too long) Of the determined 38 stimuli, Millisecond selected the 16 words with a valence closest to 5: Mean Valence: 5.01 Mean Arousal: 4.64 Mean Dominance: 4.90 Mean word length: 5.13 ///////////////////// ////Negative items: ///////////////////// - valence rating <= 3.5 - arousal rating: 4 <= arousal <= 6 (midlevel arousal) - dominance rating: 4 <= arousal <= 6 (midlevel dominance) - word length: 4 <= word length <= 6 (target and distractor should be within 2 letters of each other, and neither too short nor too long) Of the determined 39 stimuli, Millisecond selected the 32 with the lowest valence rating: Mean Valence: 2.73 Mean Arousal: 5.02 Mean Dominance: 4.42 Mean word length: 5.38 ///////////////////// ////Practice items: ///////////////////// The 7 positive and negative practice items were chosen from the pool of 'rejected' positive and negative items :) *Note: stimuli generation in Joorman & Gotlib (2010, p.5) ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ provided by Millisecond Software - can be edited under section 'Editable Instructions' ___________________________________________________________________________________________________________________ EDITABLE CODE ___________________________________________________________________________________________________________________ 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: //////////// exp design elements / numberOfBlocks = 5 //number of test blocks to run / numberTTrialsPerBlock = 32 //number of TTrials run per block //should be a multiple of 16 //Note: if there are 32 TTrials in a block, there are also 32 PTrials //in a block (so from a participant's perspective there are 64 test trials)! / ratioFillerToTTrial = 0.5 //script adds an additional (0.5*TTrials) number of filler trials to each block //by default: 0.5*32 = 16 filler trials (filler trials are single trials not double ones!) //for a total of 32 TTrials per block there will be: 32 PTrials + 32 TTrials + 16 filler trials = 80 single trials from participant perspective) / targetColor = blue //the color of the target words (require a response) / distractorColor = red //the color of the distractor words (should be ignored) //latency outlier removal / minLatency = 300 //the minimum acceptable response time (in ms) / maxLatency = 2000 //the maximum acceptable response time (in ms) ////////////////sizing and position parameters / wordHeightPct = 8% //the relative height of the words (relative to canvas height) //positions: the percent vertical active canvas position (top = 0 -> bottom = 100%) / topY = 35% //top canvas position / bottomY = 65% //bottom canvas position /////////////////timing parameters / getreadyDuration = 3000 //the duration (in ms) of the get-ready trial / fixationDurationMS = 500 //the duration (in ms) of the fixation cross //////////////////responseKeys: / leftResponseKey = "A" //the assigned left response key (left side on QWERTY keyboard) / rightResponseKey = "L" //the assigned right response key (right side on QWERTY keyboard) / positiveResponseKey = parameters.rightResponseKey / negativeResponseKey = parameters.leftResponseKey