Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: February 16, 2016
Last Modified: May 25, 2023 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a Dynamically Adjusted Motion Prediction Task (DAMP) similarly to the one described in Ullsperger & Crampon (2003).
This script implements 100% informative feedback (Experiment1).
NOTE: Ullsperger & Crampon (2003) kept the error rates constant for each participant (~40% error rate) by (dynamically) adapting the task difficulty of the task to each participant's ability. "Task difficulty" was operationalized solely as the time difference of arrival of the two balls at the finish line. No further details of the adjustment procedure are provided by U & C other than "To keep the error rate high during the first trials of the experiments, individual difficulty levels were determined in a training session (100 trials and only informative feedback) that was performed during the anatomical scans (p. 4309)."
Script DynamicallyAdjustedMotionPrediction_Baseline.iqjs implements an interweaved stairway procedure to assess individual Arrival Times Difference Thresholds. Script DynamicallyAdjustedMotionPrediction.iqjs (current one) uses the established Arrival Times Difference Threshold to keep error rate constant. Arrival Time Difference Threshold in this script: (roughly) the threshold at which participants start to guess with a 50/50 probability which ball reaches the finish line first.
Ullsperger, M. & Crampon v., D.Y. (2003). Error Monitoring Using External Feedback: Specific Roles of the Habenular Complex, the Reward System, and the Cingulate Motor Area Revealed by Functional Magnetic Resonance Imaging. The Journal of Neuroscience,23(10),4308–4314.
17 minutes
Participants view 2 balls that travel towards a finish line starting from different screen positions at different speeds. One ball is assigned the role of 'base' (the arrival time of the base ball is kept constant across all trials in this script) and one ball is assigned the role of 'target' (the target is always faster than the base at the finish Line). Long before the balls reach the finish line, the balls disappear and participants have to predict which ball will first reach the finish line (=target). Smiley or frowny faces provide feedback for each prediction.
• Script runs 120 DAMP trials with a base and target ball.
• The arrival time of the base at the finish line is kept constant in this script (default: 7000ms)
• The target is always the one arriving first at the finish line.
• arrival times for targets are calculated in such a way that a set proportion (default: 0.4) is chosen from
below the 'Arrival Time Difference Threshold' (randomly either 60%, 70% or 80% below threshold - selected with replacement)
and a set proportion (default: 0.6) is chosen from above the 'Arrival Time Difference Threshold'
(randomly either 60%, 70% or 80% above threshold - selected with replacement)
• Vertical screen positions of base and target balls are randomly assigned in such a way that each ball has a 50%
probability to be the top ball (actual frequencies might vary with the default set-up).
• Additionally, horizontal start positions (5%, 25%, 45% -> list.xpos1) are randomly assigned to base and target
with the constraint that they cannot be the same. Actual frequencies of the different starting position combinations
likely vary from participant to participant.
see section Editable Stimuli
see section Editable Instructions
File Name: dynamicallyadjustedmotionprediction_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| atdThreshold | Roughly the arrival time difference at which participant starts guessing script DynamicallyAdjustedMotionPrediction_baseline.iqjs implements a procedure to assess individual thresholds |
| propError | Overall error proportion |
File Name: dynamicallyadjustedmotionprediction_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| trialCount | Counts the number of trials run |
| fixationDuration | Stores the current fixation duration as selected from list.fixationdurations |
| xpos1 | Stores the x-coordinate (in canvas width percentage) of the starting point of ball1 |
| xpos2 | Stores the x-coordinate (in canvas width percentage) of the starting point of ball2 |
| basePosition | 1 = base is top ball; 2 = base is bottom ball |
| targetPosition | 1 = target is top ball (correct response is ball1); 2 = target is bottom ball (correct response is ball2) |
| atdThreshold | Roughly the arrival time difference at which participant starts guessing script DynamicallyAdjustedMotionPrediction_baseline.iqjs implements a procedure to assess individual thresholds |
| aboveThreshold | 0 = target arrival time is below threshold; 0 = target arrival time is above threshold |
| propThresholdDiff | Increase/decrease of 25%, 50%, or 75% of Arrival Time Threshold |
| baselineArrivalTime | The constant winning arrival time in ms (default: 7000) |
| targetArrivalTime | The target arrival time (in ms) |
| arrivalTimeDifference | Stores the current difference in arrival Times of Ball1 and Ball2 (in ms) |
| response | The participant's response (scancode of response => 2 for 'ball 1' and 3 for 'ball 2') |
| responseText | The response key pressed |
| correct | The correctness of the response (1 = correct; 0 = incorrect) |
| latency | The response latency (in ms) - measured from onset of trial |
| propError | Overall error proportion |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design |
||
| atdThreshold | Roughly the arrival time difference at which participant starts guessing (set by DynamicallyAdjustedMotionPrediction_baseline.iqjs if batch script is run; otherwise set here) script DynamicallyAdjustedMotionPrediction_baseline.iqjs implements a procedure to assess individual thresholds | 250 |
| propError | The targeted error proportion | 0.4 |
Position Parameters |
||
| xBar | X-coordinate (in canvas width percentages) of the left top corner of the finish line | 90% |
Timing Parameters |
||
| stimPresentation | The presentation duration (in ms) of the moving balls | 1430 |
| baselineArrivalTime | The constant winning arrival time in ms | 7000 |
| responseWindow | Response window in ms | 1500 |
| iti | Intertrial interval (in ms) btw. response trial and feedback trial | 750 |
| feedbackDuration | Duration (in ms) of feedback presentation | 1000 |