Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 11, 2022
Last Modified: January 20, 2024 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the Dot Memory Task (Sliwinski et al, 2018), a brief visual spatial memory test used to assess working memory.
The task is intended for touchscreens such as ipads but can also be run with the mouse on non-touchscreens.
Sliwinski MJ, Mogle JA, Hyun J, Munoz E, Smyth JM, Lipton RB. (2018). Reliability and Validity of Ambulatory Cognitive Assessments. Assessment. 2018 Jan;25(1):14-30. doi: 10.1177/1073191116643164.
Siedlecki KL. (2007). Investigating the structure and age invariance of episodic memory across the adult lifespan. Psychology and Aging, 22(2):251–268. https://doi.org/10.1037/0882-7974.22.2.251
2 minutes
The Dot Memory Task consists of 3 phases:
(1) Encoding Phase: Presents a 5x5 matrix with 3 dots for 3s. Participants are asked to remember the dot location for a later memory test .
(2) Distractor Phase: Presents several rows of letters E and F for 8s. Participants are asked to find all the hidden Fs by clicking on them.
(3) Retrieval Phase: Presents an empty 5x5 matrix. Participants are asked to click on dot positions of the three dots.
The default script runs 2 trials (see Sliwinski et al, 2018).
(1) Instructions with Demo Trial: The computer provides an automated demo through the three
stages of the task. The intro can be repeated as often as needed.
(2) Test: runs 2 trial sequences (editable parameter)
with fixed dot positions (by default - see parameters.runFixedDotPositions for more info)
•Encoding Phase*
Script presents a 5x5 matrix with 3 dots for 3000ms (editable parameter).
•Distractor Phase*
The Distractor Phase starts immediately after the the Encoding Phase.
Script presents a 5x8 matrix filled with 'E's and 'F' (number of Fs can be controlled
via editable parameters) and participants are asked to select all 'F's.
Selected letters get highlighted. Letters can be unselected by pressing a highlighted letter
(=> corrections possible). The distractor task lasts for 8s.
•Retrieval Phase/Recall*
The Retrieval Phase starts immediately after the Distractor Phase.
Script provides an empty 5x5 matrix and asks participants to select the matrix positions of the 3 dots
Any time participants touches an empty box, a dot is placed. Once 3 dots are placed, no further dots
are added. Dots can be erased by touching a previously placed dot (=> corrections possible).
The recall trial ends when participants select 'done'.
Done button is activated right from the start (participants place 0 to 3 dots).
The screen goes blank for 1000ms (iti, editable parameter) before the next trial is started.
provided by Millisecond - can be edited under section 'Editable Stimuli'
provided by Millisecond - can be edited under section 'Editable Instructions'
File Name: dotMemoryTask_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 |
Recall Task |
|
| adjacentBoxDistancePX | For debug purposes and manual calculations: stores the horizontal/vertical distance in pixels of the center of two adjacent boxes on the current monitor => used to calculate the relative Euklidean differences btw. target dots and placed dots |
| meanRecallErrorScorePX | Mean Euklidean Distance Recall Error Score (in pixels - monitor dependent) |
| meanRecallErrorScore | Mean Euklidean Distance Recall Error Score in px set relative to to the pixel distance between the center of two adjacent boxes in the 5x5 matrix (see expressions.adjacentBoxDistancePX) (monitor independent) => main DV => Higher scores indicating less accurate placement and poorer performance |
| meanRecallRT | Mean recall response time (in ms); measured from onset of matrix until Done button was pressed |
Distractor Task |
|
| meanPropAdjustCorrectDistractors | The mean of the adjusted proportions of selecting 'F's ( the individual correct proportions are adjusted by subtracting the number of incorrect selections from the correct one before setting the difference relative to the number of hidden 'F') |
File Name: dotMemoryTask_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. |
| response | The response of participant by default, the dot placement procedure does not generate its own line of data. The final placements are stored by trial.dotRecallEnd. Similarly the distractor task procedure only records one line of data at the end of the distractor task during trial.distractorEnd |
| correct | Correctness of response (1 = correct, 0 = error) trial.dotRecallEnd: 1 = all three dots were correctly placed; 0 = otherwise trial.distractorEnd: 1 = all 'F' were correctly placed; 0 = otherwise |
| latency | Response latency (in ms) |
Dot Recall Task: 5 X 5 Matrix (Numbering From Left To Right, Top To Bottom) |
|
| dot1 | Stores the box location (1-25) for the first target dot |
| dot2 | Stores the box location (1-25) for the second target dot |
| dot3 | Stores the box location (1-25) for the third target dot |
| dotRecallRT | The time (in ms) it took to make dot placements during the recall trial (measured from onset of matrix until done button is pressed) |
| dotRecallAcc | 1 = all three dots were correctly placed; 0 = otherwise |
| countCorrectDots | The number of correctly placed dots |
| targetDotPositions | A string variable that contains the positions of the target dots |
| placedDotPositions | A string variable that contains the positions of the placed recall dots |
| lastDot1 | Stores the box number of the currently placed dot1 |
| lastDot2 | Stores the box number of the currently placed dot2 |
| lastDot3 | Stores the box number of the currently placed dot3 |
Error Score |
|
| dist11,dist12,dist13 | Distances (in px) from target dot1 to placed dot1, placed dot2, placed dot3 |
| dist21,dist22,dist23 | Distances (in px) from target dot2 to placed dot1, placed dot2, placed dot3 |
| dist31,dist32,dist33 | Distances (in px) from target dot3 to placed dot1, placed dot2, placed dot3 |
| min1 | The first minimum distance (matches the first target dot with a placed dot -> these dots are then removed from the selection for the next minimum distance) |
| min2 | The second minimum distance (matches the first target dot with a placed dot -> these dots are then removed from the selection for the next minimum distance) |
| min3 | The third minimum distance (at this point, only one distance is left) |
| recallErrorScorePX | The sum of all three minimum placed dot-target dot distances in pixels (monitor dependent) |
| recallErrorScore | The recallErrorScorePX set relative to the pixel distance between the center of two adjacent boxes in the 5x5 matrix (see expressions.adjacentBoxDistancePX) (monitor independent) Example: recallErrorScorePX = 489px (monitor dependent) adjacentBoxDistancePX = 346px (monitor dependent) recallErrorScore = 489px/346px = 1.41 => monitor independent => the dot was placed 1.41 boxes away from the target dot |
| adjacentBoxDistancePX | For debug purposes and manual calculations: stores the horizontal/vertical distance in pixels of the center of two adjacent boxes on the current monitor => used to calculate the relative Euklidean differences btw. target dots and placed dots |
Distractor Task: 5 X 8 Matrix (Numbering From Left To Right, Top To Bottom) |
|
| numberF | The number of selected F's |
| targetDistractorPositions | Distractor task variable: stores the box positions (1-40) of all presented 'F' |
| selectedDistractors | Distractor task variable: stores the box positions (1-40) of all selected 'F' |
| countSelectedDistractors | Count the number of selected distractors |
| countCorrectDistractors | Count the number of correctly selected 'F' adjustPropCorrectDistractors: adjusted proportion of correctly selected 'F' = [(number of correctly selected 'F's) - (number of selected 'E's)]/number of hidden Fs => correct proportions are adjusted by subtracting the number of incorrect selections from the correct one before setting the difference relative to the number of hidden 'F' |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Recall Task |
||
| runFixedDotPositions | True = the script runs fixed dot positions (see below for list.fixedDotPositions) With fixed dot placements, you have complete control over the selected positions of the dots and can, e.g., eliminate boxes sitting in the same row,column or diagonal the default setup only provides dot positions for 2 trials; for more trials edit list.fixedDotPositions below false = the script runs randomly determined dot positions for each trial | true |
| numberOfTrials | Number of trial sequences (encoding, distractor, retrieval) to run | 2 |
Distractor Task |
||
| minNumberF | Sets the minimum number of F's that should be hidden (Range: 0-40) | 8 |
| maxNumberF | Sets the maximum number of F's that should be hidden (Range: Min-40) if both numbers are the same, the number of 'F' stays constant across trials | 8 |
Timing Parameters |
||
| dotPresentationDurationMS | The duration (in ms) of the dot matrix before the distractor task | 3000 |
| distractorTaskDurationMS | The duration (in ms) of the distractor task | 8000 |
| itiMS | The intertrial interval (in ms) in between trial sequences | 1000 |