NonX Continuous Performance Test - NonX-CPT

Technical Manual

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

Created: January 10, 2024

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

Script Copyright © Millisecond Software, LLC

Background

This script implements a Non-X Continuous Performance Task (NonX-CPT). A Continuous Performance Task (CPT) uses a go/nogo testing paradigm with a stream of stimuli that either require a go response ("press the spacebar") or a nogo response ("don't do anything"). The NonX-CPT procedure presents a high frequency of go-responses (NonX trials) and low frequency of nogo-responses (X trials). This contrasts with the CPT-Rosvold procedure ('X-CPT'). The Conners CPT-3 (Conners, 1995) is one example of a nonX-CPT procedure. CPTs are generally used as a measure of sustained and selective attention.

References

Ballard, J. C. (2001). Assessing Attention: Comparison of Response-Inhibition and Traditional Continuous Performance Tests. Journal of Clinical and Experimental Neuropsychology, 23(3), 331–350. https://doi.org/10.1076/jcen.23.3.331.1188

Conners, C.K. (1995). Conners' Continuous Performance Test computer program 3.0: User's manual. Toronto, Ontario, Canada: Multi-Health Systems Inc.

Gregg, A. & Sedikides, C. (2010). Narcissistic Fragility: Rethinking Its Links to Explicit and Implicit Self-esteem, Self and Identity, 9:2, 142-161 (p.148)

Duration

18 minutes

Description

Participants view a continuous stream of letters and are asked to press the Spacebar whenever the letter is 'NOT an X' (go trials) but refrain from responding when the letter is an X (nogo trials).

Procedure

(1) Optional Practice Session (see editable parameter section to fine-tune the practice phase)
By default, the practice session runs 20 trials with 12 go-trials (nonX) and 8 nogo-trials (X).
The frequencies were chosen to run more go than nogo trials but to run more nogo trials for
practice purposes than during the test procedure. Participants receive error feedback
(by type of error).
The practice block is repeated 3 times if performance is lower than 80% correct (check editable parameters).

(2) Test Session (see editable parameter section to fine-tune the test phase)
By default, the script runs 6 main blocks that each run 3 (sub)blocks of
3 different ISIs (1000ms,2000ms,4000ms).
The order of the Isis can be counterbalanced across the 6 blocks or are selected randomly.
By default, they are counterbalanced.
There are no breaks between ISIs and/or main blocks. The task seems to be continuous from the
participant's perspective.
For each isi-(sub)block, the scripts runs 10% nogo trials (for 20 trials => 2 nogo trials, editable parameters).
The order of go and nogo trials is randomly determined.

Trial Sequence:
-> letter for 250ms (response does not interrupt letter presentation)
-> blank screen for isi-duration (response window: letter duration + isis duration)
...

Stimuli

provided by Millisecond - can be edited under section 'Editable Stimuli'

Instructions

provided by Millisecond - can be edited under section 'Editable Instructions'

Summary Data

File Name: nonx_cpt_summary*.iqdat

Data Fields

NameDescription
inquisit.version Inquisit version number
computer.platform Device platform: win | mac |ios | android
computer.touch 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities
computer.hasKeyboard 0 = no external keyboard detected; 1 = external keyboard detected
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
Parameters
numberOfMainBlocks The number of main blocks to run
numberOfIsiPerBlock The number of Isis to run
numberOfTrialsPerIsi The number of Trials per Isi
propNoGoTrialsPerIsi Proportion of Nogo Trials per Isi
Practice
practiceCounter Number of practice rounds run
practiceAcc Proportion correct in the final practice round
Test
trialCounterPerIsiTotal Number of test trials run
trialCounterPerIsiGoTotal Number of Go test trials run
trialCounterPerIsiNoGoTotal Number of Nogo test trials run
Accuracy Measures
propCorrectTotal Overall proportion correct across all test trials (regardless of trialType)
hitRateTotal Proportion of responses to targets (nonX stims) relative to all go-trials (= correct response for go trials)
missRateTotal Proportion of missed responses to targets (nonX stims) relative to all go-trials
=> possible indicator of inattentiveness
falseAlarmRateTotal Proportion of responses to non-targets (X stims) relative to all nogo-trials
(= error response for nogo trials)
=> coupled with fast hitRT: a possible indicator for impulsive responding
=> coupled with slow hitRT: a possible indicator for inattentiveness
corrRejectRateIsi1 Proportion of non-responses to non-targets relative to all nogo-trials (= correct response for nogo trials)
pRespCounterTotal Number of Perseverations across all test trials (Perseverations = random responses + anticipatory responses)
=> Perseverations indicate impulsivity or a very liberal response style.
zHitRateTotal The calculate z-score of the overall hitRate
zFalseAlarmRateTotal The calculated z-score of the overall falseAlarm/falseAlarm rate
Adjustments to z-scores as recommended by Gregg & Sedikides (2010)
Adjustments are made if the FArate (hitRate) = 0 (increased to 0.005) or 1 (decreased to 0.995)*
dPrime Computes d' (parametric measure of discriminability btw. signals and noise)
=> Range (in this script)
-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)
=> The higher the value, the better signals (go stims) were overall distinguished from noise (nogo stims)
(d' = 0: chance performance; negative d-primes: participant treated nontargets as targets and targets as nontargets)
c C-criterion in signal detection: The absolute value of c provides an indication of the strength of
the response bias/response style
negative: participant more likely to report that signal is present (liberal response style)
may favor faster responding in speed-accuracy trade-off response paradigms
positive: favoring caution (conservative response style)
Response Time Measures
hitRTTotal The mean response latency (in ms) of hit responses
-> a fast hitRT coupled with high falseAlarmRate may indicate impulsive responding
-> a slow hitRT (coupled with high error rate) may indicate inattentiveness while responding
-> a slow hitRT in general could also indicate a conservative response style
sdHitRTTotal The standard deviation (in ms) of hit responses
(consistency of response speed to targets)
-> possible indicator of variable attentiveness across the entire task
Performance Statistics By Isi: An Increase In Hit Response Time As Well As An Increase In Error Rates From Fast (E.G. 1S) To Slower Isis (E.G 4S) May Indicate Loss Of Vigilance.
isi1 Stores the value (in ms) run as ISI1
trialCounterPerIsiIsi1 Number of test trials run in Isi1
trialCounterPerIsiGoIsi1 Number of Go test trials run in Isi1
trialCounterPerIsiNoGoIsi1 Number of Nogo test trials run in Isi1
hitRateIsi1 Proportion of responses to targets (nonX stims) relative to all Isi1 go-trials (= correct response for go trials)
missRateIsi1 Proportion of missed responses to targets (nonX stims) relative to all Isi1 go-trials
falseAlarmRateIsi1 Proportion of responses to non-targets (X stims) relative to all Isi1 nogo-trials (= error response for nogo trials)
corrRejectRateIsi1 Proportion of non-responses to non-targets relative to all Isi1 nogo-trials (= correct response for nogo trials)
pRespCounterIsi1 Number of Perseverations across all Isi1 test trials (Perseverations = random responses + anticipatory responses)
hitRTIsi1 The mean response latency (in ms) of hit responses in Isi1
sdHitRTIsi1 The standard deviation (in ms) of hit responses in Isi1
isi2 Stores the value (in ms) run as Isi2
trialCounterPerIsiIsi2 Number of test trials run in Isi2
trialCounterPerIsiGoIsi2 Number of Go test trials run in Isi2
trialCounterPerIsiNoGoIsi2 Number of Nogo test trials run in Isi2
hitRateIsi2 Proportion of responses to targets (nonX stims) relative to all Isi2 go-trials (= correct response for go trials)
missRateIsi2 Proportion of missed responses to targets (nonX stims) relative to all Isi2 go-trials
falseAlarmRateIsi2 Proportion of responses to non-targets (X stims) relative to all Isi2 nogo-trials (= error response for nogo trials)
corrRejectRateIsi2 Proportion of non-responses to non-targets relative to all Isi2 nogo-trials (= correct response for nogo trials)
pRespCounterIsi2 Number of Perseverations across all Isi2 test trials (Perseverations = random responses + anticipatory responses)
hitRTIsi2 The mean response latency (in ms) of hit responses in Isi2
sdHitRTIsi2 The standard deviation (in ms) of hit responses in Isi2
isi3 Stores the value (in ms) run as Isi3
trialCounterPerIsiIsi3 Number of test trials run in Isi3
trialCounterPerIsiGoIsi3 Number of Go test trials run in Isi3
trialCounterPerIsiNoGoIsi3 Number of Nogo test trials run in Isi3
hitRateIsi3 Proportion of responses to targets (nonX stims) relative to all Isi3 go-trials (= correct response for go trials)
missRateIsi3 Proportion of missed responses to targets (nonX stims) relative to all Isi3 go-trials
falseAlarmRateIsi3 Proportion of responses to non-targets (X stims) relative to all Isi3 nogo-trials (= error response for nogo trials)
corrRejectRateIsi3 Proportion of non-responses to non-targets relative to all Isi3 nogo-trials (= correct response for nogo trials)
pRespCounterIsi3 Number of Perseverations across all Isi3 test trials (Perseverations = random responses + anticipatory responses)
hitRTIsi3 The mean response latency (in ms) of hit responses in Isi3
sdHitRTIsi3 The standard deviation (in ms) of hit responses in Isi3
Block By Block Performance Statistics: A Increase In Hit Response Time (Get Slower) As Well As An Increase In Error Rates Over Time Could Be A Sign Of Waning Sustained Attention.
trialCounterPerIsiBlock1 Number of test trials run in Block1
trialCounterPerIsiGoBlock1 Number of Go test trials run in Block1
trialCounterPerIsiNoGoBlock1 Number of Nogo test trials run in Block1
hitRateBlock1 Proportion of responses to targets (nonX stims) relative to all Block1 go-trials (= correct response for go trials)
missRateBlock1 Proportion of missed responses to targets (nonX stims) relative to all Block1 go-trials
falseAlarmRateBlock1 Proportion of responses to non-targets (X stims) relative to all Block1 nogo-trials (= error response for nogo trials)
pRespCounterBlock1 Number of Perseverations across all Block1 test trials (Perseverations = random responses + anticipatory responses)
hitRTBlock1 The mean response latency (in ms) of hit responses in Block1
sdHitRTBlock1 The standard deviation (in ms) of hit responses in Block1
trialCounterPerIsiBlock2 Number of test trials run in Block2
trialCounterPerIsiGoBlock2 Number of Go test trials run in Block2
trialCounterPerIsiNoGoBlock2 Number of Nogo test trials run in Block2
hitRateBlock2 Proportion of responses to targets (nonX stims) relative to all Block2 go-trials (= correct response for go trials)
missRateBlock2 Proportion of missed responses to targets (nonX stims) relative to all Block2 go-trials
falseAlarmRateBlock2 Proportion of responses to non-targets (X stims) relative to all Block2 nogo-trials (= error response for nogo trials)
pRespCounterBlock2 Number of Perseverations across all Block2 test trials (Perseverations = random responses + anticipatory responses)
hitRTBlock2 The mean response latency (in ms) of hit responses in Block2
sdHitRTBlock2 The standard deviation (in ms) of hit responses in Block2
trialCounterPerIsiBlock3 Number of test trials run in Block3
trialCounterPerIsiGoBlock3 Number of Go test trials run in Block3
trialCounterPerIsiNoGoBlock3 Number of Nogo test trials run in Block3
hitRateBlock3 Proportion of responses to targets (nonX stims) relative to all Block3 go-trials (= correct response for go trials)
missRateBlock3 Proportion of missed responses to targets (nonX stims) relative to all Block3 go-trials
falseAlarmRateBlock3 Proportion of responses to non-targets (X stims) relative to all Block3 nogo-trials (= error response for nogo trials)
pRespCounterBlock3 Number of Perseverations across all Block3 test trials (Perseverations = random responses + anticipatory responses)
hitRTBlock3 The mean response latency (in ms) of hit responses in Block3
sdHitRTBlock3 The standard deviation (in ms) of hit responses in Block3
trialCounterPerIsiBlock4 Number of test trials run in Block4
trialCounterPerIsiGoBlock4 Number of Go test trials run in Block4
trialCounterPerIsiNoGoBlock4 Number of Nogo test trials run in Block4
hitRateBlock4 Proportion of responses to targets (nonX stims) relative to all Block4 go-trials (= correct response for go trials)
missRateBlock4 Proportion of missed responses to targets (nonX stims) relative to all Block4 go-trials
falseAlarmRateBlock4 Proportion of responses to non-targets (X stims) relative to all Block4 nogo-trials (= error response for nogo trials)
pRespCounterBlock4 Number of Perseverations across all Block4 test trials (Perseverations = random responses + anticipatory responses)
hitRTBlock4 The mean response latency (in ms) of hit responses in Block4
sdHitRTBlock4 The standard deviation (in ms) of hit responses in Block4
trialCounterPerIsiBlock5 Number of test trials run in Block5
trialCounterPerIsiGoBlock5 Number of Go test trials run in Block5
trialCounterPerIsiNoGoBlock5 Number of Nogo test trials run in Block5
hitRateBlock5 Proportion of responses to targets (nonX stims) relative to all Block5 go-trials (= correct response for go trials)
missRateBlock5 Proportion of missed responses to targets (nonX stims) relative to all Block5 go-trials
falseAlarmRateBlock5 Proportion of responses to non-targets (X stims) relative to all Block5 nogo-trials (= error response for nogo trials)
pRespCounterBlock5 Number of Perseverations across all Block5 test trials (Perseverations = random responses + anticipatory responses)
hitRTBlock5 The mean response latency (in ms) of hit responses in Block5
sdHitRTBlock5 The standard deviation (in ms) of hit responses in Block5
trialCounterPerIsiBlock6 Number of test trials run in Block6
trialCounterPerIsiGoBlock6 Number of Go test trials run in Block6
trialCounterPerIsiNoGoBlock6 Number of Nogo test trials run in Block6
hitRateBlock6 Proportion of responses to targets (nonX stims) relative to all Block6 go-trials (= correct response for go trials)
missRateBlock6 Proportion of missed responses to targets (nonX stims) relative to all Block6 go-trials
falseAlarmRateBlock6 Proportion of responses to non-targets (X stims) relative to all Block6 nogo-trials (= error response for nogo trials)
pRespCounterBlock6 Number of Perseverations across all Block6 test trials (Perseverations = random responses + anticipatory responses)
hitRTBlock6 The mean response latency (in ms) of hit responses in Block6
sdHitRTBlock6 The standard deviation (in ms) of hit responses in Block6

Raw Data

File Name: nonx_cpt_raw*.iqdat

Data Fields

NameDescription
build Inquisit version number
computer.platform Device platform: win | mac |ios | android
computer.touch 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities
computer.hasKeyboard 0 = no external keyboard detected; 1 = external keyboard detected
date Date the session was run
time Time the session was run
subject Participant ID
group Group number
session Session number
Parameters
numberOfMainBlocks The number of main blocks to run
numberOfIsiPerBlock The number of Isis to run
numberOfTrialsPerIsi The number of Trials per Isi
propNoGoTrialsPerIsi Proportion of Nogo Trials per Isi
blockcode The name the current block (built-in Inquisit variable)
blocknum The number of the current block (built-in Inquisit variable)
trialcode The name of the currently recorded trial (built-in Inquisit variable)
trialnum The number of the currently recorded trial (built-in Inquisit variable)
trialnum is a built-in Inquisit variable; it counts all trials run
even those that do not store data to the data file.
practice 1 = practice session; 0 = test session
blockCounter Counts the number of blocks run; resets after practice
trialCounterPerBlock Tracks the number of trials run per main block
currentIsiOrder Stores the current IsiOrder for the current test block (if counterbalanced)
isiCounter Counts the number of Isis run in the current (main) test block
currentIsi Stores the current ISI (in ms)
trialCounterPerIsi Tracks the number of trials run per current Isi
trialType 0 = nogo trial (X), 1 = go trial (non-X)
letter The letter presented
corrResp Stores the correct response ("RESPONSE" vs. "NO RESPONSE")
Custom Dvs For Trial.Nonxcpt
resp Whether a response was made ("RESPONSE" vs. "NO RESPONSE")
respRT The response time of the response; measured from onset of letter
(empty for no responses)
valid 0 = anticipatory response (response time < 100ms); 1 = valid response (response time >= 100)
respCategory Anticipatory: a response was made within the first 100ms after onset of letter
hit: a valid response was made in a go trial
miss: no response was made in a go trial
correct rejection: no response was made a in a nogo trial
falseAlarm: a valid response was made in a nogo trial
acc 1 = the response was correct and valid for the current trial
0 = the current response was incorrect for the current trial ( anticipatory responses are always incorrect)
pResponse 0 = no Perseveration (= anticipatory and/or additional (random) responses) was made during this trial
1 = at least one Perseveration was detected
pRespCounter Number of Perseverations (= anticipatory and/or additional (random) responses) counted during the current trial
Built-In: Note These Variables Are Not Useful For Trial.Nonxcpt Due To The Current Trial Setup
response The response of participant (scancode of response button)
correct Correctness of response (1 = correct, 0 = error)
latency Response latency (in ms); measured from: onset of trial

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Design Parameters
numberOfMainBlocks Number of main blocks to run
number should work with numbers of Isis run and
potentially parameters.counterbalanceOrderIsisACrossMainBlocks
the script only provides summary variables up to 6 main blocks
6
numberOfIsiPerBlock Refers to 'subblocks' (needs to correspond to number of items in list.isis below, here: 3)
Notes
a) isis are run in blocked format (hence the subblock reference)
b) the script only provides summary variables up to 3 isis
3
numberOfTrialsPerIsi Number of trials run per isi subblock20
propNoGoTrialsPerIsi Proportion of nogo trials per isi subblock (should result in an integer number)0.1
counterbalanceOrderIsisAcrossMainBlocks Controls the order of the isis per main block
true = the order of the isis is counterbalanced across all blocks
Example: for 3 isis, there need to be 6 main blocks to run each combination of isis at least once
IMPORTANT: if number of isis <> 3 and counterbalancing is needed,
change list.isiOrders/number of Main Blocks accordingly
false = isis are selected randomly without replacement per main block
true
runPractice True: a practice session is run before the main test session
false: no practice session is run; the script starts with the test session
true
Only Relevant If Practice Should Be Run
numberOfPracticeTrials Number of practice trials per practice block20
propNoGoTrialsPractice Proportion of Nogo trials in a practice block0.4
practiceIsiMS The isi (in ms) used for practice blocks2000
minAccPractice The minimum proportion correct that stops practice (after 20 trials)0.8
maxPracticeBlocks The maximum number of practice blocks run before the test is started3
Timing Parameters (Isis Can Be Set Under List.Isis)
stimDurationMS The duration of the letters in MS250
anticipatoryRespMS Response times lower than this are considered 'anticipatory'100
feedbackDurationMS The error feedback duration (in ms) during practice session1500
Stimuli Sizing
letterHeightPct Proportional height (to canvas) of the letters15%
Responsekeys
responseKey The response key (here: space)" "
responseKeyLabel The label used to describe the response key for instruction purposes"[space]"