User Manual: Inquisit PASAT-C

												
___________________________________________________________________________________________________________________	

							*Modified Computerized Paced Auditory Serial Addition Test (PASAT-C)*
___________________________________________________________________________________________________________________

original PASAT.iqx Coder: Jeffrey Q. Ouyang
edited for PASAT-C by: Katja Borchert (katjab@millisecond.com) for Millisecond Software
last updated:  10-25-2022 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 10-25-2022 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements the PASAT-C, a modified computerized version of the Paced Auditory Serial Addition Test.
The PASAT-C is used as a Distress Tolerance Test.

Main Differences to PASAT.iqx (by Millisecond Software):
- digits are presented visually
- the total score is onscreen the entire time
- Level 3 presents an 'escape' button
- aversive errorsound feedback
- levels are time-based not trialnumber based (difference to earlier versions of this script)

The implemented PASAT-C procedure is based on:
Lejuez, C. W.; Kahler, Christopher W. & Brown, Richard A. (2003). A modified computer version of the Paced Auditory 
Serial Addition Task (PASAT) as a laboratory-based stressor. The Behavior Therapist, Vol 26(4), 290-293. 

The original PASAT procedure by:
Gronwall, D. (1977). Paced auditory serial-addition task: a measure of recovery from concussion. 
Perceptual and Motor Skills, 44, 367–373.

___________________________________________________________________________________________________________________
TASK DESCRIPTION
___________________________________________________________________________________________________________________	
Participants are presented one digit (here: 1-9) at a time. After each new digit is presented, participants are 
asked to click a response box that corresponds to the running total of the last 2 presented digits (response boxes
are presented in a circle). Participants work through 3 levels. Each level increases the speed of digit presentation.
The last level (3) provides an escape button from the task.

By design in this script: once participants start with level 1 the pacing is automatic and not under
participants' control (with the exception of the provided quitbutton during level3).

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
The duration of the different levels can be edited under section Editable Parameters

The default set up takes approx. 20 minutes (earlier if Level 3 is terminated by pressing the QUIT button)
Level1: default: 180000ms -> 3min
Level2: default: 300000ms -> 5min
Level3: default: 600000ms -> max. 10min
___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________	
The default data stored in the data files are:

(1) Raw data file: 'pasatc_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

//Screen Setup:
(parameter) runAbsoluteSizes:		true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm)
									false (0) = should use proportionally sized canvas (uses width = 4/3*screenHeight)
								
canvasAdjustments:					NA: not applicable => parameters- runAbsoluteSize was set to 'false'
									0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough
									1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and 
									adjustments had to be made

activeCanvasHeight_inmm:			the width of the active canvas in mm 
activeCanvasWidth_inmm:				the height of the active canvas in mm 
display.canvasHeight:				the height of the active canvas in pixels
display.canvasWidth:				the width of the active canvas in pixels

px_per_mm:							the conversion factor to convert pixel data into mm-results for the current monitor
									(Note: the higher resolution of the current monitor 
									the more pixels cover the same absolute screen distance)
									This factor is needed if you want to convert pixel data into absolute mm data or the other way around



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.
																				
currentLevel:					the currently tested level 
currentDigit:					the currently presented digit
digitpresentationtime:			the digit presentation time (in ms)
currentSum:						the current correct sum
response:						the participant's response
correct:						the correctness of the response (1 = correct; 0 = incorrect)
latency: 						the response latency (in ms)

totalcorrect:					the sum of all correct responses across levels (excluding practice)
level1Correct: 					number of correct responses in level 1
level2Correct: 					number of correct responses in level 2
level3Correct: 					number of correct responses in level 3

quit:							0 = participant did NOT quit level 3; 
								1 = participant did quit level 3
									
quittime:						stores the measured duration of block 3 at time of "quitbutton" press

countlevel1:					the number of level1 trials run
countlevel2:					the number of level2 trials run
countlevel3:					the number of level3 trials run
	

(2) Summary data file: 'pasatc_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)
								
//Screen Setup:
(parameter) runAbsoluteSizes:		true (1) = should run absolutely sized canvas (see parameters- canvasHeight_inmm)
									false (0) = should use proportionally sized canvas (uses width = 4/3*screenHeight)
								
canvasAdjustments:					NA: not applicable => parameters- runAbsoluteSize was set to 'false'
									0: parameters- runAbsoluteSize was set to 'true' and screen size was large enough
									1: parameters- runAbsoluteSize was set to 'true' BUT screen size was too small and 
									adjustments had to be made

activeCanvasHeight_inmm:			the width of the active canvas in mm 
activeCanvasWidth_inmm:				the height of the active canvas in mm 
display.canvasHeight:				the height of the active canvas in pixels
display.canvasWidth:				the width of the active canvas in pixels

px_per_mm:							the conversion factor to convert pixel data into mm-results for the current monitor
									(Note: the higher resolution of the current monitor 
									the more pixels cover the same absolute screen distance)
									This factor is needed if you want to convert pixel data into absolute mm data or the other way around
								
									
totalcorrect:					the sum of all correct responses across levels (excluding practice)
level1Correct: 					number of correct responses in level 1
level2Correct: 					number of correct responses in level 2
level3Correct: 					number of correct responses in level 3

quit:							0 = participant did NOT quit level 3; 
								1 = participant did quit level 3
									
quittime:						stores the measured duration of block 3 (in ms) at time of "quitbutton" press

level1Duration_actual:			time (in ms) the script actually spent on level1 
level2Duration_actual:			time (in ms) the script actually spent on level2 
level3Duration_actual:			time (in ms) the script actually spent on level3 

countlevel1:					the number of level1 trials run
countlevel2:					the number of level2 trials run
countlevel3:					the number of level3 trials run


___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

digits sampled in this script: 1-9 (response boxes 1-18); digits are randomly sampled for each trial

////Practice:
A practice level is included. Number of practice trials as well as speed of digit presentation is editable.
Error Feedback is always provided

////Test: 3 levels tested that present the digits at increasing speed 
Error Feedback is always provided

●Level 1: by default the digits are presented once every 3s (editable parameter) for 3 min (editable parameter)

●Level 2: by default the digits are presented once every 2s (editable parameter) for 5 min (editable parameter)
Note: by default Level1 automatically transitions into Level2 WITHOUT warning (Lejuez et al, 2003).
However, you can easily separate the blocks via parameter settings. Go to section Editable Parameters for
more information.

●Level 3: by default digits are presented once every 1.5s (editable parameter) for 10 min (editable parameter)
Level 3 provides an escape-button (data file stores how long Level 3 was run until escape button was pressed).
Note: by design, level2 does NOT transition automatically into level3.


////Note on Level Instructions:
This script runs all level instructions with an automatic timeout (not self-paced).
See section Editable Parameters for more info. 

Trial Sequence:
1) trial.first: presents the first digit (does not take responses) for level appropriate digit presentation time
2) level-trial: presents digit for a maximum of the level digit presentation time. If a response box is
selected before time is up, the trial is cut short and trial.isi is called for the remaining digit presentation time
3) trial.isi: interstimulusinterval -> highlights the selected box and updates the total (for
practice trials: presents feedback) for the remaining digit presentation time (then calls appropriate level-trial)
If previous response is incorrect, trial plays a short aversive sound.


////Note on Level Timeouts
Timeouts for the levels are set under block.level1/block.level2/block.level3.
Block.combinedlevel1andlevel2 does NOT have the timeout on the block level as
the transition would not seem automatic if the block suddenly stops.
In that case, the script checks after each level1 trial has completed, if it's
time to run level2 trials.

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________	
aversive sound feedback was generated in Audacity (short noise burst for 100ms)
It can be exchanged under section EDITABLE CODE -> Editable Stimuli

//////SIZING: PROPORTIONAL vs. ABSOLUTE///////
!!!By default, this script runs with *PROPORTIONAL* sizings therefore the size of the response display
depends on the size of the active canvas (the largest 4:3 screen size the script can find).

Because a large display might interfere with selecting the appropriate boxes in time,
this script provides the functionality to easily switch to *ABSOLUTE* stimulus sizing.
With absolute stimulus sizing, the sizing of the stimuli will be the same across monitors.
The script will test at the start of each script run if the current monitor can comply 
with the selected sizing restrictions of the active canvas (= portion of the script used to present the 
task). If not, the script switches automatically to run the task with proportional sizing instead 
and makes a note into the data file of the screen sizes used to display the task. 

For example, the suggested absoluted sizes of the active canvas in this script are optimized 
for ipad sized touchscreens.  If the script runs on smaller smartphone devices, the script would 
automatically switch to  proportional sizing and look for the largest 4:3 active canvas it can find.

If you decide to run the script with absolute sizing instead of proportional sizing,
you can decide to display the screencolor of the inactive screen part (the 'screencolor')
in a different color than the active canvas. This might help to 'anchor' perception on
large monitors to the smaller active canvas.

Check out section Editable Parameters for more info.

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
instructions are not original to Lejuez et al (2003) and can be edited under section 
Editable Instructions/INSTRUCTIONS.

Most instructions are provided by Millisecond Software as htm pages and can be edited by changing
the provided html files.
To edit html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).

Note: by design, once the test round begins, the pacing of the task is not under
participant's control anymore (automatic transitions from level to level)
__________________________________________________________________________________________________________________	
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: