___________________________________________________________________________________________________________________ Apples Test (German instructions) ___________________________________________________________________________________________________________________ Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 02-01-2023 last updated: 04-26-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 04-26-2024 Millisecond Software German translation provided by K. Borchert for Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements Millisecond Software's computerized version of the Apples test (Bickerton et al, 2011), a test for visual neglect and search strategy. Mancuso et al (2015) discuss four measures (ExecutionTime in seconds, Accuracy Score, left-right Asymmetry Score for targets, and Commission Asymmetry Score for left-open vs. right-open apples) that depend on age and level of schooling to varying degrees. This script provides the functionality to present the 'apples page' in roughly the same absolute size as the original paper&pencil version of the Apples Test IF the screen is large enough. If the screen is not large enough, the script attempts to find the biggest 4:3 area of the screen to present the 'stimuli page' and notes in the data file the dimensions of the presented 'stimuli page'. Default settings default back to proportional sizing. Check section Editable Parameters for more info on this topic. Data Files will contain the suggested measures by Bickerton et al (2011)/Mancuso et al (2015) as well as additional information about the 'response path' (search path) taken to find the Apple 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 Apples Test to results obtained with the original paper&pencil version. ****References***** Bickerton WL, Samson D et al (2011) Separating forms of neglect using the Apples test: validation and functional prediction in chronic and acute stroke. Neuropsychology 25(5):567 https://doi.org/10.1037/a0023501 Mancuso, M., Rosadoni, S., Capitani, D., Bickerton, W. L., Humphreys, G. W., De Tanti, A., Zampolini, M., Galardi, G., Caputo, M., De Pellegrin, S., Angelini, A., Bartalini, B., Bartolo, M., Carboncini, M. C., Gemignani, P., Spaccavento, S., Cantagallo, A., Zoccolotti, P., & Antonucci, G. (2015). Italian standardization of the Apples Cancellation Test. Neurological Sciences, 36(7), 1233+1240. https://doi.org/10.1007/s10072-015-2088-2 ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ Participants are asked to select as many full apples as they can find on a page of 150 items that displays 50 full apples, 50 apples that have a piece missing on the left side, and 50 apples that have a piece missing on the right side. By default, participants have 5 minutes to complete the task. ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 7 minutes to complete ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'applestest_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 age: the age (in years) of the participant (if empty, no demographic information was collected) education: number of years in formal schooling (max: 16) (if empty, no demographic information was collected) //Screen Setup: (parameter) runAbsoluteSizes: true (1) = should run absolutely sized canvas (see parameters- canvasHeightMM) 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 activeCanvasHeightMM: the width of the active canvas in mm activeCanvasWidthMM: 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 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 practiceBlockCounter: number of times the practice was run practiceFeedback: the practice feedback at the end of the practice block 0 = all correct 1 = try again 2 = thank you (premature termination of script; practice was unsuccessful twice in a row) responseCounter: counts the number of responses (excluding 'submit' response) target: 1 = the current response was a target (full apple) 0 = the current response was not on a target response circle foil: 1 = the current response was a foil (apple with missing piece) 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: 50) (repeatedly selecting the same target does not increase the count) targetCounterC1r1: counts the number of times a response was registered on a new target in column1,row1 (Max: 5) targetCounterC1r2: counts the number of times a response was registered on a new target in column1,row2 (Max: 5) targetCounterC2r1: counts the number of times a response was registered on a new target in column2,row1 (Max: 5) targetCounterC2r2: counts the number of times a response was registered on a new target in column2,row2 (Max: 5) targetCounterC3r1: counts the number of times a response was registered on a new target in column3,row1 (Max: 5) targetCounterC3r2: counts the number of times a response was registered on a new target in column3,row2 (Max: 5) targetCounterC4r1: counts the number of times a response was registered on a new target in column4,row1 (Max: 5) targetCounterC4r2: counts the number of times a response was registered on a new target in column4,row2 (Max: 5) targetCounterC5r1: counts the number of times a response was registered on a new target in column5,row1 (Max: 5) targetCounterC5r2: counts the number of times a response was registered on a new target in column5,row2 (Max: 5) foilCounter: counts the number of times a response was registered on a new foil (Max: 100) (repeatedly selecting the same foil does not increase the count) foilCounterC1L: counts the number of times a response was registered on a new LEFT-open foil in column1 (10) foilCounterC1R: counts the number of times a response was registered on a new RIGHT-open foil in column1 (10) foilCounterC2L: counts the number of times a response was registered on a new LEFT-open foil in column2 (10) foilCounterC2R: counts the number of times a response was registered on a new RIGHT-open foil in column2 (10) foilCounterC3L: counts the number of times a response was registered on a new LEFT-open foil in column3 (10) foilCounterC3R: counts the number of times a response was registered on a new RIGHT-open foil in column3 (10) foilCounterC4L: counts the number of times a response was registered on a new LEFT-open foil in column4 (10) foilCounterC4R: counts the number of times a response was registered on a new RIGHT-open foil in column4 (10) foilCounterC5L: counts the number of times a response was registered on a new LEFT-open foil in column5 (10) foilCounterC5R: counts the number of times a response was registered on a new RIGHT-open foil in column5 (10) 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 (apple) as well as foil 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 applestest_path.iqjs to visualize the path taken (2) Summary data file: 'applestest_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) age: the age (in years) of the participant (if empty, no demographic information was collected) education: number of years in formal schooling (max: 16) (if empty, no demographic information was collected) //Screen Setup: (parameter) runAbsoluteSizes: true (1) = should run absolutely sized canvas (see parameters- canvasHeightMM) 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 activeCanvasHeightMM: the width of the active canvas in mm activeCanvasWidthMM: 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 stimuliPageWidthMM: the width of the stimuli page in mm stimuliPageHeightMM: the height of the stimuli page in mm /////////general DVs: //suggested by Mancuso M et al (2015) executionTimeSec: apple search time in seconds expectedExecutionTimeSec: the execution time (in sec) that can be expected given the participant's age and education (Note: Inquisit uses 16 years of education as the maximum) calculated using the formula suggested by Mancuso et al (2015) NA: no demographic information available (values could not be generated) maximumExecutionTimeSec: the cut-off execution time (in sec) if participant takes longer than this, the performance can be coded as 'pathological' according to Mancuso et al (2015) NA: no demographic information available (values could not be generated) executionTimeFlag: 1 = the ExecutionTimeSec surpassed the cutoff (maximumExecutationTimeSec) 0 = the ExecutionTimeSec did NOT surpass the cutoff NA: no demographic information available (values could not be generated) accuracyScore: number of correctly identified apples ('Measure of Selective Attention') Range: 0-50 Mancuso et al (2015): a performance showing 6 or more (left and right) omission errors should be considered pathological. => Accuracy score <= 44 should be considered pathological asymmetryScoreHits: score for egocentric neglect calculated as the differences in number of apples (targets) found on the right (c5r2,c5r2,c4r1,c4r2) and the number of apples found on the left (c1r1,c1r2,c2r1,c2r2) range: -20 to +20 Positive Value: more values were found on the right (left-sided neglect) Negative Value: more values were found on the left (right-sided neglect) Mancuso et al (2015): if the difference between left and right total omissions is equal or above 3, the performance should be considered pathological. leftOmissions: number of apples NOT selected on the left side (c1r1,c1r2,c2r1,c2r2); Range: 0-20 rightOmissions: number of apples NOT selected on the left side (c5r1,c5r2,c4r1,c4r2); Range: 0-20 asymmetryScoreCommissions: score for allocentric neglect calculated as the number of commission errors on left-open apples - number of commission errors on right-open apples Range: 0-50 Positive values indicate left neglect (more left-open than right-open commission errors) => if more left-open apples were 'confused' with targets than right-open ones, participant had a harder time distinguishing left-open apples from targers ('neglected' to see the left missing piece) Negative values indicate right neglect (more right-open than left-open commission errors) => if more right-open apples were 'confused' with targets than left-open ones, participant had a harder time distinguishing right-open apples from targers ('neglected' to see the right missing piece) Mancuso et al (2015): the difference btw. apples crossed out with a left opening minus the number of apples crossed out with a right opening >= 2 should be considered as pathological. ////////////additional data targetCounter: counts the number of times a response was registered on a new target (Max: 50) (repeatedly selecting the same target does not increase the count) targetCounterC1r1: counts the number of times a response was registered on a new target in column1,row1 (Max: 5) targetCounterC1r2: counts the number of times a response was registered on a new target in column1,row2 (Max: 5) targetCounterC2r1: counts the number of times a response was registered on a new target in column2,row1 (Max: 5) targetCounterC2r2: counts the number of times a response was registered on a new target in column2,row2 (Max: 5) targetCounterC3r1: counts the number of times a response was registered on a new target in column3,row1 (Max: 5) targetCounterC3r2: counts the number of times a response was registered on a new target in column3,row2 (Max: 5) targetCounterC4r1: counts the number of times a response was registered on a new target in column4,row1 (Max: 5) targetCounterC4r2: counts the number of times a response was registered on a new target in column4,row2 (Max: 5) targetCounterC5r1: counts the number of times a response was registered on a new target in column5,row1 (Max: 5) targetCounterC5r2: counts the number of times a response was registered on a new target in column5,row2 (Max: 5) foilCounter: counts the number of times a response was registered on a new foil (Max: 100) (repeatedly selecting the same foil does not increase the count) foilCounterC1L: counts the number of times a response was registered on a new LEFT-open foil in column1 (10) foilCounterC1R: counts the number of times a response was registered on a new RIGHT-open foil in column1 (10) foilCounterC2L: counts the number of times a response was registered on a new LEFT-open foil in column2 (10) foilCounterC2R: counts the number of times a response was registered on a new RIGHT-open foil in column2 (10) foilCounterC3L: counts the number of times a response was registered on a new LEFT-open foil in column3 (10) foilCounterC3R: counts the number of times a response was registered on a new RIGHT-open foil in column3 (10) foilCounterC4L: counts the number of times a response was registered on a new LEFT-open foil in column4 (10) foilCounterC4R: counts the number of times a response was registered on a new RIGHT-open foil in column4 (10) foilCounterC5L: counts the number of times a response was registered on a new LEFT-open foil in column5 (10) foilCounterC5R: counts the number of times a response was registered on a new RIGHT-open foil in column5 (10) 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 (apple) as well as foil 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 applestest_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 (full apple) was selected, the number turns green. Otherwise it's red. If a target (full apple) 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) Demographic Information (Optional, see section Editable Parameters) - script collects age and education information about the participant (Note: Since Mancuso et al (2015) reported that age and education can have an impact on participants' execution time, this information can be collected when running the script) (2) Practice: Participants practice to cross out the full apples while leaving the open apples alone. 7 example apples are provided on the vertical center line. Practice can be repeated once. If practice is failed twice in a row, the script terminates prematurely. (3) 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 apples 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 - the apples page contains 150 apple images total and is divided into 5 columns with 2 rows each. Each column contains the same number of foils and targets. (4) Path Feedback with screencapture (optional) Once done with the test, the script can show participants the 'stimuli page' with all apples circled in blue and with all responses made numbered in sequence (starting with '1'). Numbers in Green show correctly selected apples, numbers in red show responses that were made outside of the apples 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 original paper Apples Test (sized on DinA4) was re-created by Millisecond Software for this script as a W:H=4:3 image to reduce pixelation of the apples. Placement and size of the apples as well as apple appearance was attempted to be kept as similar as possible to the original. The resulting image is stored under 'stimulipage.png'. This image could be replaced with an image of the original apples test. 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). ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ provided by Millisecond Software - can be edited under section 'Editable Instructions' Practice instructions modelled after Mancuso et al (2015) ___________________________________________________________________________________________________________________ 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: