_________________________________________________________________________________________________________________ *Nine Hole Peg Test* ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 08-31-2017 last updated: 01-03-2025 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 01-03-2025 Millisecond Software _________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements a computerized version of the Nine Hole Peg Test, a test of fine motor behavior. 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 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. ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 7 minutes to complete ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'nineholepegtest_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 such as feedback trials. Thus, trialNum may not reflect the number of main trials run per 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 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) (2) Summary data file: 'nineholepegtest_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) 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) * 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 ___________________________________________________________________________________________________________________ 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 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)