Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 07, 2017
Last Modified: January 12, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a Psychomotor Vigilance Test, a basic simple response time test.
The implemented procedure is based on: Thomann, J.; R. Baumann, C.R.; Landolt, H.-P.; & Werth, E (2014). Psychomotor Vigilance Task Demonstrates Impaired Vigilance in Disorders with Excessive Daytime Sleepiness. Journal of Clinical Sleep Medicine, Vol. 10, 1019-1024.
Mathias Basner, MD, PhD, MSc, David F. Dinges, PhD, Maximizing Sensitivity of the Psychomotor Vigilance Test (pvt) to Sleep Loss, Sleep, Volume 34, Issue 5, 1 May 2011, Pages 581–591, https://doi.org/10.1093/sleep/34.5.581
12 minutes
Participants are instructed to press the 1. Habituation Phase: ~1 min (Block is terminated after the last trial cycle within the designated timeframe) target stimulus is a red stopwatch counter (counts in milliseconds) provided by Millisecond - can be edited File Name: psychomotorvigilancetest_summary*.iqdat File Name: psychomotorvigilancetest_raw*.iqdat The procedure can be adjusted by setting the following parameters.
Procedure
- same task as actual test but performance is not used for summary statistics
the Habituation Phase seamlessly turns into the Test Phase without giving participants any further warning.
During the first trial only, a reminder to press spacebar is presented on screen.
2. Test Phase: ~10 min (Block is terminated after the last trial cycle within the designated timeframe)
Trial Sequence:
ISI (randomly selected from 2-10s)-> target stim until response-> RT feedback (1000ms)
If a response is made before the target stim appears, a short error message is flashed onto the screen
and a new trial is started.
Stimuli
Instructions
in script "psychomotorvigilancetest_instructions_inc.iqjs"
Summary Data
Data Fields
Name Description
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
Summary Variables For Test Block Only (Excludes Habituation Phase): (See Thoman Et Al, 2014, P.1020)
meanRT
Mean valid response latency (in ms; measured from onset of target)
reciprocalMeanRT
Its reciprocal (see Thoman et al, 2014, p.1020)
medianRT
Median valid response latency (in ms; measured from onset of target)
maxRT
The maximum valid response latency (in ms; measured from onset of target)
minRT
The minimum valid response latency (in ms; measured from onset of target)
meanRT500
Mean valid response latency of responses with latencies <= 500ms (in ms; measured from onset of target)
reciprocalMeanRT500
Its reciprocal (see Thoman et al, 2014, p.1020)
medianRT500
Median valid response latency of responses with latencies <= 500ms (in ms; measured from onset of target)
maxRT500
The maximum valid response latency of responses with latencies <= 500ms (in ms; measured from onset of target)
minRT500
The minimum valid response latency of responses with latencies <= 500ms (in ms; measured from onset of target)
tenthPercentile
In this script: the 10th percentile RT is taken as the value that sits at the 10%index (rounded to the nearest integer)
in the sorted RT list
Example: the sorted RT list (from slowest to fastest) contains 120 values
the 10th percentile would be the value sitting at index 12 (120*10%) of this sorted list
ninetiethPercentile
In this script: the 90th percentile RT is taken as the value that sits at the 90%index (rounded to the nearest integer)
in the sorted RT list
Example: the sorted RT list (from slowest to fastest) contains 120 values
the 90th percentile would be the value sitting at index 108 (120*90%) of this sorted list
rangeRT
The difference in ms betw. 10th percentile RT and 90th percentile RT
tenthPercentile500
In this script: the 10th percentile RT is taken as the value that sits at the 10%index (rounded to the nearest integer)
in the sorted RT list of valid latencies <= 500ms
ninetiethPercentile500
In this script: the 90th percentile RT is taken as the value value that sits at the 90%index (rounded to the nearest integer)
in the sorted RT list of valid latencies <= 500ms
rangeRT500
The difference in ms btw. 10th percentile RT and 90th percentile RT of valid latencies <= 500ms
numberOfLapses
Stores the total number of lapses (responses with latencies > 500ms) during the test block
transformedNumberOfLapses
NumberOfLapses transformed with (sqrt(numberOfLapses) + sqrt(numberOfLapses+1)) (see Thoman et al, 2014, p.1020)
meanLapseRT
The average lapse in ms (average ms above 500ms for lapses)
cumulativeLapseRT
The sum of all lapse times during the test block
countFalseStarts
Counts the number of false starts during the test block
falseRT
Ratio of
'number of times participant responded BEFORE target appeared' to
'the number of times participant responded AFTER target appeared'
this ratio is presented as a percentage.Raw Data
Data Fields
Name Description
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
Participant ID
group
Group number
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
Parameter Values For Lapsert And Isi
Parameters.Lapsert
Parameters.Minisi
Parameters.Maxisi
isi
The currently randomly selected interstimulus interval in ms (randomly sampled from 2-10s)
response
The participant's response (scancode of response button): 57 = spacebar press
responseCategory
"false start" (= response before target occurs) vs.
"no lapse" (= valid response with latency <= 500ms)
vs. "lapse" (= valid response with latency > 500ms)
vs. "lapse-overrun" (= valid response with latency >= parameters.)
clock.target.stimulusOnset
The onset time of the clock measured from onset of trial (in ms)
latency
The response latency (in ms); measured from onset of trial
rt
Stores the latency of the response measured from onset of target stim
(calculated as the difference btw. latency - clock.target.stimulusOnset)
countFalseStarts
Counts the number of times an invalid (early) response is made in the current block
Parameters
Name Description Default
minISI
Minimum isi (in ms) 2000
maxISI
Maximum isi (in ms) 10000
rtFeedbackDuration
The duration (in ms) of the RT feedback
!!! in this script the feedback Duration is NOT included in the ISI1000
lapseRT
Any valid response latency > lapseRT is considered a lapse 500
responseTimeoutDuration
The max. response time (in ms)
timed-out responses are considered 'lapsed-overrun' and valid
(see Basner & Dinges, 2011)30000
habituationDuration
The duration (in ms) of the habituation phase 60000
taskDuration
The duration (in ms) of the test phase 600000
falseStartFeedbackDuration
The duration (in ms) of the false Start warning/feedback 300
readyDuration
The duration (in ms) of the 'get Ready' trial 2000