User Manual: Inquisit Sustained Attention to Response Task


___________________________________________________________________________________________________________________	

								*SUSTAINED ATTENTION TO RESPONSE TASK (SART)*
								(with optional "Mindwandering Probes")
								(German instructions)
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 10-15-2013
last updated:  09-30-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 09-30-2024 Millisecond Software

German translations provided by K. Borchert for Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements the Sustained Attention to Response Task (SART), a go/nogo task with
infrequent nogo signal to measure attention.

The implemented procedure is based on:

Robertson, I. H., Manly, T., Andrade, J., Baddeley, B. T., & Yiend, J. (1997). ‘Oops!’: Performance correlates of 
everyday attentional failures in traumatic brain injured and normal subjects. Neuropsychologia, 35(6), 747–758.

and 

Cheyne, J.A., Solman, G.J.F., Carriere, J.S.A., & Smilek, D. (2009). Anatomy of an error: 
A bidirectional state model of task engagement/disengagement and attention-related errors. Cognition, 111, 98–113.


!NOTE: This script includes an optional "Mindwandering Probe" addition for the SART.iqjs.
The code is provided in helper script "SART_MindWanderingProbeAddition.iqjs". More info about
the mindwandering probe in the additional script.
To run the probe addition, go to section Editable Parameters and set 
parameters.run_mindwanderingprobe = true (default is false)

___________________________________________________________________________________________________________________
TASK DESCRIPTION
___________________________________________________________________________________________________________________	
Participants are presented with a single digit 1-9 in the middle of the screen in varying fontsizes.
The digit disappears after a short while and is replaced with a mask (circle with an X).
Participants are asked to press the SPACEBAR if any digit other than 3 is presented and to withhold the response
if digit 3 presented.

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 6 minutes to complete

___________________________________________________________________________________________________________________	
DATA OUTPUT DICTIONARY
___________________________________________________________________________________________________________________	
The fields in the data files are:

(1) Raw data file: 'sart.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.	
										
trialCount:							counts all test trials
(parameter) digitpresentationtime:	digit duration in ms (default: 250ms)
(parameter) maskpresentationtime:	mask duration in ms (default: 900ms)

trialType:							"Go" (digit !=3); "NoGo" (digit == 3)
digit:								contains the currently selected digit
fontSize:							contains the currently (randomly) selected fontsize

response:							the participant's response
									SART trials: 0 for no response or 57 for Spacebar
									Probe trials (if run): the selected anchor digit
										
correct:							the correctness of the response (1 = correct; 0 = error)

rt:									the latency of the response in ms: 
									trial latency unless no response was given; 
									no response = empty
										
latency: 							the trial latency in ms (if no response, trial latency shows the trialduration)

latencyType:						0 = no response given (suppression); 
									1 = anticipatory latency (< (parameter) anticipatoryresponsetime);
									2 = ambiguous latency; 
									3 = valid latency  (>= (parameter) validresponsetime)
									Note: independent of Go-NoGo trialtype
									
responseType:						"NoGo Success": correctly suppressed response to NoGo trial (digit 3)
									"Omission": incorrectly suppressed response to a Go trial (digit other than 3)
									"NoGo Failure": any response to a NoGo trial
									"Go Anticipatory": anticipatory response for Go trials with latencies < (parameter) anticipatoryresponsetime
									"Go Ambiguous": ambiguous response for Go trials
									"Go Success": valid response for Go trials with latencies >= (parameter) validresponsetime
									
countAnticipatory:					counts the number of times a Go-latency was faster than (parameter) anticipatoryresponsetime
correctSuppressions:				counts number of correct suppressions (-> no response to digit 3)
incorrectSuppressions:				counts number of incorrect suppressions (-> no response to digit other than 3)
countNoGo:							counts NoGo trials (digit 3)
countGo:							counts Go trials (digits other than 3)
countValidgo:						counts Go trials with a correct response and latencies >= (parameter) validresponsetime
countProbes:						counts the number of probes run



(2) Summary data file: 'sart_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)
																
radioButtons.difficulty.response:	response to the difficulty question
radioButtons.interest.response:		responses to the posttask survey questions (if run)

dropdown.age.response:				response to the age question at the end of the task (if run)
ageGroup:							the assigned age group (1-6) based on age response. (used for reporting z-scores and percentiles)
									!Note: age groups correspond to the age cohorts used by Carriere et al (2010), table 2, p. 572

nrCommissions:						absolute number of commission errors in NoGo trials (=NoGo failures; also reported as sart errors)				
percentCommissions:					percentage of commission errors in NoGo trials (=NoGo failures; also reported as sart errors)
percentNoGoSuccess:					percentage of Nogo trials with correct responses (= correct rejections)
zcommission:						z-value of number of Commission errors based on Carriere et al (2010), table 2 (sart errors), p. 572
percentileCommission:				percentile of Commission z-value based on Carriere et al (2010), table 2 (sart errors), p. 572

nrOmissions:						absolute number of omission errors in Go trials (=omission of response)
percentOmissions:					percentage of incorrect suppressions in Go trials (=omission of response)
percentGoSuccess:					percentage of correct responses in Go trials (= hits)
zOmission:							z-value of number Omission errors based on Carriere et al (2010), table 2, p. 572
percentileOmission:					percentile of Omission z-value based on Carriere et al (2010), table 2, p. 572

///////////////////////////
signal detection measures
///////////////////////////

zHitRate: 			z-score of the hitRate
zFaRate:			z-score of the falseAlarm/commission rate 
					
Note: *Adjustments to z-scores as recommended by:
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)										
=> 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  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 (go stims) is present (liberal response style);
			may favor faster responding in speed-accuracy trade-off response paradigms
			positive: favoring caution (conservative response style)


/////////////////////////////////
Anticipatory Responses
/////////////////////////////////

countAnticipatory:					counts the number of times a Go-latency was faster than (parameter) anticipatoryresponsetime
zAnticipatoryResponses:				z-value of number Anticipatory Responses based on Carriere et al (2010), table 2, p. 572
percentileAnticipatoryResponses:	percentile of Anticipatory Responses z-value based on Carriere et al (2010), table 2, p. 572


/////////////////////////////////
Response Times
/////////////////////////////////

meanRTGo:							mean latency (in ms) of valid and correct Go trials (latencies >= (parameter) validresponsetime)
stdRTGo:							estimated standard deviation (STD) of valid and correct Go trials
zgoRT:								z-value of mean go latency based on Carriere et al (2010), table 2, p. 572
percentileGoRT:						percentile of goRT z-value based on Carriere et al (2010), table 2, p. 572

cvGo:								coefficient of variablity (CV = STD/Mean) => a measure of variability independent of mean differences
zCV:								z-value of CV based on Carriere et al (2010), table 2, p. 572
percentileCV:						percentile of CV z-value based on Carriere et al (2010), table 2, p. 572

Mean RTs are calculated for the correct consecutive (not interrupted either by a NoGo or by an omission trial) last four Go- trials (digit other than 3) preceding successful NoGo trial
Mean RTs are calculated for the correct consecutive (not interrupted either by a NoGo or by an omission trial) last four Go- trials (digit other than 3)  preceding preceding failed NoGo trial
!!!!Note: in this script any 4 correct Go trials are counted irrespective of latencytype

meanRTGoBeforeSuccessNoGo:		mean latency (in ms) of consecutive 4 correct trials before correct suppression of response to digit 3
								(=> a measure of speed before successful NoGo trials)
													
meanRTGoBeforeFailedNoGo:		mean latency (in ms) of consecutive 4 correct trials before incorrect response of response to digit 3
								(=> a measure of speed before failed NoGo trials)
											
norms:
z-value and percentile calculations use data published by:

	Carriere, J.S.A., Cheyne, J.A., Solman, G.J.F. & Smilek, D. (2010). 
	Age Trends for Failures of Sustained Attention. Psychology and Aging, 25, 569–574.
	
Carriere et al (2010) grouped data by 6 age groups (no separate data for gender norms provided)	
Check helper script SARTNorms.iqjs for more details.
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	
*9 digits, each of them presented 25 times = 225 trials
*in 5 fontsizes, each of them randomly selected 45 times (distribution across digits is randomly determined)
*in this script the digit order is semi-random, predetermined 
no special constraints were used to determine the order (only constraint: each digit is presented 25 times)
* List properties can be edited to change the order from a pre-fixed one to a random one. Further instructions under
(see section Editable Lists -> list.digitsequence for more information)

Trial Sequence:
digit (250ms) -> mask (900ms) -> <digit SOA: 1150ms> -> digit.....

=> Response latencies are measured from onset of digit and can therefore catch anticipatory responses 
	(latencies faster than parameters.anticipatoryresponsetime) (see discussion in Cheyne et al, 2009)

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________	
- digits 1-9 presented in fontstyle "Symbol" (if available on computer) 
- in 5 fontsizes
	=> fontsizes in this script are based on screen percentages and can be customized under 
	section Editable Lists -> list.fontsizes
- a picture mask (circle with an X) section Editable Stimuli -> picture.mask
- stimuli/mask presented in white on a black background

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
Instructions are not original to the task. They are provided by Millisecond Software
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).
	
___________________________________________________________________________________________________________________	
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:

/digitPresentationTime:				digit duration in ms (default: 250ms)
/maskPresentationTime:				mask duration in ms (default: 900ms)
/iti:								intertrial interval in ms (default: 0 => digit SOA is therefore 1150ms)

/responseKey:						the response key (here: " " -> Spacebar)

	
/maskHeight:						the height/size of the mask (default: 20%)
									Note: Robertson et al (1997): mask size on their screen ~29mm
									
/anticipatoryResponseTime:			by default, latencies (in ms) are measured from digit onset
									latencies faster than anticipatoryresponsetime are interpreted as anticipatory
									as opposed to ambiguous/true responses to the digit (default: 100ms)
									(-> Cheyne et al, 2009)
								
/validResponseTime:					latencies (in ms) that are at or above validresponsetime are considered true 
									responses to the digits (default: 200ms)
									(-> Cheyne et al, 2009)

Minderwandering Probe Addition:
/runMindWanderingProbe:			true: script runs the mindwandering probe addition
									false: script does not run the mindwandering probe addition  (default)
								
/postProbeDuration:					intertrial pause between probe and re-start of SART (in ms)



___________________________________________________________________________________________________________________	

							*SART MIND WANDERING PROBE ADDITION *
						  helper script (does not run on its own)
						  German Version
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
last updated:  03-29-2023 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-29-2023 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
The "Mindwandering Probe" addition presents a surveyPage that probes whether participant's attention is wandering 
after 4% of randomly selected SART trials throughout the task as well as a post SART survey with
2 radiobutton questions that inquire about perceived difficulty and interest of the SART task.

* If the default number of SART trials in SART.iqjs (225) is changed, go to section Editable Lists 
and change list.mindwanderingprobes accordingly.
* By default, the probes are called randomly. To control the sequence of probes, go go
go to section Editable Lists and follow further instructions.

The Mindwandering Probe addition is modelled after:
Jackson, J.D. & Balota, D.A. (2012). Mind-wandering in Younger and Older Adults: Converging
Evidence from the Sustained Attention to Response Task and Reading for Comprehension.
Psychol Aging, 27(1): 106–119 (Exp.2).




___________________________________________________________________________________________________________________	

									*SART Helper Script:*
				Calculating z-scores and percentile for SART performance measures
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 08-12-2016
last updated:  03-29-2023 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-29-2023 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This helper script for SART.iqjs implements code to calculate z-scores and percentiles for SART performance measures.
The data used by this script are published in:

Carriere, J.S.A., Cheyne, J.A., Solman, G.J.F. & Smilek, D. (2010). 
Age Trends for Failures of Sustained Attention. Psychology and Aging, 25, 569–574.
(table 2, p. 572)

This script does not run on its own but is included in SART.iqjs
___________________________________________________________________________________________________________________
NORMS	
___________________________________________________________________________________________________________________
Carriere et al (2010) report means and standard deviations by 6 age groups (ages ranged
from 14 to 77 years, overall N=638),for the following SART performance measures:
- SART errors (commission errors)
- Omission errors
- number of Anticipatory Responses
- mean go reaction time
- mean reaction time coefficient of variation 

Carriere et al (2010) as well as Chan (2001) report no significant gender differences.