User Manual: Inquisit Optimized Mnemonic Similarity Task (oMST) - Set 1


						Optimized Mnemonic Similarity Task (oMST): Stimuli Set 1, order: "111"
								Main Script to run: omst_set1_111.iqjs


___________________________________________________________________________________________________________________	

								Optimized Mnemonic Similarity Task (oMST)
								- also referred to as the continuous MST-
										* keyboard version *
___________________________________________________________________________________________________________________	


Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 07-25-2024
last updated:  07-29-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 07-29-2024 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements Millisecond Software's version of the Optimized Mnemonic Similarity Task (oMST)
(Start et al, 2023) 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.

////////////////
///Reference:///											
////////////////

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

the original implementation can be downloaded here: https://github.com/celstark/oMST


								/////DISCLAIMER////
Millisecond attempts to replicate the original task as faithfully as possible but differences 
between the implementations likely still exist.
___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
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.

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 6 minutes to complete

___________________________________________________________________________________________________________________	
DATA OUTPUT DICTIONARY
___________________________________________________________________________________________________________________
The fields in the data files are:

(1) Raw data file: 'XXX_raw*.iqdat' (a separate file for each participant)

build:						The specific Inquisit version used (the 'build') that was run
computer.platform:			the platform the script was run on (win/mac/ios/android)
date, time: 				date and time script was run 
subject:					with the current subject id
group: 						with the current group id
session:					with the current session id

blockCode, blockNum:		the name and number of the current block (built-in Inquisit variable)
trialCode, trialNum: 		the name and number of the currently recorded trial (built-in Inquisit variable)
								Note: 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)

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


(2) Summary data file: 'xxx_summary*.iqdat' (a separate file for each participant)

inquisit.version:			Inquisit version run
computer.platform:			the platform the script was run on (win/mac/ios/android)
startdate:					date script was run
startTime:					time script was started
subjectId:					assigned subject id number
groupId:					assigned group id number
sessionId:					assigned session id number
elapsedTime:				time it took to run script (in ms); measured from onset to offset of script
completed:					0 = script was not completed (prematurely aborted); 
							1 = script was completed (all conditions run)
						
///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 (no response trials included) - CORRECT response
rawRateSimTargets:			number of 'Similar' responses relative to all Target trials (no response trials included)
rawRateNewTargets:			number of 'New' responses relative to all Target trials (no response trials included)
adjRateOldTargets:			number of 'Old' responses relative to all Target trials (no response trials EXCLUDED) - CORRECT response
adjRateSimTargets:			number of 'Similar' responses relative to all Target trials (no response trials EXCLUDED)
adjRateNewTargets:			number of 'New' responses relative to all Target trials (no response 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 (no response trials included)
rawRateSimLures:			number of 'Similar' responses relative to all Lure trials (no response trials included) - CORRECT response
rawRateNewLures:			number of 'New' responses relative to all Lure trials (no response trials included)
adjRateOldLures:			number of 'Old' responses relative to all Lure trials (no response trials EXCLUDED)
adjRateSimLures:			number of 'Similar' responses relative to all Lure trials (no response trials EXCLUDED) - CORRECT response
adjRateNewLures:			number of 'New' responses relative to all Lure trials (no response 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 (no response trials included)
rawRateSimNewA:				number of 'Similar' responses relative to all NewA trials (no response trials included)
rawRateNewNewA:				number of 'New' responses relative to all NewA trials (no response trials included) - CORRECT response
adjRateOldNewA:				number of 'Old' responses relative to all NewA trials (no response trials EXCLUDED)
adjRateSimNewA:				number of 'Similar' responses relative to all NewA trials (no response trials EXCLUDED)
adjRateNewNewA:				number of 'New' responses relative to all NewA trials (no response 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 (no response trials included)
rawRateSimNewB:				number of 'Similar' responses relative to all NewB trials (no response trials included)
rawRateNewNewB:				number of 'New' responses relative to all NewB trials (no response trials included) - CORRECT response
adjRateOldNewB:				number of 'Old' responses relative to all NewB trials (no response trials EXCLUDED)
adjRateSimNewB:				number of 'Similar' responses relative to all NewB trials (no response trials EXCLUDED)
adjRateNewNewB:				number of 'New' responses relative to all NewB trials (no response 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 (no response trials included)
rawRateSimNew:				number of 'Similar' responses relative to all New trials (no response trials included)
rawRateNewNew:				number of 'New' responses relative to all New trials (no response trials included) - CORRECT response
adjRateOldNew:				number of 'Old' responses relative to all New trials (no response trials EXCLUDED)
adjRateSimNew:				number of 'Similar' responses relative to all New trials (no response trials EXCLUDED)
adjRateNewNew:				number of 'New' responses relative to all New trials (no response trials EXCLUDED) - CORRECT response


trs: 						Traditional Recognition Score (TRS): 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)
							NOTE: this script uses NEWB as the basis for 'true' foils

mst:						Mnemonic Similarity Task Score: rates corrected for no responses
							=> "hit" rate for lures (=proportion of similar responses to lure objects) - "false alarm" rate for foils (=proportion of similar responses to foil objects)
							NOTE: this script uses NEWB as the basis for 'true' foils 							
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

1. Practice: 9 trials
- 5 guided trials (new1, new2, new3, old1, similar1)
- 4 unguided trials (new4, new5, old2, similar2)
ALL practice trials require the correct response to move on.

2. Test: 128 trials
The stimuli as well as the order of the trialtypes (new, old, similar)
depend on the selected stimuli set and trial order.
Each stimuli set (6) comes with three different trial orders; thus
you can choose from 18 different versions.

All orders show:
64 1st presentations (NEW), 
20 repeated targets (OLD), 
and 44 similar lure trials (SIMILAR)


///////Trial Sequence:
● self paced: Stim (2000ms) -> blank screen for min=500ms to max=58000ms (MinTrialDuration = 2500ms)
=> participants have 1 minute per trial
● timed: Stim (2000ms) -> blank screen for 500ms (TrialDuration = 2500ms)

Response does NOT interrupt the trial but participants get
response feedback (so they know that their response has been detected)

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________

The stimuli are provided by Start et al: https://github.com/celstark/oMST
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________

provided by Millisecond Software - can be edited under section 'Editable Instructions'
The instructions are based on published material by Stark et al.:
https://github.com/celstark/oMST
___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________	
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code 
to further customize your experiment.

The parameters you can change are:

// design elements:
/ selfPaced = true 			// true vs false
							//if you choose 'true', participants get 1 minute for each image

/ numberResponseOptions = 3 //choose from 2 or 3 => set responseKeys accordingly below

//timing parameters
/ stimDurationMS = 2000		//the duration (in ms) the image is presented before it is removed
/ minTrialDuration = 2500 	//the minimum time (in ms) that a trial will last even if a response was made earlier

//sizing parameters:
/ imageHeightPct = 50%						
							
//responseKeys: 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