highcaloric DOT PROBE TASK - with images SCRIPT INFO Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 05-28-2015 last updated: 08-17-2015 by K.Borchert for Millisecond Software LLC Copyright © 08-17-2015 Millisecond Software BACKGROUND INFO *Purpose* This script implements the dotprobe procedure with images as used in: Miller, M.A. & Fillmore, M.T (2010). The effect of image complexity on attentional bias towards highcaloric-related images in adult drinkers. Addiction, 105, 883–890. Note: Due to the fact that no differences were found with complex stimuli, this script only implements the dot probe task with simple pictures. Millisecond Software thanks Dr. Fillmore for ample assistance and generously sharing the original stimuli! *Task* After presentation of a fixation cross in the center of the screen, participants are presented with 2 pictures from two categories (here: highcaloric and lowcaloric pictures). The position of the pictures is randomly chosen to be either left or right to the location of the fixation cross. After a short duration, the two pictures disappear and a probe stimulus (here: X) appears in the location of one of the pictures. Participants are asked to press one key if the probe is left and another if the probe is right. DATA FILE INFORMATION: The default data stored in the data files are: (1) Raw data file: 'DP_rawdata.iqdat' (a separate script for each participant) build: Inquisit build date, time, subject: date and time script was run with the current subject /task: 1 = practice; 2 = test blockcode, blocknum: the name and number of the current block trialcode, trialnum: the name and number of the currently recorded trial (Note: not all trials that are run might record data) /category: 1 = highcaloric ; 2 = Filler /congruence: 1 = probe and target (e.g. highcaloric) position same; 2 = probe and target (e.g. highcaloric) position different /target_position: 1 = target (e.g. highcaloric) image on left; 2 = target (e.g. highcaloric) image on right /target_x-probe_x: the x-coordinate (in %) of the target (e.g. highcaloric)/ comp ('paired with target') /probe stims /itemnumber: itemnumber of currently selected picture /target_image: stores the currently presented target (e.g. highcaloric) image /comp_image: stores the currently presented comp ('paired with target') image response: the participant's response (scancode of response button) latency: the response latency in ms (measured from onset of probe) correct: accuracy of response (regardless of whether latency >= values.minimum_latency) 1 = correct; 0 = incorrect /valid: latency in ms that is >= values.minimum_latency /validcorrect: 1 = response was correct and latency was >= values.minimum_latency; 0 = otherwise (2) Summary data file: 'DotProbe_summary.iqdat' (Inquisit Lab: one data file for all participants) script.startdate: date script was run script.starttime: time script was started script.subjectid: subject id number script.groupid: group id number script.elapsedtime: time it took to run script (in ms) /completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) /fixationduration/targetduration: the duration of the fixation cross (default: 500ms)/the targets (default: 1000ms)/ /probeduration: the duration of the probe presentation (default: 1000ms) /iti: intertrial interval in ms /probe: the symbol used for the probe (default: X) /responsekey_left-responsekey_right: the keyboard scancodes associated with left probe and right probe /responsekey_left_label: responsekey labels /minimum_latency: the minimum latency of a correct response that is included into summary variables (default: 100ms) NOTE: all latency/accuracy summary variables are based on correct responses with latencies >= values.minimum_latency (default: 100ms) /propcorrect: proportion correct overall /meanrt: overall mean latency /propcorrect_congruent_highcaloric: proportion correct in congruent highcaloric trials /propcorrect_incongruent_highcaloric: proportion correct in incongruent highcaloric trials /meanRT_congruent_highcaloric: mean latency of congruent highcaloric trials /meanRT_incongruent_highcaloric: mean latency of incongruent highcaloric trials /AB_highcaloric: Attentional Bias for highcaloric pics : If AB_highcaloric > 0 => faster mean latencies to congruent highcaloric trials than incongruent ones /propcorrect_congruent_Filler: proportion correct in congruent Filler trials /propcorrect_incongruent_Filler: proportion correct in incongruent Filler trials /meanRT_congruent_Filler: mean latency of congruent Filler trials /meanRT_incongruent_Filler: mean latency of incongruent Filler trials /AB_Filler: Attentional Bias for Filler pics : If AB_Filler > 0 => faster mean latencies to congruent filler trials than incongruent ones (here: should not be different) EXPERIMENTAL SET-UP 2 categories tested (highcaloric: highcaloric; Filler: filler); within-design - 1 block of 10 practice trials - 1 block of 80 trials: 40 highcaloric trials (highcaloric-lowcaloric pairings) and 40 Filler (filler1-filler2 pairings) 10 highcaloric/lowcaloric simple pictures, all pictures presented 4 times => right/left, followed by prime/not followed by prime => 10 * 4 = 40 trials - Filler Trials: same for filler trials Note: all 80 trials are randomly sampled without replacement TRIAL SEQUENCES fixation cross (500ms) -> target image pair (1000ms) -> TP_ISI (default: 0ms) -> probe (max. 1000ms) (latency measured from onset of probe until response or offset of probe; whichever comes first) STIMULI Stimuli were generously shared by Dr. Fillmore and can be easily edited under EDITABLE STIMULI INSTRUCTIONS Instructions were generously shared by Dr. Fillmore and can be easily edited under EDITABLE CODE -> 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: /fixationduration/targetduration: the duration of the fixation cross (default: 500ms)/the targets (default: 1000ms)/ /TP_ISI: interstimulus interval between target and probe (default: 0ms) /probeduration: the duration of the probe presentation (default: 1000ms) Note: by default this scripts allows for responses for the entire probe duration; the trial terminates after values.probeduration is over /iti: intertrialpause in ms (default: 0ms) /probe: the symbol used for the probe (default: X) /responsekey_left: the scancode of the left response button (default: 18) /responsekey_right: the scancode of the left response button (default: 23) /responsekey_left_label: the label of the left response button ("E") /responsekey_right_label: the label of the right response button ("I") /minimum_latency: the minimum latency of a correct response that is included into summary variables (default: 100ms) Physical Settings of Display: Note: change the settings to optimize the display on your computer screen /target_left_x-target_right_x: the x-coordinate in % of the right/left target (default: 27%, 73%) /target_y: the y-coordinate of the target (default: center at 50%) /fixationcross_height: the height of the fixation cross in canvas height percentage (default: 5%) /probe_height: the height of the probe in canvas height percentage (default: 5%) /imageheight: the height of the image in canvas height percentage (default: 40%) ************************************************************************************************************** ************************************************************************************************************** EDITABLE PARAMETERS: change editable parameters here ************************************************************************************************************** ************************************************************************************************************** /fixationduration = 500 /targetduration = 200 /TP_ISI = 0 /probeduration = 1500 /iti = 500 /probe = "X" /responsekey_left = 18 /responsekey_right = 23 /responsekey_left_label = "E" /responsekey_right_label = "I" /minimum_latency = 100 /target_left_x = 27% /target_right_x = 73% /target_y = 50% /fixationcross_height = 5% /probe_height = 5% /imageheight = 40% ************************************************************************************************************** ************************************************************************************************************** EDITABLE STIMULI: change editable stimuli here ************************************************************************************************************** ************************************************************************************************************** Note: itemnumbers 1-20: here: simple highcaloric pictures /1 = "highcaloric1a.jpg" /2 = "highcaloric2a.jpg" /3 = "highcaloric3a.jpg" /4 = "highcaloric4a.jpg" /5 = "highcaloric5a.jpg" /6 = "highcaloric6a.jpg" /7 = "highcaloric7a.jpg" /8 = "highcaloric8a.jpg" /9 = "highcaloric9a.jpg" /10 = "highcaloric10a.jpg" /11 = "highcaloric11a.jpg" /12 = "highcaloric12a.jpg" /13 = "highcaloric13a.jpg" /14 = "highcaloric14a.jpg" /15 = "highcaloric15a.jpg" /16 = "highcaloric16a.jpg" /17 = "highcaloric17a.jpg" /18 = "highcaloric18a.jpg" /19 = "highcaloric19a.jpg" /20 = "highcaloric20a.jpg" Note: itemnumbers 1-20: here: animals and plants paired with the highcaloric pics /1 = "animal1b.jpg" /2 = "animal2b.jpg" /3 = "plant3b.jpg" /4 = "plant4b.jpg" /5 = "animal5b.jpg" /6 = "animal6b.jpg" /7 = "plant7b.jpg" /8 = "animal8b.jpg" /9 = "plant9b.jpg" /10 = "animal10b.jpg" /11 = "animal11b.jpg" /12 = "plant12b.jpg" /13 = "plant13b.jpg" /14 = "plant14b.jpg" /15 = "plant15b.jpg" /16 = "animal16b.jpg" /17 = "animal17b.jpg" /18 = "plant18b.jpg" /19 = "animal19b.jpg" /20 = "plant20b.jpg" Note: itemnumbers 1-20: here: lowcaloric !!AUF 20 erweitert - Syntax anpassen! /1 = "lowcaloric1b.jpg" /2 = "lowcaloric2b.jpg" /3 = "lowcaloric3b.jpg" /4 = "lowcaloric4b.jpg" /5 = "lowcaloric5b.jpg" /6 = "lowcaloric6b.jpg" /7 = "lowcaloric7b.jpg" /8 = "lowcaloric8b.jpg" /9 = "lowcaloric9b.jpg" /10 = "lowcaloric10b.jpg" /11 = "lowcaloric11b.jpg" /12 = "lowcaloric12b.jpg" /13 = "lowcaloric13b.jpg" /14 = "lowcaloric14b.jpg" /15 = "lowcaloric15b.jpg" /16 = "lowcaloric16b.jpg" /17 = "lowcaloric17b.jpg" /18 = "lowcaloric18b.jpg" /19 = "lowcaloric19b.jpg" /20 = "lowcaloric20b.jpg" Note: itemnumbers 1-10: here: filler images paired with filler images /1 = "animal1a.jpg" /2 = "plant2a.jpg" /3 = "plant3a.jpg" /4 = "animal4a.jpg" /5 = "plant5a.jpg" /6 = "animal6a.jpg" /7 = "plant7a.jpg" /8 = "plant8a.jpg" /9 = "plant9a.jpg" /10 = "plant10a.jpg" /11 = "animal11a.jpg" /12 = "animal12a.jpg" /13 = "plant13a.jpg" /14 = "plant14a.jpg" /15 = "animal15a.jpg" /16 = "animal16a.jpg" /17 = "animal17a.jpg" /18 = "animal18a.jpg" /19 = "animal19a.jpg" /20 = "plant20a.jpg" ******************************** Practice Stimuli ******************************** /1 = "practice1a.jpg" /2 = "practice2a.jpg" /3 = "practice3a.jpg" /4 = "practice4a.jpg" /5 = "practice5a.jpg" /6 = "practice6a.jpg" /7 = "practice7a.jpg" /8 = "practice8a.jpg" /9 = "practice9a.jpg" /10 = "practice10a.jpg" /1 = "practice1b.jpg" /2 = "practice2b.jpg" /3 = "practice3b.jpg" /4 = "practice4b.jpg" /5 = "practice5b.jpg" /6 = "practice6b.jpg" /7 = "practice7b.jpg" /8 = "practice8b.jpg" /9 = "practice9b.jpg" /10 = "practice10b.jpg" ************************************************************************************************************** ************************************************************************************************************** EDITABLE INSTRUCTIONS: change instructions here ************************************************************************************************************** ************************************************************************************************************** / fontstyle = ("Arial", 3.00%, false, false, false, false, 5, 1) / txcolor = (0, 0, 0) /windowsize = (90%, 90%) / finishlabel = "Weiter (Leertaste)" / nextkey = (57) /nextlabel = "Weiter (Leertaste)" /prevkey = (28) /prevlabel = "Zurück (P)" Note: the main instructions were generously provided by Dr. Fillmore. Customize below. ^^Willkommen! ^^Legen Sie bitte den linken Zeigefinger auf die E-Taste und den rechten Zeigefinger auf die I-Taste. ^^Es werden nun einige Bilderpaare mit Haushaltsgegenständen präsentiert. Bitte schauen Sie sich beide Bilder gut an. Wenn die Bilder verschwinden, sehen Sie ein X auf der linken oder auf der rechten Seite des Bildschirms. ^^Ihre Aufgabe ist es, so schnell wie möglich auf das X zu reagieren, indem Sie die E-Taste drücken, wenn das X auf der linken Seite des Bildschirms präsentiert wird oder die I-Taste, wenn das X auf der rechten Seite des Bildschirms präsentiert wird. Bitte reagieren Sie so schnell und so fehlerfrei wie möglich. ^^Um Sie mit dem Experiment vertraut zu machen, können Sie erst einmal üben. Wenn Sie einen Fehler machen, erscheint die Fehlermeldung FALSCH. ^^Haben Sie noch Fragen? ^^Konzentrieren Sie sich nun auf den Bildschirm und drücken Sie die Leertaste, um den Übungsdurchgang zu starten. ^^Sehr schön. Wenn Sie noch Fragen haben, wenden Sie sich bitte jetzt an die Testleiterin. ^^Wir beginnen nun das Experiment. Es werden jetzt Bilderpaare mit Tieren, Pflanzen oder Essen präsentiert. ^^Denken Sie daran: Bitte schauen Sie sich beide Bilder gut an. Wenn die Bilder verschwinden, sehen Sie ein X auf der linken oder auf der rechten Seite des Bildschirms. Wenn das X auf der linken Seite des Bildschirms präsentiert wird, drücken Sie die E-Taste. Wenn das X auf der rechten Seite des Bildschirms präsentiert wird, drücke Sie die I-Taste. ^^Bitte reagieren Sie so schnell und so fehlerfrei wie möglich. ^^Das Experiment dauert ca. 5 Minuten. Es wird ab jetzt kein Feedback mehr geben. Bereit? Dann drücken Sie die Leertaste und los geht's! Sie haben es geschafft! Vielen Dank! ************************************************************************************************************** ************************************************************************************************************** EDITABLE LISTS: change editable lists here ************************************************************************************************************** ************************************************************************************************************** Note: the following lists control the presentation of each image. => each image is presented 4 times => each image is presented left 2 times and right 2 times => if presented on the left: one presentation is congruent with probe; one is incongruent with probe => if presented on the right: one presentation is congruent with probe; one is incongruent with probe ******************************************** highcaloric lists ******************************************** Note: the following list contains the 4 repetitions of the 10 itemnumber of the highcaloricTarget stimuli the list randomly selects one itemnumber (without replacement) for highcaloric trials (the same itemnumbers are used for comp stimuli) /items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) / replace = false Note: the following list samples the left (1) or right (2) position of the highcaloricTarget stimuli that is tied to the sampled itemnumber (by its list position index) => each item number is presented twice on the left and twice on the right) /items = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) / selectionmode = list.highcaloricTarget_itemnumbers.currentindex Note: the following list samples the highcaloricTarget and probe congruence that is tied to the sampled itemnumber (by its list position index) => each itemnumber is presented once left and is followed by the probe (congruent = 1) => each itemnumber is presented once left is is not followed by the probe (incongruent = 2) => each itemnumber is presented once right and is followed by the probe (congruent = 1) => each itemnumber is presented once right is is not followed by the probe (incongruent = 2) / items = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) / selectionmode = list.highcaloricTarget_itemnumbers.currentindex ******************************************** FillerTarget lists ******************************************** Note: the following list contains the 4 repetitions of the 10 itemnumber of the FillerTarget stimuli the list randomly selects one itemnumber (without replacement) for Filler trials /items = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) / replace = false Note: the following list samples the left (1) or right (2) position of the FillerTarget stimuli that is tied to the sampled itemnumber (by its list position index) => each item number is presented twice on the left and twice on the right /items = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) / selectionmode = list.FillerTarget_itemnumbers.currentindex Note: the following list samples the FillerTargetnd probe congruence that is tied to the sampled itemnumber (by its list position index) => each itemnumber is presented once left and is followed by the probe (congruent = 1) => each itemnumber is presented once left is is not followed by the probe (incongruent = 2) => each itemnumber is presented once right and is followed by the probe (congruent = 1) => each itemnumber is presented once right is is not followed by the probe (incongruent = 2) / items = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) / selectionmode = list.FillerTarget_itemnumbers.currentindex ************************************************************************************************************** !!!REMAINING CODE: Customize after careful consideration only!!! ************************************************************************************************************** ************************************************************************************************************** ************************************************************************************************************** DEFAULTS ************************************************************************************************************** ************************************************************************************************************** requires Inquisit 4.0.8.0 or higher /minimumversion = "4.0.8.0" / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) / txcolor = (white) /txbgcolor = (black) /screencolor = black /canvasaspectratio = (4,3) ******************************************************************************************************************* ******************************************************************************************************************* VALUES ******************************************************************************************************************* ******************************************************************************************************************* ******************** automatically updated ******************** /completed: 0 = script was not completed; 1 = script was completed (all conditions run) /category: 1 = highcaloric ; 2 = Filler /itemnumber: itemnumber of currently selected picture /selecteditem: helper variable to determine itemnumber /target_x-probe_x: the x-coordinate (in %) of the target (e.g. highcaloric)/ comp ('paired with target') /probe stims /comp_image: stores the currently presented comp ('paired with target') image /target_image: stores the currently presented target (e.g. highcaloric) image /target_position: 1 = target (e.g. highcaloric) image on left; 2 = target (e.g. highcaloric) image on right /congruence: 1 = probe and target (e.g. highcaloric) position same; 2 = probe and target (e.g. highcaloric) position different /task: 1 = practice; 2 = test /valid: latency in ms that is >= values.minimum_latency /validcorrect: 1 = response was correct and latency was >= values.minimum_latency; 0 = otherwise Summary Variables: Note: * all latency/accuracy summary variables are based on correct responses with latencies >= values.minimum_latency (default: 100ms) /counttrials: counts all trials /sumcorrect: counts all correct responses >= values.minimum_latency (here: 100ms) /sumrt: sums up all latencies for correct responses >= values.minimum_latency (here: 100ms) /count_congruent_highcaloric: counts all congruent highcaloric trials /count_incongruent_highcaloric: counts all incongruent highcaloric trials /sumcorrect_congruent_highcaloric: counts the correct responses to congruent trials for highcaloric /sumcorrect_incongruent_highcaloric: counts the correct responses to incongruent trials for highcaloric /sumrt_congruent_highcaloric: adds up the latencies for CORRECT responses in congruent trials for highcaloric /sumrt_incongruent_highcaloric: adds up the latencies for CORRECT responses in incongruent trials for highcaloric /count_congruent_Filler: counts all congruent Filler trials /count_incongruent_Filler: counts all incongruent Filler trials /sumcorrect_congruent_Filler: counts the correct responses to congruent trials for Filler /sumcorrect_incongruent_Filler: counts the correct responses to incongruent trials for Filler /sumrt_congruent_Filler: adds up the latencies for CORRECT responses in congruent trials for Filler /sumrt_incongruent_Filler: adds up the latencies for CORRECT responses in incongruent trials for Filler /completed = 0 /category = 0 /itemnumber = 0 /selecteditem = "" /target_x = 0 /comp_x = 0 /probe_x = 0 /probe_y = 0 /comp_image = "" /target_image = "" /target_position = 0 /congruence = 0 /task = 0 /valid = "" /validcorrect = 0 /trialcount = 0 /sumcorrect = 0 /sumrt = 0 /count_congruent_highcaloric = 0 /count_incongruent_highcaloric = 0 /sumcorrect_congruent_highcaloric = 0 /sumcorrect_incongruent_highcaloric= 0 /sumrt_congruent_highcaloric = 0 /sumrt_incongruent_highcaloric = 0 /count_congruent_Filler = 0 /count_incongruent_Filler = 0 /sumcorrect_congruent_Filler = 0 /sumcorrect_incongruent_Filler= 0 /sumrt_congruent_Filler = 0 /sumrt_incongruent_Filler = 0 ******************************************************************************************************************* ******************************************************************************************************************* EXPRESSIONS ******************************************************************************************************************* ******************************************************************************************************************* NOTE: all latency/accuracy summary variables are based on correct responses with latencies >= values.minimum_latency (default: 100ms) /propcorrect: proportion correct overall /meanrt: overall mean latency /propcorrect_congruent_highcaloric: proportion correct in congruent highcaloric trials /propcorrect_incongruent_highcaloric: proportion correct in incongruent highcaloric trials /meanRT_congruent_highcaloric: mean latency of congruent highcaloric trials /meanRT_incongruent_highcaloric: mean latency of incongruent highcaloric trials /AB_highcaloric: Attentional Bias for highcaloric pics : If AB_highcaloric > 0 => faster mean latencies to congruent highcaloric trials than incongruent ones /propcorrect_congruent_Filler: proportion correct in congruent Filler trials /propcorrect_incongruent_Filler: proportion correct in incongruent Filler trials /meanRT_congruent_Filler: mean latency of congruent Filler trials /meanRT_incongruent_Filler: mean latency of incongruent Filler trials /AB_Filler: Attentional Bias for Filler pics : If AB_Filler > 0 => faster mean latencies to congruent filler trials than incongruent ones /propcorrect = values.sumcorrect/values.trialcount /meanrt = values.sumrt/values.sumcorrect /propcorrect_congruent_highcaloric = values.sumcorrect_congruent_highcaloric/values.count_congruent_highcaloric /propcorrect_incongruent_highcaloric = values.sumcorrect_incongruent_highcaloric/values.count_incongruent_highcaloric /meanRT_congruent_highcaloric = values.sumrt_congruent_highcaloric/values.sumcorrect_congruent_highcaloric /meanRT_incongruent_highcaloric = values.sumrt_incongruent_highcaloric/values.sumcorrect_incongruent_highcaloric /AB_highcaloric = expressions.meanRT_incongruent_highcaloric - expressions.meanRT_congruent_highcaloric /propcorrect_congruent_Filler = values.sumcorrect_congruent_Filler/values.count_congruent_Filler /propcorrect_incongruent_Filler = values.sumcorrect_incongruent_Filler/values.count_incongruent_Filler /meanRT_congruent_Filler = values.sumrt_congruent_Filler/values.sumcorrect_congruent_Filler /meanRT_incongruent_Filler = values.sumrt_incongruent_Filler/values.sumcorrect_incongruent_Filler /AB_Filler = expressions.meanRT_incongruent_Filler - expressions.meanRT_congruent_Filler ******************************************************************************************************************* ******************************************************************************************************************* DATA ******************************************************************************************************************* ******************************************************************************************************************* for explanations of custom values, go to VALUES/EXPRESSIONS. Customize. ******************** raw data ******************** /file = "highcaloricDotProbe_rawdata.iqdat" /separatefiles = true /columns = [build, date, time, subject, group, values.task, blockcode, blocknum, trialcode, trialnum, values.category, values.congruence, values.target_position, values.comp_x, values.target_x, values.probe_x, values.itemnumber, values.target_image, values.comp_image, response, latency, correct, values.valid, values.validcorrect] ******************** summary data ******************** /file = "highcaloricDotProbe_summary.iqdat" /columns = [script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, values.completed, values.fixationduration, values.targetduration, values.probeduration, values.iti, values.minimum_latency, expressions.propcorrect, expressions.meanrt, expressions.propcorrect_congruent_highcaloric, expressions.meanrt_congruent_highcaloric, expressions.propcorrect_incongruent_highcaloric, expressions.meanrt_incongruent_highcaloric, expressions.propcorrect_congruent_Filler, expressions.meanrt_congruent_Filler, expressions.propcorrect_incongruent_Filler, expressions.meanrt_incongruent_Filler, expressions.AB_highcaloric, expressions.AB_Filler] ******************************************************************************************************************* ******************************************************************************************************************* STIMULI ******************************************************************************************************************* ******************************************************************************************************************* /items = highcaloricTarget_images /select = values.itemnumber /hposition = values.Target_x /vposition = values.target_y /size = (values.imageheight, values.imageheight) /items = highcaloricComp_images /select = values.itemnumber /hposition = values.Comp_x /vposition = values.target_y /size = (values.imageheight, values.imageheight) /items = FillerTarget_images /select = values.itemnumber /hposition = values.Target_x /vposition = values.target_y /size = (values.imageheight, values.imageheight) /items = FillerComp_images /select = values.itemnumber /hposition = values.Comp_x /vposition = values.target_y /size = (values.imageheight, values.imageheight) /items = PracticeTargets /select = noreplace /hposition = values.Target_x /vposition = values.target_y /size = (values.imageheight, values.imageheight) /items = PracticeComps /select = picture.PracticeTarget.currentitemnumber /hposition = values.Comp_x /vposition = values.target_y /size = (values.imageheight, values.imageheight) ****************************** other stimuli ****************************** /items = ("+") /position = (50%, 50%) / fontstyle = ("Arial", values.fixationcross_height, false, false, false, false, 5, 1) / erase = false /items = ("<%values.probe%>") /hposition = values.probe_x /vposition = values.target_y /txcolor = white / fontstyle = ("Arial", values.probe_height, false, false, false, false, 5, 1) / erase = false /shape = rectangle /size = (100%, 100%) /color = black /position = (50%, 50%) / erase = false /items = ("FALSCH") /txcolor = red /position = (50%, 50%) / fontstyle = ("Arial", 10%, true, false, false, false, 5, 1) ******************************************************************************************************************* ******************************************************************************************************************* PRACTICE TRIALS ******************************************************************************************************************* ******************************************************************************************************************* *************************************************************************** Lists that control the position of the emotion face and the probe for practice *************************************************************************** Note: selects randomly with replacement the position (1=left, 2 = right) of the emotion face for practice trials /items = (1, 2) /replace = true Note: selects randomly without replacement the probe position (1=left, 2 = right) for 10 practice trials /items = (1, 2, 1, 2, 1, 2, 1, 2, 1, 2) /replace = false / ontrialbegin = [values.category = "Practice"] / ontrialbegin = [values.target_position = list.PracticeTarget_positions.nextvalue] / ontrialbegin = [values.congruence = list.PracticeTargetprobe_congruence.nextvalue] / ontrialbegin = [if (values.target_position == 1) {values.target_x = values.target_left_x; values.comp_x = values.target_right_x} else {values.target_x = values.target_right_x; values.comp_x = values.target_left_x}] / ontrialbegin = [if (values.congruence == 1) {values.probe_x = values.target_x} else {values.probe_x = values.comp_x}] / ontrialbegin = [trial.Practice.insertstimulustime(shape.eraser, values.fixationduration)] / ontrialbegin = [trial.Practice.insertstimulustime(picture.PracticeTarget, values.fixationduration)] / ontrialbegin = [trial.Practice.insertstimulustime(picture.PracticeComp, values.fixationduration)] / ontrialbegin = [trial.Practice.insertstimulustime(shape.eraser, (values.fixationduration + values.targetduration))] / ontrialbegin = [trial.Practice.insertstimulustime(text.probe, (values.fixationduration + values.targetduration + values.TP_ISI))] / ontrialend = [trial.Practice.resetstimulusframes()] / stimulusframes = [1 = fixation] / beginresponsetime = values.fixationduration + values.targetduration + values.TP_ISI / responseinterrupt = immediate / isvalidresponse = [trial.Practice.response == values.responsekey_left || trial.Practice.response == values.responsekey_right] / iscorrectresponse = [(values.probe_x == values.target_left_x && trial.Practice.response == values.responsekey_left) || (values.probe_x == values.target_right_x && trial.Practice.response == values.responsekey_right)] / monkeyresponse = (18, 23) / ontrialend = [values.target_image = picture.PracticeTarget.currentitem; values.comp_image = picture.PracticeComp.currentitem] / timeout = (values.fixationduration + values.targetduration + values.TP_ISI+ values.probeduration) / posttrialpause = values.iti ************************************************************************************************************** ************************************************************************************************************** TRIALS ************************************************************************************************************** ************************************************************************************************************** Note: trial.highcaloric * samples the next target itemnumber, its location on the screen, and its probe congruence * selects the appropriate screen coordinates for target, comp, probe * presents fixation cross for values.fixationduration * presents the images for values.targetduration * presents the probe for values.probeduration * starts collecting responses at onset of probe * terminates trial with positive response * updates summary variables / ontrialbegin = [values.valid = 0; values.validcorrect = 0; values.trialcount += 1; values.category="highcaloric"] / ontrialbegin = [values.itemnumber = list.highcaloricTarget_itemnumbers.nextvalue] / ontrialbegin = [values.target_position = list.highcaloricTarget_positions.nextvalue] / ontrialbegin = [values.congruence = list.highcaloricTargetprobe_congruence.nextvalue] / ontrialbegin = [if (values.target_position == 1) {values.target_x = values.target_left_x; values.comp_x = values.target_right_x} else {values.target_x = values.target_right_x; values.comp_x = values.target_left_x}] / ontrialbegin = [if (values.congruence == 1) {values.probe_x = values.target_x} else {values.probe_x = values.comp_x}] / ontrialbegin = [trial.highcaloric.insertstimulustime(shape.eraser, values.fixationduration)] / ontrialbegin = [trial.highcaloric.insertstimulustime(picture.highcaloricTarget, values.fixationduration)] / ontrialbegin = [trial.highcaloric.insertstimulustime(picture.highcaloricComp, values.fixationduration)] / ontrialbegin = [trial.highcaloric.insertstimulustime(shape.eraser, (values.fixationduration + values.targetduration))] / ontrialbegin = [trial.highcaloric.insertstimulustime(text.probe, (values.fixationduration + values.targetduration + values.TP_isi))] / ontrialend = [trial.highcaloric.resetstimulusframes()] / stimulusframes = [1 = fixation] / beginresponsetime = values.fixationduration + values.targetduration + values.TP_ISI / responseinterrupt = immediate / isvalidresponse = [trial.highcaloric.response == values.responsekey_left || trial.highcaloric.response == values.responsekey_right] / iscorrectresponse = [(values.probe_x == values.target_left_x && trial.highcaloric.response == values.responsekey_left) || (values.probe_x == values.target_right_x && trial.highcaloric.response == values.responsekey_right)] / monkeyresponse = (18, 23) / ontrialend = [values.target_image = picture.highcaloricTarget.currentitem; values.comp_image = picture.highcaloricComp.currentitem] / ontrialend = [if (trial.highcaloric.latency >= values.minimum_latency) values.valid = 1] / ontrialend = [if (values.valid == 1 && trial.highcaloric.correct) values.validcorrect = 1] / ontrialend = [if (values.validcorrect == 1) {values.sumcorrect += 1; values.sumrt += trial.highcaloric.latency}] / ontrialend = [if (values.congruence == 1) values.count_congruent_highcaloric += 1 else values.count_incongruent_highcaloric += 1] / ontrialend = [if (values.validcorrect == 1 && values.congruence == 1) {values.sumcorrect_congruent_highcaloric += 1; values.sumrt_congruent_highcaloric += trial.highcaloric.latency}] / ontrialend = [if (values.validcorrect == 1 && values.congruence == 2) {values.sumcorrect_incongruent_highcaloric += 1; values.sumrt_incongruent_highcaloric += trial.highcaloric.latency}] / timeout = (values.fixationduration + values.targetduration + values.TP_ISI+ values.probeduration) / posttrialpause = values.iti / ontrialbegin = [values.valid = 0; values.validcorrect = 0; values.trialcount += 1; values.category="Filler"] / ontrialbegin = [values.itemnumber = list.FillerTarget_itemnumbers.nextvalue] / ontrialbegin = [values.target_position = list.FillerTarget_positions.nextvalue] / ontrialbegin = [values.congruence = list.FillerTargetprobe_congruence.nextvalue] / ontrialbegin = [if (values.target_position == 1) {values.target_x = values.target_left_x; values.comp_x = values.target_right_x} else {values.target_x = values.target_right_x; values.comp_x = values.target_left_x}] / ontrialbegin = [if (values.congruence == 1) {values.probe_x = values.target_x} else {values.probe_x = values.comp_x}] / ontrialbegin = [trial.Filler.insertstimulustime(shape.eraser, values.fixationduration)] / ontrialbegin = [trial.Filler.insertstimulustime(picture.FillerTarget, values.fixationduration)] / ontrialbegin = [trial.Filler.insertstimulustime(picture.FillerComp, values.fixationduration)] / ontrialbegin = [trial.Filler.insertstimulustime(shape.eraser, (values.fixationduration + values.targetduration))] / ontrialbegin = [trial.Filler.insertstimulustime(text.probe, (values.fixationduration + values.targetduration + values.TP_isi))] / ontrialend = [trial.Filler.resetstimulusframes()] / stimulusframes = [1 = fixation] / beginresponsetime = values.fixationduration + values.targetduration + values.TP_ISI / responseinterrupt = immediate / isvalidresponse = [trial.Filler.response == values.responsekey_left || trial.Filler.response == values.responsekey_right] / iscorrectresponse = [(values.probe_x == values.target_left_x && trial.Filler.response == values.responsekey_left) || (values.probe_x == values.target_right_x && trial.Filler.response == values.responsekey_right)] / monkeyresponse = (18, 23) / ontrialend = [values.target_image = picture.FillerTarget.currentitem; values.comp_image = picture.FillerComp.currentitem] / ontrialend = [if (trial.Filler.latency >= values.minimum_latency) values.valid = 1] / ontrialend = [if (values.valid == 1 && trial.Filler.correct) values.validcorrect = 1] / ontrialend = [if (values.validcorrect == 1) {values.sumcorrect += 1; values.sumrt += trial.Filler.latency}] / ontrialend = [if (values.congruence == 1) values.count_congruent_Filler += 1 else values.count_incongruent_Filler += 1] / ontrialend = [if (values.validcorrect == 1 && values.congruence == 1) {values.sumcorrect_congruent_Filler += 1; values.sumrt_congruent_Filler += trial.Filler.latency}] / ontrialend = [if (values.validcorrect == 1 && values.congruence == 2) {values.sumcorrect_incongruent_Filler += 1; values.sumrt_incongruent_Filler += trial.Filler.latency}] / timeout = (values.fixationduration + values.targetduration + values.TP_ISI+ values.probeduration) / posttrialpause = values.iti ******************************************************************************************************************* ******************************************************************************************************************* BLOCKS ******************************************************************************************************************* ******************************************************************************************************************* Note: * presents 10 practice trials (order is random) /onblockbegin = [values.task = 1] /postinstructions = (practice) /trials = [1-10 = practice] / errormessage = (feedback, 500) Note: presents 80 trials (trial order is determined randomly) /onblockbegin = [values.task = 2] /trials = [1-160 = noreplace(highcaloric, Filler)] ******************************************************************************************************************* ******************************************************************************************************************* EXPERIMENT ******************************************************************************************************************* ******************************************************************************************************************* /preinstructions = (instructions) /postinstructions = (thankyou) /blocks = [1 = Practice; 2 = ImageDotProbeTask] /onexptend = [values.completed = 1] Note: debug element / latencydistribution = normal(300, 90) ******************************************************************************************************************* End of File *******************************************************************************************************************