Return to the Nine-Hole Peg Test page
						
										Nine Hole Peg Test
SCRIPT INFO

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 08-31-2017
last updated: 11-28-2017 by K.Borchert (katjab@millisecond.com) for Millisecond Software LLC

Script Copyright © 11-28-2017 Millisecond Software


BACKGROUND INFO 

											*Purpose*
This script implements a computerized version of the Nine Hole Peg Test.

References for Nine Hole Peg Test:

Mathiowetz V, Weber K, Kashman N, Volland G. Adult Norms for the Nine Hole Peg Test of Finger Dexterity. 
The Occupational Therapy Journal of Research. 1985;5:24-33.

Earhart, G.M., Cavanaugh, J.T., Ellis, T., Ford, M.P., Foreman, K.B., & Dibble, L. (2011).
The 9-Hole Peg Test of Upper Extremity Function: Average Values, Test-Retest Reliability, and Factors
Contributing to Performance in People With Parkinson Disease.
JNPT, 35, 157-163.

Tobler-Ammann, B.C.,de Bruin, E.D., Fluet, M.C., Lambercy, O., Rob A. de Bie, R.A. & Knols, R.H. (2016).
Concurrent validity and test-retest reliability of the Virtual Peg Insertion Test to quantify upper limb function
in patients with chronic stroke.
Journal of NeuroEngineering and Rehabilitation, 13:8.



											  *Task*
Phase1: Participants are asked to move 9 'pegs' (=blue discs) with the mouse from one area of the screen 
into the 9 empty holes (=white discs) of a pegboard. 
Phase2: Once all pegs are placed, participants need to move them back to the starting positions.



DATA FILE INFORMATION: 
The default data stored in the data files are:

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

build:							Inquisit build
computer.platform:				the platform the script was run on
date, time, subject, group:		date and time script was run with the current subject/groupnumber 
blockcode, blocknum:			the name and number of the current block
trialcode, trialnum: 			the name and number of the currently recorded trial
									(Note: not all trials that are run might record data; by default data is collected unless /recorddata = false is set for a particular trial/block) 
/condition:						"DragDropTraining" (drag/drop training), "practice2" (dry run of task), "test"
/phase:							1 = move pegs to board; 2 = move pegs from board back to start
/hand:							DH = dominant hand; NDH = non-dominant hand
																
/targetPeg:						stores the currently moved peg									
latency: 						the response latency (in ms); measured from: onset of trial until measured response
/countSuccesses:				stores the number of pegs successfully placed
/transportDrops:				the sum of all 'transport Drops' during the current phase (resets for each phase and hand)
								transportdrop = number of time participants released ('dropped') a stimulus prematurely before it's successfully placed

/transportDrops_peg1:			
/transportDrops_peg9:			calculates the number of times peg1-9 was picked up and released ('dropped') before it was successfully placed into a hole
																								
/MovingDuration:				calculates the complete duration (in ms) of moving the pegs until all holes are filled (phase 1) 
								or pegs are moved back beyond startwall (phase 2); measured from selecting the first peg until last peg is placed
/startMoveTime:					stores the script.elapsedtime (in ms) of the start of a movement trial (either phase 1 or phase 2)									
/startMoveFirstPeg:				stores the script.elpasedtime (in ms) of moving the first peg; 
								measured from clicking on the first peg (either phase 1 or phase 2)
/timeUntilFirstPegSelection: 	stores the time (in ms) it took participant to start moving the first peg to the pegboard (phase 1)
								or from the pegboard back beyond the startwall (phase 2)
/endTime:						stores the script.elapsedtime (in ms) at the end of successfully moving all 9 pegs into the holes (phase 1)
								or pegs are moved back beyond startwall (phase 2)
								
/peg1Set:						1 = peg1 is successfully placed; 0 = otherwise
(same for all 9 pegs)
/hole1Occupied:					1 = hole1 (from left to right, top to bottom) is occupied by a peg; 0 = otherwise
(same for all 9 holes)								


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

script.startdate:				date script was run
script.starttime:				time script was started
script.subjectid:				subject id number
script.groupid:					group id number
script.elapsedtime:				time it took to run script (in ms)
computer.platform:				the platform the script was run on
/completed:						0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run)

/MovingDuration1_DH:				phase1 (DOMINANT hand): stores the complete duration (in ms) of moving the pegs to the pegboard until all holes are filled; 
									measured from selecting the first peg
/timeUntilFirstPegSelection1_DH: 	phase1 (DOMINANT hand): stores the time (in ms) it took participant to start moving the first peg to the pegboard
/transportDrops1_DH:				phase1 (DOMINANT hand): number of transport drops across pegs 
									(transfer drop: picking up and dropping a peg before it is successfully placed)
/MovingDuration2_DH:				phase2 (DOMINANT hand): stores the complete duration (in ms) of moving the pegs back to the startline until all pegs are back; 
									measured from selecting the first peg from the pegboard
/timeUntilFirstPegSelection2_DH:	phase2 (DOMINANT hand):  stores the time (in ms) it took participant to start moving the first peg back to the startline
/transportDrops2_DH:				phase2 (DOMINANT hand): number of transport drops across pegs 
									(transfer drop: picking up and dropping a peg before it is successfully placed)

/MovingDuration1_NDH:				phase1 (NON-DOMINANT hand): stores the complete duration (in ms) of moving the pegs to the pegboard until all holes are filled; 
									measured from selecting the first peg
/timeUntilFirstPegSelection1_NDH: 	phase1 (NON-DOMINANT hand): stores the time (in ms) it took participant to start moving the first peg to the pegboard
/transportDrops1_NDH:				phase1 (NON-DOMINANT hand): number of transport drops across pegs 
									(transfer drop: picking up and dropping a peg before it is successfully placed)
/MovingDuration2_NDH:				phase2 (NON-DOMINANT hand): stores the complete duration (in ms) of moving the pegs back to the startline until all pegs are back; 
									measured from selecting the first peg from the pegboard
/timeUntilFirstPegSelection2_NDH:	phase2 (NON-DOMINANT hand):  stores the time (in ms) it took participant to start moving the first peg back to the startline
/transportDrops2_NDH:				phase2 (NON-DOMINANT hand): number of transport drops across pegs 
									(transfer drop: picking up and dropping a peg before it is successfully placed)


* separate data files: to change to one data file for all participants (on Inquisit Lab only), go to section
"DATA" and follow further instructions


EXPERIMENTAL SET-UP

1. Mouse Training:
Participants get to try out to drag and drop a blue disc on the screen. They are asked to:
- move the disc around with the left or right hand
- place the disc on a target stimuli and see how it changes color when it's successfully placed
- once they understand how to use the mouse, they can continue

Block 1: Dominant Hand (always tested first)
1. Practice:
Participants are asked to complete the test once with their dominant hand for practice
2. Test:
Participants are asked to complete the test a second time with their dominant hand (for the test)

Block 2: Non-Dominant Hand (always tested second)
1. Practice:
Participants are asked to complete the test once with their non-dominant hand for practice
2. Test:
Participants are asked to complete the test a second time with their dominant hand(for the test)

Note:
- a peg is successfully placed if all parts of the peg are placed onto an empty hole


STIMULI
created by the script. The size of the holes (on pegboard) can be edited via an editable parameter

INSTRUCTIONS
provided by Millisecond Software - can be edited under section Editable Instructions

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:

/sizingFactor:				sets the size of the holes on the backboard in relation to the size of the pegs.
							Default: 1.1 => the radius of the holes are 1.1 times the radius of the pegs (10% larger)
							Note: the script enforces a range of 1.025 - 1.5.

/showQuitInfo:				true:	information about how to prematurely abort the script is provided on screen the entire time
									(quitcode for this script: Alt + 'E')
							false:  the quitcode is not provided on screen, but the quitcode (Alt + 'E') still works (default setting)
Copyright © Millisecond Software. All rights reserved.
Contact | Terms of Service | Security Statement | Employment