___________________________________________________________________________________________________________________ *ALTERNATING SERIAL REACTION TIME TASK (ASRT)* with keyboard input ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 02-03-2017 last updated: 10-10-2023 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 10-10-2023 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements an Alternating Serial Reaction Task (with 4 different response buttons) based on Howard, D.V. & Howard, J.H. (2004). Implicit Sequence Learning: Effects of Level of Structure, Adult Age, and Extended Practice. Psychology and Aging, 19, 79–92. ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ Participants are presented 4 gray boxes in 4 possible screen positions (1, 2, 3, 4 with 1 being the left most box) and have to press a spatially corresponding response button as fast as possible once one of the boxes turns red. The boxes turn red in semi-random fashion: a basic repeating pattern sequence (Example: 1, 3, 2, 4) is interweaved with a random sequence. Sequence: 1(Pattern), Random, 3 (Pattern), Random, 2 (Pattern), Random, 4 (Pattern), Random, 1 (Pattern), Random....etc The number of random trials in between pattern trials is determined by parameters.lag: lag = 2 => each pattern trial is followed by 1 random trial (every other trial is a pattern trial) lag = 3 => each pattern trial is followed by 2 random trials etc. (every third trial is a pattern trial) ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 45 minutes to complete ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'asrt_raw*.iqdat' (a separate file for each participant) build: The specific Inquisit version used (the 'build') that was run computer.platform: the platform the script was run on (win/mac/ios/android) date, time: date and time script was run subject, group: with the current subject/groupnumber session: with the current session id blockCode, blockNum: the name and number of the current block (built-in Inquisit variable) trialCode, trialNum: the name and number of the currently recorded trial (built-in Inquisit variable) Note: trialNum is a built-in Inquisit variable; it counts all trials run; even those that do not store data to the data file such as feedback trials. Thus, trialNum may not reflect the number of main trials run per block. sequence: pattern sequence run (parameter) Lag: sets the lag between patter trials (default: 2) lag1 = every trial is a pattern trial (p1, p2, p3, p4, p1....) lag2 = every other trial is a pattern trial (p1, r, p2, r, p3, r, p4, r, p1....) lag3 = every third trial is a pattern trial (p1, r, r, p2, r, r, p3, r, r, p4, r, r, p1....) countTestBlocks: counts the number of test blocks run countPatternTrials: counts the pattern trials in a block (resets for each test block) countRandomTrials: counts the random trials in a block (resets for each test block; resets for each trial.patternTrial, excludes the start trials before the pattern is started) countSequenceReps: counts the number of pattern sequence reps in a block (does not count starter trials) index: helper variable to determine the next stim position position: 1, 2, 3, or 4 => screen position of the red stim (red box) from left to right (parameter) RSI: Response Stimulus Interval in ms (interval between correct response and presentation of next stimulus) (default: 120ms) response: the FINAL trial response (scancodes of the -default- keys pressed) 32: D 33: F 36: J 37: K Note: script saves the final and -by design- correct response correct: the correctness of the INITIAL response (1 = correct; 0 = incorrect) Note: only correct responses advance to the next trial latency: the response latency/reaction time (in ms); measured from onset of red box stimulus until the correct response was entered (error penalty included) p: pattern trial r: random trial feedbackAcc: overall proportion correct (pattern and random trials) feedbackRT: overall (pattern and random trials) median response time of correct responses list.accuracyP.mean: proportion correct pattern trials in the current block (including currently run trial) list.latenciesP.median: median latency (in ms) of responding to pattern trials in the current block (including currently run trial) list.accuracyR.mean: proportion correct random trials in the current block (including currently run trial) list.latenciesR.median: median latency (in ms) of responding to random trials in the current block (including currently run trial) (2) Summary data file: 'asrt_summary*.iqdat' (a separate file for each participant) inquisit.version: Inquisit version run computer.platform: the platform the script was run on (win/mac/ios/android) startDate: date script was run startTime: time script was started subjectId: assigned subject id number groupId: assigned group id number sessionId: assigned session id number elapsedTime: time it took to run script (in ms); measured from onset to offset of script completed: 0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run) sequence: pattern sequence run (parameter) lag: sets the lag between patter trials (default: 2) lag1 = every trial is a pattern trial (p1, p2, p3, p4, p1....) lag2 = every other trial is a pattern trial (p1, r, p2, r, p3, r, p4, r, p1....) lag3 = every third trial is a pattern trial (p1, r, r, p2, r, r, p3, r, r, p4, r, r, p1....) countTestBlocks: Test Block Counter Performance Data: proportion correct measures the accuracy of the INITIAL response; 'latency correct' measures the response time until the correct response was made p: pattern trial r: random trial accP: the mean of all block proportion corrects for pattern trials rtP: the mean of all block median correct latencies (in ms) for pattern trials accR: the mean of all block proportion corrects for random trials (start trials excluded) rtR: the mean of all block median correct latencies (in ms) for random trials (start trials excluded) and separately for each testblocks: ACC1_P - ACC21_P: proportion correct for Pattern trials (block1-21) RT1_P - RT21_P: median correct latency (in ms) for Pattern trials (block1-21) ACC1_P - ACC21_R: proportion correct for Random trials (block1-21) RT1_P - RT21_R: median correct latency (in ms) for Random trials (block1-21) ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ *21 ASRT blocks that run - 10 random position start trials (excluded from analysis) - number of pattern repetitions (default: 10) x length of pattern sequence (default: 4) = 40 pattern trials - number of random patterns = (parameters.lag - 1) * number of pattern trials (by default, with lag= 2: 40 random trials) Each block starts with the presentation of 4 gray boxes for 120ms before the first box turns red. Incorrect responses are recorded but response needs to be corrected for trial to terminate. After a correct response, the next target is presented after a response-stimulus interval (default RSI is 120 ms; this can be edited under Editable Parameters). ___________________________________________________________________________________________________________________ STIMULI ___________________________________________________________________________________________________________________ 4 gray boxes - size and screen location can be edited under Editable Parameters. Position of targets (box turning red) can be edited under section Editable Lists ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ are not original; edit under section Editable Instructions ___________________________________________________________________________________________________________________ EDITABLE CODE ___________________________________________________________________________________________________________________ check below for (relatively) easily editable parameters, stimuli, instructions etc. Keep in mind that you can use this script as a template and therefore always "mess" with the entire code to further customize your experiment. The parameters you can change are: 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: /lag: sets the lag between patter trials (default: 2) lag1 = every trial is a pattern trial (p1, p2, p3, p4, p1....) lag2 = every other trial is a pattern trial (p1, r, p2, r, p3, r, p4, r, p1....) lag3 = every third trial is a pattern trial (p1, r, r, p2, r, r, p3, r, r, p4, r, r, p1....) /nrBlocks: number of blocks run (default: 21) Note: default script provides summary variables for 21 blocks; if more should be run add necessary values to VALUES and update block.ASRT under section BLOCK accordingly /maxPatternRepetitions: the maximum number of pattern repetitions per block (default: 10) interface: /pos1X: the first horizonal box position from the left in canvas width percentages (0% at the far left of canvas - 100% far right of canvas) /pos2X: the second horizonal box position from the left in canvas width percentages /pos3X: the third horizonal box position from the left in canvas width percentages /pos4X: the fourth horizonal box position from the left in canvas width percentages /stimHeight: height of the boxes in canvas height percentages (default: 5%) Response Keys (from left to right): /responseKey1: the first response button ("D") /responseKey2: the second response button ("F") /responseKey3: the third response button ("J") /responseKey4: the fourth response button ("K") Duration Paramters (in ms): /rsi: Response Stimulus Interval in ms (interval between correct response and presentation of next stimulus) (default: 120ms) /breakDuration: the duration of the breaks (in ms) in between test blocks (default: 30000) /readyDuration: duration (in ms) of getting ready trial (default: 5000ms)