Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 02, 2024
Last Modified: January 09, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the Computerized Mirror-Tracing Persistence Task (MTPT-C) inspired by Strong et al (2003) and described in Brown et al (2019). The MTPT-C is a test to measure distress tolerance while working on a hand eye coordination task that gets progressively more difficult.
Researchers can select to run the task with an absolute screen size to ensure that distances stay the same across devices. The default setting is to use proportional sizing. Go to section Defaults for more information.
Researcher can also set whether the 'mirroring' only applies to the y-axis (more like a mirror) or whether the x-coordinates should also be reverted. The default setting only inverts the y-coordinates in this script. See section Parameters for more information.
Brown, R. C., Overstreet, C., Sheerin, C., Berenz, E., Hawn, S., Pickett, T., McDonald, S., Danielson, C. K., & Amstadter, A. B. (2019). The Nomological Network of a Behavioral Distress Tolerance Task in Veterans. Journal of Traumatic Stress, 31(6), 876–885. https://doi.org/10.1002/jts.22349
Strong, D. R., Lejuez, C. W., Daughters, S. B., Marinello, M., Kahler, C. W., & Brown, R. A. (2003). The computerized mirror tracing task, version 1. In Unpublished manual.
15 minutes
Participants are asked to trace three shapes in increasing levels of difficulty (e.g. straight line, square, 5-pointed star) while using the shapes' mirror images as guides. Each level is run under time-constraints. Any time a mistake (e.g. tracing outside the shape) is made or participants hesitate too long (2s), the task is started over. Level3 tasks offers a quit button. The time until participants decide to quit task 3 is taken as the main DV.
This script runs 3 mirror tracing tasks with shapes that increase in difficulty from level1 to level3.
The shapes can be selected under section Editable Lists.
By, default this scripts runs the following fixed levels:
LEVEL1:
● Level1 a Vertical Line Tracing Task
● timeout for Level1 is 1min (default; can be edited under section Editable Parameters)
LEVEL2:
● Level2 is a Square Tracing Task
● timeout for Level2 is 3min (default; can be edited under section Editable Parameters)
LEVEL3:
● Level3 is a 5-pointed Star Tracing Task
● timeout for Level3 is 10min (default; can be edited under section Editable Parameters)
● Level3 provides a 'QUIT' button that can be pressed any time a participants wants to terminate
the task prematurely
provided by Millisecond - can be edited under section 'Editable Stimuli'
Buzzer: recorded from freesound.org
Soundfile licensed under the Creative Commons 0 License.
provided by Millisecond - can be edited under section 'Editable Instructions'
File Name: mirrortracingpersistencetask_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 |
| tracingHand | Dominant vs. non-dominant (parameter setting) |
| runAdaptiveLevels | True (1) vs. false (0) (parameter setting) |
| invertXAxis | True (1) vs. false (0) ( the y-axis coordinates are always inverted/mirrored) (parameter setting) |
Performance Performance Metrics |
|
| level1Task | Name of shape run as level1 |
| level1DurationMS | Duration spent on level1 |
| level1TrialCount | Number of trials started on level1 |
| level1Success | 1 = level1 was successfully completed; 0 = otherwise |
| level2Task | Name of shape run as level2 |
| level2DurationMS | Duration spent on level2 |
| level2TrialCount | Number of trials started on level2 |
| level2Success | 1 = level2 was successfully completed; 0 = otherwise |
| level3Task | Name of shape run as level3 |
| level3DurationMS | Duration spent on level3 (whether or not quit button was pressed) |
| level3TrialCount | Number of trials started on level3 |
| level3Success | 1 = level3 was successfully completed; 0 = otherwise |
| level3Quit | 1 = participant pressed quit-button to terminate level3; 0 = otherwise (This is the main stress related Dependent Variable) |
| level3QuitRT | The duration (in ms) spent on level3 until the quit button was pressed (if quit button was NOT pressed, this variable will be empty) |
File Name: mirrortracingpersistencetask_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 |
| tracingHand | Dominant vs. non-dominant (parameter setting) |
| runAdaptiveLevels | True (1) vs. false (0) (parameter setting) |
| invertXAxis | True (1) vs. false (0) ( the y-axis coordinates are always inverted/mirrored) (parameter setting) |
| 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. |
| level | 1,2, or 3 |
| tracingShape | Line, rightAngle, square, circle, star |
| countTrials | Number of trials started for the current shape |
| success | 1 = shape successfully completed; 0 = otherwise |
| taskDurationMS | The duration (in ms) spent on the task |
| level3Quit | 1 = participant pressed quit-button to terminate level3; 0 = otherwise |
| response | The response of participant (scancode of response button) |
| correct | Correctness of response (1 = correct, 0 = error) |
| latency | Response latency (in ms); measured from |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Color Parameter |
||
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') if set to a color other than the screenColor, the active canvas appears 'anchored' on the screen regardless of monitor size | white |
| screenColor | Color of the screen not used by the canvas ('inactive screen') | black |
| defaultTextColor | Default color of text items presented on active canvas | black |
Sizing Parameters |
||
| tracingLineHeightPct | The height of the TracingLine in canvas height percentage | 30% |
| tracingSquareHeightPct | The height of the TracingSquare in canvas height percentage | 35% |
| tracingCircleDiameterPct | The diameter of the circle in canvas height percentage | 35% |
| tracingStarheightPct | The height of the TracingStar in canvas height percentage | 45% |
| trackWidthPct | The width of the tracing track in canvas height percentage the width is slightly changed for the star task; this is done automatically by the script | 2% |
| pencilWidthPct | The width of the tracing line (drawn by participant) in canvas height percentage | 1% |
| targetZoneDiameterPct | The diameter of the target (also start) zone in canvas height percentage | 5% |
Design - Level1 Is Always The Line Tracing Task Regardless Of Setting Of Parameters.Runadaptivelevels |
||
| runAdaptiveLevels | True: level1 = line tracing; level2/level3 adaptive the right angle OR a square depending on how difficult the line task was for participant (difficulty of a task estimated via completion time and performance) false: no adaptive levels are run (choose fixed sequence of tests below under Editable LIsts) | false |
| showTaskTimer | True = a watch is presented on screen that displays how much is left for the current task false = no watch is presented on screen | true |
| invertXAxis | True = the mirror inverts the vertical AND horizontal cursor positions (even more challenging) false = the mirror inverts ONLY the vertical cursor positions ('true' mirroring) | false |
| tracingHand | Choose from: "dominant", "non-dominant", "left", "right" | "dominant" |
Timing Parameters |
||
| trialTimeoutMS | Movement timeout in ms: if no tracing movement is detected after this time, the trial times out and participant has to restart | 2000 |
| level1TimeoutMS | The timeout (in ms) for level1 task | 60000 |
| level2TimeoutMS | The timeout (in ms) for level2 task | 180000 |
| level3TimeoutMS | The timeout (in ms) for level3 task | 600000 |