Return to the Groton Maze Test page


Script Author: Katja Borchert, Ph.D. ( for Millisecond Software, LLC
Date: 10-28-2015
last updated:  06-30-2020 by K. Borchert ( for Millisecond Software, LLC

Script Copyright © 06-30-2020 Millisecond Software

This script implements a version of the Groton Maze Test, a measure of immediate- and short-term visuospatial memory,
described in:

Schroder, M.D, Snyder, P.J, Sielski, I. & Mayes, L. (2004). Impaired performance of children exposed in utero to cocaine
on a novel test of visuospatial working memory. Brain and Cognition, 55, 409–412.

Pietrzak, R. H., Cohen, H., & Snyder, P. J. (2007). Learning efficiency and error monitoring in normal aging: 
An investigation using a novel hidden maze learning test. Archives of Clinical Neuropsychology, 22, 235–245.

Mathewson, K.J., Dywan, J., Snyder, P.J., Tays, W.J., & Segalowitz, S.J.(2008). Aging and electrocortical response 
to error feedback during a spatial learning task. Psychophysiology, 45, 936–948.

Participants are asked to follow/find a hidden pathway in a 10x10matrix from the left upper corner to the 
right lower corner. They can only move one square at a time, left or right or up or down. 
By default, the pathway requires 28 moves (not counting clicking the start square) and 11 corners.	
Participants work on the same maze 6 times: 5 immediate rounds and 1 delayed one.									  

the default set-up of the script takes appr. 7 minutes (+break duration) to complete

The default data stored in the data files are:

(1) Raw data file: 'grotonmazetest_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, group, 					with the current subject/groupnumber
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.
count_rounds:						counts the number of times block.maze is run
nextbox:							stores the cell number of the next correct cell (1-100); from left to right, top to bottom
lastcorrectcell:					stores the number of the last correct cell
response:							the participant's response
selectedcell:						stores the cell number of selected cell 

stop:								0 = block continues; 
									1 = block stops
backwardselection:					1 = the selected cell is already part of the uncovered pathway (participant went backwards on path); correction moves do not count
									0 = the selected cell is not part of the uncovered pathway
repeatselection:					0 = the selected cell has not been selected/tried yet to find the next correct cell
									1 = the selected cell has already been selected/tried to find the next correct cell
locationvalid:						1 = selected cell is only 1 square away from the last correct cell (valid selection)
									0 = selected cell is more than 1 square away from the last correct cell
correct:							the correctness of the response (1 = correct; 0 = incorrect)

ErrorType:							LE = Legal Error (one/first incorrect selection)
											1. LE errors also include the selection of invalid cells
											2. Excludes not selecting the Start cell at the start of the game
									PE = Perserverance Error (second incorrect selection in a row - participant failed to return to last correct square)
									RbE = Rule break Error (third and up incorrect selections in a row)
latency: 							the response latency (in ms)

count_moves:						counts the number of moves that participant makes (number of selections; selecting the disc at the beginning is not counted) in a block
count_correctmoves:					counts the number of correct moves that a participant makes in a block
count_correctionmoves:				counts the number of times participant correctly selects the last correct cell in a block after making an error

count_invalidFirstMoves:			counts the number of times participants broke the rules in selecting the first cell
									(excluding not selecting the start square at the start)
count_errors:						sums up the number of errors (across types) made in a block
ConsecutiveErrors:					contains the number of Consecutive Errors made (resets after a correct response is given)
selectedcellsequence:				stores the sequence of all selected cells per round

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

computer.platform:					the platform the script was run on (win/mac/ios/android)
script.startdate:					date script was run
script.starttime:					time script was started
script.subjectid:					assigned subject id number
script.groupid:						assigned group id number
script.sessionid:					assigned session id number
script.elapsedtime:					time it took to run script (in ms); measured from onset to offset of script
script.completed:					0 = script was not completed (prematurely aborted); 
									1 = script was completed (all conditions run)

CMS_5: 								calculates the number of 'Correct Moves made per Second' (CMS) during each immediate learning block (round1-5)
meanCMS:							calculates the mean 'Correct Moves made per Second' in rounds1-5
CMS_delayed: 						calculates the number of 'Correct Moves made per Second' during the delayed learning block 
duration_delayed:					stores the duration (in ms) of each learning run, starting at first selection (excluding selecting the start square)
									(sum of latencies of all square selections)
errors_delayed:						stores the number of errors made in each learning run (game #1-5, game Delayed)
pathway:							stores the randomly selected pathway (see list.pathways under Editable lists)								
6 Learning rounds: 5 immediate; 1 delayed
=> the script provides 5 mazes that all require 28 selections (not counting the selecting the start) and 11 corners.
These lists are not original to Snyder et all. The mazes can be edited under section Editable Lists -> list.pathways.
The computer randomly selects one of the mazes for each participant.

Description of rounds:
* Each Run/Timing starts with Participants selecting the upper left corner.
=> if the upper left corner is not selected, participants receive a reminder to select it.
* Participants then have to decide to click the next valid square (either to the right/left or below/above); etc.
=> a correct move is signaled by a 'positivesound' and the selected square turning briefly green
=> an incorrect move is signaled by a 'negativesound' and the selected square turning briefly red,
After an incorrect move, participants are required to return to the last correct square to continue. If participants fail
to return to the last correct square after 3 consecutive incorrect choices, a flashing "!" appears in the last 
correct square. Participants need to click it in order to move on (a text reminder is optional)
* the run ends by participants clicking the lower right corner (finish cell) once the finish cell is the next
correct response. 

Error Scoring in this script (see Pietrzak et al, 2007):

1) Legal Errors: the first error (in a row) a participant makes is coded as a legal error.
2) Perserverative Errors: if participants fail to return to the last correct square after making an error the response is termed perserverative.
Anymore consecutive error responses after a perserverative error are labeled "Rule-break" 							
3) More than 2 consecutive errors are labeled "rule-break error"			
For practice, the Inquisit "TimedChaseTest.iqx" can be run

Instructions are not original to the task. They are provided by Millisecond Software
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).

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:

/showerrorreminder:				true = a verbal reminder to return to the last correct square is presented once participants has selected 3 incorrect squares
								false = no verbal reminder is presented
/delayDuration:					the delay duration in ms (default: 600000 = 10min)
								If delay Duration is set <= 0; a spacebar press continues to the Delayed Maze instead