Nine-Hole Peg Test

Technical Manual

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond

Created: January 31, 2017

Last Modified: January 03, 2025 by K. Borchert (katjab@millisecond.com), Millisecond

Script Copyright © Millisecond Software, LLC

Background

This script implements a computerized version of the Nine Hole Peg Test, a test of fine motor behavior.

References

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.

Duration

7 minutes

Description

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.

Procedure

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)


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

Stimuli

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

Instructions

provided by Millisecond - can be edited in script nineholepegtest_instructions_inc.iqjs

Summary Data

File Name: nineholepegtest_summary*.iqdat

Data Fields

NameDescription
inquisit.version Inquisit version number
computer.platform Device platform: win | mac |ios | android
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
movingDuration1DH 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
timeUntilFirstPegSelection1DH Phase1 (DOMINANT hand): stores the time (in ms) it took participant to start moving the first peg to
the pegboard
transportDrops1DH Phase1 (DOMINANT hand): number of transport drops across pegs
(transfer drop: picking up and dropping a peg before it is successfully placed)
movingDuration2DH 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
timeUntilFirstPegSelection2DH Phase2 (DOMINANT hand): stores the time (in ms) it took participant to start moving the
first peg back to the startline
transportDrops2DH Phase2 (DOMINANT hand): number of transport drops across pegs
(transfer drop: picking up and dropping a peg before it is successfully placed)
movingDuration1NDH 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
timeUntilFirstPegSelection1NDH Phase1 (NON-DOMINANT hand): stores the time (in ms) it took participant to start moving the
first peg to the pegboard
transportDrops1NDH Phase1 (NON-DOMINANT hand): number of transport drops across pegs
(transfer drop: picking up and dropping a peg before it is successfully placed)
movingDuration2ndH 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
timeUntilFirstPegSelection2ndH Phase2 (NON-DOMINANT hand): stores the time (in ms) it took participant to start moving
the first peg back to the startline
transportDrops2ndH Phase2 (NON-DOMINANT hand): number of transport drops across pegs
(transfer drop: picking up and dropping a peg before it is successfully placed)

Raw Data

File Name: nineholepegtest_raw*.iqdat

Data Fields

NameDescription
build Inquisit version number
computer.platform Device platform: win | mac |ios | android
date Date the session was run
time Time the session was run
subject, group, With the current subject/groupnumber
session Session number
blockCode Name of the current block
blockNum Number of the current block
trialCode Name of the current trial
trialNum Number of the current trial
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
transportDropsPeg1
transportDropsPeg9 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)

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
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)
the script enforces a range of 1.025 - 1.5.