SHORT ATTENTION NETWORK TEST (short ANT) - Adult Version SCRIPT INFO Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 02-21-2013 last updated: 06-01-2018 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 06-01-2018 Millisecond Software BACKGROUND INFO *Purpose* This script implements the short Attention Network Test (shortANT) as shared by Dr. Fan: http://people.qc.cuny.edu/Faculty/Jin.Fan/Pages/Downloads.aspx the original ANT was published in: Fan, J., McCandliss, B. D., Sommer, T., Raz, A., & Posner, M. I. (2002). Testing the efficiency and independence of attentional networks. Journal of Cognitive Neuroscience, 14, 340–347. *Task* Participants are presented arrows either directly above or below a fixation cross. Arrows are flanked by other arrows that point in the same (congruent) or opposite direction (incongruent). Participants have to decide whether the central arrows point right or left. Several cue conditions (3) (may) alert the participants that the targets are about to come on screen and potentially where on the screen (above or below the fixation cross). DATA FILE INFORMATION: The default data stored in the data files are: (1) Raw data file: 'shortANT_raw*.iqdat' (a separate file for each participant) build: Inquisit build computer.platform: the platform the script was run on date, time, subject: date and time script was run with the current subjectnumber /blockcount: counts the number of experimental blocks run blockcode: the name and number of the current block /trialcount: counts the number of trials run (resets after practice) trialcode: the name and number of the currently recorded trial /completetrialDuration: the complete duration (in ms) of one trial sequence (default: 4000ms) /fixation1_duration: duration (in ms) of first fixation cross /cue_duration: the duration (in ms) of the cue presentation (default: 100ms) /ISI_cuetarget: the duration (in ms) of the fixation cross after cue presentation and before target (default: 400ms) /target_duration: the maximal duration (in ms) of the target/flanker presentation (default: 1700ms) Note: equals the response window /ITI_duration: the duration (in ms) of the intertrial duration Note: the intertrialduration is calculated by subtracting the duration of the main trials (e. trial.centercue) from parameters.completetrialDuration /cuecondition: sets the current cue condition (1 = no cue; 2 = center cue; 3 = spatial cue) /flankercongruence: sets the current flanker condition (1 = congruent; 2 = incongruent) /targetposition: sets position of target (1 = above fixation; 2 = below fixation) /targetdirection: sets the direction of the target (1 = right; 2 = left) text.flanker1.currentitem- text.flanker4.currenitem: stores the items used as flanker1-flanker4 (as well as for the target) text.target.currentitemnumber: stores the itemnumber of the currently presented target Variables that contain x/y coordinates for cues, targets, flankers: /target_x /target_y /flanker1_x /flanker1_y /cue1_x /cue1_y response: the response of participant (scancode of response button: 18 = left; 23 = right) correct: correctness of response (1 = correct, 0 = error) latency: response latency (in ms); measured from onset of targets/flanker (2) Summary data file: 'shortANT_summary*.iqdat' (a separate file for each participant) 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) computer.platform: the platform the script was run on /completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) /ACCoverall: %correct across all testblock trials /meanRT_correct: overall mean RT (of correct responses) for test trials /ACCnocue: %correct in nocue trials /ACCcentercue: %correct in centercue trials /ACCspatialcue: %correct in spatialcue trials /meanRT_correctNoCue: mean correct latency (in ms) in no cue condition /meanRT_correctCenterCue: mean correct latency (in ms) in center condition /meanRT_correctSpatialCue: mean correct latency (in ms) in nospatial condition /ACCcongruent: %correct in congruent trials /ACCincongruent: %correct in incongruent trials /meanRT_correctCongruent: mean correct latency (in ms) in congruent trials /meanRT_correctInCongruent: mean correct latency (in ms) in incongruent trials Expressions that use above expressions and calculate 2 attentional network effects (Fan et al, 2002, p.342/343) /OrientingEffect = expressions.meanrt_correctcentercue - expressions.meanrt_correctspatialcue => Effect of orienting attention towards a specific location of information /ConflictEffect = expressions.meanrt_correctincongruent - expressions.meanrt_correctcongruent => Effect of resolving conflict between several possible responses EXPERIMENTAL SET-UP 3 cue conditions (no cue, center cue, spatial cue) x 2 flanker conditions (congruent, incongruent) within-subjects design A) 1 Block of 12 Practice trial sequences with feedback B) 1 Blocks of 120 trial sequences each - no feedback EXPERIMENTAL BLOCKS: 120 trial sequences: 5 (repetitions) x 3 (cue conditions) x 2 (flanker conditions) x 2 (target positions) x 2 (target directions) Trial Sequence (one sequence for each cue condition) - randomly selected fixation (randomly chosen presentation time: 400ms +) -> cue (100ms) -> fixation (400ms) -> target (1700ms)-> intertrialinterval (depends: complete trialduration = 4s) STIMULI A) Type of Stimuli: This script uses a simple black dot as the cue as opposed to a * (see Fan et al (2002)) B) Size of Stimuli: Fan et al (2002) give specific dimensions of the size and distance of targets/flankers (p.345/346) => distance participant/screen: 65 cm => single line arrow : 0.55 degree visual angle => distance flankers/target: 0.06 degree visual angle (area covered by all: 3.08 degree visual angle) => distance target/fixation cross: 1.06 degree visual angle This script does NOT attempt to replicate these dimensions as different monitors require different fontsizes etc. Fine-tune fontsize of stimuli, distance of flanker to target, and position of target above and below fixation cross under section EDITABLE PARAMETERS INSTRUCTIONS Note: Instructions are modelled after the instructions generously made available by Dr. Fan Instructions can be edited under section EDITABLE INSTRUCTIONS EDITABLE CODE: check under EDITABLE CODE 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: Stimuli Dimension/Placement: /fontsize_fixation: regulates the size of the fixation cross, in canvas height percentage (default: 3%) /fontsize_cue: regulates the size of the cues, in canvas height percentage (default: 5%) /fontsize_target: regulates the size of the target/flanker, in canvas height percentage (default: 5%) /flankerdistance: the relative screen distance between stimuli, in canvas width percentage (default: 5%) /top_y: the y-coordinate of the target above the fixation cross (default: 40%) /bottom_y: the y-coordinate of the target below the fixation cross (default: 60%) Trial Durations: /completetrialDuration: sets the complete duration (in ms) of one trial sequence (default: 4000ms) /minfixation1_duration: sets the minimum duration (in ms) of the first fixation cross in a trial sequence. The actual duration contains the addition of a random component: a randomly selected number between 0-1200ms is added to this fixation duration. (default: 400ms) /cue_duration: sets the duration (in ms) of the cue presentation (default: 100ms) /ISI_cuetarget: sets the duration (in ms) of the fixation cross after cue presentation and before target (default: 400ms) /target_duration: sets the maximal duration (in ms) of the target/flanker presentation (default: 1700ms) Note: equals the response window /practicefeedback_duration: sets the duration (in ms) of the feedback trial during practice (default: 2000ms) /readyDuration: duration (in ms) of the get-ready trial (default: 5000ms) Response Keys: /responsekey_left: scancode for the left response key (default: "E", 18) /responsekey_right: scancode for the right response key (default: "I", 23) ************************************************************************************************************** ************************************************************************************************************** EDITABLE PARAMETERS: change editable parameters here ************************************************************************************************************** ************************************************************************************************************** / fontsize_fixation = 3% / fontsize_cue = 5% / fontsize_target = 5% / flankerdistance = 5% / top_y = 45% / bottom_y = 55% / completetrialDuration = 4000 / minfixation1_duration = 400 / cue_duration = 100 / ISI_cuetarget = 400 / target_duration = 1700 / practicefeedback_duration = 2000 / readyDuration = 5000 / responsekey_left = 18 / responsekey_right = 23 / responsekey_leftlabel = "E" / responsekey_rightlabel = "I" ************************************************************************************************************** ************************************************************************************************************** EDITABLE STIMULI: change editable stimuli here ************************************************************************************************************** ************************************************************************************************************** / 1 = "+" / 2 = "●" / 3 = "→" / 4 = "←" / 5 = " " Alternative to /5 = "—" / 1 = "Error" / 2 = "Correct!" /3 = "no response detected" / items = (" your average speed: <%(trial.nocue.sumlatency + trial.centercue.sumlatency + trial.spatialcue.sumlatency)/ (trial.nocue.count + trial.centercue.count + trial.spatialcue.count)%> ms your average performance: <%(trial.nocue.correctcount + trial.centercue.correctcount + trial.spatialcue.correctcount)/ (trial.nocue.count + trial.centercue.count + trial.spatialcue.count) * 100%> %correct") / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) / position = (50%, 30%) ************************************************************************************************************** ************************************************************************************************************** EDITABLE INSTRUCTIONS: change instructions here ************************************************************************************************************** ************************************************************************************************************** / fontstyle = ("Arial", 2.8%, false, false, false, false, 5, 1) / txcolor = (black) Note: Instructions are modelled after the instructions generously made available Dr. Fan / file = "shortant_intro1.htm" / file = "shortant_intro2.htm" / file = "shortant_intro3.htm" / file = "shortant_intro4.htm" / file = "shortant_intro5.htm" / file = "shortant_practicestart.htm" / file = "shortant_teststart.htm" / items = ("You have finished the attention task.") / fontstyle = ("Arial", 8%, true, false, false, false, 5, 1) / position = (50%, 50%) / size = (80%, 80%) / vjustify = center / items = ("") / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) / position = (50%, 90%) / size = (80%, 5%) / vjustify = center ******************************* General Helper Instructions ****************************** / items = ("Get Ready: ~n<%expressions.buttoninstruct2%>") / fontstyle = ("Arial", 3.00%, false, false, false, false, 5, 1) / size = (80%, 40%) / onprepare = [ if (!computer.haskeyboard){ text.keyreminder_left.skip = true; }; ] / items = ("left: '<%parameters.responsekey_leftlabel%>' key") / position = (25%, 95%) / fontstyle = ("Arial", 4%, false, false, false, false, 5, 1) / txcolor = gray / onprepare = [ if (!computer.haskeyboard){ text.keyreminder_right.skip = true; }; ] / items = ("right: '<%parameters.responsekey_rightlabel%>' key") / position = (75%, 95%) / fontstyle = ("Arial", 4%, false, false, false, false, 5, 1) / txcolor = gray < **************************************************************************************************** general instruction expressions: adjust the instruction text depending on device used to run script **************************************************************************************************** /buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"button";} else {"key";} /buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"place your index fingers over the response buttons";} else {"put your index fingers on the '<%parameters.responsekey_leftlabel%>' key and the '<%parameters.responsekey_rightlabel%>' key";} ************************************************************************************************************** ************************************************************************************************************** EDITABLE LISTS: change editable lists here ************************************************************************************************************** ************************************************************************************************************** ************************************************************************************************************** !!!REMAINING CODE: Customize after careful consideration only!!! ************************************************************************************************************** ************************************************************************************************************** ************************************************************************************************************** DEFAULTS ************************************************************************************************************** ************************************************************************************************************** script requires Inquisit 5.0.11.0 or higher / canvasaspectratio = (4,3) / minimumversion = "5.0.11.0" / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) / txbgcolor = white / txcolor = black ******************************************************************************************************************* ******************************************************************************************************************* DATA ******************************************************************************************************************* ******************************************************************************************************************* Note: data file explanations under User Manual Information at the top ******************** raw data ******************** / separatefiles = true / columns = (build, computer.platform, date, time, subject, group, values.blockcount, blockcode, values.trialcount, trialcode, values.practice, parameters.completetrialDuration, values.fixation1_duration, parameters.cue_duration, parameters.ISI_cuetarget, parameters.target_duration, values.ITI_duration, values.cuecondition, values.flankercongruence, values.targetposition, values.targetdirection, text.flanker1.currentitem, text.flanker2.currentitem, text.target.currentitem, text.flanker3.currentitem, text.flanker4.currentitem, text.target.currentitemnumber, values.target_y, values.flanker1_y, values.cue1_y, response, correct, latency) ******************** summary data ******************** / columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform, values.completed, expressions.overallACC,expressions.meanrt_correct, expressions.ACCnocue, expressions.ACCcentercue, expressions.ACCspatialcue, expressions.meanrt_correctnocue, expressions.meanrt_correctcentercue, expressions.meanrt_correctspatialcue, expressions.ACCcongruent, expressions.ACCincongruent, expressions.meanrt_correctCongruent, expressions.meanrt_correctInCongruent, expressions.alertingeffect expressions.orientingeffect, expressions.conflicteffect, trial.mq1HarmInt.response, trial.mq2HarmAcc.response, trial.mq3PureInt.response, trial.mq4PureAcc.response) / separatefiles = true ******************************************************************************************************************* ******************************************************************************************************************* VALUES: automatically updated ******************************************************************************************************************* ******************************************************************************************************************* completed: 0 = script was not completed; 1 = script was completed (all conditions run) Counts: /blockcount: counts the number of experimental blocks run /trialcount: counts the number of trials run (resets after practice) Conditions: /practice: 1 = practice block; 0 = experimental block /cuecondition: sets the current cue condition (1 = no cue; 2 = center cue; 3 = double cue; 4 = spatial cue) /flankercongruence: sets the current flanker condition (1 = neutral; 2 = congurent; 3 = incongruent) /targetposition: sets position of target (1 = above fixation; 2 = below fixation) /targetdirection: sets the direction of the target (1 = right; 2 = left) Helper variables to select appropriate targets/flanker/feedback /selecttarget /selectflanker /selectfeedback Variables that contain x/y coordinates for cues, targets, flankers /cue1_x /cue1_y /cue2_x /cue2_y /target_x /target_y /flanker1_x /flanker1_y /flanker2_x /flanker2_y /flanker3_x /flanker3_y /flanker4_x /flanker4_y Variables that set the duration for variable trial durations /fixation1_duration /ITI_duration / completed = 0 / blockcount = 0 / trialcount = 0 / practice = 0 / cuecondition = 0 / flankercongruence = 0 / targetposition = 0 / targetdirection = 0 / selecttarget = 0 / selectflanker = 0 / selectfeedback = 0 / cue1_x = 0 / cue1_y = 0 / cue2_x = 0 / cue2_y = 0 / target_x = 0 / target_y = 0 / flanker1_x = 0 / flanker1_y = 0 / flanker2_x = 0 / flanker2_y = 0 / flanker3_x = 0 / flanker3_y = 0 / flanker4_x = 0 / flanker4_y = 0 / fixation1_duration = 0 / ITI_duration = 0 / correct = 0 / rt = 0 ******************************************************************************************************************* ******************************************************************************************************************* EXPRESSIONS ******************************************************************************************************************* ******************************************************************************************************************* /fixation1Duration: calculates the duration of the first fixation cross by adding a randomon component to parameters.minfixation1_duration (default: 400) /fixation1Duration = parameters.minfixation1_duration + rand(0, 1200) /overallpercentcorrect: %correct across all testblock trials /meanRT_correct: overall mean RT (of correct responses) for test trials Expressions that calcuate the mean reaction times (RT) for the different cue/flanker conditions /meanRT_correctNoCue ----- /meanRT_correctInCongruent Expressions that use above expressions and calculate the 3 attentional network effects (Fan et al, 2002, p.342/343) /OrientingEffect = expressions.meanrt_correctcentercue - expressions.meanrt_correctspatialcue /ConflictEffect = expressions.meanrt_correctincongruent - expressions.meanrt_correctcongruent / overallACC = list.accuracy.mean * 100 / meanRT_correct = list.latencies.mean /ACCnocue = list.accuracy_nocue.mean*100 /ACCcentercue = list.accuracy_centercue.mean*100 /ACCspatialcue = list.accuracy_spatialcue.mean*100 / meanRT_correctNoCue = list.latencies_nocue.mean / meanRT_correctCenterCue = list.latencies_centercue.mean / meanRT_correctSpatialCue = list.latencies_spatialcue.mean /ACCcongruent = list.accuracy_congruent.mean*100 /ACCincongruent = list.accuracy_incongruent.mean*100 / meanRT_correctCongruent = list.latencies_congruent.mean / meanRT_correctInCongruent = list.latencies_incongruent.mean / AlertingEffect = expressions.meanrt_correctnocue - expressions.meanrt_correctcentercue / OrientingEffect = expressions.meanrt_correctcentercue - expressions.meanrt_correctspatialcue / ConflictEffect = expressions.meanrt_correctincongruent - expressions.meanrt_correctcongruent ******************************************************************************************************************* ******************************************************************************************************************* INSTRUCTION TRIALS ******************************************************************************************************************* ******************************************************************************************************************* / stimulusframes = [1 = finish, exit] / validresponse = (57) / recorddata = false This trial is used when participants are asked to place their fingers on specific response buttons. On the touchscreen, this trial presents the (inactive) response buttons to the participants. / stimulusframes = [1 = getReady, keyreminder_left, keyreminder_right] / trialduration = parameters.readyDuration / validresponse = (parameters.responsekey_left, parameters.responsekey_right) / beginresponsetime = parameters.readyDuration / errormessage = false / recorddata = false ******************************************************************************************************************* ******************************************************************************************************************* STIMULI ******************************************************************************************************************* ******************************************************************************************************************* Note: text.fixation is set to NOT erase after a trial over (/erase = false), to erase text.fixation is helper stimulus is needed after the trial sequence is over (see clearscreen) / items = stimuli / select = 1 / position = (50%, 50%) / fontstyle = ("Arial", parameters.fontsize_fixation, false, false, false, false, 5, 1) / txcolor = black / erase = false / items = stimuli / select = 2 / hposition = values.cue1_x / vposition = values.cue1_y / fontstyle = ("Arial", parameters.fontsize_cue, false, false, false, false, 5, 1) / txcolor = black / items = stimuli / select = 2 / hposition = values.cue2_x / vposition = values.cue2_y / fontstyle = ("Arial", parameters.fontsize_cue, false, false, false, false, 5, 1) / txcolor = black / items = stimuli / select = values.selecttarget / hposition = values.target_x / vposition = values.target_y / fontstyle = ("Arial", parameters.fontsize_target, false, false, false, false, 5, 1) / txcolor = black / items = stimuli / select = values.selectflanker / hposition = values.flanker1_x / vposition = values.flanker1_y / fontstyle = ("Arial", parameters.fontsize_target, false, false, false, false, 5, 1) / txcolor = black / items = stimuli / select = values.selectflanker / hposition = values.flanker2_x / vposition = values.flanker2_y / fontstyle = ("Arial", parameters.fontsize_target, false, false, false, false, 5, 1) / txcolor = black / items = stimuli / select = values.selectflanker / hposition = values.flanker3_x / vposition = values.flanker3_y / fontstyle = ("Arial", parameters.fontsize_target, false, false, false, false, 5, 1) / txcolor = black / items = stimuli / select = values.selectflanker / hposition = values.flanker4_x / vposition = values.flanker4_y / fontstyle = ("Arial", parameters.fontsize_target, false, false, false, false, 5, 1) / txcolor = black / items = practicefeedback / select = values.selectfeedback / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) / position = (50%, 20%) ******************************************************************************************************************* ******************************************************************************************************************* LISTS ******************************************************************************************************************* ******************************************************************************************************************* NOTE: These lists control the random selection of flanker conditions (1-3), target position (above/below fixation) and target direction (left/right) for each cue condition. The lists are essentially the same for each condition (differ in name only) and thus the lists are only explained for the No Cue condition. ***************************** No Cue Condition ***************************** / items = (1, 1, 2, 2) / replace = false / resetinterval = 0 / items = (1, 2, 1, 2) / selectionmode = list.nocue_flankerPractice.currentindex / items = (1, 2, 2, 1) / selectionmode = list.nocue_flankerPractice.currentindex Note: * random selection of the current flanker position without replacement; repeats possible after every possible combination has been selected / items = (1, 1, 1, 1, 2, 2, 2, 2) / replace = false / resetinterval = 0 / items = (1, 1, 2, 2, 1, 1, 2, 2) / selectionmode = list.nocue_flanker.currentindex / items = (1, 2, 1, 2, 1, 2, 1, 2) / selectionmode = list.nocue_flanker.currentindex ***************************** center Cue Condition ***************************** / items = (1, 1, 2, 2) / replace = false / resetinterval = 0 / items = (1, 2, 1, 2) / selectionmode = list.centercue_flankerPractice.currentindex / items = (1, 2, 2, 1) / selectionmode = list.centercue_flankerPractice.currentindex Note: * random selection of the current flanker position without replacement; repeats possible after every possible combination has been selected / items = (1, 1, 1, 1, 2, 2, 2, 2) / replace = false / resetinterval = 0 / items = (1, 1, 2, 2, 1, 1, 2, 2) / selectionmode = list.centercue_flanker.currentindex / items = (1, 2, 1, 2, 1, 2, 1, 2) / selectionmode = list.centercue_flanker.currentindex ***************************** spatial Cue Condition ***************************** / items = (1, 1, 2, 2) / replace = false / resetinterval = 0 / items = (1, 2, 1, 2) / selectionmode = list.spatialcue_flankerPractice.currentindex / items = (1, 2, 2, 1) / selectionmode = list.spatialcue_flankerPractice.currentindex Note: * random selection of the current flanker position without replacement; repeats possible after every possible combination has been selected / items = (1, 1, 1, 1, 2, 2, 2, 2) / replace = false / resetinterval = 0 / items = (1, 1, 2, 2, 1, 1, 2, 2) / selectionmode = list.spatialcue_flanker.currentindex / items = (1, 2, 1, 2, 1, 2, 1, 2) / selectionmode = list.spatialcue_flanker.currentindex ****************************************************** Data Lists accuracy: store 1 for each correct trial; 0 = otherwise latency: store the latency of correct responses ****************************************************** ******************************************************************************************************************* ******************************************************************************************************************* TRIALS ******************************************************************************************************************* ******************************************************************************************************************* Note: the trial sequences for each cue condition follow along the same logic fixation cross -> cue -> fixation cross -> target/flankers -> (practice: feedback) -> fixation cross ****************************** No Cue Condition ****************************** trial.nocue sets/determines * duration of the first fixation cross * all necessary condition variables (e.g. values.flankercongruence, values.targetposition, values.targetdirection) * all necessary x/y coordinates for cue/target/flanker positions * all necessary stimuli for cue/target/flankers for the subsequent trials * presents the fixation cross (does not erase and therefore does not need to be called explicitly during the other trials) * presents the targets and flankers * waits for response (within 1700ms after presentation of targets) * updates summary statistics * calculates ITI / ontrialbegin = [ values.correct = ""; values.cuecondition = 1; values.trialcount += 1; values.fixation1_duration = expressions.fixation1Duration; if (values.practice == 1){ values.flankercongruence = list.nocue_flankerPractice.nextvalue; values.targetposition = list.nocue_flanker_targetpositionPractice.nextvalue; values.targetdirection = list.nocue_flanker_targetdirectionPractice.nextvalue; } else { values.flankercongruence = list.nocue_flanker.nextvalue; values.targetposition = list.nocue_flanker_targetposition.nextvalue; values.targetdirection = list.nocue_flanker_targetdirection.nextvalue; }; values.cue1_x = 50%; values.cue1_y = 50%; values.target_x = 50%; values.flanker1_x = values.target_x - 2* parameters.flankerdistance; values.flanker2_x = values.target_x - parameters.flankerdistance; values.flanker3_x = values.target_x + parameters.flankerdistance; values.flanker4_x = values.target_x + 2* parameters.flankerdistance; if (values.targetposition == 1) { values.target_y = parameters.top_y; values.flanker1_y = parameters.top_y; values.flanker2_y = parameters.top_y; values.flanker3_y = parameters.top_y; values.flanker4_y = parameters.top_y; } else { values.target_y = parameters.bottom_y; values.flanker1_y = parameters.bottom_y; values.flanker2_y = parameters.bottom_y; values.flanker3_y = parameters.bottom_y; values.flanker4_y = parameters.bottom_y; }; if (values.targetdirection == 1) values.selecttarget = 3; else values.selecttarget = 4; if (values.flankercongruence == 1) { values.selectflanker = values.selecttarget; } else { if (values.selecttarget == 3) { values.selectflanker = 4; } else if (values.selecttarget == 4) { values.selectflanker = 3; }; } trial.nocue.insertstimulustime(text.fixation, (values.fixation1_duration + parameters.cue_duration)); trial.nocue.insertstimulustime(text.target, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.nocue.insertstimulustime(text.flanker1, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.nocue.insertstimulustime(text.flanker2, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.nocue.insertstimulustime(text.flanker3, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.nocue.insertstimulustime(text.flanker4, (values.fixation1_duration+ parameters.cue_duration+parameters.ISI_cuetarget)); ] / stimulusframes = [1 = fixation] / beginresponsetime = values.fixation1_duration+parameters.cue_duration+parameters.ISI_cuetarget / validresponse = (parameters.responsekey_left,parameters.responsekey_right) / iscorrectresponse = [(values.targetdirection == 1 && trial.nocue.response == parameters.responsekey_right) || (values.targetdirection == 2 && trial.nocue.response ==parameters.responsekey_left)] / response = timeout(parameters.target_duration) / ontrialend = [ trial.nocue.resetstimulusframes(); list.accuracy.insertitem(trial.nocue.correct,1); list.accuracy_nocue.insertitem(trial.nocue.correct, 1); if (trial.nocue.correct) { list.latencies_nocue.insertitem(trial.nocue.latency, 1); values.correct = 1; } else if (trial.nocue.response != 0){ values.correct = 0; }; if (values.flankercongruence == 1){ list.accuracy_congruent.insertitem(trial.nocue.correct, 1); if (trial.nocue.correct){ list.latencies_congruent.insertitem(trial.nocue.latency, 1); }; } else if (values.flankercongruence == 2){ list.accuracy_incongruent.insertitem(trial.nocue.correct, 1); if (trial.nocue.correct){ list.latencies_incongruent.insertitem(trial.nocue.latency, 1); }; }; values.rt = trial.nocue.latency; values.iti_duration = parameters.completetrialDuration - values.fixation1_duration - parameters.cue_duration - parameters.ISI_cuetarget - trial.nocue.latency; ] / branch = [ if (values.practice == 0) trial.ITI; else trial.practice_feedback; ] / recorddata = true ****************************** Center Cue Condition ****************************** trial.centercue sets/determines * duration of the first fixation cross * all necessary condition variables (e.g. values.flankercongruence, values.targetposition, values.targetdirection) * all necessary x/y coordinates for cue/target/flanker positions * all necessary stimuli for cue/target/flankers for the subsequent trials * presents the fixation cross (does not erase and therefore does not need to be called explicitly during the other trials) * presents the center cue * presents the targets and flankers * waits for response (within 1700ms after presentation of targets) * updates summary statistics * calculates ITI / ontrialbegin = [ values.correct = ""; values.cuecondition =2; values.trialcount += 1; values.fixation1_duration = expressions.fixation1Duration; if (values.practice == 1){ values.flankercongruence = list.centercue_flankerPractice.nextvalue; values.targetposition = list.centercue_flanker_targetpositionPractice.nextvalue; values.targetdirection = list.centercue_flanker_targetdirectionPractice.nextvalue; } else { values.flankercongruence = list.centercue_flanker.nextvalue; values.targetposition = list.centercue_flanker_targetposition.nextvalue; values.targetdirection = list.centercue_flanker_targetdirection.nextvalue; }; values.cue1_x = 50%; values.cue1_y = 50%; values.target_x = 50%; values.flanker1_x = values.target_x - 2* parameters.flankerdistance; values.flanker2_x = values.target_x - parameters.flankerdistance; values.flanker3_x = values.target_x + parameters.flankerdistance; values.flanker4_x = values.target_x + 2* parameters.flankerdistance; if (values.targetposition == 1) { values.target_y = parameters.top_y; values.flanker1_y = parameters.top_y; values.flanker2_y = parameters.top_y; values.flanker3_y = parameters.top_y; values.flanker4_y = parameters.top_y; } else { values.target_y = parameters.bottom_y; values.flanker1_y = parameters.bottom_y; values.flanker2_y = parameters.bottom_y; values.flanker3_y = parameters.bottom_y; values.flanker4_y = parameters.bottom_y; }; if (values.targetdirection == 1) values.selecttarget = 3; else values.selecttarget = 4; if (values.flankercongruence == 1) { values.selectflanker = values.selecttarget; } else { if (values.selecttarget == 3) { values.selectflanker = 4; } else if (values.selecttarget == 4) { values.selectflanker = 3; }; }; trial.centercue.insertstimulustime(clearscreen, values.fixation1_duration); trial.centercue.insertstimulustime(text.cue1, values.fixation1_duration); trial.centercue.insertstimulustime(clearscreen, (values.fixation1_duration + parameters.cue_duration)); trial.centercue.insertstimulustime(text.fixation, (values.fixation1_duration + parameters.cue_duration)); trial.centercue.insertstimulustime(text.target, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.centercue.insertstimulustime(text.flanker1, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.centercue.insertstimulustime(text.flanker2, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.centercue.insertstimulustime(text.flanker3, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.centercue.insertstimulustime(text.flanker4, (values.fixation1_duration+ parameters.cue_duration+parameters.ISI_cuetarget)); ] / stimulusframes = [1 = fixation] / beginresponsetime = values.fixation1_duration+parameters.cue_duration+parameters.ISI_cuetarget / validresponse = (parameters.responsekey_left,parameters.responsekey_right) / iscorrectresponse = [(values.targetdirection == 1 && trial.centercue.response == parameters.responsekey_right) || (values.targetdirection == 2 && trial.centercue.response ==parameters.responsekey_left)] / response = timeout(parameters.target_duration) / ontrialend = [ trial.centercue.resetstimulusframes(); list.accuracy.insertitem(trial.centercue.correct,1); list.accuracy_centercue.insertitem(trial.centercue.correct, 1); if (trial.centercue.correct) { list.latencies_centercue.insertitem(trial.centercue.latency, 1); values.correct = 1; } else if (trial.centercue.response != 0){ values.correct = 0; }; if (values.flankercongruence == 1){ list.accuracy_congruent.insertitem(trial.centercue.correct, 1); if (trial.centercue.correct){ list.latencies_congruent.insertitem(trial.centercue.latency, 1); }; } else if (values.flankercongruence == 2){ list.accuracy_incongruent.insertitem(trial.centercue.correct, 1); if (trial.centercue.correct){ list.latencies_incongruent.insertitem(trial.centercue.latency, 1); }; }; values.rt = trial.centercue.latency; values.iti_duration = parameters.completetrialDuration - values.fixation1_duration - parameters.cue_duration - parameters.ISI_cuetarget - trial.centercue.latency; ] / branch = [ if (values.practice == 0) trial.ITI; else trial.practice_feedback; ] / recorddata = true ****************************** Spatial Cue Condition ****************************** trial.spatialcue sets/determines * duration of the first fixation cross * all necessary condition variables (e.g. values.flankercongruence, values.targetposition, values.targetdirection) * all necessary x/y coordinates for cue/target/flanker positions * all necessary stimuli for cue/target/flankers for the subsequent trials * presents the fixation cross (does not erase and therefore does not need to be called explicitly during the other trials) * presents the spatial cue * presents the targets and flankers * waits for response (within 1700ms after presentation of targets) * updates summary statistics * calculates ITI / ontrialbegin = [ values.correct = ""; values.cuecondition = 3; values.trialcount += 1; values.fixation1_duration = expressions.fixation1Duration; if (values.practice == 1){ values.flankercongruence = list.spatialcue_flankerPractice.nextvalue; values.targetposition = list.spatialcue_flanker_targetpositionPractice.nextvalue; values.targetdirection = list.spatialcue_flanker_targetdirectionPractice.nextvalue; } else { values.flankercongruence = list.spatialcue_flanker.nextvalue; values.targetposition = list.spatialcue_flanker_targetposition.nextvalue; values.targetdirection = list.spatialcue_flanker_targetdirection.nextvalue; }; values.cue1_x = 50%; if (values.targetposition == 1) values.cue1_y = parameters.top_y; else values.cue1_y = parameters.bottom_y; values.target_x = 50%; values.flanker1_x = values.target_x - 2* parameters.flankerdistance; values.flanker2_x = values.target_x - parameters.flankerdistance; values.flanker3_x = values.target_x + parameters.flankerdistance; values.flanker4_x = values.target_x + 2* parameters.flankerdistance; if (values.targetposition == 1) { values.target_y = parameters.top_y; values.flanker1_y = parameters.top_y; values.flanker2_y = parameters.top_y; values.flanker3_y = parameters.top_y; values.flanker4_y = parameters.top_y; } else { values.target_y = parameters.bottom_y; values.flanker1_y = parameters.bottom_y; values.flanker2_y = parameters.bottom_y; values.flanker3_y = parameters.bottom_y; values.flanker4_y = parameters.bottom_y; }; if (values.targetdirection == 1) values.selecttarget = 3; else values.selecttarget = 4; if (values.flankercongruence == 1) { values.selectflanker = values.selecttarget; } else { if (values.selecttarget == 3) { values.selectflanker = 4; } else if (values.selecttarget == 4) { values.selectflanker = 3; } ; }; trial.spatialcue.insertstimulustime(text.cue1, values.fixation1_duration); trial.spatialcue.insertstimulustime(text.fixation, (values.fixation1_duration + parameters.cue_duration)); trial.spatialcue.insertstimulustime(text.target, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.spatialcue.insertstimulustime(text.flanker1, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.spatialcue.insertstimulustime(text.flanker2, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.spatialcue.insertstimulustime(text.flanker3, (values.fixation1_duration + parameters.cue_duration+parameters.ISI_cuetarget)); trial.spatialcue.insertstimulustime(text.flanker4, (values.fixation1_duration+ parameters.cue_duration+parameters.ISI_cuetarget)); ] / stimulusframes = [1 = fixation] / beginresponsetime = values.fixation1_duration+parameters.cue_duration+parameters.ISI_cuetarget / validresponse = (parameters.responsekey_left,parameters.responsekey_right) / iscorrectresponse = [(values.targetdirection == 1 && trial.spatialcue.response == parameters.responsekey_right) || (values.targetdirection == 2 && trial.spatialcue.response ==parameters.responsekey_left)] / response = timeout(parameters.target_duration) / ontrialend = [ trial.spatialcue.resetstimulusframes(); list.accuracy.insertitem(trial.spatialcue.correct,1); list.accuracy_spatialcue.insertitem(trial.spatialcue.correct, 1); if (trial.spatialcue.correct) { list.latencies_spatialcue.insertitem(trial.spatialcue.latency, 1); values.correct = 1; } else if (trial.spatialcue.response != 0){ values.correct = 0; }; if (values.flankercongruence == 1){ list.accuracy_congruent.insertitem(trial.spatialcue.correct, 1); if (trial.spatialcue.correct){ list.latencies_congruent.insertitem(trial.spatialcue.latency, 1); }; } else if (values.flankercongruence == 2){ list.accuracy_incongruent.insertitem(trial.spatialcue.correct, 1); if (trial.spatialcue.correct){ list.latencies_incongruent.insertitem(trial.spatialcue.latency, 1); }; }; values.rt = trial.spatialcue.latency; values.iti_duration = parameters.completetrialDuration - values.fixation1_duration - parameters.cue_duration - parameters.ISI_cuetarget - trial.spatialcue.latency; ] / branch = [ if (values.practice == 0) trial.ITI; else trial.practice_feedback; ] / recorddata = true ********************************** all cue conditions ********************************** trial.practice_feedback presents feedback during practice only (if values.practice == 1) / ontrialbegin = [ if (values.correct == 1) { text.feedback.textcolor = green; values.selectfeedback = 2; } else if (values.correct == 0){ text.feedback.textcolor = red; values.selectfeedback = 1; } else { text.feedback.textcolor = orange; values.selectfeedback = 3; }; ] / stimulusframes = [1 = feedback, RTfeedback] / trialduration = parameters.practicefeedback_duration / recorddata = false / stimulusframes = [1 = clearscreen, fixation] / trialduration = values.iti_duration / recorddata = false / ontrialend = [ values.correct = 0; ] ******************************************************************************************************************* ******************************************************************************************************************* BLOCKS ******************************************************************************************************************* ******************************************************************************************************************* Note: * block.ant_practice runs 12 trial sequences (randomly selected without replacement from the 3 cue conditions) * sets values.practice = 1 which will allow feedback * resets all relevant lists and values before the experimental blocks are called / postinstructions = (practiceend) / onblockbegin = [values.practice = 1] / trials = [1 = getReady; 2-13 = noreplace(nocue, centercue, spatialcue)] / onblockend = [ list.accuracy.reset(); list.accuracy_centercue.reset(); list.accuracy_congruent.reset(); list.accuracy_incongruent.reset(); list.accuracy_nocue.reset(); list.accuracy_spatialcue.reset(); list.latencies.reset(); list.latencies_centercue.reset(); list.latencies_congruent.reset(); list.latencies_incongruent.reset(); list.latencies_nocue.reset(); list.latencies_spatialcue.reset(); values.trialcount = 0; ] Note: * block.ant runs 120 trial sequences (randomly selected without replacement from the 3 cue conditions) * updates the blockcount and sets values.practice = 0 which will prevent feedback / onblockbegin = [values.blockcount += 1] / onblockbegin = [values.practice = 0] / trials = [1 = getReady; 2-121 = noreplace(nocue, centercue, spatialcue)] / trials = [1 = ANTfinish] ******************************************************************************************************************* ******************************************************************************************************************* EXPERIMENT ******************************************************************************************************************* ******************************************************************************************************************* Note: Experiment runs 1 block of ANT practice followed by 1 experimental ANT block ******************************************************************************************************************* End of File ******************************************************************************************************************* / preinstructions = (generalintro1, generalintro2, generalintro3, generalintro4, generalintro5, practicestart) /items = ("harmint.htm") / position = (50%, 40%) / size = (60%, 40%) / showborders = false / showscrollbars = false /items = ("harmacc.htm") / position = (50%, 40%) / size = (60%, 40%) / showborders = false / showscrollbars = false /items = ("pureint.htm") / position = (50%, 40%) / size = (60%, 40%) / showborders = false / showscrollbars = false /items = ("pureacc.htm") / position = (50%, 40%) / size = (60%, 40%) / showborders = false / showscrollbars = false / items = ("How morally wrong was the action?") / position = (50, 66) / txcolor = (0, 0, 0) / stimulusframes=[1=harmint; 2=wrong?] / anchors=[1="Not at all morally wrong "; 7="Very morally wrong"] / position=(50, 80) / numpoints = 7 / stimulusframes=[1=harmacc; 2=wrong?] / anchors=[1="Not at all morally wrong "; 7="Very morally wrong"] / position=(50, 80) / numpoints = 7 / stimulusframes=[1=pureint; 2=wrong?] / anchors=[1="Not at all morally wrong "; 7="Very morally wrong"] / position=(50, 80) / numpoints = 7 / stimulusframes=[1=pureacc; 2=wrong?] / anchors=[1="Not at all morally wrong "; 7="Very morally wrong"] / position=(50, 80) / numpoints = 7 / trials = [1 = mq1HarmInt] / trials = [1 = mq2HarmAcc] / trials = [1 = mq3PureInt] / trials = [1 = mq4PureAcc] /items = ("Consent.htm") /position = (50%, 40%) / size = (70%, 70%) /items = ("I agree to participate") /position = (75%, 80%) / fontstyle = ("Arial", 1.50%, false, false, false, false, 5, 1) / txcolor = (white) /txbgcolor = (black) /size = (10%, 5%) / vjustify = center /items = ("I do NOT agree to participate") /position = (25%, 80%) / fontstyle = ("Arial", 1.50%, false, false, false, false, 5, 1) / txcolor = (white) /txbgcolor = (black) /size = (10%, 5%) /vjustify = center /inputdevice = mouse /stimulusframes = [1 = Consent, agree, disagree] /validresponse = (agree, disagree) /monkeyresponse = ("agree") /ontrialend = [if (trial.Consent.response == "disagree") script.abort()] /trials = [1 = Consent] /items = ("debrief.htm") /position = (50%, 40%) / size = (70%, 70%) /items = ("Finish Experiment") /position = (75%, 80%) / fontstyle = ("Arial", 1.50%, false, false, false, false, 5, 1) / txcolor = (white) /txbgcolor = (black) /size = (10%, 5%) / vjustify = center /inputdevice = mouse /stimulusframes = [1 = Debrief, finish] /validresponse = (finish) /monkeyresponse = ("finish") /trials = [1 = Debrief] /subjects = (1 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq1; 3 = moralq2; 4 = moralq3; 5 = moralq4; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (2 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq1; 3 = moralq2; 4 = moralq4; 5 = moralq3; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (3 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq1; 3 = moralq3; 4 = moralq2; 5 = moralq4; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (4 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq1; 3 = moralq3; 4 = moralq4; 5 = moralq2; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (5 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq1; 3 = moralq4; 4 = moralq2; 5 = moralq3; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (6 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq1; 3 = moralq4; 4 = moralq3; 5 = moralq2; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (7 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq4; 3 = moralq1; 4 = moralq2; 5 = moralq3; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (8 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq3; 3 = moralq1; 4 = moralq2; 5 = moralq4; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (9 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq4; 3 = moralq1; 4 = moralq3; 5 = moralq2; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (10 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq2; 3 = moralq1; 4 = moralq3; 5 = moralq4; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (11 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq3; 3 = moralq1; 4 = moralq4; 5 = moralq2; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (12 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq2; 3 = moralq1; 4 = moralq4; 5 = moralq3; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (13 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq3; 3 = moralq4; 4 = moralq1; 5 = moralq2; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (14 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq4; 3 = moralq3; 4 = moralq1; 5 = moralq2; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (15 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq2; 3 = moralq4; 4 = moralq1; 5 = moralq3; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (16 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq4; 3 = moralq2; 4 = moralq1; 5 = moralq3; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (17 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq2; 3 = moralq3; 4 = moralq1; 5 = moralq4; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (18 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq3; 3 = moralq2; 4 = moralq1; 5 = moralq4; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (19 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq2; 3 = moralq3; 4 = moralq4; 5 = moralq1; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (20 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq2; 3 = moralq4; 4 = moralq3; 5 = moralq1; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (21 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq3; 3 = moralq2; 4 = moralq4; 5 = moralq1; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (22 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq3; 3 = moralq4; 4 = moralq2; 5 = moralq1; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (23 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq4; 3 = moralq2; 4 = moralq3; 5 = moralq1; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (24 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = moralq4; 3 = moralq3; 4 = moralq2; 5 = moralq1; 6 = preANT; 7 = ANT_practice; 8 = ANT; 9 = ANTfinish;; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (25 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq1; 7 = moralq2; 8 = moralq3; 9 = moralq4; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (26 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq1; 7 = moralq2; 8 = moralq4; 9 = moralq3; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (27 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq1; 7 = moralq3; 8 = moralq2; 9 = moralq4; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (28 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq1; 7 = moralq3; 8 = moralq4; 9 = moralq2; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (29 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq1; 7 = moralq4; 8 = moralq2; 9 = moralq3; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (30 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq1; 7 = moralq4; 8 = moralq3; 9 = moralq2; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (31 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq4; 7 = moralq1; 8 = moralq2; 9 = moralq3; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (32 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq3; 7 = moralq1; 8 = moralq2; 9 = moralq4; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (33 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq4; 7 = moralq1; 8 = moralq3; 9 = moralq2; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (34 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq2; 7 = moralq1; 8 = moralq3; 9 = moralq4; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (35 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq3; 7 = moralq1; 8 = moralq4; 9 = moralq2; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (36 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq2; 7 = moralq1; 8 = moralq4; 9 = moralq3; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (37 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq3; 7 = moralq4; 8 = moralq1; 9 = moralq2; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (38 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq4; 7 = moralq3; 8 = moralq1; 9 = moralq2; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (39 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq2; 7 = moralq4; 8 = moralq1; 9 = moralq3; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (40 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq4; 7 = moralq2; 8 = moralq1; 9 = moralq3; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (41 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq2; 7 = moralq3; 8 = moralq1; 9 = moralq4; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (42 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq3; 7 = moralq2; 8 = moralq1; 9 = moralq4; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (43 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq2; 7 = moralq3; 8 = moralq4; 9 = moralq1; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (44 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq2; 7 = moralq4; 8 = moralq3; 9 = moralq1; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (45 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq3; 7 = moralq2; 8 = moralq4; 9 = moralq1; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (46 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq3; 7 = moralq4; 8 = moralq2; 9 = moralq1; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (47 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq4; 7 = moralq2; 8 = moralq3; 9 = moralq1; 10 = Debrief; ] / onexptend = [values.completed = 1] /subjects = (48 of 48) / groupassignment = groupnumber / blocks = [ 1 = Consent; 2 = preANT; 3 = ANT_practice; 4 = ANT; 5 = ANTfinish; 6 = moralq4; 7 = moralq3; 8 = moralq2; 9 = moralq1; 10 = Debrief; ] / onexptend = [values.completed = 1]