Return to the Sustained Attention to Response Task page
						
								SUSTAINED ATTENTION TO RESPONSE TASK (SART)
								   (with optional "Mindwandering Probes")
SCRIPT INFO

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

Copyright © 09-20-2016 Millisecond Software


BACKGROUND INFO

											*Purpose*
This script implements the Sustained Attention to Response Task (SART) as described in:

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.

The SART is a type of Go/NoGo task in which the nogo stimulus is presented very infrequently.


!NOTE: This script includes an optional "Mindwandering Probe" addition for the SART.iqx.
The code is provided in helper script "SART_MindWanderingProbeAddition.iqx". 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*
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.


DATA FILE INFORMATION: 
The default data stored in the data files are:

(1) Raw data file: 'SART.iqdat' (a separate file for each participant)

build:							Inquisit build
computer.platform:				the platform the script was run on
date, time, subject, group:		date and time script was run with the current subject/groupnumber 
blockcode, blocknum:			the name and number of the current block
trialcode, trialnum: 			the name and number of the currently recorded trial
									(Note: not all trials that are run might record data; by default data is collected unless /recorddata = false is set for a particular trial/block) 
/trialcount:					counts all test trials
/digitpresentationtime:			digit duration in ms (default: 250ms)
/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 leaves values.RT empty)
latency: 						the trial latency in ms (if no response, trial latency shows the trialduration)
/latencytype:					0 = no response given (suppression); 1 = anticipatory latency (< parameters.anticipatoryresponsetime);
								2 = ambiguous latency; 3 = valid latency  (>= parameters.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 < parameters.anticipatoryresponsetime
								"Go Ambiguous": ambiguous response for Go trials
								"Go Success": valid response for Go trials with latencies >= parameters.validresponsetime
/count_anticipatory:			counts the number of times a Go-latency was faster than parameters.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)
/count_NoGo:					counts NoGo trials (digit 3)
/count_Go:						counts Go trials (digits other than 3)
/count_validGo:					counts Go trials with a correct response and latencies >= parameters.validresponsetime
/countprobes:					counts the number of probes run

radiobuttons.difficulty.response:
radiobuttons.interest.response:			responses to the posttask survey questions

(2) Summary data file: 'summary.iqdat' (a separate file for each participant)

script.startdate:						date script was run
script.starttime:						time script was started
script.subjectid:						subject id number
script.groupid:							group id number
script.elapsedtime:						time it took to run script (in ms)
computer.platform:						the platform the script was run on
/completed:								0 = script was not completed (prematurely aborted); 1 = script was completed (all conditions run)
radiobuttons.difficulty.response:
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
/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

/nr_commissions:						absolute number of commission errors in NoGo trials (=NoGo failures; also reported as SART errors)				
/percent_commissions:					percentage of commission errors in NoGo trials (=NoGo failures; also reported as SART errors)
/z_commissions:							z-value of number of Commission errors based on Carriere et al (2010), table 2 (SART errors), p. 572
/percentile_commissions:				percentile of Commission z-value based on Carriere et al (2010), table 2 (SART errors), p. 572
/nr_omissions:							absolute number of omission errors in Go trials (=omission of response)
/percent_omissions:						percentage of incorrect suppressions in Go trials (=omission of response)
/z_omissions:							z-value of number Omission errors based on Carriere et al (2010), table 2, p. 572
/percentile_Omissions:					percentile of Omission z-value based on Carriere et al (2010), table 2, p. 572
/count_anticipatory:					counts the number of times a Go-latency was faster than parameters.anticipatoryresponsetime
/z_AnticipatoryResponses:				z-value of number Anticipatory Responses based on Carriere et al (2010), table 2, p. 572
/percentile_AnticipatoryResponses:		percentile of Anticipatory Responses z-value based on Carriere et al (2010), table 2, p. 572
/meanRT_go:								mean latency (in ms) of valid and correct Go trials (latencies >= parameters.validresponsetime)
/stdRT_go:								estimated standard deviation (STD) of valid and correct Go trials
/z_goRT:								z-value of mean go latency based on Carriere et al (2010), table 2, p. 572
/percentile_goRT:						percentile of goRT z-value based on Carriere et al (2010), table 2, p. 572
/CV_go:									coefficient of variablity (CV = STD/Mean) => a measure of variability independent of mean differences
/z_CV:									z-value of CV based on Carriere et al (2010), table 2, p. 572
/percentile_CV:							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 values.latencytype

/meanRT_GObeforesuccessNOGO:			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)
/meanRT_GObeforefailedNOGO:				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 SART_Norms.iqx 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.....

=> 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 and can be customized 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:

/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 scancode of the response key (here: 57 -> Spacebar)
									Note: find scancodes under Tools -> Keyboard Scancodes	
/responsekey_label:				Label of 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:
/run_mindwanderingprobe:		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)

Copyright © Millisecond Software. All rights reserved.
Contact | Terms of Service | Security Statement | Employment