Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 11, 2022
Last Modified: January 10, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the Spatial Paired Associates Learning Task (PALT), a test of visual working memory and spatial learning which is often used in research with elderly populations. This implementation is based on Trewartha et al (2014) published procedure.
The task is developed for touchscreens but will adapt to mouse use on non-touchscreens.
Note the script runs with proportional sizing by default. Researchers can select to run the task with an absolute screen size to ensure that distances stay the same across devices. See section Defaults for more info.
Trewartha, K.M., Garcia, A., Wolpert, D.M., & Flanagan, J.R. (2014). Fast But Fleeting: Adaptive Motor Learning Processes Associated with Aging and Cognitive Decline. The Journal of Neuroscience, 34(40), 13411-13421.
8 minutes
The Spatial PALT presents 6 boxes on screen, arranged in a circle around the screen center. The boxes get randomly openend and either reveal an empty box or a shape before they are closed again and another box opens.
After all boxes have been opened, all uncovered shapes appear (in random order) one by one in the center of the screen and participants have to click on (or touch) the box that they think the presented shape was originally located in. No performance feedback is provided by default. The number of shapes hidden in the boxes depends on the current set size tested. Testing begins at setsize 1 and can go up to 6. Participants get 10 attempts per setsize before the test is terminated. Repeated setsizes repeat the same shape and shape locations but may open the boxes in a different random order.
(1) Instructions with demos (can be repeated upon request)
(2) Test:
Set Size testing begins with Setsize = 1 and can continue up to setSize = 6
For each new setSize the script randomly selects the relevant number of stimuli from 10 possible ones
and assigns these stimuli randomly to the 6 possible locations.
The test is divided into 2 phases:
(a) Learning/Encoding Phase:
- each of the 6 boxes is opened to reveal its 'content'
- by default boxes are opened with a SOA of 2s and each box stays open for 1s
- the order in which the boxes are opened is randomly determined
(b) Test/Retrieval Phase:
- the presented stimuli appear one-by-one in the middle of the screen (order of stimuli is randomly determined)
- participants have to select the box that they think the stimulus was originally presented in
- no performance feedback is provided by default (see section Editable Parameters)
provided by Millisecond - can be edited under section 'Editable Stimuli'
The stimuli images are based on the stimuli published by Trewartha et al (2014)
provided by Millisecond - see section 'Editable Instructions'
File Name: pairedassociateslearningtask_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 |
Summary Data |
|
| propCorrect | The proportion correct responses across all test trials |
| meanRT | The mean box selection time across all correct and incorrect test trials |
| maxSetSize | The largest setSize successfully tested at the end of the script |
| totalAttempts | The total number of attempts needed to reach the maxSetSize participants who end up with a maxSetSize < 6 will have run an additional 10 attempts on the next higher level but were ultimately unsuccessful (or did not complete the script) |
| msPALTScore | this score is added by Millisecond as an attempt to find a number comparison btw. participants that takes into account the maxSetSize reached as well as the number of attempts needed to get there The higher the score, the fewer attempts were needed to reach the maxSetSize. calculation: PALTScore = maxSetSixe + [1 - (totalAttempts across all levels up to maxSetSize)/(max possible attempts across all levels up to maxSetSize)] Examples a) level 5 with (1+1+3+4+5 =) 14 attempts to get there: PALTScore = 5 + [1 - (14/50)] = 5.72 (Level 5 was completed with 1 (level1)+1+3+4+5 (level5) attempts; Level 6 was failed even after 10 attempts) b) level 5 with (1+3+6+7+9 =) 26 attempts to get there: PALTScore = 5 + [1 - (26/50)] = 5.48 (Level 5 was completed with 1 (level1)+3+6+7+5 (level5) attempts; Level 6 was failed even after 10 attempts) Level 6: scores range from 6-6.9 (a score of 6.0 means participant used up all 60 attempts (10 per level); a score of 6.9 means participant used only 6 attempts (1 per level) total to get to the end) Level 5: scores range from 5-5.9 Level 4: scores range from 4-4.9 Level 3: scores range from 3-3.9 Level 2: scores range from 2-2.9 Level 1: scores range from 1-1.9 Level 0: 0 if you know of better PALT measures let us know :) |
Attempts Per Level |
|
| attemptsSetSize1 | The number of trials needed to complete setSize1 |
| attemptsSetSize2 | The number of trials needed to complete setSize2 |
| attemptsSetSize3 | The number of trials needed to complete setSize3 |
| attemptsSetSize4 | The number of trials needed to complete setSize4 |
| attemptsSetSize5 | The number of trials needed to complete setSize5 |
| attemptsSetSize6 | The number of trials needed to complete setSize6 |
File Name: pairedassociateslearningtask_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. |
| setSize | The current setSize tested |
| roundCounter | The number of rounds started for this setSize |
| phase | "learning" vs. "test" |
| trialCounter | The trialCounter per phase (resets after learning and after test) |
| currentBox | Learning phase only: the current box that is 'opened' |
| targetPresent | Learning phase only: 0 = an empty box was opened; otherwise it contains the stimulus itemnumber of the presented stimulus |
| targetStim | Test phase only: the currently presented target pattern (image itemnumber) |
| corrRsp | Test phase only: stores the correct box that needs to be selected |
Dvs |
|
| response | Stores the current response made test trials: stores the selected box |
| correct | 1 = selection was correct; 0 = otherwise |
| list.accRound.mean | Calculates the current proportion corrects for the test trials |
| latency | The response time (in ms); measured from onset of target Stim |
| box1Stim - box6Stim | Store the pattern itemnumbers stored in each box (box1-box6) 0 = empty box |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design |
||
| maxSetRepeat | The maximum number of times a setSize can be repeated in case one (or more) errors was made | 10 |
| announceSetSize | True = participants are alerted everytime the set size increases false = the task runs without mentioning set sizes | true |
| skipPerformanceFeedback | True: participants are not given explicit feedback that their box selections were correct or not false: participants are given explicit feedback that their box selections were correct or not | true |
Color Parameter |
||
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') if set to a color other than the screenColor, you can distinguish the active canvas from the inactive portion of the screen | black |
| screenColor | Color of the screen not used by the canvas ('inactive screen') | black |
| defaultTextColor | Default color of text items | white |
Sizing Parameters |
||
| circleDiameterPct | The diameter of the circle of target boxes in canvas height percentage | 80% |
| boxHeightPct | The height of one box in canvas height percentage | 15% |
Timing Parameters |
||
| getReadyDurationMs | The duration (in ms) of the getReady Signal | 2000 |
| maskDurationMs | The duration (in ms) that the boxes are all masked | 1000 |
| revealDurationMs | The duration (in ms) that a box stays 'open' to reveal its content | 1000 |
| learningTestITI | The time (in ms) btw. end of learning phase and onset of test phase | 500 |
| testTestITI | The time (in ms) btw. end of one test trial (presenting a target stim) and the start of the next | 250 |
| optionalFeedbackDurationMs | Optional: the time (in ms) that performance feedback is provided (see parameters.skipPerformanceFeedback) | 1000 |