User Manual: Inquisit Star Cancellation Task


										German version	
		
			German Translations provided by K. Borchert for Millisecond Software
																														


___________________________________________________________________________________________________________________	

												STAR CANCELLATION TASK
___________________________________________________________________________________________________________________	


Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 04-08-2025
last updated:   04-10-2025 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright ©  04-10-2025 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements Millisecond Software's computerized version of the Star Cancellation Test, 
a test/screening tool for unilateral visual neglect.

Data Files will contain the suggested measures (accuracy score and laterality index) as well as 
additional information about the 'response path' (search path) taken to find the star targets. 
Screenshots of the taken path/numbered targets can be taken (optional setting) for further analyses. 

DISCLAIMER
Millisecond Software advises caution in comparing results obtained with this computerized version 
of the Star Cancellation Test to results obtained with the original paper&pencil version.


****References*****
Wilson, B., Cockburn, J., Halligan, P. (1987). Development of a behavioral test of visuospatial neglect. 
Arch Phys Med Rehabil, 68, 98-101.

Maggie J. Bailey, M. Jane Riddoch & Peter Crome (2004) Test–retest stability
of three tests for unilateral visual neglect in patients with stroke: Star Cancellation, Line
Bisection, and the Baking Tray Task, Neuropsychological Rehabilitation, 14:4, 403-419 
DOI: 10.1080/09602010343000282


additional info on the test here:
https://strokengine.ca/en/assessments/star-cancellation-test/

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________

Participants are asked to select as many little stars as they can find on a page of 
56 small stars (2 are practice items), 52 large stars (considered 'foils' in this script), 
13 letters, and 10 short words. 
left side: 27 small stars
center: 2 small stars (practice)
right: 27 small stars
The center of the page is presented in the center of the screen.


By default, participants have 5 minutes to complete the task.

___________________________________________________________________________________________________________________	
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: 'starCancellationTest_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:					with the current subject id
group: 						with the current group id
session:					with the current session id

//Screen Setup:
stimuliPageWidthMM:			the width of the stimuli page in mm 
stimuliPageHeightMM:		the height of the stimuli page in mm

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. 
								
response:					the response of participant (the name of the response area)						
latency:					response latency (in ms); measured from: onset of trial
								
							
responseCounter: 			counts the number of responses made (excluding 'submit' response)

target: 					1 = the current response was a target (= small star)
							0 = the current response was not on a target response circle
							
foil: 						1 = the current response was a foil (= big star)
							0 = the current response was not on a foil response circle							
							
																				
targetCounter: 				counts the number of times a response was registered on a new target (Max: 54)
							(repeatedly selecting the same target does not increase the count)
							
foilCounter:				counts the number of times a response was registered on a new foil (Max: 52)
							(repeatedly selecting the same foil does not increase the count)

otherRespCounter:			counts the number of times a response was registered that was not made on one of 
							the target NOR foil response circles
							Note: some other responses might simply be a missed target response circle
							
							Note: under each target (small star) as well as foil (large star) 
							lies a response circle with a  parameters.responseCircleSize_Pct, 
							if response is registered outside of these responsecircles, 
							the script counts it as an 'other' response.
							In some cases, these 'other' responses may simply be inaccurate screen
							responding. Check screenshots of response path if in doubt.

//response Coordinates
pathX: 						a variable that stores the horizontal coordinates of the response in canvas percentages in sequential order
pathY: 						a variable that stores the vertical coordinates of the response in canvas percentages in sequential order
targets:					a variable that stores whether the responses were on a target (1) or elsewhere (0)in sequential order 
							Note: these values can be used in script starCancellationTest_path.iqjs to visualize the path taken


(2) Summary data file: 'starCancellationTest_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:
stimuliPageWidthMM:			the width of the stimuli page in mm 
stimuliPageHeightMM:		the height of the stimuli page in mm					


/////////general DVs:
executionTimeSec:			star search time in seconds


															
accuracyScore:				number of correctly identified little stars
							Range: 0-54
							A cutoff of < 44 is taken as indicative of Unilateral Spatial Neglect (USN)
																
lateralityIndex:			correctly identified LEFT targets relative to the total
							number of targets selected
							0 <= score <= 0.46 indicate USN in the left hemispace (= favor the right)
							0.54 <= score <= 1 indicate USN in the right hemispace (= favor the left)
								
								
////////////additional data
targetCounter: 				counts the number of times a response was registered on a new target (Max: 54)
							(repeatedly selecting the same target does not increase the count)
							
targetCounterLeft:			number of correctly selected LEFT targets (Max: 27)							
targetCounterRight:			number of correctly selected RIGHT targets (Max: 27)

foilCounter:				counts the number of times a response was registered on a new foil (aka big star) (Max: 52)
							(repeatedly selecting the same foil does not increase the count)


otherRespCounter:			counts the number of times a response was registered that was not made on one of 
							the target (small star) NOR foil (big star) response circles
							Note: some other responses might simply be a missed target response circle
							
							Note: under each target (small star) as well as foil (large star) 
							lies a response circle with a  parameters.responseCircleSize_Pct, 
							if response is registered outside of these responsecircles, 
							the script counts it as an 'other' response.
							In some cases, these 'other' responses may simply be inaccurate screen
							responding. Check screenshots of response path if in doubt.

//response Coordinates
pathX: 	a variable that stores the horizontal coordinates of the response in canvas percentages in sequential order
pathY: 	a variable that stores the vertical coordinates of the response in canvas percentages in sequential order
targets:	a variable that stores whether the responses were on a target (1) or elsewhere (0) in sequential order 
			Note: these values can be used in script starCancellationTest_path.iqjs to visualize the path taken
			
			
//////////////////////////			
Screenshot Data:			
//////////////////////////
If a screenshot was taken, the script marks all responses with a number (in order from first to last response)
If a target area (small star) was selected, the number turns green. Otherwise it's red.
If a target (small star) was selected twice, the second mark is also green and marked as a separate response, 
but the redundant selection is not counted as a new target selection.							
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

(1) Demo:
The computer runs a short animation of selecting the two center targets
By default instructions are provided visually and aurally.

(2) Test: Max allotted time = 5minutes (editable parameter)
- participants are presented the 'stimuli page' and a submit button
(the 'stimuli page' is presented with 95% of the width of the active canvas to allow for some
room to provide the submit button)
- participants use the mouse/finger to select the little stars scattered around the page
- When they are done, they click the submit button
- The test is over if the allotted time is up, or if participants submit their responses

(3) Path Feedback with screencapture (optional)
Once done with the test, the script can show participants the 'stimuli page' with all targets
circled in blue and with all responses made numbered in sequence (starting with '1').
Numbers in Green show correctly selected target stars, numbers in red show responses that were
made outside of the target stars response circles. The taken path is marked by a turquoise dotted line.
A screenshot of this feedback page (with subject ID) can be taken for further analyses
(optional)
___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________

The star cancellation page was downloaded here: https://strokengine.ca/en/assessments/star-cancellation-test/

and recreated to present on a canvas that roughly represents the proportions of US letter sized paper (4:3)
and presents the arrow in the middle of the screen.
Since the resolution of the page is not great, the page was further recreated by replacing the little stars,
big stars, letters and words with crisper versions (this also makes it easier to change the words for 
different language versions).

By default, this scripts uses this crisper version but also provides the 'less crisp version' if needed.
To check if the coded responsecircles that lie under the stimuli, still align with the stimuli,
set parameters.showResponseCirclePlacements to true. 

The 'stimuli page' run by the script is sized to be 95% of the width of the active canvas 
to allow for response buttons to be placed on the screen.

The script can be run with an absolutely sized stimuli page that approaches the actual size of the paper version
of the task (provided the screen is large enough). See section 'defaults' for more information.
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________

provided by Millisecond Software - can be edited in script starCancellationTest_instructions_inc.iqjs
The instructions are provided visually and aurally.
The soundfile were created with the help of the Google Translate Narrator and edited in Audacity.
___________________________________________________________________________________________________________________	
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:

//color parameter
/ canvasColor = lightGray			//Display color of the actively used portion of the screen (the 'canvas')
									//Note: if set to a color other than the screenColor, you can distinguish the active canvas
									//from the inactive portion of the screen
									
/ screenColor = lightGray 			//Color of the screen not used by the canvas ('inactive screen')
/ defaultTextColor = black			//Default color of text items


//CANVAS SIZING PARAMETERS
//sizing Parameters in RELATIVE measurements relative to CANVAS HEIGHT
//NOTE: to run the script with ABSOLUTE screen measurements, go to 'defaults' and set 
//canvasSize to absolute measurements

/ responseCircleSizePct = 4%		//Note: under each target (small star) lies a response circle with a 
									//parameters.responseCircleSize_Pct (4%) - proportional to canvas height
									//This size was selected to approximate the size of the small stars


//////Experimental Design Choices:

//timing parameters
/ testDurationInmin = 5						//the max. duration of the test (in minutes)

/ testDurationInInstructions = true			//true: the instructions mention the test timeout
											//false: no test timeout is mentioned during instructions
											
/ runAudioIntro = true						//true: the instruction audiofiles are run
											//false: the audio instructions are skipped; only the visual instructions are presented

//feedback
/ showPathFeedback = true					//*true*: at the end of the task, the script presents the stimulipage
											//with all target locations circled and draws the response path. 
											//Participants' response  locations are marked with numbers that refer to the 
											//order in which those locations were selected. Selected target locations
											//are marked by green numbers, other locations by red numbers.
											//*false*: no response feedback is provided

/ takePathScreenshot = true					//NOTE: this parameter is only relevant if parameters.showPathFeedback = true
											//*true*: script takes a screenshot of the feedback/response path page 
											//as additional data 
											//*false*: no screenshot is taken of the response path 
											//(Note: this project folder provides a stand-alone 'post-hoc' location 
											//drawing script. This additional script draws the response path 
											//but requires some copy-paste manual labor)
																						
//Debug Variable:
/ showResponseCirclePlacements = false		//true = the script runs a procedure to show test administrators
											//the response circles under the individual star target stimuli (Debug Mode)
											//false = the regular testing procedure is run
											//Note: this setting is useful if you use a different starCancellationTest image
											//than the one that comes with this script but still need to see if the
											//response circles still align with the stimuli