Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: July 25, 2024
Last Modified: June 17, 2026 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the Optimized Mnemonic Similarity Task (oMST), also referred to as the 'continuous MST', by Start et al (2023). The script runs with with keyboard input.
The oMST is a continous form of the classic Mnemonic Similarity Task (MST), an object recognition test sensitive to changes in memory performance. Whereas the MST uses a two phase testing paradigm, the oMST combines both phases into a single one (thus it's also referred to as the continuous MST), cutting down on testing time.
Stark CEL, Noche JA, Ebersberger JR, Mayer L and Stark SM (2023) Optimizing the mnemonic similarity task for efficient, widespread use. Front. Behav. Neurosci. 17:1080366. doi: 10.3389/fnbeh.2023.1080366
6 minutes
Participants see a sequence of 128 objects, one after the other. For each object they have to decide whether it is NEW (never seen before), OLD (previously seen) or SIMILAR (a similar object has been seen but not the exact same one). 64 of the images are NEW, 20 of the images are OLD and 44 are SIMILAR. Stark et al provide 6 different stimuli sets with 3 different trial orders each. Responses can be collected via keyboard or button input. This implementation uses keyboard keys.
The stimuli are provided by Start et al: https://github.com/celstark/oMST
provided by Millisecond - can be edited under section 'Editable Instructions'
The instructions are based on published material by Stark et al. and can be edited
in script omst_instructions_inc.iqjs
File Name: omst_x_summary*.iqdat
| Name | Description |
|---|---|
| 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 |
| 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 |
| completed | 0 = Test was not completed 1 = Test was completed |
Parameters |
|
| stimSet | The current stimSet used (1,2,3,4,5,6) |
| stimOrder | The stim order of the current stimSet |
| selfPaced | 0 (false), 1 (true, participants get 1 minute for each image) |
| minTrialDuration | Minimum trial duration in ms (for non-self paced trials this is the responseWindow) |
Summary Variables Across All Test Trials |
|
| propCorrect | Overall proportion correct responses |
| meanCorrRT | Mean correct response time in ms |
| trialCounter | The number of overall trials run |
| countNR | Overall number of 'No Responses' |
Summary Variables By Trialtype |
|
| trialCountTargets | Number of Target trials (Target trials = image repeats) |
| countNRTargets | Number of 'No Responses' for target images |
| rawRateOldTargets | Number of 'Old' responses relative to all Target trials (NoResponse trials included) - CORRECT response |
| rawRateSimTargets | Number of 'Similar' responses relative to all Target trials (NoResponse trials included) |
| rawRateNewTargets | Number of 'New' responses relative to all Target trials (NoResponse trials included) |
| adjRateOldTargets | Number of 'Old' responses relative to all Target trials (NoResponse trials EXCLUDED) - CORRECT response |
| adjRateSimTargets | Number of 'Similar' responses relative to all Target trials (NoResponse trials EXCLUDED) |
| adjRateNewTargets | Number of 'New' responses relative to all Target trials (NoResponse trials EXCLUDED) |
| trialCountLures | Number of Lure trials (Lure trials = presentation of an image similar to one previously presented) |
| countNRLures | Number of 'No Responses' for Lure images |
| rawRateOldLures | Number of 'Old' responses relative to all Lure trials (NoResponse trials included) |
| rawRateSimLures | Number of 'Similar' responses relative to all Lure trials (NoResponse trials included) - CORRECT response |
| rawRateNewLures | Number of 'New' responses relative to all Lure trials (NoResponse trials included) |
| adjRateOldLures | Number of 'Old' responses relative to all Lure trials (NoResponse trials EXCLUDED) |
| adjRateSimLures | Number of 'Similar' responses relative to all Lure trials (NoResponse trials EXCLUDED) - CORRECT response |
| adjRateNewLures | Number of 'New' responses relative to all Lure trials (NoResponse trials EXCLUDED) |
| trialCountNewA | Number of NewA trials (NewA trials = presentation of a new image that will be repeated) |
| countNRNewA | Number of 'No Responses' for NewA images |
| rawRateOldNewA | Number of 'Old' responses relative to all NewA trials (NoResponse trials included) |
| rawRateSimNewA | Number of 'Similar' responses relative to all NewA trials (NoResponse trials included) |
| rawRateNewNewA | Number of 'New' responses relative to all NewA trials (NoResponse trials included) - CORRECT response |
| adjRateOldNewA | Number of 'Old' responses relative to all NewA trials (NoResponse trials EXCLUDED) |
| adjRateSimNewA | Number of 'Similar' responses relative to all NewA trials (NoResponse trials EXCLUDED) |
| adjRateNewNewA | Number of 'New' responses relative to all NewA trials (NoResponse trials EXCLUDED) - CORRECT response |
| trialCountNewB | Number of NewB trials (NewB trials = presentation of a new image that will NOT be repeated) |
| countNRNewB | Number of 'No Responses' for NewB images |
| rawRateOldNewB | Number of 'Old' responses relative to all NewB trials (NoResponse trials included) |
| rawRateSimNewB | Number of 'Similar' responses relative to all NewB trials (NoResponse trials included) |
| rawRateNewNewB | Number of 'New' responses relative to all NewB trials (NoResponse trials included) - CORRECT response |
| adjRateOldNewB | Number of 'Old' responses relative to all NewB trials (NoResponse trials EXCLUDED) |
| adjRateSimNewB | Number of 'Similar' responses relative to all NewB trials (NoResponse trials EXCLUDED) |
| adjRateNewNewB | Number of 'New' responses relative to all NewB trials (NoResponse trials EXCLUDED) - CORRECT response |
| trialCountNew | Number of New trials (New trials = presentation of a new image that may or may not be repeated) |
| countNRNew | Number of 'No Responses' for New images |
| rawRateOldNew | Number of 'Old' responses relative to all New trials (NoResponse trials included) |
| rawRateSimNew | Number of 'Similar' responses relative to all New trials (NoResponse trials included) |
| rawRateNewNew | Number of 'New' responses relative to all New trials (NoResponse trials included) - CORRECT response |
| adjRateOldNew | Number of 'Old' responses relative to all New trials (NoResponse trials EXCLUDED) |
| adjRateSimNew | Number of 'Similar' responses relative to all New trials (NoResponse trials EXCLUDED) |
| adjRateNewNew | Number of 'New' responses relative to all New trials (NoResponse trials EXCLUDED) - CORRECT response |
| tri | Traditional Recognition Index (TRI): rates corrected for no responses => hit rate for targets (=proportion of old responses to old objects) - false alarm rate for foils (=proportion of old responses to foil objects) this script uses all NEW as the basis for 'true' foils (correction to earlier script editions) |
| ldi | Lure Discrimination Index (LDI): rates corrected for no responses (Main MST Measure) => "hit" rate for lures (=proportion of similar responses to lure objects) - "false alarm" rate for foils (=proportion of similar responses to foil objects) this script uses all NEW as the basis for 'true' foils (correction to earlier script editions) |
File Name: omst_x_raw*.iqdat
| Name | Description |
|---|---|
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| 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 |
| 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. |
Parameters |
|
| stimSet | The current stimSet used (1,2,3,4,5,6) |
| stimOrder | The stim order of the current stimSet |
| selfPaced | 0 (false), 1 (true, participants get 1 minute for each image) |
| minTrialDuration | Minimum trial duration in ms (for non-self paced trials this is the responseWindow) |
Trial Performance Metrics |
|
| trialCounter | Tracks the number of objects presented |
| imageItemNumber | The current image itemnumber |
| stim | The currently presented image file |
| trialType | 0 : first presentation of a later TARGET (new) 1 : repeat presentation = target (old) 2 : non-target item (new) 3 : foil presentation (similar)* (for 2 response categories: new) |
| correctResp | Stores the correct response button |
| lag | Stores the lag from targets/similars to first presentation (lag here: number of items inbetween presentations) -1: no lag (first presentation) 0: directly following the first presentation 1: one item inbetween etc. |
| lureBin | The lure bin of current lure (1-5); 0 for targets and foils |
| stimulusItem | Presented stimuli |
| response | The response of participant (scancode of response button) |
| responseText | The response button pressed |
| correct | Correctness of response (1 = correct, 0 = error) |
| latency | Response latency (in ms); measured from: onset of image |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design Elements |
||
| selfPaced | True vs false if you choose 'true', participants get 1 minute for each image | true |
| numberResponseOptions | Choose from 2 or 3 => set responseKeys accordingly below | 3 |
Timing Parameters |
||
| stimDurationMS | The duration (in ms) the image is presented before it is removed | 2000 |
| minTrialDuration | The minimum time (in ms) that a trial will last even if a response was made earlier | 2500 |
Sizing Parameters |
||
| imageHeightPct | Size of the images relative to canvas height | 50% |
Response Keys: For 2 Options, Assign Similar Key To The Same Key As New |
||
| responseKey1 | "V" | |
| responseKey2 | "B" | |
| responseKey3 | "N" | |
| responseKeyOld | parameters.responseKey1 | |
| responseKeySimilar | parameters.responseKey2 | |
| responseKeyNew | parameters.responseKey3 | |